Restart of RMI-component fails (because it's not released while shutdown)
-------------------------------------------------------------------------
Key: JCR-1457
URL: https://issues.apache.org/jira/browse/JCR-1457
Project: Jackrabbit
Issue Type: Bug
Components: jackrabbit-jcr-rmi
Affects Versions: core 1.4.1
Environment: Tomcat 5.5
Reporter: Guido Jäkel
Priority: Critical
I just moved setup model for the Jackrabbit repository from a Tomcat-global
JNDI-datasouce to a autonomous server connected via RMI to get rid off the
problem of a total restart of the tomcat, if e.g. something is changed in the
jackrabbit setup.
But the restart of the RMI component of the jackrabbit server package will
fail, because on shutdown the rmi binding isn't released. From that, at
restart, the socket is still in use and the (just) RMI component fails to
start. In the other hand, it isn't possible to connect to the server through
the remaining rmi component; you'll get a EOF-exception in RMI communication.
Of course, a complete restart of the Tomcat will help, but isn't appropriate.
It looks to me like just some release on shutdown is missing. May somebody
provide a patch?
(log exception at restart)
20080306-093849.086 INFO [ajp-8009-2] [] [RepositoryStartupServlet] Cannot
create Registry
java.rmi.server.ExportException: Port already in use: 1099; nested exception
is:
java.net.BindException: Address already in use
at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:249)
at
sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:184)
at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:382)
at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:116)
at
sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:180)
at sun.rmi.registry.RegistryImpl.setup(RegistryImpl.java:92)
at sun.rmi.registry.RegistryImpl.<init>(RegistryImpl.java:68)
at
java.rmi.registry.LocateRegistry.createRegistry(LocateRegistry.java:222)
at
org.apache.jackrabbit.j2ee.RepositoryStartupServlet.registerRMI(RepositoryStartupServlet.
at
org.apache.jackrabbit.j2ee.RepositoryStartupServlet.startup(RepositoryStartupServlet.java
at
org.apache.jackrabbit.j2ee.RepositoryStartupServlet.init(RepositoryStartupServlet.java:21
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.