3 Replies Latest reply on Feb 17, 2005 1:00 AM by senaka

    Problem with sending huge message in jboss

    vying Newbie

      Hi all,
      I am wondering if you guys have experience in sending Large (Text) Message in JMS,The project I am doing involves a Large File upload process which sends a huge string converted from a txt file(70M bytes) to Message Listener(which is a MDB),The problem I have is that the speed to send out message is very slow,the App server(Jboss3.2.3) issues Tx time out so that the large string does not get sent ,
      Any ideas?
      The Xdoclet snippet for MDB
      @ejb.bean name="ImportMDB"
      * destination-type="javax.jms.Queue"
      * subscription-durability="Durable"
      * acknowledge-mode ="Auto-acknowledge"
      *
      * @jboss.destination-jndi-name name = "queue/ImportMDBQueue"
      * @jboss.container-configuration name ="Standard Message Driven Bean"
      *

      The following is error in the log file:
      Transaction TransactionImpl:XidImpl [FormatId=257, GlobalId=sd-vying//227, BranchQual=] timed out. status=STATUS_COMMITING
      2004-08-04 11:49:12,649 WARN [org.jboss.tm.TransactionImpl] XAException: tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=sd-vying//227, BranchQual=] errorCode=XA_UNKNOWN(0)
      org.jboss.resource.connectionmanager.JBossLocalXAException: wrong xid in rollback: expected: null, got: XidImpl [FormatId=257, GlobalId=sd-vying//227, BranchQual=1]
      at org.jboss.resource.connectionmanager.TxConnectionManager$LocalXAResource.rollback(TxConnectionManager.java:827)
      at org.jboss.tm.TransactionImpl.rollbackResources(TransactionImpl.java:1664)
      at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:403)
      at org.jboss.tm.TxManager.commit(TxManager.java:141)
      at org.jboss.mq.pm.jdbc2.PersistenceManager$TransactionManagerStrategy.endTX(PersistenceManager.java:178)
      at org.jboss.mq.pm.jdbc2.PersistenceManager.add(PersistenceManager.java:756)
      at org.jboss.mq.server.PersistentQueue.addMessage(PersistentQueue.java:44)
      at org.jboss.mq.server.JMSQueue.addMessage(JMSQueue.java:145)
      at org.jboss.mq.server.JMSDestinationManager.addMessage(JMSDestinationManager.java:407)
      at org.jboss.mq.server.JMSDestinationManager.addMessage(JMSDestinationManager.java:383)
      at org.jboss.mq.server.JMSServerInterceptorSupport.addMessage(JMSServerInterceptorSupport.java:136)
      at org.jboss.mq.security.ServerSecurityInterceptor.addMessage(ServerSecurityInterceptor.java:162)
      at org.jboss.mq.server.TracingInterceptor.addMessage(TracingInterceptor.java:270)
      at org.jboss.mq.server.JMSServerInvoker.addMessage(JMSServerInvoker.java:136)
      at org.jboss.mq.il.oil.OILServerILService$Client.run(OILServerILService.java:249)
      at java.lang.Thread.run(Thread.java:534)
      2004-08-04 11:49:21,586 WARN [org.jboss.mq.il.oil.OILServerILService] Client request resulted in a server exception:
      org.jboss.mq.SpyJMSException: Could not start a transaction with the transaction manager.; - nested throwable: (org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=sd-vying//227, BranchQual=] status=STATUS_NO_TRANSACTION; - nested throwable: (org.jboss.resource.connectionmanager.JBossLocalXAException: wrong xid in rollback: expected: null, got: XidImpl [FormatId=257, GlobalId=sd-vying//227, BranchQual=1]))
      at org.jboss.mq.pm.jdbc2.PersistenceManager$TransactionManagerStrategy.endTX(PersistenceManager.java:183)
      at org.jboss.mq.pm.jdbc2.PersistenceManager.add(PersistenceManager.java:756)
      at org.jboss.mq.server.PersistentQueue.addMessage(PersistentQueue.java:44)
      at org.jboss.mq.server.JMSQueue.addMessage(JMSQueue.java:145)
      at org.jboss.mq.server.JMSDestinationManager.addMessage(JMSDestinationManager.java:407)
      at org.jboss.mq.server.JMSDestinationManager.addMessage(JMSDestinationManager.java:383)
      at org.jboss.mq.server.JMSServerInterceptorSupport.addMessage(JMSServerInterceptorSupport.java:136)
      at org.jboss.mq.security.ServerSecurityInterceptor.addMessage(ServerSecurityInterceptor.java:162)
      at org.jboss.mq.server.TracingInterceptor.addMessage(TracingInterceptor.java:270)
      at org.jboss.mq.server.JMSServerInvoker.addMessage(JMSServerInvoker.java:136)
      at org.jboss.mq.il.oil.OILServerILService$Client.run(OILServerILService.java:249)
      at java.lang.Thread.run(Thread.java:534)
      Caused by: org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=sd-vying//227, BranchQual=] status=STATUS_NO_TRANSACTION; - nested throwable: (org.jboss.resource.connectionmanager.JBossLocalXAException: wrong xid in rollback: expected: null, got: XidImpl [FormatId=257, GlobalId=sd-vying//227, BranchQual=1])
      at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:413)
      at org.jboss.tm.TxManager.commit(TxManager.java:141)
      at org.jboss.mq.pm.jdbc2.PersistenceManager$TransactionManagerStrategy.endTX(PersistenceManager.java:178)
      ... 11 more
      Caused by: org.jboss.resource.connectionmanager.JBossLocalXAException: wrong xid in rollback: expected: null, got: XidImpl [FormatId=257, GlobalId=sd-vying//227, BranchQual=1]
      at org.jboss.resource.connectionmanager.TxConnectionManager$LocalXAResource.rollback(TxConnectionManager.java:827)
      at org.jboss.tm.TransactionImpl.rollbackResources(TransactionImpl.java:1664)
      at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:403)
      ... 13 more
      2004-08-04 11:49:28,055 ERROR [com.verancecorp.csb.imports.DataImportSessionSession] Error in sending message: Could not start a transaction with the transaction manager.; - nested throwable: (org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=sd-vying//227, BranchQual=] status=STATUS_NO_TRANSACTION; - nested throwable: (org.jboss.resource.connectionmanager.JBossLocalXAException: wrong xid in rollback: expected: null, got: XidImpl [FormatId=257, GlobalId=sd-vying//227, BranchQual=1]))

        • 1. Re: Problem with sending huge message in jboss
          Elias Ross Master


          If you are using large messages interally to the JVM, use java:/ConnectionFactory, otherwise use the UIL2 connection factory. You might get better results from JBoss 3.2.5/6. Also, be sure that the memory available to the JVM is fairly large, like 4-5x the size of one message. You can also increase the transaction timeout, take a look at conf/standardjboss.xml for this.

          • 2. Re: Problem with sending huge message in jboss
            vying Newbie

            Thank you !
            But what do u mean 'message interally to JVM',another porblem here is that the jboss was preocupied during the course of sending this large message, it doesn't seems to be the asynchrouns nature of JMS,Also once server is down,I did n't notice themessage redelivery.Also do u know the maxium size a message could be sent by jbossMQ.Thank

            • 3. Re: Problem with sending huge message in jboss
              senaka Newbie

              Hi,
              Did you find out what the maximum file size we can send with JBOSS byt using MySQL or Oracle persistence approach. (I mean without using Hypersonic DB)

              No one give clear answer with JBOSS

              BR
              Senaka