JMSBridge does not work with Large Messages
tonyburgess100 May 17, 2010 5:04 AMWhile 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>
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.
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
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