PHP 4.0 Bug #6122 Updated: JVM starts only on 3 requests per httpd
| From: | sniper@php.net | Date: | Wed, 08 Nov 2000 23:51:06 +0000 |
| Subject: | PHP 4.0 Bug #6122 Updated: JVM starts only on 3 requests per httpd | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-37475@lists.php.net to get a copy of this message | ||
ID: 6122
Updated by: sniper
Reported By: torben@php.net
Status: Feedback
Bug Type: *General Issues
Assigned To:
Comments:
What's the status with this bug? Still valid?
--Jani
Previous Comments:
---------------------------------------------------------------------------
[2000-08-13 20:34:19] rubys@php.net
Three does seem like an abnormally low number... I will take a look into it.
The design of ext/java is *not* to create a new JVM per request, but to create a single JVM per
thread (which in Apache's case is per process).
For scalability and robustness, I recommend sapi/servlet. I use Tomcat, which can be connected to
Apache. In such a configuration, there will only every be a single JVM, with multiple requests
being handled on separate threads.
---------------------------------------------------------------------------
[2000-08-12 07:41:17] torben@php.net
./configure --with-java --with-mysql --with-gd --with-apache=../apache_1.3.11 --enable-track-vars
--enable-sysvshm --enable-bcmath --disable-debug --with-xml
Using Blackdown JDK 1.2.2
From php.ini:
[java]
java.class.path=/usr/local/lib/php_java.jar
extension_dir=/usr/local/lib/php/extensions/no-debug-non-zts-20000809
extension=libphp_java.so
java.library.path=/usr/local/jdk1.2.2/jre/lib/i386:/usr/local/jdk1.2.2/jre/lib/i386/native_threads:/usr/local/jdk1.2.2/jre/lib/i386/classic:/usr/local/lib/php/extensions/no-debug-non-zts-20000809
Test script:
<?php
$system = new Java("java.lang.System");
print "Java version=".$system->getProperty("java.version")." n";
print "Java vendor=".$system->getProperty("java.vendor")."
<p>nn";
print "OS=".$system->getProperty("os.name")." ".
$system->getProperty("os.version")." on ".
$system->getProperty("os.arch")." n";
$formatter = new Java("java.text.SimpleDateFormat",
"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");
print $formatter->format(new Java("java.util.Date"))."n";
?>
The first 3 runs of the above work as expected. The fourth run gives the
error: Fatal error: Unable to create Java Virtual Machine in
/home/torben/public_html/php3test/tj.html on line 2.
Setting MaxRequestsPerChild to < 3 in httpd.conf makes the problem go away, but this is obviously
a suboptimal solution. :)
---------------------------------------------------------------------------
Full Bug description available at: http://bugs.php.net/?id=6122