2 Replies Latest reply: Nov 19, 2012 3:10 AM by User351766 RSS

    Impossible to delete message in state send expired

    User351766
      Hello,

      I've a lot of message in state send expired.

      The jms queue is configured to delete message after timeour but they are still here.

      I can see them with admin console but not trash them. I check some message to delete, then click on delete buttom, confirm selected message and obtain message 0 message to delete.

      I found following stack trace in log of admin server :
      ####<15 nov. 2012 10 h 34 CET> <Error> <Console> <plmumom001> <ADMPRDMOM> <[ACTIVE] ExecuteThread: '26' for queue: 'weblogic.kernel.Default (self-tuning)'> < dmprdmom> <> <> <1352972058592> <BEA-240003> <Console encountered the following error weblogic.management.ManagementException: Error creating message cursor or OsbJmsModule!MomJMSServer3@OSB.OSB.LOG.OrdreDistribution.M045d
      at weblogic.jms.backend.BEMessageManagementImpl.throwManagementException(BEMessageManagementImpl.java:500)
      at weblogic.jms.backend.BEMessageManagementImpl.getMessages(BEMessageManagementImpl.java:112)
      at weblogic.jms.backend.BEMessageManagementRuntimeDelegate.getMessages(BEMessageManagementRuntimeDelegate.java:126)
      at sun.reflect.GeneratedMethodAccessor1904.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at weblogic.management.jmx.modelmbean.WLSModelMBean.invoke(WLSModelMBean.java:437)
      at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
      at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
      at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase$16.run(WLSMBeanServerInterceptorBase.java:449)
      at java.security.AccessController.doPrivileged(Native Method)
      at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase.invoke(WLSMBeanServerInterceptorBase.java:447)
      at weblogic.management.mbeanservers.internal.JMXContextInterceptor.invoke(JMXContextInterceptor.java:263)
      at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase$16.run(WLSMBeanServerInterceptorBase.java:449)
      at java.security.AccessController.doPrivileged(Native Method)
      at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase.invoke(WLSMBeanServerInterceptorBase.java:447)
      at weblogic.management.mbeanservers.internal.SecurityInterceptor.invoke(SecurityInterceptor.java:444)
      at weblogic.management.jmx.mbeanserver.WLSMBeanServer.invoke(WLSMBeanServer.java:323)
      at weblogic.management.mbeanservers.internal.JMXConnectorSubjectForwarder$11$1.run(JMXConnectorSubjectForwarder.java:663)
      at java.security.AccessController.doPrivileged(Native Method)
      at weblogic.management.mbeanservers.internal.JMXConnectorSubjectForwarder$11.run(JMXConnectorSubjectForwarder.java:661)
      at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
      at weblogic.management.mbeanservers.internal.JMXConnectorSubjectForwarder.invoke(JMXConnectorSubjectForwarder.java:654)
      at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1427)
      at javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)
      at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1265)
      at java.security.AccessController.doPrivileged(Native Method)
      at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1367)
      at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788)
      at javax.management.remote.rmi.RMIConnectionImpl_WLSkel.invoke(Unknown Source)
      at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:667)
      at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:522)
      at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
      at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
      at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:518)
      at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
      at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
      at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
      Caused by: weblogic.messaging.kernel.InvalidExpressionException: Expression : "1048445.1352879355374.0"
      at weblogic.jms.common.JMSSQLFilter$Exp.<init>(JMSSQLFilter.java:400)
      at weblogic.jms.common.JMSSQLFilter.createExpression(JMSSQLFilter.java:108)
      at weblogic.jms.backend.BEMessageManagementImpl.getMessages(BEMessageManagementImpl.java:107)
      ... 36 more



      Could you explain :
      - what means state send expired
      - why messages are now automatically purge
      - how to delete them



      Thanks in advance,
      Jean-Nicolas

      Edited by: 866004 on 15 nov. 2012 02:15
        • 1. Re: Impossible to delete message in state send expired
          Tom B
          A couple of thoughts:

          I'm not aware of any problems with messages failing to expire. Is it possible that the messages were participating in some sort of long running transaction that was never committed nor rolled back? If so, I think it's possible to use console transaction management screens to force rollbacks - at which point I assume the expiry should be able to complete - although I haven't tried this myself.

          The root problem on the console appears to be "Caused by: weblogic.messaging.kernel.InvalidExpressionException: Expression : "1048445.1352879355374.0", as if the console is generating an invalid expression for picking out the message that you want deleted. This would be a bug.

          Tom
          • 2. Re: Impossible to delete message in state send expired
            User351766
            Hello,

            Thanks for your answer.

            After restarting weblogic managed server, we do not see anymore those messages.

            The next time we have this issue we will try to monitor transactions.

            Regards,

            Jean-Nicolas