You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2004/07/09 06:24:57 UTC
DO NOT REPLY [Bug 29989] New: -
jni of mod_jk2 doesn't work for win32 at all
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=29989>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=29989
jni of mod_jk2 doesn't work for win32 at all
Summary: jni of mod_jk2 doesn't work for win32 at all
Product: Tomcat 5
Version: 5.0.0
Platform: PC
OS/Version: Windows NT/2K
Status: NEW
Severity: Blocker
Priority: Other
Component: Native:JK
AssignedTo: tomcat-dev@jakarta.apache.org
ReportedBy: quan.ma@nordsan.com
I'm using Win2kServer + Apache2.0.50 + Tomcat5.0.16 (or 5.0.25) + jk2-2.0.4-
win32-apache2.0.49.
After I copied mod_jk2.so (comes from jk2-2.0.4-win32-apache2.0.49) to
${APACHE2_HOME}/modules, and finish all necessary configurations, start Apache2
service, I got these messages from ${APACHE2_HOME}/logs/error.log:
[Fri Jul 09 12:06:20 2004] [notice] Parent: Created child process 444
[Fri Jul 09 12:06:20 2004] [notice] Child 444: Child process is running
[Fri Jul 09 12:06:20 2004] [error] workerEnv.initChannel() init failed for
channel.jni:jni
[Fri Jul 09 12:06:20 2004] [error] workerEnv.initWorkers() init failed for
worker.jni:onStartup
[Fri Jul 09 12:06:20 2004] [error] workerEnv.initWorkers() init failed for
worker.jni:onShutdown
[Fri Jul 09 12:06:20 2004] [notice] Child 444: Acquired the start mutex.
[Fri Jul 09 12:06:20 2004] [notice] Child 444: Starting 100 worker threads.
so, as a result, the jni can not work.
I spent lot of time trying to solve the problem, but nothing happens.
Finally, I decide to look for the jk2 source code, see what's the matter of
that.
Then, I found the following code in jakarta-tomcat-connectors-jk2-2.0.4-
src\jk\native2\server\apache2\mod_jk2.c:608 -
...
if (workerEnv->maxDaemons < 2) {
workerEnv->childId = proc.pid; // HERE IS IT!!
env->l->jkLog(env, env->l, JK_LOG_INFO,
"jk2_init() Setting scoreboard slot 0 for child %d\n",
proc.pid);
}
...
but, in jakarta-tomcat-connectors-jk2-2.0.4-src\jk\native2
\common\jk_channel_jni.c:91 -
...
if (wEnv->childId != 0) { // AND THIS ??
if (jniW->worker != NULL)
jniW->worker->mbean->disabled = JK_TRUE;
return JK_ERR;
}
...
That's it.
So, I chang it to -
...
if (workerEnv->maxDaemons < 2) {
workerEnv->childId = 0; // HERE IS IT!!
env->l->jkLog(env, env->l, JK_LOG_INFO,
"jk2_init() Setting scoreboard slot 0 for child %d\n",
proc.pid);
}
...
I don't really know what it means, but it works for me now :)
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org