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#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...