activemq-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Angus McAllister (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ARTEMIS-214) exception when sending 10k message
Date Thu, 28 Jan 2016 09:16:39 GMT

    [ https://issues.apache.org/jira/browse/ARTEMIS-214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15121084#comment-15121084
] 

Angus McAllister commented on ARTEMIS-214:
------------------------------------------

We have encountered this issue in the past few days using Artemis for large messages.  Our
requirement is to stream large amounts of content (between 10 KB and 500 MB) over messages,
to avoid callbacks between components (there are good reasons for this in our context).

This issue is a potential show-stopper for the work we are doing at the moment, so we would
immensely appreciate it if it could be looked at and resolved.  Many thanks in advance.

> exception when sending 10k message
> ----------------------------------
>
>                 Key: ARTEMIS-214
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-214
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: AMQP
>            Reporter: Andy Taylor
>
> if you send a 10kb message using the qpid jms client the server throws an exception:
> java.lang.IllegalArgumentException
>         at java.nio.Buffer.limit(Buffer.java:267)
>         at org.apache.qpid.proton.codec.DecoderImpl.readRaw(DecoderImpl.java:945)
>         at org.apache.qpid.proton.codec.StringType$AllStringEncoding.readValue(StringType.java:169)
>         at org.apache.qpid.proton.codec.StringType$AllStringEncoding.readValue(StringType.java:121)
>         at org.apache.qpid.proton.codec.DynamicTypeConstructor.readValue(DynamicTypeConstructor.java:39)
>         at org.apache.qpid.proton.codec.DecoderImpl.readObject(DecoderImpl.java:885)
>         at org.apache.qpid.proton.message.impl.MessageImpl.decode(MessageImpl.java:647)
>         at org.apache.qpid.proton.message.impl.MessageImpl.decode(MessageImpl.java:577)
>         at org.apache.qpid.proton.jms.EncodedMessage.decode(EncodedMessage.java:46)
>         at org.apache.qpid.proton.jms.JMSMappingInboundTransformer.transform(JMSMappingInboundTransformer.java:40)
>         at org.apache.activemq.artemis.core.protocol.proton.converter.ProtonMessageConverter.inboundJMSType(ProtonMessageConverter.java:61)
>         at org.apache.activemq.artemis.core.protocol.proton.converter.ProtonMessageConverter.inbound(ProtonMessageConverter.java:47)
>         at org.apache.activemq.artemis.core.protocol.proton.plug.ProtonSessionIntegrationCallback.serverSend(ProtonSessionIntegrationCallback.java:269)
>         at org.proton.plug.context.server.ProtonServerReceiverContext.onMessage(ProtonServerReceiverContext.java:131)
>         at org.proton.plug.context.AbstractConnectionContext$LocalListener.onDelivery(AbstractConnectionContext.java:277)
>         at org.proton.plug.handler.Events.dispatch(Events.java:104)
>         at org.proton.plug.handler.impl.ProtonHandlerImpl.dispatch(ProtonHandlerImpl.java:399)
>         at org.proton.plug.handler.impl.ProtonHandlerImpl.flush(ProtonHandlerImpl.java:298)
>         at org.proton.plug.handler.impl.ProtonHandlerImpl.inputBuffer(ProtonHandlerImpl.java:178)
>         at org.proton.plug.context.AbstractConnectionContext.inputBuffer(AbstractConnectionContext.java:72)
>         at org.apache.activemq.artemis.core.protocol.proton.ActiveMQProtonRemotingConnection.bufferReceived(ActiveMQProtonRemotingConnection.java:142)
>         at org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:694)
>         at org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:73)
>         at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:332)
>         at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:318)
>         at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787)
>         at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:125)
>         at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:507)
>         at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:464)
>         at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:378)
>         at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:350)
>         at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116)
>         at java.lang.Thread.run(Thread.java:745)   
> the following code will show it
>  try
>             {
>                ctx = new InitialContext(properties);
>                connection = ((ConnectionFactory) ctx.lookup("connection")).createConnection();
>                session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
>                producer = session.createProducer((Destination) ctx.lookup("address"));
>                if (!options.persistent)
>                {
>                     producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);  
>                }
>                else
>                {
>                     producer.setDeliveryMode(DeliveryMode.PERSISTENT);
>                }
>                connection.start();
>                TextMessage message = session.createTextMessage(options.messageText);
>                producer.send(message);
>                producer.close();
>                session.close();
>                connection.close();
>             }
>             catch (NamingException | JMSException e)
>             {
>                 e.printStackTrace();
>             }
>  private static String createMessage(int messageSize)
>     {
>         final String AB = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
>         Random rnd = new Random();
>         StringBuilder sb = new StringBuilder((int) messageSize);
>         for (int j = 0; j < messageSize; j++ )
>         {
>             sb.append(AB.charAt(rnd.nextInt(AB.length())));
>         }
>         return sb.toString();
>     } 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message