----- Original Message ----- From: "Shamshad Ansari" <[EMAIL PROTECTED]>
To: <users@tomcat.apache.org>
Sent: Sunday, June 15, 2008 8:51 AM
Subject: JNI and Tomcat problem


Hi,
I have a web application deployed in Tomcat. On a click on button on
the web browser, it calls a servlet which in turn calls a native
function written in C. First time when tomcat is started and I run the
application, it works fine. The second clicking the same button causes
the server to crash with the following error message.
I have placed the .dll file in $Cateline_Home\shared\lib
Tomcat version: 6.0
When I restart the server, it works fine the first time and second
time, it crashes and stops again.

The error log is:
-------------------------------------------------------------------------
Jun 15, 2008 2:39:13 AM org.apache.catalina.core.StandardServer await
SEVERE: StandardServer.await: accept:
java.net.SocketException: socket closed
       at java.net.PlainSocketImpl.socketAccept(Native Method)
       at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
       at java.net.ServerSocket.implAccept(ServerSocket.java:453)
       at java.net.ServerSocket.accept(ServerSocket.java:421)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:389)
       at org.apache.catalina.startup.Catalina.await(Catalina.java:642)
       at org.apache.catalina.startup.Catalina.start(Catalina.java:602)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:597)
       at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
       at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Jun 15, 2008 2:39:13 AM org.apache.jk.common.ChannelSocket acceptConnections
WARNING: Exception executing accept
java.net.SocketException: socket closed
       at java.net.PlainSocketImpl.socketAccept(Native Method)
       at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
       at java.net.ServerSocket.implAccept(ServerSocket.java:453)
       at java.net.ServerSocket.accept(ServerSocket.java:421)
at org.apache.jk.common.ChannelSocket.accept(ChannelSocket.java:306) at org.apache.jk.common.ChannelSocket.acceptConnections(ChannelSocket.java:660) at org.apache.jk.common.ChannelSocket$SocketAcceptor.runIt(ChannelSocket.java:870) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
       at java.lang.Thread.run(Thread.java:619)
Jun 15, 2008 2:39:13 AM org.apache.jk.common.ChannelSocket acceptConnections
WARNING: Exception executing accept
java.net.SocketException: socket closed
       at java.net.PlainSocketImpl.socketAccept(Native Method)
       at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
       at java.net.ServerSocket.implAccept(ServerSocket.java:453)
       at java.net.ServerSocket.accept(ServerSocket.java:421)
at org.apache.jk.common.ChannelSocket.accept(ChannelSocket.java:306)
java.util.logging.ErrorManager: 1
at org.apache.jk.common.ChannelSocket.acceptConnections(ChannelSocket.java:660)
java.lang.NullPointerException
at org.apache.jk.common.ChannelSocket$SocketAcceptor.runIt(ChannelSocket.java:870)
       at org.apache.juli.FileHandler.publish(FileHandler.java:137)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
       at java.util.logging.Logger.log(Logger.java:472)
       at java.lang.Thread.run(Thread.java:619)
       at java.util.logging.Logger.doLog(Logger.java:494)
Jun 15, 2008 2:39:13 AM org.apache.tomcat.util.net.JIoEndpoint$Acceptor run
       at java.util.logging.Logger.logp(Logger.java:694)
SEVERE: Socket accept failed
       at org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:167)
java.net.SocketException: socket closed
       at org.apache.juli.logging.DirectJDKLog.warn(DirectJDKLog.java:127)
       at java.net.PlainSocketImpl.socketAccept(Native Method)
at org.apache.jk.common.ChannelSocket.acceptConnections(ChannelSocket.java:671)
       at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
at org.apache.jk.common.ChannelSocket$SocketAcceptor.runIt(ChannelSocket.java:870)
       at java.net.ServerSocket.implAccept(ServerSocket.java:453)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
       at java.net.ServerSocket.accept(ServerSocket.java:421)
       at java.lang.Thread.run(Thread.java:619)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61) at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:310)
       at java.lang.Thread.run(Thread.java:619)
Jun 15, 2008 2:39:13 AM org.apache.jk.common.ChannelSocket acceptConnections
WARNING: Exception executing accept
java.net.SocketException: socket closed
       at java.net.PlainSocketImpl.socketAccept(Native Method)
       at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
       at java.net.ServerSocket.implAccept(ServerSocket.java:453)
       at java.net.ServerSocket.accept(ServerSocket.java:421)
at org.apache.jk.common.ChannelSocket.accept(ChannelSocket.java:306) at org.apache.jk.common.ChannelSocket.acceptConnections(ChannelSocket.java:660) at org.apache.jk.common.ChannelSocket$SocketAcceptor.runIt(ChannelSocket.java:870) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
       at java.lang.Thread.run(Thread.java:619)
Jun 15, 2008 2:39:13 AM org.apache.coyote.http11.Http11Protocol pause
INFO: Pausing Coyote HTTP/1.1 on http-80
Jun 15, 2008 2:39:13 AM org.apache.jk.common.ChannelSocket acceptConnections
WARNING: Exception executing accept
java.net.SocketException: socket closed
       at java.net.PlainSocketImpl.socketAccept(Native Method)
       at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
       at java.net.ServerSocket.implAccept(ServerSocket.java:453)
       at java.net.ServerSocket.accept(ServerSocket.java:421)
at org.apache.jk.common.ChannelSocket.accept(ChannelSocket.java:306) at org.apache.jk.common.ChannelSocket.acceptConnections(ChannelSocket.java:660) at org.apache.jk.common.ChannelSocket$SocketAcceptor.runIt(ChannelSocket.java:870) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
       at java.lang.Thread.run(Thread.java:619)
Jun 15, 2008 2:39:13 AM org.apache.jk.common.ChannelSocket acceptConnections
WARNING: Exception executing accept
java.net.SocketException: socket closed
       at java.net.PlainSocketImpl.socketAccept(Native Method)
       at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
       at java.net.ServerSocket.implAccept(ServerSocket.java:453)
       at java.net.ServerSocket.accept(ServerSocket.java:421)
at org.apache.jk.common.ChannelSocket.accept(ChannelSocket.java:306) at org.apache.jk.common.ChannelSocket.acceptConnections(ChannelSocket.java:660) at org.apache.jk.common.ChannelSocket$SocketAcceptor.runIt(ChannelSocket.java:870) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
       at java.lang.Thread.run(Thread.java:619)
Jun 15, 2008 2:39:13 AM org.apache.catalina.connector.Connector pause
SEVERE: Protocol handler pause failed
java.net.SocketException: Successful WSAStartup not yet performed: create
       at java.net.Socket.createImpl(Socket.java:388)
       at java.net.Socket.<init>(Socket.java:362)
       at java.net.Socket.<init>(Socket.java:209)
at org.apache.jk.common.ChannelSocket.unLockSocket(ChannelSocket.java:486)
       at org.apache.jk.common.ChannelSocket.pause(ChannelSocket.java:283)
       at org.apache.jk.server.JkMain.pause(JkMain.java:681)
at org.apache.jk.server.JkCoyoteHandler.pause(JkCoyoteHandler.java:153) at org.apache.catalina.connector.Connector.pause(Connector.java:1073) at org.apache.catalina.core.StandardService.stop(StandardService.java:563) at org.apache.catalina.core.StandardServer.stop(StandardServer.java:744)
       at org.apache.catalina.startup.Catalina.stop(Catalina.java:628)
at org.apache.catalina.startup.Catalina$CatalinaShutdownHook.run(Catalina.java:671)
Jun 15, 2008 2:39:14 AM org.apache.catalina.core.StandardService stop
INFO: Stopping service Catalina
Jun 15, 2008 2:39:14 AM org.apache.catalina.core.StandardWrapper unload
INFO: Waiting for 1 instance(s) to be deallocated
Jun 15, 2008 2:39:15 AM org.apache.catalina.core.StandardWrapper unload
INFO: Waiting for 1 instance(s) to be deallocated
Jun 15, 2008 2:39:16 AM org.apache.catalina.core.StandardWrapper unload
INFO: Waiting for 1 instance(s) to be deallocated
class engine.common.EmrAppStart: INFO: Context is Destroyed
Jun 15, 2008 2:39:16 AM org.apache.coyote.http11.Http11Protocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-80
--------------------------------------------------------------------------------
I appreciate if you could provide any information about how to correct
this problem.
Thank you.
--Sam

Sam, I have no idea... but just some thoughts.
I dont think it really matters where you put the DLL, as long as its not in webapps, because they reload.

What does this DLL do?
It almost looks like the DLL is closing the windows sockets... does the DLL do TCP communications?
A guess is that the DLL is stealing TC's sockets... not much help, sorry.

Just try this... in desperation
Start TC... run netstat -noa... and you should see TC bound to a port.
Then run it once and do it again... and see what is bound to that port after the run... if its the DLL, its stolen the socket from TC, somehow?

So when TC tries to get another connection... it crashes... I think

Good luck...

---------------------------------------------------------------------------
HARBOR : http://www.kewlstuff.co.za/index.htm
The most powerful application server on earth.
The only real POJO Application Server.
See it in Action : http://www.kewlstuff.co.za/cd_tut_swf/whatisejb1.htm
---------------------------------------------------------------------------

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to