php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #6122 JVM starts only on 3 requests per httpd
Submitted: 2000-08-12 07:41 UTC Modified: 2000-12-07 11:28 UTC
From: torben@php.net Assigned:
Status: Closed Package: *General Issues
PHP Version: 4.0 Latest CVS (12/08/2000) OS: Mandrake Linux 7.0
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: torben@php.net
New email:
PHP Version: OS:

 

 [2000-08-12 07:41 UTC] 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>\n\n";
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. :)

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2000-08-13 20:34 UTC] 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-11-08 18:51 UTC] sniper@php.net
What's the status with this bug? Still valid?

--Jani
 [2000-12-07 11:28 UTC] sniper@php.net
Reopen, if this still happens when using latest snapshot
from http://snaps.php.net/

--Jani
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Nov 01 01:01:28 2024 UTC