5 Replies Latest reply on May 19, 2010 9:17 AM by jmesnil

    JMSBridge does not work with Large Messages

      While testing HornetQ with JBoss 5 (from TRUNK),

      we have discovered that we cannot send "Large" messages via a JMS  Bridge,

      as an example we sent some 100k messages via a JMSBridge,
      and the machine upon which the bridge is running gave the following  exception :


        2010-05-14 15:32:46,007 DEBUG [com.arjuna.ats.jta.logging.

      loggerI18N]  (Thread-11) [com.arjuna.ats.internal.jta.recovery.info.secondpass]  Local XARecoveryM
      odule - second pass
      2010-05-14 15:34:46,025 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger]  (Thread-11) Periodic recovery - first pass <Fri, 14 May 2010  15:34:46>
      2010-05-14 15:34:46,025 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger]  (Thread-11) StatusModule: first pass
      2010-05-14 15:34:46,031 DEBUG [com.arjuna.ats.txoj.logging.txojLoggerI18N]  (Thread-11) [com.arjuna.ats.internal.txoj.recovery.TORecoveryModule_3]  - TOReco
      veryModule - first pass
      2010-05-14 15:34:46,032 DEBUG [com.arjuna.ats.jta.logging.loggerI18N]  (Thread-11) [com.arjuna.ats.internal.jta.recovery.info.firstpass]  Local XARecoveryMo
      dule - first pass
      2010-05-14 15:34:48,464 ERROR [STDERR] (pool-3-thread-1) Exception in  thread "pool-3-thread-1"
      2010-05-14 15:34:48,464 ERROR [STDERR] (pool-3-thread-1)  java.lang.IllegalAccessError: This is a read-only buffer, setOperations  are not supported
      2010-05-14 15:34:48,464 ERROR [STDERR] (pool-3-thread-1)        at  org.hornetq.core.client.impl.LargeMessageBufferImpl.writeInt(LargeMessageBufferImpl.jav
      a:949)
      2010-05-14 15:34:48,464 ERROR [STDERR] (pool-3-thread-1)        at  org.hornetq.jms.client.HornetQObjectMessage.doBeforeSend(HornetQObjectMessage.java:93)
      2010-05-14 15:34:48,464 ERROR [STDERR] (pool-3-thread-1)        at  org.hornetq.jms.client.HornetQMessageProducer.doSend(HornetQMessageProducer.java:426)
      2010-05-14 15:34:48,464 ERROR [STDERR] (pool-3-thread-1)        at  org.hornetq.jms.client.HornetQMessageProducer.send(HornetQMessageProducer.java:246)
      2010-05-14 15:34:48,464 ERROR [STDERR] (pool-3-thread-1)        at  org.hornetq.jms.bridge.impl.JMSBridgeImpl.sendMessages(JMSBridgeImpl.java:1569)
      2010-05-14 15:34:48,464 ERROR [STDERR] (pool-3-thread-1)        at  org.hornetq.jms.bridge.impl.JMSBridgeImpl.sendBatchXA(JMSBridgeImpl.java:1473)
      2010-05-14 15:34:48,464 ERROR [STDERR] (pool-3-thread-1)        at  org.hornetq.jms.bridge.impl.JMSBridgeImpl.sendBatch(JMSBridgeImpl.java:1390)
      2010-05-14 15:34:48,464 ERROR [STDERR] (pool-3-thread-1)        at  org.hornetq.jms.bridge.impl.JMSBridgeImpl.access$1500(JMSBridgeImpl.java:68)
      2010-05-14 15:34:48,464 ERROR [STDERR] (pool-3-thread-1)        at  org.hornetq.jms.bridge.impl.JMSBridgeImpl$BatchTimeChecker.run(JMSBridgeImpl.java:1936)
      2010-05-14 15:34:48,464 ERROR [STDERR] (pool-3-thread-1)        at  java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      2010-05-14 15:34:48,464 ERROR [STDERR] (pool-3-thread-1)        at  java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      2010-05-14 15:34:48,464 ERROR [STDERR] (pool-3-thread-1)        at  java.lang.Thread.run(Thread.java:619)
      2010-05-14 15:34:56,034 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger]  (Thread-11) Periodic recovery - second pass <Fri, 14 May 2010  15:34:56>
      2010-05-14 15:34:56,034 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger]  (Thread-11) AtomicActionRecoveryModule: Second pass
      2010-05-14 15:34:56,034 DEBUG [com.arjuna.ats.txoj.logging.txojLoggerI18N]  (Thread-11) [com.arjuna.ats.internal.txoj.recovery.TORecoveryModule_6]  - TOReco
      veryModule - second pass
      2010-05-14 15:34:56,034 DEBUG [com.arjuna.ats.jta.logging.loggerI18N]  (Thread-11) [com.arjuna.ats.internal.jta.recovery.info.secondpass]  Local XARecoveryM
      odule - second pass
      2010-05-14 15:36:56,053 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger]  (Thread-11) Periodic recovery - first pass <Fri, 14 May 2010  15:36:56>
      This seemed to stop any additional message processing..

      stopping the JMS Bridge and restarting it - resulted in the same  exception :


      2010-05-14 15:39:16,089 DEBUG [com.arjuna.ats.jta.logging.
      loggerI18N]  (Thread-11) [com.arjuna.ats.internal.jta.recovery.info.secondpass]  Local XARecoveryM
      odule - second pass
      2010-05-14 15:40:42,358 DEBUG [org.jnp.interfaces.TimedSocketFactory]  (http-pinpro%2F192.168.1.180-8080-7) createSocket, hostAddr:  pinnet.actual-systems.c
      om/192.168.1.201,  port: 1199, localAddr: null, localPort: 0, timeout: 0
      2010-05-14 15:40:42,495 DEBUG [org.jnp.interfaces.TimedSocketFactory]  (http-pinpro%2F192.168.1.180-8080-7) createSocket, hostAddr:  pinpro/192.168.1.180,  p
      ort: 1099, localAddr: null, localPort: 0, timeout: 0
      2010-05-14 15:40:42,519 DEBUG [org.hornetq.core.remoting.impl.netty.NettyConnector]  (http-pinpro%2F192.168.1.180-8080-7) Started Netty Connector  version 3
      .2.0.BETA1-r2215
      2010-05-14 15:40:42,532 DEBUG [org.hornetq.core.remoting.impl.netty.NettyConnector]  (http-pinpro%2F192.168.1.180-8080-7) Started Netty Connector  version 3
      .2.0.BETA1-r2215
      2010-05-14 15:40:42,575 DEBUG [org.hornetq.utils.UTF8Util] (Old I/O  server worker (parentId: 12335898, channelId: 23717426, null =>  pinpro/192.168.1.180:5
      445)) Reading string with utfSize=36
      2010-05-14 15:40:42,590 DEBUG [org.hornetq.utils.UTF8Util] (Old I/O  server worker (parentId: 12335898, channelId: 23717426, null =>  pinpro/192.168.1.180:5
      445)) Reading string with utfSize=36
      2010-05-14 15:41:12,879 ERROR [STDERR] (pool-26-thread-1) Exception in  thread "pool-26-thread-1"
      2010-05-14 15:41:12,882 ERROR [STDERR] (pool-26-thread-1)  java.lang.IllegalAccessError: This is a read-only buffer, setOperations  are not supported
      2010-05-14 15:41:12,882 ERROR [STDERR] (pool-26-thread-1)       at  org.hornetq.core.client.impl.LargeMessageBufferImpl.writeInt(LargeMessageBufferImpl.jav
      a:949)
      2010-05-14 15:41:12,882 ERROR [STDERR] (pool-26-thread-1)       at  org.hornetq.jms.client.HornetQObjectMessage.doBeforeSend(HornetQObjectMessage.java:93)
      2010-05-14 15:41:12,882 ERROR [STDERR] (pool-26-thread-1)       at  org.hornetq.jms.client.HornetQMessageProducer.doSend(HornetQMessageProducer.java:426)
      2010-05-14 15:41:12,882 ERROR [STDERR] (pool-26-thread-1)       at  org.hornetq.jms.client.HornetQMessageProducer.send(HornetQMessageProducer.java:246)
      2010-05-14 15:41:12,882 ERROR [STDERR] (pool-26-thread-1)       at  org.hornetq.jms.bridge.impl.JMSBridgeImpl.sendMessages(JMSBridgeImpl.java:1569)
      2010-05-14 15:41:12,882 ERROR [STDERR] (pool-26-thread-1)       at  org.hornetq.jms.bridge.impl.JMSBridgeImpl.sendBatchXA(JMSBridgeImpl.java:1473)
      2010-05-14 15:41:12,882 ERROR [STDERR] (pool-26-thread-1)       at  org.hornetq.jms.bridge.impl.JMSBridgeImpl.sendBatch(JMSBridgeImpl.java:1390)
      2010-05-14 15:41:12,882 ERROR [STDERR] (pool-26-thread-1)       at  org.hornetq.jms.bridge.impl.JMSBridgeImpl.access$1500(JMSBridgeImpl.java:68)
      2010-05-14 15:41:12,882 ERROR [STDERR] (pool-26-thread-1)       at  org.hornetq.jms.bridge.impl.JMSBridgeImpl$BatchTimeChecker.run(JMSBridgeImpl.java:1936)
      2010-05-14 15:41:12,882 ERROR [STDERR] (pool-26-thread-1)       at  java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      2010-05-14 15:41:12,882 ERROR [STDERR] (pool-26-thread-1)       at  java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      2010-05-14 15:41:12,882 ERROR [STDERR] (pool-26-thread-1)       at  java.lang.Thread.run(Thread.java:619)
      2010-05-14 15:41:16,108 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger]  (Thread-11) Periodic recovery - first pass <Fri, 14 May 2010  15:41:16>
      2010-05-14 15:41:16,108 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger]  (Thread-11) StatusModule: first pass
      2010-05-14 15:41:16,114 DEBUG [com.arjuna.ats.txoj.logging.txojLoggerI18N]  (Thread-11) [com.arjuna.ats.internal.txoj.recovery.TORecoveryModule_3]  - TORecoveryModule - first pass