Greetings everyone.
I've exhaustively searched the archives for a success story I can build on, but in vain.
I've been beating my head against mod_jk2 for over 2 days now, and I keep getting SO close but not quite far enough. If you've had similar experiences but got beyond it - please read on!
The Bad news is:
- The jakarta-tomcat-connectors-jk2-2.0.2-src comes with little to no documentation. All references to "reading the docs in the tarball" are false. - The few README's that exist within the build dirs tell of the minumum configuration necessary, but no real direction as to how to make it all work. - Reading the incomplete documentation on the web site shed some light on the problem, but still isn't getting me there. - Nowhere does the documentation mention the CLASSPATH issue that comes up.. I couldn't get anything to work until I added ALL of the tomcat common and server/lib jar files to the CLASSPATH in the worker2.properties file and added a JAVA_HOME environment variable to Apache2/bin/envvars - Nowhere does the documentation mention that the Java VM (jvmdll.so) must be in the LD_LIBRARY_PATH, or otherwise available via ld.so.conf / ldconfig - The build scripts for ant "build.xml" refer to a "coyote" directory, which doesn't exist in the jakarta-tomcat-connectors-jk2-2.0.2-src tarball. - The "configure" script that was created for some reason fails when testing that a directory isn't a regular file under RH 8.0... Go figure... I had to hand-edit out all the "if $(TEST) ! -f" blocks. - The docs are inconsistent as to where one should place the "jkjni.so" file. If placed in apache lib (which is also in my ld.so.conf) - things seem ok.. If places in tomcat/server/lib, things go poorly. - The docs never clearly define where, when, and how the "shm" block should be created, only that it's allowed... I only found it to be required through the use of google searching the archives.
There is some good news:
- After hours of hacking at the build process, I finally got a valid mod_jk2.so and jkjni.so file - Tomcat 4.1 had a tomcat-jk2.jar file, so the coyote compile was ultimately unnecessary - just annoying as the build process required it. - Tomcat 4.1 launches inside of Apache 2 (as evidenced by the apache error_log file)
The worse news: - No channels or workers will initialize, no matter WHAT I do. I've followed the docs to the letter and have both jk2.properties and workers2.properties in their proper locations
So, with that said.. I'm hoping that where the docs fail, the community will prevail.
Questions:
1) What is the proper format of the "JkUriSet" command in the httpd.conf file? This is the only example I've found:
<Location /examples> JkUriSet worker worker </Location>
If I use this <Location> in my httpd.conf, I get the error:
[Thu Apr 03 21:02:29 2003] [error] uriEnv.init() map to invalid worker /examples worker
So I expected that it wanted the name of the worker (jni I assume, considering the lack of documentation I am FORCED to assume! help!) so I made the block look like this:
<Location /examples>
JkUriSet worker jni
</Location>
It still complains.. I'm stumped on that one, so I thought -- just remove it and let the default [uri:/examples/*] handlers manage it (from workers2.properties) -- but when I try it without the block, I receive these different errors:
[Thu Apr 03 20:58:22 2003] [error] lb_worker.service() all workers in error or disabled state
[Thu Apr 03 20:58:22 2003] [error] mod_jk.handler() Error connecting to tomcat 120000
I've solved this inserting in workers2.properties the declaration >
[shm]
file=/opt/apache2/logs/shm.file
size=1048576
and touching the file /opt/apache2/logs/shm.file
Hope this helps!
Best regards Enrico
2) What must be done to init the jni channels and workers? What is the proper file format? I've seen many (MANY) references to mod_jk2 on the internet discuss using a "workers.properties" file, which looks extremely like the old 3.x version... I can't bring myself to believe that those are right (especially since if I add any of those commands to workers2.properties, it bombs out...) Using the examples in the docs, FAQ's, how to's and readmes results in this error log:
----- snip -----
[Thu Apr 03 20:28:09 2003] [notice] Apache configured -- resuming normal operations [Thu Apr 03 20:28:12 2003] [error] workerEnv.initChannel() init failed for channel.jni:jni [Thu Apr 03 20:28:12 2003] [error] workerEnv.initWorkers() init failed for worker.jni:onStartup [Thu Apr 03 20:28:12 2003] [error] workerEnv.initWorkers() init failed for worker.jni:onShutdown [Thu Apr 03 20:28:13 2003] [error] workerEnv.initChannel() init failed for channel.jni:jni [Thu Apr 03 20:28:13 2003] [error] workerEnv.initWorkers() init failed for worker.jni:onStartup [Thu Apr 03 20:28:13 2003] [error] workerEnv.initWorkers() init failed for worker.jni:onShutdown [Thu Apr 03 20:28:13 2003] [error] workerEnv.initChannel() init failed for channel.jni:jni [Thu Apr 03 20:28:13 2003] [error] workerEnv.initWorkers() init failed for worker.jni:onStartup [Thu Apr 03 20:28:13 2003] [error] workerEnv.initWorkers() init failed for worker.jni:onShutdown [Thu Apr 03 20:28:13 2003] [error] workerEnv.initChannel() init failed for channel.jni:jni [Thu Apr 03 20:28:13 2003] [error] workerEnv.initWorkers() init failed for worker.jni:onStartup [Thu Apr 03 20:28:13 2003] [error] workerEnv.initWorkers() init failed for worker.jni:onShutdown TomcatStarter: main() Try org.apache.tomcat.startup.Main Try org.apache.catalina.startup.BootstrapService Starting org.apache.catalina.startup.BootstrapService Created catalinaLoader in: /usr/local/jakarta/tomcat/server/lib [Thu Apr 03 20:28:16 2003] [error] mod_jk child init 1 0 Apr 3, 2003 8:28:17 PM org.apache.commons.modeler.Registry loadRegistry INFO: Loading registry information Apr 3, 2003 8:28:17 PM org.apache.commons.modeler.Registry getRegistry INFO: Creating new Registry instance Apr 3, 2003 8:28:19 PM org.apache.commons.modeler.Registry getServer INFO: Creating MBeanServer
----- snip -----
As you can see, Tomcat IS launching.. The VM is coming up and the bootstrap is initialized... It's the channel.* and worker.* directives that are now failing..
This line causes my curiosity to peak as well, can anyone decrypt it:
[Thu Apr 03 20:28:16 2003] [error] mod_jk child init 1 0
Can ANYONE help?
Puh-lease?
Ken M [EMAIL PROTECTED]
-------------- Big Snip ----------------
######################################## ######## jk2.properties ################ ######################################## # list of needed handlers. handler.list=apr,request,container,channelJni
# Or you can use the mod_jk2 directly #apr.jniModeSo=/usr/local/apache/modules/mod_jk2.so
channelJni.disable = 0 # If you wish to start the Tomcat from inside web server then # you don't need any above directive. Here is shown the default # value for the apr that you can ommit apr.jniModeSo=inprocess
-------------- Big Snip ----------------
########################################
####### workers2.properties ############
########################################
# Define the comunication channel [channel.jni:jni]
#info=The jni channel, used if tomcat is started inprocess
# Define the parameters for the Java Virtual Machine [vm:] info=Parameters used to load a JVM in the server process OPT=-Djava.class.path=$CLASSPATH:/usr/local/jakarta/tomcat/server/lib/tomcat-jk2.jar:/usr/local/jakarta/tomcat/bin/boots trap.jar:/usr/local/jakarta/tomcat/server/lib/catalina.jar:${TOMCAT_HOME}/server/lib/commons-digester.jar:/usr/local/jak arta/tomcat/common/lib/ant.jar:/usr/local/jakarta/tomcat/common/lib/commons-collections.jar:/usr/local/jakarta/tomcat/co mmon/lib/commons-logging-api.jar:/usr/local/jakarta/tomcat/common/lib/jasper-compiler.jar:/usr/local/jakarta/tomcat/comm on/lib/jasper-runtime.jar:/usr/local/jakarta/tomcat/common/lib/naming-common.jar:/usr/local/jakarta/tomcat/common/lib/na ming-factory.jar:/usr/local/jakarta/tomcat/common/lib/naming-resources.jar:/usr/local/jakarta/tomcat/common/lib/servlet. jar:/usr/local/jakarta/tomcat/server/lib/commons-beanutils.jar:/usr/local/jakarta/tomcat/server/lib/commons-digester.jar :.:/usr/local/jakarta/tomcat/server/lib/commons-modeler.jar:/usr/local/jakarta/tomcat/server/lib/jakarta-regexp-1.2.jar: /usr/local/jakarta/tomcat/server/lib/mx4j-jmx.jar:/usr/local/jakarta/tomcat/server/lib/servlets-common.jar:/usr/local/ja karta/tomcat/server/lib/servlets-default.jar:/usr/local/jakarta/tomcat/server/lib/servlets-invoker.jar:/usr/local/jakart a/tomcat/server/lib/servlets-manager.jar:/usr/local/jakarta/tomcat/server/lib/servlets-webdav.jar:/usr/local/jakarta/tom cat/server/lib/tomcat-util.jar:/usr/local/jakarta/tomcat/server/lib/tomcat-warp.jar OPT=-Dtomcat.home=/usr/local/jakarta/tomcat OPT=-Dcatalina.home=/usr/local/jakarta/tomcat OPT=-Xmx128M
# JNI worker startup handler [worker.jni:onStartup] info=Command to be executed by the VM on startup. This one will start tomcat. class=org/apache/jk/apr/TomcatStarter ARG=start stdout=${serverRoot}/logs/stdout.log stderr=${serverRoot}/logs/stderr.log
# JNI worker shutdown handler [worker.jni:onShutdown] info=Command to be executed by the VM on shutdown. This one will stop tomcat. class=org/apache/jk/apr/TomcatStarter ARG=stop
[uri:/*.jsp] info=Map the whole webapp
[uri:/examples/*] info=Map the whole webapp
[shm:] info=SHM Block file=/var/log/httpd/jk2.shm size=1048576
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
