phpbar.de logo

Mailinglisten-Archive

[php] AW: [php] Java-Servlets und multithreading in PHP

[php] AW: [php] Java-Servlets und multithreading in PHP

Johann-Peter Hartmann hartmann_(at)_freecharts.de
Thu, 7 Sep 2000 15:16:00 +0200


Hallo Kar-Wing, hallo Liste,

Kar-Wing Lau schrieb:

> Kann ich denn PHP immer noch wie gewohnt als Skriptprozessor für normale
> PHP-Seiten in Apache verwenden oder ist dann PHP weil Du "anstelle der
> gewohnten Webserver-API" schreibst nur noch über Servlets ansprechbar?

	Ja, das macht die Demo-web.xml aus dem sapi/servlet-
	Verzeichnis:
	Sie sorgt dafür, dass jede Seite mit der Endung
	.php vorher von dem PHP-Servlet bearbeitet wird.

	Für PHP-Seiten ändert sich also nichts, ausser,
	dass sie nicht vom Apachen, sondern vom Servlet-
	Server wie z.B. Tomcat bedient werden.

> Wahrscheinlich ist dies auch so eine einfache Frage, deswegen schon mal
> sorry vorab dafür:
> Wenn mehrere Aufrufe an ein bestimmtes Skript "gleichzeitig"
> eingehen, wird
> dann für jeden Aufruf des Skriptes eine JVM gestartet oder nur
> für das eine
> Skript eine einzige JVM?

	Nein, so klar ist das wirklich nicht .
	Aber es ist wirklich der Fall: fuer jeden
	Zugriff auf das Skript wird eine
	JVM gestartet .

	Zitat aus ext/java:

   With ext/java, no Java Virtual Machines are created until the first
   Java call is made.  This not only eliminates unnecessary overhead if
   the extension is never used, it also provides error messages directly
   back to the user instead of being burried in a log some place.

   For people interested in robustness, performance, and more complete
   integration with Java, consider using the sapi/servlet interface which
   is built upon the Java extension.  Running PHP as a servlet enables PHP
   to utilize the existing JVM and threads from the servlet engine, and
   provides direct access to the servlet request and response objects.


	Sprich:
	Ja, für jeden Zugriff auf das Skript, das
	ueber ext/java auf Java zugreift, wird eine JVM
	gestartet. Also nicht eine für jedes Skript,
	sondern eine für jeden Aufruf .
	Über diese Maschine können aber beliebig
	viele Java-Objekte benutzt werden .

	Deshalb die obige Empfehlung, die Servlet-
	Variante zu nutzen :
	Hier wird eine Reihe von JVM zur Verfügung
	gestellt, die dann an die einzelnen Anfragen
	verteilt werden.

	Diese JVMs können auch auf verschiedenen Rechnern
	stattfinden .

	Für php-Skripte, die kein Java benutzen,
	wäre es allerings ein kräftiger
	Overhead, sie über die Servlet-maschinen
	zu jagen.

> Mal sehen, was die Technik macht. Wir sind da leider (oder zum
> Glück?) nicht
> dafür verantwortlich. Sollte es aber über die Servlet-Engine auf einem
> Cluster laufen, werde ich es gerne berichten.

	Ja, das wäre sicher interessant :-) .

	Viele Grüße, johann



php::bar PHP Wiki   -   Listenarchive