Home  |  Linux  | Mysql  | PHP  | XML
From:Michael Peters Date:Tue Sep  9 14:30:53 2008
Subject:patch for Inline::Java, more info about mod_perl
This has been an ongoing problem for a project I worked on and I've just now found the solution.
http://markmail.org/message/vpfgx2vgjzl354qm

It's pretty once I realized that you needed to treat Inline::Java socket connections to it's JVM 
(shared-jvm mode) just like you would DB handles under mod_perl. So here's a patch to the 
documentation to help others who might have this same problem:

-- 
Michael Peters
Plus Three, LP


--- Java.pod.orig	2008-09-09 16:21:59.000000000 -0400
+++ Java.pod	2008-09-09 16:30:10.000000000 -0400
@@ -1046,7 +1046,28 @@
 
 See the BUGS AND DEFICIENCIES section if you have problems starting 
 the SHARED_JVM server under MOD_PERL.
-   Z<>
+
+=head2 Preloading and PerlChildInitHandler
+
+If you are loading Inline::Java during your server startup (common practice
+to increase shared memory and reduce run time) and you are using C<SHARED_JVM>
+then your Apache processes will all share the same socked connection to that JVM.
+This will result in garbled communication and strange errors (like "Can't receive packet from JVM", "Broken pipe", etc).
+
+To fix this you need to tell Apache that after each child process has forked they
+each need to create their own connections to the JVM. This is done during the C<ChildInit>
+stage.
+
+For Apache 1.3.x this could look like:
+
+   # in httpd.conf
+   PerlChildInitHandler MyProject::JavaReconnect
+
+And C<MyProject::JavaReconnect> could be as simple as this:
+
+   package MyProject::JavaReconnect;
+   sub handler($$) { Inline::Java::reconnect_JVM() }
+   1;
 
 
 =head1 BUGS AND DEFICIENCIES
Navigate in group perl.inline at sever nntp.perl.org
Previous Next




  
© No Copyright
You are free to use Anything
Site Maintained by PHP Developer
Powered By PHP Consultants