Hi Ruwan,

 

I’m right now back and will have a look at the issue. Your analysis reflects my 
first thought. The idea was to start the JmxAdapter as early as possible and 
stop it as late as possible to be able to remote monitor and control the server 
even if it is in state stopped (e.g. to start it again etc.).

 

But if the RMIRegistry has been destroyed before, it will cause the issue you 
posted. So I will see whether it is possible to move the call to the shutdown 
to a later position (after the stop call to the JMXAdapter.

 

As my working copy has a lot of changes, I’ll checkout trunk in a separate 
sandbox and will provide an intermediate fix for this particular issue first. 
Sorry for missing this one.

 

Regards,

   Eric

________________________________

From: Ruwan Linton [mailto:[email protected]] 
Sent: Saturday, April 25, 2009 9:17 PM
To: [email protected]
Subject: Re: Error while stoping the Synapse server

 

My first view was wrong the stopJmxAdapter method is inside the block which 
checks whether we initialized axis2 instance. So it is OK, but the second 
argument "SynapseConfiguration.destroy calls the RMIRegistryController#shutdown 
before the JmxAdapter#stop being called" is still valid.

Thanks,
Ruwan

On Sun, Apr 26, 2009 at 12:44 AM, Ruwan Linton <[email protected]> wrote:

Eric,

I had a rough look and realized that the startJmxAdapter and stopJmxAdapter 
methods are not properly positioned, for example the startJmxAdapter is inside 
a createNewInstance method where as it will only be called when you are 
starting with starting the axis2 as well. This will not be invoked when 
starting synapse on an existing axis2 container.

However the stopJmxAdapter is called in the destroy method without checking 
whether we started the instance or not, which will be called when you try to 
stop synapse even on an environment where you started synapse on an existing 
axis2 container. This will lead to some issues.

At the same time the issue is due to the fact that the 
SynapseConfiguration.destroy calls the RMIRegistryController#shutdown before 
the JmxAdapter#stop being called.

I will have a further look and fix the issue if you like, or you could of 
course provide a patch. I also realized that we still have to clear out the 
shutdown process a bit more, but this particular issue is not directly because 
of the wrong order.

Thanks,
Ruwan

 

On Sat, Apr 25, 2009 at 2:51 PM, Hubert, Eric <[email protected]> wrote:

Hi all,

I'll have a look at this and will fix it. From the stack it looks like the 
shutdown order is wrong. Unfortunately I'll be travelling today without having 
access to the net today, but tonight or tomorrow I'll submit a patch to correct 
this if no one beats me to it.

Regards,
  Eric


> -----Original Message-----
> From: Ruwan Linton [mailto:[email protected]]
> Sent: Saturday, April 25, 2009 6:28 AM
> To: [email protected]
> Subject: Error while stoping the Synapse server
>
> Devs,
>
> On the latest build I am seeing an error while trying to stop Synapse,
> by killing the process (CTRL+C) on Unix.
>
> Is this local to me? I do have some local changes but they have
> nothing to do with this I guess. :-(
>
> 2009-04-25 09:49:40,580 [-] [Thread-9]  INFO SynapseServer Shutting
> down Apache Synapse...
> 2009-04-25 09:49:40,582 [-] [HttpCoreNIOListener]  INFO
> HttpCoreNIOListener HTTPS Listener Shutdown
> 2009-04-25 09:49:40,583 [-] [Thread-9]  INFO VFSTransportListener VFS
> Listener Shutdown
> 2009-04-25 09:49:40,583 [-] [HttpCoreNIOListener]  INFO
> HttpCoreNIOListener HTTP Listener Shutdown
> 2009-04-25 09:49:40,584 [-] [Thread-9]  INFO MailTransportListener
> MAILTO Listener Shutdown
> 2009-04-25 09:49:40,585 [-] [HttpCoreNIOSender]  INFO
> HttpCoreNIOSender HTTPS Sender Shutdown
> 2009-04-25 09:49:40,586 [-] [HttpCoreNIOSender]  INFO
> HttpCoreNIOSender HTTP Sender Shutdown
> 2009-04-25 09:49:40,586 [-] [Thread-9]  INFO VFSTransportSender VFS
> Sender Shutdown
> 2009-04-25 09:49:40,587 [-] [Thread-9]  INFO JMSSender JMS Sender Shutdown
> 2009-04-25 09:49:40,588 [-] [Thread-9]  INFO RMIRegistryController
> Removing the RMI registry bound to port : 1099
> 2009-04-25 09:49:40,604 [-] [Thread-9]  INFO JmxAdapter
> JMXConnectorServer stopping on
> service:jmx:rmi:///jndi/rmi://ruwan:1099/synapse
> 2009-04-25 09:49:40,761 [-] [Thread-9] ERROR JmxAdapter Error while
> stopping remote JMX connector
> java.io.IOException: Cannot bind to URL:
> javax.naming.CommunicationException [Root exception is
> java.rmi.NoSuchObjectException: no such object in table]
>         at
> javax.management.remote.rmi.RMIConnectorServer.newIOException(RMIConnector
> Server.java:814)
>         at
> javax.management.remote.rmi.RMIConnectorServer.stop(RMIConnectorServer.jav
> a:572)
>         at org.apache.synapse.JmxAdapter.stop(JmxAdapter.java:140)
>         at
> org.apache.synapse.Axis2SynapseController.stopJmxAdapter(Axis2SynapseContr
> oller.java:583)
>         at
> org.apache.synapse.Axis2SynapseController.destroy(Axis2SynapseController.j
> ava:143)
>         at
> org.apache.synapse.ServerManager.doDestroy(ServerManager.java:252)
>         at
> org.apache.synapse.ServerManager.destroy(ServerManager.java:117)
>         at org.apache.synapse.SynapseServer$1.run(SynapseServer.java:88)
> Caused by: javax.naming.CommunicationException [Root exception is
> java.rmi.NoSuchObjectException: no such object in table]
>         at
> com.sun.jndi.rmi.registry.RegistryContext.unbind(RegistryContext.java:156)
>         at
> com.sun.jndi.toolkit.url.GenericURLContext.unbind(GenericURLContext.java:2
> 54)
>         at javax.naming.InitialContext.unbind(InitialContext.java:375)
>         at
> javax.management.remote.rmi.RMIConnectorServer.stop(RMIConnectorServer.jav
> a:565)
>         ... 6 more
> Caused by: java.rmi.NoSuchObjectException: no such object in table
>         at
> sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemot
> eCall.java:247)
>         at
> sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
>         at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:343)
>         at sun.rmi.registry.RegistryImpl_Stub.unbind(Unknown Source)
>         at
> com.sun.jndi.rmi.registry.RegistryContext.unbind(RegistryContext.java:152)
>         ... 9 more
> 2009-04-25 09:49:40,772 [-] [Thread-9]  INFO SynapseServer Apache
> Synapse shutdown complete
> 2009-04-25 09:49:40,773 [-] [Thread-9]  INFO SynapseServer Halting JVM
>
> Thanks,
> Ruwan
>
> --
> Ruwan Linton
> Senior Software Engineer & Product Manager; WSO2 ESB; http://wso2.org/esb
> WSO2 Inc.; http://wso2.org
> email: [email protected]; cell: +94 77 341 3097
> blog: http://ruwansblog.blogspot.com
>

> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]





-- 

Ruwan Linton
Senior Software Engineer & Product Manager; WSO2 ESB; http://wso2.org/esb
WSO2 Inc.; http://wso2.org
email: [email protected]; cell: +94 77 341 3097
blog: http://ruwansblog.blogspot.com 




-- 
Ruwan Linton
Senior Software Engineer & Product Manager; WSO2 ESB; http://wso2.org/esb
WSO2 Inc.; http://wso2.org
email: [email protected]; cell: +94 77 341 3097
blog: http://ruwansblog.blogspot.com 

Reply via email to