Greetings, I'm working on integrating a legacy application with j2ee/ejb services running on an app server cluster. Originally I was using Inline::Java in JNI mode. However the documented issues with forking processes is causing me to switch to the default client/server mode.
Since the application in question was grown in a way that results in it forking off perl processes and performing some actions, or execing scripts which cause new perl processes to start, a shared JVM is attractive. Ideally, each machine in the cluster would have its own single, running JVM that local clients would use. The problem I'm having, is that I'm not clear on the proper way to configure this. I imagine that its fairly close to how mod_perl would be setup with the additional caveat that there may be processes started that are not children of the 'parent' process. At this point, I've achieved some functionality with the shared JVM. I'm just not clear on when reconnect_JVM is required. Is this only required after a fork to deal with closing the parents sockets/registering with the shared JVM? Is there a way to see if the JVM is already running besides checking $Inline::Java::JVM? Is there a way to find out the pid that started the JVM besides the pid member variable in Inline::Java::JVM? I have a few issues remaining which I believe are caused by a fork() call I haven't tracked down yet. The symptom is that JNDI lookups fail, or EJB calls result in authorization failures. I just want to ensure that I'm not misunderstanding how/when to use reconnect. TIA -- J.