Management removing all messages on shutdown
clebert.suconic Aug 14, 2008 1:13 PMI 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 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 drop queue to a shutdown event. On the latest you're not supposed to delete messages.