Thank you for the answer, I will go this way!

Is it neccessary to create the session as "transacted=true" in case I want to 
be sure that the ByteBuf was stored sucessfully?
         session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);

How can I check with the JMS client if a particular queue does exists and in 
case not to create it?
In core api I do this way:

                ClientSession session = this.sessionFactory.createSession(true, 
true);
                try {
                        QueueQuery queueQuery = session.queueQuery(new 
SimpleString(ACTIVE_MQ_SMTP_QUEUE));
                        if (!queueQuery.isExists())
                                session.createQueue(new 
QueueConfiguration(ACTIVE_MQ_SMTP_QUEUE).setDurable(true));
                } finally {
                        session.close();
                }


-----Ursprüngliche Nachricht-----
Von: Clebert Suconic <clebert.suco...@gmail.com> 
Gesendet: Montag, 29. März 2021 15:40
An: users@activemq.apache.org
Betreff: Re: send message

This example here is working with JMS:

https://github.com/apache/activemq-artemis/blob/fe3851ff6d243cc0b58872c5431646fbeb410b41/examples/features/standard/large-message/src/main/java/org/apache/activemq/artemis/jms/example/LargeMessageExample.java


Basically, instead of passing a BufferedInputStream that worked through a File, 
you could pass in a NettyByteBufferInputStream, and it should work the same:

https://netty.io/4.0/api/io/netty/buffer/ByteBufInputStream.html


I was going to suggest you to write a ByteInputStream yourself when I found one 
already implemented as part of the Netty library.

On Fri, Mar 26, 2021 at 10:43 AM Clebert Suconic <clebert.suco...@gmail.com> 
wrote:
>
> look at message.setInputStream as you are using the Core API.
>
> if you were using the JMS API there's a property that kind of wraps it 
> into the CoreMessage through the JMS Message.
>
> Since you are using the core api directly look into that property.
> Just implement an InputStream that will read from your ByteBuffer and 
> pass it in.
>
> On Fri, Mar 26, 2021 at 8:48 AM <tobias.w...@t-systems.com> wrote:
> >
> > A example would be great!
> >
> > -----Ursprüngliche Nachricht-----
> > Von: Clebert Suconic <clebert.suco...@gmail.com>
> > Gesendet: Freitag, 26. März 2021 13:26
> > An: users@activemq.apache.org
> > Betreff: Re: send message
> >
> > On your case it would make sense if the streaming was not a file but a 
> > biffer.  I get it.
> >
> > The optimization here wouldn’t be the copy but it would be not needintg to 
> > duplicate the 500MB.  We all thought you had a smaller buffer and did not 
> > want the copy.
> >
> > You can pass an InputStream as a property on the streaming.  If you 
> > implemented an InputStream that will read from the NettyBuffer.  The body 
> > would be read directly into smaller chunks into the Large Message Streaming.
> >
> >
> > I’m not working today.  As a matter of fact I’m using an iPhone 
> > right  now (pardon any typoes please)
> >
> > If you can’t figure it out let me know and I will write you an 
> > example Monday
> >
> > On Fri, Mar 26, 2021 at 3:35 AM <tobias.w...@t-systems.com> wrote:
> >
> > > Not he application is a kind of custom mail server and the 
> > > messages can reach up to 500mb and are received via tcp and a netty smtp 
> > > handler.
> > > Therefore I have a netty direct buffer already and don't want 
> > > bring the huge messages back into the jvm.
> > >
> > > -----Ursprüngliche Nachricht-----
> > > Von: Clebert Suconic <clebert.suco...@gmail.com>
> > > Gesendet: Donnerstag, 25. März 2021 20:31
> > > An: users@activemq.apache.org
> > > Betreff: Re: send message
> > >
> > > I assumed the data was already on a file.
> > >
> > > If you passed the file name.  The receiver would receive a message 
> > > where you could either do the opposite. (Pass a file name to steam.
> > > Or just receive steaming)
> > >
> > > At that size of message the optimization of the copy between your 
> > > buffer and a byte array makes little difference.
> > >
> > > On Thu, Mar 25, 2021 at 11:12 AM <tobias.w...@t-systems.com> wrote:
> > >
> > > > So you mean I should save the ByteBuffer by myself to a file?
> > > >
> > > > --> and pass it over the property that would stream the file directly.
> > > > (Available on core only)
> > > > What do you mean? I understand that I shall pass the name of the 
> > > > file via a message property, right?
> > > > How would the receiver side looks like?
> > > >
> > > >
> > > > -----Ursprüngliche Nachricht-----
> > > > Von: Clebert Suconic <clebert.suco...@gmail.com>
> > > > Gesendet: Donnerstag, 25. März 2021 16:04
> > > > An: users@activemq.apache.org
> > > > Betreff: Re: send message
> > > >
> > > > Sending a message this large will make it to be converted as a 
> > > > large stream and saved as a file on the server anyways...
> > > >
> > > > The copy between ByteBuffer and a byte array would become 
> > > > irrelevant at this point.
> > > >
> > > > If you want to send a large message this big, you could save it 
> > > > to a file, and pass it over the property that would stream the file 
> > > > directly.
> > > > (Available on core only)
> > > >
> > > > And don't convert a large message between protocols.. use a 
> > > > single protocol of your choice.
> > > >
> > > > On Thu, Mar 25, 2021 at 3:44 AM <tobias.w...@t-systems.com> wrote:
> > > > >
> > > > > What are you talking about?
> > > > > I want to send byte buffers with the size up to 500MB to a queue!
> > > > > What do you mean with string and micro optimization!
> > > > > The core api fails in my test already with sending/receiving a 
> > > > > simple
> > > > string, yes, a simple test!
> > > > > Does it make sense to have a 500mb native netty buffer 
> > > > > received via wire
> > > > and tunnel it back through the jvm?
> > > > > I don`t think so!
> > > > > Does it make sense to tunnel megabytes of data through a 
> > > > > stream or even
> > > > an byte array through the jvm?
> > > > > Where ist the advantage of jms?
> > > > > Why shall I not use the existing core api functions when the 
> > > > > already
> > > > support a netty buffer?
> > > > >
> > > > > -----Ursprüngliche Nachricht-----
> > > > > Von: Justin Bertram <jbert...@apache.org>
> > > > > Gesendet: Mittwoch, 24. März 2021 17:56
> > > > > An: users@activemq.apache.org
> > > > > Betreff: Re: send message
> > > > >
> > > > > Well said, Tim. I was going to say the same thing about 
> > > > > premature
> > > > optimization.
> > > > >
> > > > >
> > > > > Justin
> > > > >
> > > > > On Wed, Mar 24, 2021 at 7:04 AM Tim Bain 
> > > > > <tb...@alumni.duke.edu>
> > > wrote:
> > > > >
> > > > > > One thing to keep in mind is that although the code may be 
> > > > > > slightly slower, if it lets you use an API that is more 
> > > > > > favorable (which might mean better documented, more 
> > > > > > portable, more stable across future versions, easier for 
> > > > > > others to maintain because they're already familiar with it, 
> > > > > > or a number of other potential advantages),
> > > > that might be a win.
> > > > > >
> > > > > > Only you know your use case and whether the performance 
> > > > > > advantages of what you're trying to do actually outweigh the 
> > > > > > types of advantages I referenced in the first paragraph. But 
> > > > > > remember that premature optimization is the root of all 
> > > > > > evil, so make sure that your micro-optimization of avoiding 
> > > > > > the creation of a String is really a significant enough 
> > > > > > optimization in the context of your use case to justify the 
> > > > > > disadvantages of what you're trying to do.
> > > > > >
> > > > > > Tim
> > > > > >
> > > > > > On Tue, Mar 23, 2021, 9:20 AM Clebert Suconic 
> > > > > > <clebert.suco...@gmail.com>
> > > > > > wrote:
> > > > > >
> > > > > > > Not on the API itself.
> > > > > > >
> > > > > > > Try the core api example I sent you... and let me know 
> > > > > > > what is different from yours.
> > > > > > >
> > > > > > > On Tue, Mar 23, 2021 at 10:34 AM 
> > > > > > > <tobias.w...@t-systems.com>
> > > wrote:
> > > > > > > >
> > > > > > > > I want to use the jms layer, but I've a netty 
> > > > > > > > application and I want to
> > > > > > > write the ByteBuf mostly efficent to the queue.
> > > > > > > > I think it makes no sense to convert it back from a 
> > > > > > > > native buffer into
> > > > > > a
> > > > > > > byte array or stream and tunnel this throught the jvm!
> > > > > > > >
> > > > > > > > Is there a way to use a ByteBuf with jms?
> > > > > > > >
> > > > > > > > -----Ursprüngliche Nachricht-----
> > > > > > > > Von: Clebert Suconic <clebert.suco...@gmail.com>
> > > > > > > > Gesendet: Dienstag, 23. März 2021 15:00
> > > > > > > > An: users@activemq.apache.org
> > > > > > > > Betreff: Re: send message
> > > > > > > >
> > > > > > > > You were supposed to call reset right before sending though...
> > > > > > > > but I
> > > > > > did
> > > > > > > not need it on my test.. I will post a link...
> > > > > > > >
> > > > > > > > Anyway, if you use the JMS API, the JMS layer is very 
> > > > > > > > thin, and I don't
> > > > > > > think it would affect your performance in any way. you 
> > > > > > > could create a BytesMessage and all the detail would be 
> > > > > > > hidden away from the internal
> > > > > > API.
> > > > > > > >
> > > > > > > > On Tue, Mar 23, 2021 at 9:57 AM Clebert Suconic <
> > > > > > > clebert.suco...@gmail.com> wrote:
> > > > > > > > >
> > > > > > > > > I'm adding a test doing exactly what you did, and it's
> > > working...
> > > > > > > > >
> > > > > > > > > give me 10 minutes and I will post a link here...
> > > > > > > > >
> > > > > > > > > On Tue, Mar 23, 2021 at 9:56 AM 
> > > > > > > > > <tobias.w...@t-systems.com>
> > > > wrote:
> > > > > > > > > >
> > > > > > > > > > Same Issue!
> > > > > > > > > >         public void sendMessageToSmtpQueue(String 
> > > > > > > > > > text) throws
> > > > > > > ActiveMQException {
> > > > > > > > > >                 ClientSession session =
> > > > > > > this.sessionFactory.createSession();
> > > > > > > > > >                 try {
> > > > > > > > > >                         session.start();
> > > > > > > > > >                         ClientMessage message =
> > > > > > > session.createMessage(true);
> > > > > > > > > >
> > > >  message.setType(ClientMessage.TEXT_TYPE);
> > > > > > > > > >
> > > >  message.getBodyBuffer().resetReaderIndex();
> > > > > > > > > >
> > > >  message.getBodyBuffer().writeString(text);
> > > > > > > > > >                         ClientProducer producer =
> > > > > > > session.createProducer(ACTIVE_MQ_SMTP_QUEUE);
> > > > > > > > > >                         producer.send(message);
> > > > > > > > > >                 } finally {
> > > > > > > > > >                         session.close();
> > > > > > > > > >                 }
> > > > > > > > > >         }
> > > > > > > > > >
> > > > > > > > > > java.lang.IndexOutOfBoundsException: Error reading 
> > > > > > > > > > in simpleString,
> > > > > > > length=1953068645 is greater than readableBytes=3
> > > > > > > > > >         at
> > > > > > >
> > > > > > org.apache.activemq.artemis.api.core.SimpleString.readSimple
> > > > > > Stri
> > > > > > ng
> > > > > > (S
> > > > > > im
> > > > > > pleString.java:185)
> > > > > > > > > >         at
> > > > > > >
> > > > > > org.apache.activemq.artemis.api.core.SimpleString.readSimple
> > > > > > Stri
> > > > > > ng
> > > > > > (S
> > > > > > im
> > > > > > pleString.java:173)
> > > > > > > > > >         at
> > > > > > >
> > > > > > org.apache.activemq.artemis.core.buffers.impl.ChannelBufferW
> > > > > > rapp
> > > > > > er
> > > > > > .r
> > > > > > ea
> > > > > > dStringInternal(ChannelBufferWrapper.java:113)
> > > > > > > > > >         at
> > > > > > >
> > > > > > org.apache.activemq.artemis.core.buffers.impl.ChannelBufferW
> > > > > > rapp
> > > > > > er
> > > > > > .r
> > > > > > ea
> > > > > > dString(ChannelBufferWrapper.java:98)
> > > > > > > > > >         at com.tsystems.gematik.kim.mailserver.mq
> > > > > > >
> > > > > > .MailServerActiveMQClient.receiveTextMessageFromSmtpQueue(Ma
> > > > > > ilSe
> > > > > > rv
> > > > > > er
> > > > > > Ac
> > > > > > tiveMQClient.java:94)
> > > > > > > > > >         at com.tsystems.gematik.kim.mailserver.mq
> > > > > > >
> > > > > > .MailServerActiveMQClientTest.sendAndReceiveTextMessage(Mail
> > > > > > Serv
> > > > > > er
> > > > > > Ac
> > > > > > ti
> > > > > > veMQClientTest.java:37)
> > > > > > > > > >         at
> > > > > > > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.in
> > > > > > > voke
> > > > > > > 0(
> > > > > > > Na
> > > > > > > ti
> > > > > > > ve
> > > > > > > Method)
> > > > > > > > > >         at
> > > > > > >
> > > > > > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invo
> > > > > > ke(N
> > > > > > at
> > > > > > iv
> > > > > > eM
> > > > > > ethodAccessorImpl.java:62)
> > > > > > > > > >         at
> > > > > > >
> > > > > > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.
> > > > > > invo
> > > > > > ke
> > > > > > (D
> > > > > > el
> > > > > > egatingMethodAccessorImpl.java:43)
> > > > > > > > > >         at
> > > > > > java.base/java.lang.reflect.Method.invoke(Method.java:566)
> > > > > > > > > >         at
> > > > > > >
> > > > > > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(
> > > > > > Fram
> > > > > > ew
> > > > > > or
> > > > > > kM
> > > > > > ethod.java:50)
> > > > > > > > > >         at
> > > > > > >
> > > > > > org.junit.internal.runners.model.ReflectiveCallable.run(Refl
> > > > > > ecti
> > > > > > ve
> > > > > > Ca
> > > > > > ll
> > > > > > able.java:12)
> > > > > > > > > >         at
> > > > > > >
> > > > > > org.junit.runners.model.FrameworkMethod.invokeExplosively(Fr
> > > > > > amew
> > > > > > or
> > > > > > kM
> > > > > > et
> > > > > > hod.java:47)
> > > > > > > > > >         at
> > > > > > >
> > > > > > org.junit.internal.runners.statements.InvokeMethod.evaluate(
> > > > > > Invo
> > > > > > ke
> > > > > > Me
> > > > > > th
> > > > > > od.java:17)
> > > > > > > > > >         at
> > > > > > > org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:3
> > > > > > > 25)
> > > > > > > > > >         at
> > > > > > >
> > > > > > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit
> > > > > > 4Cla
> > > > > > ss
> > > > > > Ru
> > > > > > nn
> > > > > > er.java:78)
> > > > > > > > > >         at
> > > > > > >
> > > > > > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit
> > > > > > 4Cla
> > > > > > ss
> > > > > > Ru
> > > > > > nn
> > > > > > er.java:57)
> > > > > > > > > >         at
> > > > > > > org.junit.runners.ParentRunner$3.run(ParentRunner.java:290
> > > > > > > )
> > > > > > > > > >         at
> > > > > > > org.junit.runners.ParentRunner$1.schedule(ParentRunner.jav
> > > > > > > a:71
> > > > > > > )
> > > > > > > > > >         at
> > > > > > > org.junit.runners.ParentRunner.runChildren(ParentRunner.ja
> > > > > > > va:2
> > > > > > > 88
> > > > > > > )
> > > > > > > > > >         at
> > > > > > > org.junit.runners.ParentRunner.access$000(ParentRunner.jav
> > > > > > > a:58
> > > > > > > )
> > > > > > > > > >         at
> > > > > > > org.junit.runners.ParentRunner$2.evaluate(ParentRunner.jav
> > > > > > > a:26
> > > > > > > 8)
> > > > > > > > > >         at
> > > > > > org.junit.runners.ParentRunner.run(ParentRunner.java:363)
> > > > > > > > > >         at
> > > > > > >
> > > > > > org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.r
> > > > > > un(J
> > > > > > Un
> > > > > > it
> > > > > > 4T
> > > > > > estReference.java:89)
> > > > > > > > > >         at
> > > > > > >
> > > > > >
> > > org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.
> > > > > > java:41)
> > > > > > > > > >         at
> > > > > > >
> > > > > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe
> > > > > > sts(
> > > > > > Re
> > > > > > mo
> > > > > > te
> > > > > > TestRunner.java:541)
> > > > > > > > > >         at
> > > > > > >
> > > > > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe
> > > > > > sts(
> > > > > > Re
> > > > > > mo
> > > > > > te
> > > > > > TestRunner.java:763)
> > > > > > > > > >         at
> > > > > > >
> > > > > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(R
> > > > > > emot
> > > > > > eT
> > > > > > es
> > > > > > tR
> > > > > > unner.java:463)
> > > > > > > > > >         at
> > > > > > > > > >
> > > > > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(
> > > > > > Remo
> > > > > > te
> > > > > > Te
> > > > > > > > > > stRunner.java:209)
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > -----Ursprüngliche Nachricht-----
> > > > > > > > > > Von: Clebert Suconic <clebert.suco...@gmail.com>
> > > > > > > > > > Gesendet: Dienstag, 23. März 2021 13:48
> > > > > > > > > > An: users@activemq.apache.org
> > > > > > > > > > Betreff: Re: send message
> > > > > > > > > >
> > > > > > > > > > Can you try calling
> > > > > > > > > > message.getBodyBuffer().resetReaderIndex();
> > > > > > > before the send?
> > > > > > > > > >
> > > > > > > > > > if that does not work I will try your code and see 
> > > > > > > > > > what
> > > > happens.
> > > > > > > > > > (Let me know if doesn't please)
> > > > > > > > > >
> > > > > > > > > > On Tue, Mar 23, 2021 at 7:55 AM Gary Tully 
> > > > > > > > > > <gary.tu...@gmail.com>
> > > > > > > wrote:
> > > > > > > > > > >
> > > > > > > > > > > maybe take inspiration from
> > > > > > > > > > >
> > > > > > https://github.com/apache/activemq-artemis/blob/master/tests
> > > > > > /int
> > > > > > eg
> > > > > > > > > > > rati
> > > > > > > > > > >
> > > > > > on-tests/src/test/java/org/apache/activemq/artemis/tests/int
> > > > > > egra
> > > > > > ti
> > > > > > > > > > > on/c lient/MessageBufferTest.java that passes a 
> > > > > > > > > > > string, but there are corresponding byte[] or 
> > > > > > > > > > > buffer variants in the api. If you want to skip 
> > > > > > > > > > > the decoding, to access the raw buffer, you need 
> > > > > > > > > > > to parse the type to get to the
> > > > appropriate part of the buffer.
> > > > > > > > > > > There are loads of usage examples in the tests and 
> > > > > > > > > > > they all work, start there and break it as you go.
> > > > > > > > > > >
> > > > > > > > > > > the issue is the wire level encoding that the 
> > > > > > > > > > > client does, the
> > > > > > JMS
> > > > > > > > > > > api hides this, as do the typed accessors, but you 
> > > > > > > > > > > can get direct access to the encoded buffers via 
> > > > > > > > > > > the core api as you are doing but you need to be 
> > > > > > > > > > > type aware, for example a string can be utf-8 
> > > > > > > > > > > encoded or it can be raw bytes on the wire, 
> > > > > > > > > > > depending on the size and chars, the encoding 
> > > > > > > > > > > handles and hides this detail. But if you go for 
> > > > > > > > > > > direct
> > > > access, you need to be aware of the encoding.
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > On Tue, 23 Mar 2021 at 07:37, 
> > > > > > > > > > > <tobias.w...@t-systems.com>
> > > > wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > getDataBuffer gives same result! Already tried!
> > > > > > > > > > > >
> > > > > > > > > > > > -----Ursprüngliche Nachricht-----
> > > > > > > > > > > > Von: Clebert Suconic <clebert.suco...@gmail.com>
> > > > > > > > > > > > Gesendet: Dienstag, 23. März 2021 03:19
> > > > > > > > > > > > An: users@activemq.apache.org
> > > > > > > > > > > > Betreff: Re: send message
> > > > > > > > > > > >
> > > > > > > > > > > > Why you don't use the JMS API for this?
> > > > > > > > > > > >
> > > > > > > > > > > > or if you really want to use the core API, use 
> > > > > > > > > > > > the
> > > > > > > getReadOnlyBuffer() or getDataBuffer() on the Message instead.
> > > > > > > > > > > >
> > > > > > > > > > > > On Mon, Mar 22, 2021 at 12:01 PM Justin Bertram 
> > > > > > > > > > > > <
> > > > > > > jbert...@apache.org> wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > The stack-trace indicates you're invoking the
> > > > "readString"
> > > > > > > > > > > > > method on line
> > > > > > > > > > > > > 93 of MailServerActiveMQClient.java, but I 
> > > > > > > > > > > > > don't see that
> > > > > > call
> > > > > > > > > > > > > in the code you pasted. Therefore, that 
> > > > > > > > > > > > > stack-trace doesn't seem correct. Can you clarify 
> > > > > > > > > > > > > this?
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > Justin
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Mon, Mar 22, 2021 at 10:55 AM Dondorp, 
> > > > > > > > > > > > > Erwin <erwin.dond...@cgi.com>
> > > > > > > > > > > > > wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > > Fyi:
> > > > > > > > > > > > > > 1953068645(decimal) = 74697665(hexadecimal) 
> > > > > > > > > > > > > > = "tive"(ascii
> > > > > > > > > > > > > > text) And "tive" is likely part of the 
> > > > > > > > > > > > > > string
> > > > "ActiveMQ"?
> > > > > > > > > > > > > > e.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > -----Oorspronkelijk bericht-----
> > > > > > > > > > > > > > Van: tobias.w...@t-systems.com 
> > > > > > > > > > > > > > <tobias.w...@t-systems.com>
> > > > > > > > > > > > > > Verzonden: maandag 22 maart 2021 16:41
> > > > > > > > > > > > > > Aan: users@activemq.apache.org
> > > > > > > > > > > > > > Onderwerp: AW: send message
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > EXTERNAL SENDER:   Do not click any links or open 
> > > > > > > > > > > > > > any
> > > > > > > attachments unless
> > > > > > > > > > > > > > you trust the sender and know the content is safe.
> > > > > > > > > > > > > > EXPÉDITEUR EXTERNE:    Ne cliquez sur aucun lien et
> > > > > > n’ouvrez
> > > > > > > aucune pièce
> > > > > > > > > > > > > > jointe à moins qu’ils ne proviennent d’un 
> > > > > > > > > > > > > > expéditeur
> > > > > > fiable,
> > > > > > > > > > > > > > ou que vous ayez l'assurance que le contenu 
> > > > > > > > > > > > > > provient d'une
> > > > > > > source sûre.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > While sending / receiving a text message I 
> > > > > > > > > > > > > > get this
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > java.lang.IndexOutOfBoundsException: Error 
> > > > > > > > > > > > > > reading in simpleString,
> > > > > > > > > > > > > > length=1953068645 is greater than readableBytes=3
> > > > > > > > > > > > > >         at
> > > > > > > > > > > > > >
> > > > > > >
> > > > > > org.apache.activemq.artemis.api.core.SimpleString.readSimple
> > > > > > Stri
> > > > > > ng
> > > > > > (S
> > > > > > im
> > > > > > pleString.java:185)
> > > > > > > > > > > > > >         at
> > > > > > > > > > > > > >
> > > > > > >
> > > > > > org.apache.activemq.artemis.api.core.SimpleString.readSimple
> > > > > > Stri
> > > > > > ng
> > > > > > (S
> > > > > > im
> > > > > > pleString.java:173)
> > > > > > > > > > > > > >         at
> > > > > > > > > > > > > >
> > > > > > >
> > > > > > org.apache.activemq.artemis.core.buffers.impl.ChannelBufferW
> > > > > > rapp
> > > > > > er
> > > > > > .r
> > > > > > ea
> > > > > > dStringInternal(ChannelBufferWrapper.java:113)
> > > > > > > > > > > > > >         at
> > > > > > > > > > > > > >
> > > > > > >
> > > > > > org.apache.activemq.artemis.core.buffers.impl.ChannelBufferW
> > > > > > rapp
> > > > > > er
> > > > > > .r
> > > > > > ea
> > > > > > dString(ChannelBufferWrapper.java:98)
> > > > > > > > > > > > > >         at
> > > > > > > > > > > > > > com.tsystems.gematik.kim.mailserver.mq
> > > > > > > > > > > > > >
> > > > > > >
> > > > > > .MailServerActiveMQClient.receiveTextMessageFromSmtpQueue(Ma
> > > > > > ilSe
> > > > > > rv
> > > > > > er
> > > > > > Ac
> > > > > > tiveMQClient.java:93)
> > > > > > > > > > > > > >         at
> > > > > > > > > > > > > > com.tsystems.gematik.kim.mailserver.mq
> > > > > > > > > > > > > >
> > > > > > >
> > > > > > .MailServerActiveMQClientTest.sendAndReceive(MailServerActiv
> > > > > > eMQC
> > > > > > li
> > > > > > en
> > > > > > tT
> > > > > > est.java:28)
> > > > > > > > > > > > > >         at
> > > > > > > > > > > > > >
> > > > > > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invo
> > > > > > > > > > > > > > ke0(
> > > > > > > > > > > > > > Nati
> > > > > > > > > > > > > > ve
> > > > > > > > > > > > > > Method)
> > > > > > > > > > > > > >         at
> > > > > > > > > > > > > >
> > > > > > >
> > > > > > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invo
> > > > > > ke(N
> > > > > > at
> > > > > > iv
> > > > > > eM
> > > > > > ethodAccessorImpl.java:62)
> > > > > > > > > > > > > >         at
> > > > > > > > > > > > > >
> > > > > > >
> > > > > > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.
> > > > > > invo
> > > > > > ke
> > > > > > (D
> > > > > > el
> > > > > > egatingMethodAccessorImpl.java:43)
> > > > > > > > > > > > > >         at
> > > > > > > java.base/java.lang.reflect.Method.invoke(Method.java:566)
> > > > > > > > > > > > > >         at
> > > > > > > > > > > > > >
> > > > > > >
> > > > > > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(
> > > > > > Fram
> > > > > > ew
> > > > > > or
> > > > > > kM
> > > > > > ethod.java:50)
> > > > > > > > > > > > > >         at
> > > > > > > > > > > > > >
> > > > > > >
> > > > > > org.junit.internal.runners.model.ReflectiveCallable.run(Refl
> > > > > > ecti
> > > > > > ve
> > > > > > Ca
> > > > > > ll
> > > > > > able.java:12)
> > > > > > > > > > > > > >         at
> > > > > > > > > > > > > >
> > > > > > >
> > > > > > org.junit.runners.model.FrameworkMethod.invokeExplosively(Fr
> > > > > > amew
> > > > > > or
> > > > > > kM
> > > > > > et
> > > > > > hod.java:47)
> > > > > > > > > > > > > >         at
> > > > > > > > > > > > > >
> > > > > > >
> > > > > > org.junit.internal.runners.statements.InvokeMethod.evaluate(
> > > > > > Invo
> > > > > > ke
> > > > > > Me
> > > > > > th
> > > > > > od.java:17)
> > > > > > > > > > > > > >         at
> > > > > > > org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:3
> > > > > > > 25)
> > > > > > > > > > > > > >         at
> > > > > > > > > > > > > >
> > > > > > >
> > > > > > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit
> > > > > > 4Cla
> > > > > > ss
> > > > > > Ru
> > > > > > nn
> > > > > > er.java:78)
> > > > > > > > > > > > > >         at
> > > > > > > > > > > > > >
> > > > > > >
> > > > > > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit
> > > > > > 4Cla
> > > > > > ss
> > > > > > Ru
> > > > > > nn
> > > > > > er.java:57)
> > > > > > > > > > > > > >         at
> > > > > > > org.junit.runners.ParentRunner$3.run(ParentRunner.java:290
> > > > > > > )
> > > > > > > > > > > > > >         at
> > > > > > > org.junit.runners.ParentRunner$1.schedule(ParentRunner.jav
> > > > > > > a:71
> > > > > > > )
> > > > > > > > > > > > > >         at
> > > > > > > > > > > > > >
> > > > > > > org.junit.runners.ParentRunner.runChildren(ParentRunner.ja
> > > > > > > va:2
> > > > > > > 88
> > > > > > > )
> > > > > > > > > > > > > >         at
> > > > > > > org.junit.runners.ParentRunner.access$000(ParentRunner.jav
> > > > > > > a:58
> > > > > > > )
> > > > > > > > > > > > > >         at
> > > > > > > org.junit.runners.ParentRunner$2.evaluate(ParentRunner.jav
> > > > > > > a:26
> > > > > > > 8)
> > > > > > > > > > > > > >         at
> > > > > > > org.junit.runners.ParentRunner.run(ParentRunner.java:363)
> > > > > > > > > > > > > >         at
> > > > > > > > > > > > > >
> > > > > > >
> > > > > > org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.r
> > > > > > un(J
> > > > > > Un
> > > > > > it
> > > > > > 4T
> > > > > > estReference.java:89)
> > > > > > > > > > > > > >         at
> > > > > > > > > > > > > >
> > > > > > >
> > > > > >
> > > org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.
> > > > > > java:41)
> > > > > > > > > > > > > >         at
> > > > > > > > > > > > > >
> > > > > > >
> > > > > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe
> > > > > > sts(
> > > > > > Re
> > > > > > mo
> > > > > > te
> > > > > > TestRunner.java:541)
> > > > > > > > > > > > > >         at
> > > > > > > > > > > > > >
> > > > > > >
> > > > > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe
> > > > > > sts(
> > > > > > Re
> > > > > > mo
> > > > > > te
> > > > > > TestRunner.java:763)
> > > > > > > > > > > > > >         at
> > > > > > > > > > > > > >
> > > > > > >
> > > > > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(R
> > > > > > emot
> > > > > > eT
> > > > > > es
> > > > > > tR
> > > > > > unner.java:463)
> > > > > > > > > > > > > >         at
> > > > > > > > > > > > > >
> > > > > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(
> > > > > > > > > > > > > > Remo
> > > > > > > > > > > > > > teTe
> > > > > > > > > > > > > > stRunner.java:209)
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > -----Ursprüngliche Nachricht-----
> > > > > > > > > > > > > > Von: Justin Bertram <jbert...@apache.org>
> > > > > > > > > > > > > > Gesendet: Montag, 22. März 2021 16:34
> > > > > > > > > > > > > > An: users@activemq.apache.org
> > > > > > > > > > > > > > Betreff: Re: send message
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > What actually fails? Do you have a stack-trace?
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Justin
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Mon, Mar 22, 2021 at 9:53 AM 
> > > > > > > > > > > > > > <tobias.w...@t-systems.com
> > > > > > >
> > > > > > > wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > > I try to send and receive a netty ByteBuf 
> > > > > > > > > > > > > > > message, but it
> > > > > > > fails.
> > > > > > > > > > > > > > > What I'm doing wrong here? I even don't 
> > > > > > > > > > > > > > > know ist he mistake in sending or receiving!
> > > > > > > > > > > > > > > I was thinking to use the jms layer, but 
> > > > > > > > > > > > > > > I'm receiving
> > > > > > the
> > > > > > > > > > > > > > > data buffer throught a netty buffer and I 
> > > > > > > > > > > > > > > want to avoid
> > > > > > to
> > > > > > > > > > > > > > > convert the buffer to a byte array!
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >        public void 
> > > > > > > > > > > > > > > sendMessageToSmtpQueue(ByteBuf
> > > > > > > > > > > > > > > buf) throws ActiveMQException {
> > > > > > > > > > > > > > >              ClientSession session =
> > > > > > > this.sessionFactory.createSession();
> > > > > > > > > > > > > > >              try {
> > > > > > > > > > > > > > >                     session.start();
> > > > > > > > > > > > > > >                     ClientMessage message 
> > > > > > > > > > > > > > > =
> > > > > > > session.createMessage(true);
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > message.getBodyBuffer().writeBytes(buf, 0,
> > > > > > > buf.readableBytes());
> > > > > > > > > > > > > > >                     ClientProducer 
> > > > > > > > > > > > > > > producer = 
> > > > > > > > > > > > > > > session.createProducer(ACTIVE_MQ_SMTP_QUEUE);
> > > > > > > > > > > > > > >                     producer.send(message);
> > > > > > > > > > > > > > >              } finally {
> > > > > > > > > > > > > > >                     session.close();
> > > > > > > > > > > > > > >              }
> > > > > > > > > > > > > > >        }
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >        public ActiveMQBuffer
> > > > > > receiveMessageFromSmtpQueue()
> > > > > > > > > > > > > > > throws ActiveMQException {
> > > > > > > > > > > > > > >              ActiveMQBuffer result;
> > > > > > > > > > > > > > >              ClientSession session =
> > > > > > > this.sessionFactory.createSession();
> > > > > > > > > > > > > > >              try {
> > > > > > > > > > > > > > >                     session.start();
> > > > > > > > > > > > > > >                     ClientConsumer 
> > > > > > > > > > > > > > > consumer = 
> > > > > > > > > > > > > > > session.createConsumer(ACTIVE_MQ_SMTP_QUEUE);
> > > > > > > > > > > > > > >                     ClientMessage message 
> > > > > > > > > > > > > > > =
> > > > > > > consumer.receive();
> > > > > > > > > > > > > > >                     result = 
> > > > > > > > > > > > > > > ActiveMQBuffers.fixedBuffer(message.getBod
> > > > > > > > > > > > > > > yBuf
> > > > > > > > > > > > > > > fe
> > > > > > > > > > > > > > > rS
> > > > > > > > > > > > > > > iz
> > > > > > > > > > > > > > > e());
> > > > > > > > > > > > > > >
> > > > > > >  message.getBodyBuffer().readBytes(result);
> > > > > > > > > > > > > > >              } finally {
> > > > > > > > > > > > > > >                     session.close();
> > > > > > > > > > > > > > >              }
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >              return result;
> > > > > > > > > > > > > > >        }
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >        public void startServer() throws Exception 
> > > > > > > > > > > > > > > {
> > > > > > > > > > > > > > >              this.configuration = new
> > > > > > ConfigurationImpl();
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > this.configuration.addAcceptorConfiguratio
> > > > > > > > > > > > > > > n("i
> > > > > > > > > > > > > > > n- vm ", ACTIVE_MQ_EMBEDDED_SERVER_URL);
> > > > > > > > > > > > > > >
> > > > > > > this.configuration.setPersistenceEnabled(true);
> > > > > > > > > > > > > > >
> > > > > > this.configuration.setSecurityEnabled(false);
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > this.configuration.addQueueConfiguration(n
> > > > > > > > > > > > > > > ew 
> > > > > > > > > > > > > > > QueueConfiguration(ACTIVE_MQ_SMTP_QUEUE));
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >              this.server = new
> > > > > > > ActiveMQServerImpl(this.configuration);
> > > > > > > > > > > > > > >              this.server.start();
> > > > > > > > > > > > > > >        }
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > --
> > > > > > > > > > > > Clebert Suconic
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > --
> > > > > > > > > > Clebert Suconic
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > --
> > > > > > > > > Clebert Suconic
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > Clebert Suconic
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Clebert Suconic
> > > > > > >
> > > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Clebert Suconic
> > > >
> > > --
> > > Clebert Suconic
> > >
> > --
> > Clebert Suconic
>
>
>
> --
> Clebert Suconic



--
Clebert Suconic

Reply via email to