You are viewing a plain text version of this content. The canonical link for it is here.
Posted to muse-user@ws.apache.org by "Beil, Matthias" <Be...@ascom-ac.de> on 2007/06/04 14:33:43 UTC

Delete when shutdown

Hi,

 

I have now the producer and consumer running and have started to deploy
the producer on our Sun Java System Application Server Enterprise
Edition 8.1_02 (build b27-p13) server on a UNIX machine 'SunOS localhost
5.10 Generic_118833-23 sun4v sparc SUNW,Sun-Fire-T200'.

 

Everything works perfect, except when I want to redeploy the producer.
At the moment when the producer is undeployed, the subscription xml file
is deleted!!!

 

I already extended the 'NotificationProducerFilePersistence' file to
have a  'getPersistenceDirectory()' which returns a directory which is
outside of the deployment path of the war file. I thought that the
subscriptions where deleted when the war application was undeployed. But
now that the xml files are stored in a different directory, I could
reproduce that it is Muse who calls the delete method. The stack trace
is as follow:

 

   System Thread [RMI TCP Connection(14616)-localhost] (Suspended
(breakpoint at line 177 in AbstractFilePersistence))

 
WsnOssjNotificationProducerFilePersistence(AbstractFilePersistence).dest
royResourceFile(EndpointReference) line: 177

 
WsnOssjNotificationProducerFilePersistence(NotificationProducerFilePersi
stence).resourceRemoved(EndpointReference) line: 135

 
SimpleNotificationProducer.resourceRemoved(EndpointReference) line: 533

            SimpleResourceManager.removeResource(EndpointReference)
line: 425

            SimpleWsResource(SimpleResource).shutdown() line: 513

            SimpleResourceManager.shutdown() line: 466

            SimpleResourceRouter.shutdown() line: 345

            AxisIsolationLayer(AbstractIsolationLayer).shutdown() line:
225

 
WsnOssjProducerServiceLifeCycle.shutDown(ConfigurationContext,
AxisService) line: 172

            ListenerManager.shutDownServices(ConfigurationContext) line:
214

            ListenerManager.stop() line: 178

            AxisServlet.destroy() line: 114

            StandardWrapper.unload() line: 1326

            StandardWrapper.stop() line: 1680

            WebModule(ContainerBase).removeChild(Container) line: 956

            WebModule(StandardContext).removeChild(Container) line: 3331

            WebModuleContextConfig(ContextConfig).stop() line: 720

            WebModuleContextConfig.lifecycleEvent(LifecycleEvent) line:
112

            LifecycleSupport.fireLifecycleEvent(String, Object) line:
124

            WebModule(StandardContext).stop() line: 4688

 
HttpServiceVirtualServer(ContainerBase).removeChild(Container) line: 956

 
HttpServiceWebContainer(WebContainer).unloadWebModule(String, String,
String, WebBundleDescriptor) line: 2113

            WebModuleDeployEventListener.moduleUndeployed(ConfigContext,
String) line: 198

 
WebModuleDeployEventListener.moduleUndeployed(ModuleDeployEvent) line:
278

 
AdminEventMulticaster.invokeModuleDeployEventListener(ModuleDeployEventL
istener, ModuleDeployEvent) line: 920

            AdminEventMulticaster.handleModuleDeployEvent(AdminEvent)
line: 905

            AdminEventMulticaster.processEvent(AdminEvent) line: 427

            AdminEventMulticaster.multicastEvent(AdminEvent) line: 139

            ServerRuntimeMBean.forwardEvent(AdminEvent) line: 64

            NativeMethodAccessorImpl.invoke0(Method, Object, Object[])
line: not available [native method]

            NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39

            DelegatingMethodAccessorImpl.invoke(Object, Object[]) line:
25

            Method.invoke(Object, Object...) line: 585

            MBeanHelper.invokeOperationInBean(MBeanOperationInfo,
Object, Object[]) line: 302

            ServerRuntimeMBean(BaseRuntimeMBean).invoke(String,
Object[], String[]) line: 383

 
MetaDataImpl$PrivateDynamicMeta(DynamicMetaDataImpl).invoke(Object,
String, Object[], String[]) line: 213

            MetaDataImpl.invoke(Object, String, Object[], String[])
line: 220

            DefaultMBeanServerInterceptor.invoke(ObjectName, String,
Object[], String[]) line: 815

            JmxMBeanServer.invoke(ObjectName, String, Object[],
String[]) line: 784

            RMIConnectionImpl.doOperation(int, Object[]) line: 1408

            RMIConnectionImpl.access$100(RMIConnectionImpl, int,
Object[]) line: 81

            RMIConnectionImpl$PrivilegedOperation.run() line: 1245

            RMIConnectionImpl.doPrivilegedOperation(int, Object[],
Subject) line: 1341

            RMIConnectionImpl.invoke(ObjectName, String,
MarshalledObject, String[], Subject) line: 782

            GeneratedMethodAccessor80.invoke(Object, Object[]) line: not
available

            DelegatingMethodAccessorImpl.invoke(Object, Object[]) line:
25

            Method.invoke(Object, Object...) line: 585

            UnicastServerRef2(UnicastServerRef).dispatch(Remote,
RemoteCall) line: 294

            Transport$1.run() line: 153

            AccessController.doPrivileged(PrivilegedExceptionAction<T>,
AccessControlContext) line: not available [native method]

            TCPTransport(Transport).serviceCall(RemoteCall) line: 149

            TCPTransport.handleMessages(Connection, boolean) line: 466

            TCPTransport$ConnectionHandler.run() line: 707

            Thread.run() line: 595

 

I followed the stack trace but could not find a place where there is a
decision that the file must be destroyed due to the shutdown. Any help
appreciated.

 

I also noted that the consumer gets the following xml:

 

<?xml version="1.0" encoding="UTF-8"?>

<wsrf-rl:TerminationNotification
xmlns:wsrf-rl="http://docs.oasis-open.org/wsrf/rl-2">

 
<wsrf-rl:TerminationTime>2007-06-04T09:35:40+02:00</wsrf-rl:TerminationT
ime>

</wsrf-rl:TerminationNotification>

 

I had a look at the 'NotificationProducerFilePersistence' but I don't
see how to rewrite it to have a distinction between destroying the
resource when it has to be deleted due to an external destroy call and a
shutdown event.

 

Mit freundlichen Gruessen / With kind regards

Matthias Beil

 


RE: Delete when shutdown

Posted by "Vinh Nguyen (vinguye2)" <vi...@cisco.com>.
Hi Matthias,
Not sure if this helps...for your resource in muse.xml, do you have the
following attribute set to true?

<resource-type use-router-persistence="true">


-----Original Message-----
From: Beil, Matthias [mailto:Beil@ascom-ac.de] 
Sent: Monday, June 04, 2007 5:34 AM
To: muse-user@ws.apache.org
Subject: Delete when shutdown

Hi,

 

I have now the producer and consumer running and have started to deploy
the producer on our Sun Java System Application Server Enterprise
Edition 8.1_02 (build b27-p13) server on a UNIX machine 'SunOS localhost
5.10 Generic_118833-23 sun4v sparc SUNW,Sun-Fire-T200'.

 

Everything works perfect, except when I want to redeploy the producer.
At the moment when the producer is undeployed, the subscription xml file
is deleted!!!

 

I already extended the 'NotificationProducerFilePersistence' file to
have a  'getPersistenceDirectory()' which returns a directory which is
outside of the deployment path of the war file. I thought that the
subscriptions where deleted when the war application was undeployed. But
now that the xml files are stored in a different directory, I could
reproduce that it is Muse who calls the delete method. The stack trace
is as follow:

 

   System Thread [RMI TCP Connection(14616)-localhost] (Suspended
(breakpoint at line 177 in AbstractFilePersistence))

 
WsnOssjNotificationProducerFilePersistence(AbstractFilePersistence).dest
royResourceFile(EndpointReference) line: 177

 
WsnOssjNotificationProducerFilePersistence(NotificationProducerFilePersi
stence).resourceRemoved(EndpointReference) line: 135

 
SimpleNotificationProducer.resourceRemoved(EndpointReference) line: 533

            SimpleResourceManager.removeResource(EndpointReference)
line: 425

            SimpleWsResource(SimpleResource).shutdown() line: 513

            SimpleResourceManager.shutdown() line: 466

            SimpleResourceRouter.shutdown() line: 345

            AxisIsolationLayer(AbstractIsolationLayer).shutdown() line:
225

 
WsnOssjProducerServiceLifeCycle.shutDown(ConfigurationContext,
AxisService) line: 172

            ListenerManager.shutDownServices(ConfigurationContext) line:
214

            ListenerManager.stop() line: 178

            AxisServlet.destroy() line: 114

            StandardWrapper.unload() line: 1326

            StandardWrapper.stop() line: 1680

            WebModule(ContainerBase).removeChild(Container) line: 956

            WebModule(StandardContext).removeChild(Container) line: 3331

            WebModuleContextConfig(ContextConfig).stop() line: 720

            WebModuleContextConfig.lifecycleEvent(LifecycleEvent) line:
112

            LifecycleSupport.fireLifecycleEvent(String, Object) line:
124

            WebModule(StandardContext).stop() line: 4688

 
HttpServiceVirtualServer(ContainerBase).removeChild(Container) line: 956

 
HttpServiceWebContainer(WebContainer).unloadWebModule(String, String,
String, WebBundleDescriptor) line: 2113

            WebModuleDeployEventListener.moduleUndeployed(ConfigContext,
String) line: 198

 
WebModuleDeployEventListener.moduleUndeployed(ModuleDeployEvent) line:
278

 
AdminEventMulticaster.invokeModuleDeployEventListener(ModuleDeployEventL
istener, ModuleDeployEvent) line: 920

            AdminEventMulticaster.handleModuleDeployEvent(AdminEvent)
line: 905

            AdminEventMulticaster.processEvent(AdminEvent) line: 427

            AdminEventMulticaster.multicastEvent(AdminEvent) line: 139

            ServerRuntimeMBean.forwardEvent(AdminEvent) line: 64

            NativeMethodAccessorImpl.invoke0(Method, Object, Object[])
line: not available [native method]

            NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39

            DelegatingMethodAccessorImpl.invoke(Object, Object[]) line:
25

            Method.invoke(Object, Object...) line: 585

            MBeanHelper.invokeOperationInBean(MBeanOperationInfo,
Object, Object[]) line: 302

            ServerRuntimeMBean(BaseRuntimeMBean).invoke(String,
Object[], String[]) line: 383

 
MetaDataImpl$PrivateDynamicMeta(DynamicMetaDataImpl).invoke(Object,
String, Object[], String[]) line: 213

            MetaDataImpl.invoke(Object, String, Object[], String[])
line: 220

            DefaultMBeanServerInterceptor.invoke(ObjectName, String,
Object[], String[]) line: 815

            JmxMBeanServer.invoke(ObjectName, String, Object[],
String[]) line: 784

            RMIConnectionImpl.doOperation(int, Object[]) line: 1408

            RMIConnectionImpl.access$100(RMIConnectionImpl, int,
Object[]) line: 81

            RMIConnectionImpl$PrivilegedOperation.run() line: 1245

            RMIConnectionImpl.doPrivilegedOperation(int, Object[],
Subject) line: 1341

            RMIConnectionImpl.invoke(ObjectName, String,
MarshalledObject, String[], Subject) line: 782

            GeneratedMethodAccessor80.invoke(Object, Object[]) line: not
available

            DelegatingMethodAccessorImpl.invoke(Object, Object[]) line:
25

            Method.invoke(Object, Object...) line: 585

            UnicastServerRef2(UnicastServerRef).dispatch(Remote,
RemoteCall) line: 294

            Transport$1.run() line: 153

            AccessController.doPrivileged(PrivilegedExceptionAction<T>,
AccessControlContext) line: not available [native method]

            TCPTransport(Transport).serviceCall(RemoteCall) line: 149

            TCPTransport.handleMessages(Connection, boolean) line: 466

            TCPTransport$ConnectionHandler.run() line: 707

            Thread.run() line: 595

 

I followed the stack trace but could not find a place where there is a
decision that the file must be destroyed due to the shutdown. Any help
appreciated.

 

I also noted that the consumer gets the following xml:

 

<?xml version="1.0" encoding="UTF-8"?>

<wsrf-rl:TerminationNotification
xmlns:wsrf-rl="http://docs.oasis-open.org/wsrf/rl-2">

 
<wsrf-rl:TerminationTime>2007-06-04T09:35:40+02:00</wsrf-rl:TerminationT
ime>

</wsrf-rl:TerminationNotification>

 

I had a look at the 'NotificationProducerFilePersistence' but I don't
see how to rewrite it to have a distinction between destroying the
resource when it has to be deleted due to an external destroy call and a
shutdown event.

 

Mit freundlichen Gruessen / With kind regards

Matthias Beil

 

---------------------------------------------------------------------
To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
For additional commands, e-mail: muse-user-help@ws.apache.org