Hi All its me again,
Every thing works fine but you have to manually map every URL servlet - I'm
sure this is not correct.
I'm posting this last e-mail on this subject unless someone can address the
jk2_init() issue.
Rest assured for all concerned I'm not even dreaming of looking at jkini
in-process implementation.
However I find it a bit strange that the Apache and Tomcat group couldn't
dream up a better way of transferring data than a shared flat file.
Anyway its been fun hacking at a solution even though these days I really
don't have the time or money for such indulgences :-(
This e-mail has all the relevant information you need to get things working.
What I did in summary:
OS: Linux 9 Red Had
JDK: j2sdk1.4.1_02
Httpd-2.0.48 - Apache 2 built from Source
Tomcat-4.1.29 - Tomcat 4.1.29 built from Source
Jakarta-Tomcat-Connectors-4.1.29 - Jakarta-Tomcat-Connectors-4.1.29 built
from "ant native" from the JK directory remember you need to build all the
relevant Jar files that you will update in Tomcat. Just follow the readme
files and ignore everything else. APR version from Apache 2 above WORKS
however if your building "mod_webapp" module you must download the latest
version.
Bellow are the relevant files to get things happening, I've always found
these files poorly documented. Its more an exercise in luck and patience
until the next release when you have to go through the process again. :-(
.
snippet httpd.conf
jk2.properties
worker2.properties
****** httpd.conf file
LoadModule jk2_module modules/mod_jk2.so
<IfModule mod_jk2.c>
JkSet config:file
"/usr/local/jakarta-tomcat-4.1.29/conf/workers2.properties"
</IfModule>
Alias /examples "/usr/local/jakarta-tomcat-4.1.29/webapps/examples"
<Location "/examples">
Options Indexes FollowSymLinks
</Location>
<Location "/examples/WEB-INF/">
AllowOverride None
deny from all
</Location>
******
****** jk2.properties file
shm.file=/temp/jk2.shm
# list of needed handlers.
handler.list=apr,request,channelJni
# Dynamic library needs to be defined only if Tomcat is used
# out of process
# apr.NativeSo=/usr/local/apache2/modules/libjkjni.so
# Or you can use the mod_jk2 directly
apr.jniModeSo=/usr/local/apache2/modules/mod_jk2.so
# 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
******
****** workers2.properties file
[logger]
level=WARN
#INFO
#/web_ci/
[config:]
file=/usr/local/jakarta-tomcat-4.1.29/conf/workers2.properties
debug=0
debugEnv=0
[uriMap:]
info=Maps the requests. Options: debug
debug=0
# Alternate file logger
[logger.file:0]
level=WARN
file=/usr/local/jakarta-tomcat-4.1.29/logs/jk2.log
# Cache for activity
# Must point to a writeable path
[shm:]
info=Scoreboard. Required for reconfiguration and status with multiprocess
servers
file=/temp/jk2.shm
size=1000000
debug=0
disabled=0
[workerEnv:]
info=Global server options
timing=1
debug=99
# Default Native Logger (apache2 or win32 )
# can be overriden to a file logger, useful
# when tracing win32 related issues
logger=logger.file:0
# Communication channel to use
[channel.socket:sslaptop.gsss.net:8001]
info=Ajp13 forwarding over socket
debug=0
tomcatId=sslaptop.gsss.net:8001
# Connector as in conf/server.xml
[ajp13:sslaptop.gsss.net:8001]
channel=channel.socket:sslaptop.gsss.net:8001
# Tomcat load balancing
[lb:lb]
info=Default load balancer.
debug=0
[status:status]
info=Status worker, displays runtime informations
# Monitor for requests and config http://sslaptop.gsss.net:8057/jkstatus
[uri:/jkstatus]
info=Display status information and checks the config file for changes.
worker=ajp13:sslaptop.gsss.net:8001
context=/jkstatus
group=status:status
tomcatId=sslaptop.gsss.net:8001
[uri:/examples]
info=Display status information and checks the config file for changes.
worker=ajp13:sslaptop.gsss.net:8001
context=/examples
group=status:status
tomcatId=sslaptop.gsss.net:8001
[uri:/examples/*.jsp]
info=jsp files map always
[uri:/examples/servlet/RequestInfoExample]
info=servlet - see what I mean for every servlet
[uri:/examples/servlet/HelloWorldExample]
info=servlet- see what I mean for every servlet
[uri:/examples/servlet/RequestHeaderExample]
info=servlet- see what I mean for every servlet
[uri:/examples/servlet/JndiServlet]
info=servlet- see what I mean for every servlet
******
many many many thanks to all
George
----- Original Message -----
From: "George Shafik" <[EMAIL PROTECTED]>
To: "Tomcat Users List" <[EMAIL PROTECTED]>
Sent: Saturday, January 10, 2004 6:31 PM
Subject: Re: jk2_init() Can't find child xxxx in none of the 1024 scoreboard
slots
> Hi All,
>
> Well after going back to Yahoo! I found a page that at least got Tomcat
> 4.1.29 talking to Apache 2 though mod_jk2
>
YES!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
>
:)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
> )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
>
> http://www.kawao.com/java/docs/mod_jk.html
> (note the mod_jk2 is further down the page)
>
> Its not all in English but the critical parts are - look at the section
> titled
> httpd.conf
> file and the way they set-up the context mapping to /examples
> (It would be great if someone would translate as I couldn't find a link
for
> an English version)
>
> Still getting the jk2_init() error but I can now move on.
>
> I will post a complete HOWTO in the next week
>
> Cheers,
> George
>
>
>
> ----- Original Message -----
> From: "George Shafik" <[EMAIL PROTECTED]>
> To: "Nikola Milutinovic" <[EMAIL PROTECTED]>; "Peter O'Reilly"
> <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>;
> <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>;
<[EMAIL PROTECTED]>;
> <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>;
> <[EMAIL PROTECTED]>; "Mark Eggers" <[EMAIL PROTECTED]>;
> <[EMAIL PROTECTED]>
> Cc: "Tomcat Users List" <[EMAIL PROTECTED]>
> Sent: Saturday, January 10, 2004 2:03 PM
> Subject: Re: jk2_init() Can't find child xxxx in none of the 1024
scoreboard
> slots
>
>
> > Hi Nikola and any one else that can help,
> >
> > I'm still stuck on jk2_init() error -
> > even though many developers out there reckon this is not an issue I
still
> > find it concerning that Apache2 is trying to find a Child process and
> > reports it as an [error].
> >
> > [Sat Jan 10 13:15:08 2004] [notice] mod_jk.post_config() first
invocation
> > [Sat Jan 10 13:15:08 2004] [notice] mod_jk.post_config() second
invocation
> > [Sat Jan 10 13:15:08 2004] [error] jk2_init() Can't find child 2089 in
> none
> > of the 256 scoreboard slots
> > [Sat Jan 10 13:15:08 2004] [error] jk2_init() Can't find child 2090 in
> none
> > of the 256 scoreboard slots
> > [Sat Jan 10 13:15:08 2004] [error] jk2_init() Can't find child 2091 in
> none
> > of the 256 scoreboard slots
> > [Sat Jan 10 13:15:08 2004] [error] jk2_init() Can't find child 2092 in
> none
> > of the 256 scoreboard slots
> > [Sat Jan 10 13:15:08 2004] [error] jk2_init() Can't find child 2093 in
> none
> > of the 256 scoreboard slots
> > [Sat Jan 10 13:15:08 2004] [notice] Apache/2.0.48 (Unix)
mod_jk2/2.0.3-dev
> > configured -- resuming normal operations
> > [Sat Jan 10 13:15:24 2004] [error] [client 192.168.0.100] File does not
> > exist: /usr/local/apache2/htdocs/examples
> > [Sat Jan 10 13:15:24 2004] [error] jk2_init() Can't find child 2095 in
> none
> > of the 256 scoreboard slots
> > [Sat Jan 10 13:15:30 2004] [error] [client 192.168.0.100] File does not
> > exist: /usr/local/apache2/htdocs/examples
> > [Sat Jan 10 13:15:33 2004] [error] [client 192.168.0.100] File does not
> > exist: /usr/local/apache2/htdocs/examples
> > [Sat Jan 10 13:15:37 2004] [error] [client 192.168.0.100] File does not
> > exist: /usr/local/apache2/htdocs/examples
> > [Sat Jan 10 13:15:44 2004] [error] [client 192.168.0.100] File does not
> > exist: /usr/local/apache2/htdocs/examples, referer:
> > http://sslaptop.gsss.net/examples/
> > [Sat Jan 10 13:15:48 2004] [error] [client 192.168.0.100] File does not
> > exist: /usr/local/apache2/htdocs/examples, referer:
> > http://sslaptop.gsss.net/examples/
> > [Sat Jan 10 13:16:03 2004] [error] [client 192.168.0.100] File does not
> > exist: /usr/local/apache2/htdocs/jkstatus
> > [Sat Jan 10 13:15:08 2004] ( info ) [jk_logger_file.c (224)] Level WARN
0
> > [Sat Jan 10 13:15:08 2004] ( info ) [jk_logger_file.c (224)] Level WARN
0
> > [Sat Jan 10 13:15:08 2004] ( info ) [jk_logger_file.c (224)] Level WARN
0
> > [Sat Jan 10 13:15:08 2004] ( info ) [jk_logger_file.c (224)] Level WARN
0
> > [Sat Jan 10 13:15:08 2004] ( info ) [jk_logger_file.c (224)] Level WARN
0
> > [Sat Jan 10 13:15:08 2004] ( info ) [jk_logger_file.c (224)] Level WARN
0
> > [Sat Jan 10 13:22:47 2004] [notice] caught SIGTERM, shutting down
> > [Sat Jan 10 13:15:08 2004] ( info ) [jk_logger_file.c (224)] Level WARN
0
> >
> > Anyway I've managed to rebuild all mod_jk2.so and all relative jar files
> > with no issues with the org.apache.coyote.tomcat4.CoyoteConnector.
> > Unfortunately I still can't talk to Tomcat directly from Apache via the
> > standard socket method.
> >
> > Following are:
> > snippet httpd.con
> > snippet server.xml
> > workers2.properties
> > jk2.properties
> >
> > Any help would be greatly appreciated as I've spent far too much time on
> > this with no real results is very frustrating.
> > Apologies for any previous stupid questions as I'm now unfortunately up
to
> > speed with using mod_jk2, Apache2 and Tomcat 4.1.29 - just an aside this
> is
> > far too hard it should be made simpler as many of us out here don't want
> to
> > become C and Web Servlet Container Gurus. Also any reference to binaries
> is
> > really bytecode that's the price you pay when your developing across
> > various platforms and languages.
> >
> > If I'm able to get things working I will publish a HOWTO Apache2.0.48
> > Tomcat4.1.29 jakarta-tomcat-connectors-4.1.29 for Linux Red Hat 9. This
is
> > my way of saying thank you to all concerned.
> >
> > ********* snippet httpd.con ********
> > LoadModule jk2_module modules/mod_jk2.so
> >
> > <IfModule mod_jk2.c>
> > JkSet config:file
> > "/usr/local/jakarta-tomcat-4.1.29/conf/workers2.properties"
> > </IfModule>
> > <Location "/examples/*">
> > JkUriSet worker ajp13:sslaptop.gsss.net:8001
> > </Location>
> > <Location "/jkstatus/*">
> > JkUriSet worker ajp13:sslaptop.gsss.net:8001
> > </Location>
> > ********* snippet httpd.con ********
> >
> >
> >
> > ******** snippet server.xml *********
> > <!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->
> > <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
> > port="8080" minProcessors="5" maxProcessors="75"
> > enableLookups="true" redirectPort="8443"
> > acceptCount="100" debug="0" connectionTimeout="20000"
> > useURIValidationHack="false" disableUploadTimeout="true"
/>
> > <!-- Note : To disable connection timeouts, set connectionTimeout
> value
> > to -1 -->
> >
> > <!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
> > <!--
> > <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
> > port="8443" minProcessors="5" maxProcessors="75"
> > enableLookups="true"
> > acceptCount="100" debug="0" scheme="https" secure="true"
> > useURIValidationHack="false" disableUploadTimeout="true">
> > <Factory
> > className="org.apache.coyote.tomcat4.CoyoteServerSocketFactory"
> > clientAuth="false" protocol="TLS" />
> > </Connector>
> > -->
> >
> > <!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8001 -->
> > <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
> > port="8001" minProcessors="5" maxProcessors="75"
> > enableLookups="true" redirectPort="8443"
> > acceptCount="10" debug="0" connectionTimeout="20000"
> > useURIValidationHack="false"
> >
> > protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>
> >
> > <!-- Define an AJP 1.3 Connector on port 8009 -->
> > <!--
> > <Connector className="org.apache.ajp.tomcat4.Ajp13Connector"
> > port="8009" minProcessors="5" maxProcessors="75"
> > acceptCount="10" debug="0"/>
> > -->
> >
> > <!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
> > <!-- See proxy documentation for more information about using
> this. -->
> > <!--
> > <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
> > port="8082" minProcessors="5" maxProcessors="75"
> > enableLookups="true"
> > acceptCount="100" debug="0" connectionTimeout="20000"
> > proxyPort="80" useURIValidationHack="false"
> > disableUploadTimeout="true" />
> > -->
> >
> > <!-- Define a non-SSL legacy HTTP/1.1 Test Connector on port
8083 -->
> > <!--
> > <Connector
> className="org.apache.catalina.connector.http.HttpConnector"
> > port="8083" minProcessors="5" maxProcessors="75"
> > enableLookups="true" redirectPort="8443"
> > acceptCount="10" debug="0" />
> > -->
> >
> > <!-- Define a non-SSL HTTP/1.0 Test Connector on port 8084 -->
> > <!--
> > <Connector
> > className="org.apache.catalina.connector.http10.HttpConnector"
> > port="8084" minProcessors="5" maxProcessors="75"
> > enableLookups="true" redirectPort="8443"
> > acceptCount="10" debug="0" />
> > -->
> > ******** snippet server.xml *********
> >
> > ******** workers2.properties *********
> > [logger]
> > level=WARN
> > #INFO
> >
> > #/web_ci/
> > [config:]
> > file=/usr/local/jakarta-tomcat-4.1.29/conf/workers2.properties
> > debug=0
> > debugEnv=0
> >
> > [uriMap:]
> > info=Maps the requests. Options: debug
> > debug=0
> >
> > # Alternate file logger
> > [logger.file:0]
> > level=WARN
> > file=/usr/local/jakarta-tomcat-4.1.29/logs/jk2.log
> >
> > # Cache for activity
> > # Must point to a writeable path
> > [shm:]
> > info=Scoreboard. Required for reconfiguration and status with
multiprocess
> > servers
> > file=/usr/local/jakarta-tomcat-4.1.29/logs/jk2.shm
> > size=1000000
> > debug=0
> > disabled=0
> >
> > [workerEnv:]
> > info=Global server options
> > timing=1
> > debug=99
> > # Default Native Logger (apache2 or win32 )
> > # can be overriden to a file logger, useful
> > # when tracing win32 related issues
> > logger=logger.file:0
> >
> > # Communication channel to use
> > [channel.socket:sslaptop.gsss.net:8001]
> > info=Ajp13 forwarding over socket
> > debug=0
> > tomcatId=sslaptop.gsss.net:8001
> >
> > # Connector as in conf/server.xml
> > [ajp13:sslaptop.gsss.net:8001]
> > channel=channel.socket:sslaptop.gsss.net:8001
> >
> > # Tomcat load balancing
> > [lb:lb]
> > info=Default load balancer.
> > debug=0
> >
> > [status:status]
> > info=Status worker, displays runtime informations
> >
> > # Monitor for requests and config http://sslaptop.gsss.net:8057/jkstatus
> > [uri:/jkstatus/*]
> > info=Display status information and checks the config file for changes.
> > worker=ajp13:sslaptop.gsss.net:8001
> > context=/jkstatus
> > group=status:status
> > tomcatId=sslaptop.gsss.net:8001
> >
> > [uri:/examples/*]
> > info=Display status information and checks the config file for changes.
> > worker=ajp13:sslaptop.gsss.net:8001
> > context=/examples
> > group=status:status
> > tomcatId=sslaptop.gsss.net:8001
> > ******** workers2.properties *********
> >
> >
> > ********* jk2.properties ************
> > # list of needed handlers.
> > handler.list=apr,request,channelJni
> >
> > # Dynamic library needs to be defined only if Tomcat is used
> > # out of process
> > # apr.NativeSo=/usr/local/apache2/modules/libjkjni.so
> > # Or you can use the mod_jk2 directly
> > apr.jniModeSo=/usr/local/apache2/modules/mod_jk2.so
> >
> > # 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
> > ********* jk2.properties ************
> >
> > Kind Regards,
> > George Shafik
> >
> >
> > In completing one discovery we never fail to get an imperfect knowledge
of
> > others of which we could have no idea before, so that we cannot solve
one
> > doubt without creating several new ones.
> > -Joseph Priestly, 1786
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > ----- Original Message -----
> > From: "Nikola Milutinovic" <[EMAIL PROTECTED]>
> > To: "Tomcat Users List" <[EMAIL PROTECTED]>
> > Sent: Sunday, January 04, 2004 11:01 PM
> > Subject: Re: jk2_init() Can't find child xxxx in none of the 1024
> scoreboard
> > slots
> >
> >
> > > Subject: Fw: jk2_init() Can't find child xxxx in none of the 1024
> > scoreboard
> > > slots
> > >
> > >
> > > > Hi Peter,
> > > >
> > > > I'm using Apache 2.0.48, Tomcat 4.1.29, Jakarta-Tomcat-Connectors
> > 4.1.29.
> > > > I'm hoping the problem it is not the mod_jk2.so module as I went to
> > great
> > > > trouble in order to generate it on my RH9 Linux Kernal Version
> 2.4.20-8
> > > > platform. I had to recompile apr, apr-util code and only "ant
native"
> > > > managed to build mod_jk2.so
> > >
> > > > ### error.log file in Apache2.0.48 log
> > > > ###########################################
> > > > [Sat Jan 03 23:01:48 2004] [error] jk2_init() Can't find child 7398
in
> > > none
> > > > of the 256 scoreboard slots
> > > > [Sat Jan 03 23:01:48 2004] [error] jk2_init() Can't find child 7399
in
> > > none
> > > > of the 256 scoreboard slots
> > > > [Sat Jan 03 23:01:48 2004] [error] jk2_init() Can't find child 7400
in
> > > none
> > > > of the 256 scoreboard slots
> > > > [Sat Jan 03 23:01:48 2004] [error] jk2_init() Can't find child 7402
in
> > > none
> > > > of the 256 scoreboard slots
> > > > [Sat Jan 03 23:01:48 2004] [notice] Apache/2.0.48 (Unix)
> > mod_jk2/2.0.3-dev
> > > > configured -- resuming normal operations
> > >
> > > These are mostly harmless messages. The only way I found to avoid them
> was
> > a
> > > rather long one.
> > >
> > > In order for Apache + mod_jk2 to find neighbour children is to
configure
> > > shared memory for mod_jk2. And it must be configured on both Apache
and
> > > Tomcat side. If you drop Tomcat side, then it will complain. :-)
> > >
> > > For shared memory in Coyote-jk2 handler, you need to build jkjni.so
(you
> > may
> > > screem in agony :-)). JK-JNI gives you "Java Native Interface"
> > > functionality, which includes UNIX SHM and UNIX file sockets.
> > >
> > > In order for jkjni.so to function correctly, it must have an
environment
> > > variable "serverRoot" defined on the process level, or it will not be
> able
> > > to locate workers2.properties (it is in Apache's config dir). To be
> > honest,
> > > jkjni.so was designed for another purpose - running Tomcat from within
> > > Apache process (in-process). This environment variable is provided by
> > > Apache. All of us who wish to run a standalone Tomcat and still use
> > jkjni.so
> > > must emulate this. The only way I found to do that was to place
> > >
> > > export serverRoot=/etc/httpd/2.0
> > >
> > > in Tomcat's config/startup scripts. Like I said - it is long one.
> > >
> > > > [Sun Jan 04 12:08:37 2004] [notice] caught SIGTERM, shutting down
> > >
> > > Normal shutdown, I'd say.
> > >
> > > > ####################### jk2.prorperties ###########################
> > > > ## THIS FILE MAY BE OVERRIDEN AT RUNTIME. MAKE SURE TOMCAT IS STOPED
> > > > ## WHEN YOU EDIT THE FILE.
> > > > ## COMMENTS WILL BE _LOST_
> > > > ## DOCUMENTATION OF THE FORMAT IN JkMain javadoc.
> > > > # Set the desired handler list
> > > > # handler.list=apr,request,channelJni
> > >
> > > Why are you using "channelJni"?
> > >
> > > You could use "apr,request,channelSocket" and drop JNI completely.
Take
> > look
> > > at Tomcats docs and JK2 section.
> > >
> > > > ########################## workers.properties ####################
> > > > worker.list=ajp13
> > > > worker.ajp13.port=8009
> > > > worker.ajp13.host=localhost
> > > > worker.ajp13.type=ajp13
> > > > ############################################################
> > >
> > > Why are you using "workers.properties"? It is for mod_jk. For mod_jk2
> you
> > > must use "worker2.properties".
> > >
> > > Consult docs at http://jakarta.apache.org -> Tomcat -> Documentation.
> > >
> > > Nix.
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]