4 Replies Latest reply on Aug 21, 2007 9:52 AM by ganaparthi

    Error for PERSISTENT delivery mode in JBoss Messaging

      Hi All,

      I have configured jboss-4.2.0.GA and jboss-messaging-1.3.0.GA. I successfully tested sample applications. When trying to use
      QueueSender.send(bytesMessage, javax.jms.DeliveryMode.PERSISTENT, qpriority,javax.jms.Message.DEFAULT_TIME_TO_LIVE);
      it is throwing the exception. But the same call working with javax.jms.DeliveryMode.NON_PERSISTENT option:

      Any help appreciated.

      Stack trace:

      2007-08-13 19:36:26,859 ERROR [org.jboss.messaging.util.ExceptionUtil] SessionEndpoint[68] send [5c4o02z-hg70z6-f5b19n43-1-f5b1ha23-2t0]
      java.sql.SQLException: operation not allowed: streams type cannot be used in batching
      at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
      at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
      at oracle.jdbc.driver.OraclePreparedStatement.addBatch(OraclePreparedStatement.java:3775)
      at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.addBatch(WrappedPreparedStatement.java:264)
      at org.jboss.messaging.core.plugin.JDBCPersistenceManager.handleBeforeCommit1PC(JDBCPersistenceManager.java:1687)
      at org.jboss.messaging.core.plugin.JDBCPersistenceManager$TransactionCallback.beforeCommit(JDBCPersistenceManager.java:3174)
      at org.jboss.messaging.core.tx.Transaction.commit(Transaction.java:208)
      at org.jboss.messaging.core.plugin.postoffice.cluster.DefaultClusteredPostOffice.route(DefaultClusteredPostOffice.java:1274)
      at org.jboss.jms.server.endpoint.ServerConnectionEndpoint.sendMessage(ServerConnectionEndpoint.java:692)
      at org.jboss.jms.server.endpoint.ServerSessionEndpoint.send(ServerSessionEndpoint.java:297)
      at org.jboss.jms.server.endpoint.advised.SessionAdvised.org$jboss$jms$server$endpoint$advised$SessionAdvised$send$aop(SessionAdvised.java:80)
      at org.jboss.jms.server.endpoint.advised.SessionAdvised$send_6145266547759487588.invokeNext(SessionAdvised$send_6145266547759487588.java)
      at org.jboss.jms.server.container.SecurityAspect.handleSend(SecurityAspect.java:152)
      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.aop.advice.PerInstanceAdvice.invoke(PerInstanceAdvice.java:121)
      at org.jboss.jms.server.endpoint.advised.SessionAdvised$send_6145266547759487588.invokeNext(SessionAdvised$send_6145266547759487588.java)
      at org.jboss.jms.server.container.ServerLogInterceptor.invoke(ServerLogInterceptor.java:105)
      at org.jboss.jms.server.endpoint.advised.SessionAdvised$send_6145266547759487588.invokeNext(SessionAdvised$send_6145266547759487588.java)
      at org.jboss.jms.server.endpoint.advised.SessionAdvised.send(SessionAdvised.java)
      at org.jboss.jms.wireformat.SessionSendRequest.serverInvoke(SessionSendRequest.java:85)
      at org.jboss.jms.server.remoting.JMSServerInvocationHandler.invoke(JMSServerInvocationHandler.java:141)
      at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:734)
      at org.jboss.remoting.transport.local.LocalClientInvoker.invoke(LocalClientInvoker.java:101)
      at org.jboss.remoting.Client.invoke(Client.java:1550)
      at org.jboss.remoting.Client.invoke(Client.java:530)
      at org.jboss.remoting.Client.invoke(Client.java:518)
      at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:186)
      at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:157)
      at org.jboss.jms.client.delegate.ClientSessionDelegate.org$jboss$jms$client$delegate$ClientSessionDelegate$send$aop(ClientSessionDelegate.java:446)
      at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145266547759487588.java)
      at org.jboss.jms.client.container.SessionAspect.handleSend(SessionAspect.java:634)
      at org.jboss.aop.advice.org.jboss.jms.client.container.SessionAspect28.invoke(SessionAspect28.java)
      at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145266547759487588.java)
      at org.jboss.jms.client.container.FailoverValveInterceptor.invoke(FailoverValveInterceptor.java:91)
      at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
      at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145266547759487588.java)
      at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
      at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
      at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145266547759487588.java)
      at org.jboss.jms.client.delegate.ClientSessionDelegate.send(ClientSessionDelegate.java)
      at org.jboss.jms.client.container.ProducerAspect.handleSend(ProducerAspect.java:243)
      at org.jboss.aop.advice.org.jboss.jms.client.container.ProducerAspect46.invoke(ProducerAspect46.java)
      at org.jboss.jms.client.delegate.ClientProducerDelegate$send_3961598017717988886.invokeNext(ClientProducerDelegate$send_3961598017717988886.java)
      at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
      at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
      at org.jboss.jms.client.delegate.ClientProducerDelegate$send_3961598017717988886.invokeNext(ClientProducerDelegate$send_3961598017717988886.java)
      at org.jboss.jms.client.delegate.ClientProducerDelegate.send(ClientProducerDelegate.java)
      at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:164)
      at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:207)
      at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:145)
      at com.ecentives.em.qsend.SendQEJBBean.sendTo(SendQEJBBean.java:326)
      at com.ecentives.em.qsend.SendQEJBBean.sendTo(SendQEJBBean.java:292)
      at com.ecentives.em.qsend.SendQEJBBean.sendTo(SendQEJBBean.java:341)
      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.invocation.Invocation.performCall(Invocation.java:359)
      at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:237)
      at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:158)
      at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:169)
      at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63)
      at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121)
      at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
      at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181)
      at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:168)
      at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205)
      at org.jboss.ejb.plugins.CleanShutdownInterceptor.invoke(CleanShutdownInterceptor.java:278)
      at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:138)
      at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:648)
      at org.jboss.ejb.Container.invoke(Container.java:960)
      at sun.reflect.GeneratedMethodAccessor109.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
      at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
      at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
      at org.jboss.invocation.unified.server.UnifiedInvokerHA.invoke(UnifiedInvokerHA.java:146)
      at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:734)
      at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:560)
      at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:383)

        • 1. Re: Error for PERSISTENT delivery mode in JBoss Messaging
          timfox

          What version of Oracle (and driver) are you using?

          We test against 10.1 currently.

          Looks like the version you are using doesn't support using streams in a batch update.

          You can try turning batch updates off, or not to use binary streams, see the persistence manager config section in the user guide for details.

          • 2. Re: Error for PERSISTENT delivery mode in JBoss Messaging

            Data base version I am using : Oracle Database 10g Release 10.2.0.1.0 - Production

            The driver information:
            Manifest-Version: 1.0
            Specification-Title: Oracle JDBC driver classes for use with JDK14
            Sealed: true
            Created-By: 1.4.2_08 (Sun Microsystems Inc.)
            Implementation-Title: ojdbc14.jar
            Specification-Vendor: Oracle Corporation
            Specification-Version: Oracle JDBC Driver version - "10.2.0.1.0"
            Implementation-Version: Oracle JDBC Driver version - "10.2.0.1.0"
            Implementation-Vendor: Oracle Corporation
            Implementation-Time: Wed Jun 22 11:19:45 2005

            Name: oracle/sql/converter/
            Sealed: false

            Name: oracle/sql/
            Sealed: false

            Name: oracle/sql/converter_xcharset/
            Sealed: false


            I tried by turning off batch updates option, still the same problem.

            • 3. Re: Error for PERSISTENT delivery mode in JBoss Messaging

              With the new ojdbc14.jar it's working.

              • 4. Re: Error for PERSISTENT delivery mode in JBoss Messaging

                With PERSISTENT option the message is getting saved in Oracle database, but not deleting even after the message is delivered to consumer (MDB).

                I am using AUTO_ACKNOWLEDGE.

                The same message is delivered to consumer multiple times. Is it because of longer processing time taken by MDB? My MDB takes more than 30 Min to process its job.

                Can any body send a link or explain how persistent works in JBoss-4.2.0.GA and jboss-messaging-1.3.GA

                Thanks.