[jboss-dev-forums] [Design of Messaging on JBoss (Messaging/JBoss)] - Management removing all messages on shutdown
clebert.suconic@jboss.com
do-not-reply at jboss.com
Thu Aug 14 13:13:13 EDT 2008
I just found a bug recently introduced. Looking at the SVN Logs it was introduced by the recent work on management.
If you cleanly shutdown the server, Shutdown hooks are undeploying the queues, and all the messages are being be deleted on a regular shutdown.
I have locally changed the journal to throw an exception if delete was called, and this is the place it is happening:
java.lang.Exception: trace
| at org.jboss.messaging.core.journal.impl.JournalImpl.appendDeleteRecordTransactional(JournalImpl.java:611)
| at org.jboss.messaging.core.persistence.impl.journal.JournalStorageManager.storeDeleteTransactional(JournalStorageManager.java:231)
| at org.jboss.messaging.core.transaction.impl.TransactionImpl.addAcknowledgement(TransactionImpl.java:149)
| at org.jboss.messaging.core.server.impl.QueueImpl.deleteAllReferences(QueueImpl.java:481)
| at org.jboss.messaging.core.management.impl.MessagingServerControl.destroyQueue(MessagingServerControl.java:362)
| at org.jboss.messaging.jms.server.impl.JMSServerManagerImpl.destroyQueue(JMSServerManagerImpl.java:164)
| at org.jboss.messaging.jms.server.impl.JMSServerDeployer.undeploy(JMSServerDeployer.java:221)
| at org.jboss.messaging.core.deployers.impl.XmlDeployer.stop(XmlDeployer.java:230)
| 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:585)
| at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:56)
| at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:110)
| at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66)
| at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:97)
| at org.jboss.kernel.plugins.dependency.LifecycleAction.uninstallActionInternal(LifecycleAction.java:249)
| at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.uninstallAction(KernelControllerContextAction.java:169)
| at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.uninstallAction(KernelControllerContextAction.java:47)
| at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleUninstallAction(SimpleControllerContextAction.java:79)
| at org.jboss.dependency.plugins.action.AccessControllerContextAction.uninstall(AccessControllerContextAction.java:131)
| at org.jboss.dependency.plugins.AbstractControllerContextActions.uninstall(AbstractControllerContextActions.java:58)
| at org.jboss.dependency.plugins.AbstractControllerContext.uninstall(AbstractControllerContext.java:333)
| at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:1323)
| at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1009)
| at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:936)
| at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:986)
| at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:936)
| at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:986)
| at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:936)
| at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:986)
| at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:936)
| at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:986)
| at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:936)
| at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:463)
| at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:426)
| at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.undeployBean(AbstractKernelDeployer.java:384)
| at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.undeployBeans(AbstractKernelDeployer.java:363)
| at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.undeploy(AbstractKernelDeployer.java:162)
| at org.jboss.messaging.microcontainer.JBMBootstrapServer.undeploy(JBMBootstrapServer.java:127)
| at org.jboss.messaging.microcontainer.JBMBootstrapServer.shutDown(JBMBootstrapServer.java:199)
| at org.jboss.messaging.microcontainer.JBMBootstrapServer$Shutdown.run(JBMBootstrapServer.java:218)
|
We need to distinguish a real Queue being dropped to a shutdown event. On the latest you're not supposed to delete messages.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4170624#4170624
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4170624
More information about the jboss-dev-forums
mailing list