[Artemis 2.6.3] Multicast consumer via HTTP transport: AMQ212037 Connection failure has been detected

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[Artemis 2.6.3] Multicast consumer via HTTP transport: AMQ212037 Connection failure has been detected

thokuest
I just started using ActiveMQ Artemis and would like to check whether I'm
doing something wrong or if I hit a bug.

I want to consume messages from a multicast address via HTTP transport. I
tweaked the http-transport example
(apache-artemis-2.6.3/examples/features/standard/http-transport) for my
purpose. The code I'm working on is to be found here:
https://github.com/thokuest/activemq-artemis-http-transport-multicast

The code produces 10 messages. A consumer receives the 10 messages. Fine,
but when I add a delay (Thread.sleep()) between each
MessageConsumer.receive() call, let's say 1 second, then I receive the
following exception message in the client:

  java.lang.reflect.InvocationTargetException
      ...
  Caused by: javax.jms.IllegalStateException: AMQ119017: Consumer is closed
      ...
  Caused by: javax.jms.IllegalStateException: AMQ119017: Consumer is closed
      at
org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.checkClosed
(ClientConsumerImpl.java:952)
      at
org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.receive
(ClientConsumerImpl.java:195)
      at
org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.receive
(ClientConsumerImpl.java:379)
      at
org.apache.activemq.artemis.jms.client.ActiveMQMessageConsumer.getMessage
(ActiveMQMessageConsumer.java:212)
      at
org.apache.activemq.artemis.jms.client.ActiveMQMessageConsumer.receive
(ActiveMQMessageConsumer.java:128)
      at thokuest.HttpTransportTopicExample.main
(HttpTransportTopicExample.java:79)

The server tells me the following:

  server-out:2018-10-15 17:06:39,048 WARN
[org.apache.activemq.artemis.core.client] AMQ212037: Connection failure has
been detected:
io.netty.handler.codec.http.HttpObjectAggregator$AggregatedFullHttpRequest
cannot be cast to io.netty.buffer.ByteBuf [code=GENERIC_EXCEPTION]
  server-out:2018-10-15 17:06:39,048 WARN
[org.apache.activemq.artemis.core.server] AMQ222061: Client connection
failed, clearing up resources for session
ea11b326-d08b-11e8-9365-b808cf47fdc0
  server-out:2018-10-15 17:06:39,048 WARN
[org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources
for session ea11b326-d08b-11e8-9365-b808cf47fdc0
  server-out:2018-10-15 17:06:39,048 WARN
[org.apache.activemq.artemis.core.server] AMQ222061: Client connection
failed, clearing up resources for session
ea11b327-d08b-11e8-9365-b808cf47fdc0
  server-out:2018-10-15 17:06:39,058 WARN
[org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources
for session ea11b327-d08b-11e8-9365-b808cf47fdc0

Any clue what's going on?

Kind regards,
Thomas Küstermann



--
Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
Reply | Threaded
Open this post in threaded view
|

Re: [Artemis 2.6.3] Multicast consumer via HTTP transport: AMQ212037 Connection failure has been detected

jbertram
This WARN message:

  AMQ212037: Connection failure has been detected:
io.netty.handler.codec.http.HttpObjectAggregator$AggregatedFullHttpRequest
cannot be cast to io.netty.buffer.ByteBuf [code=GENERIC_EXCEPTION]

Indicates to me that you're hitting a bug.

Out of curiosity, why are you using the HTTP transport.  I don't think it's
commonly used.


Justin

On Mon, Oct 15, 2018 at 10:15 AM thokuest <[hidden email]> wrote:

> I just started using ActiveMQ Artemis and would like to check whether I'm
> doing something wrong or if I hit a bug.
>
> I want to consume messages from a multicast address via HTTP transport. I
> tweaked the http-transport example
> (apache-artemis-2.6.3/examples/features/standard/http-transport) for my
> purpose. The code I'm working on is to be found here:
> https://github.com/thokuest/activemq-artemis-http-transport-multicast
>
> The code produces 10 messages. A consumer receives the 10 messages. Fine,
> but when I add a delay (Thread.sleep()) between each
> MessageConsumer.receive() call, let's say 1 second, then I receive the
> following exception message in the client:
>
>   java.lang.reflect.InvocationTargetException
>       ...
>   Caused by: javax.jms.IllegalStateException: AMQ119017: Consumer is closed
>       ...
>   Caused by: javax.jms.IllegalStateException: AMQ119017: Consumer is closed
>       at
> org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.checkClosed
> (ClientConsumerImpl.java:952)
>       at
> org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.receive
> (ClientConsumerImpl.java:195)
>       at
> org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.receive
> (ClientConsumerImpl.java:379)
>       at
> org.apache.activemq.artemis.jms.client.ActiveMQMessageConsumer.getMessage
> (ActiveMQMessageConsumer.java:212)
>       at
> org.apache.activemq.artemis.jms.client.ActiveMQMessageConsumer.receive
> (ActiveMQMessageConsumer.java:128)
>       at thokuest.HttpTransportTopicExample.main
> (HttpTransportTopicExample.java:79)
>
> The server tells me the following:
>
>   server-out:2018-10-15 17:06:39,048 WARN
> [org.apache.activemq.artemis.core.client] AMQ212037: Connection failure has
> been detected:
> io.netty.handler.codec.http.HttpObjectAggregator$AggregatedFullHttpRequest
> cannot be cast to io.netty.buffer.ByteBuf [code=GENERIC_EXCEPTION]
>   server-out:2018-10-15 17:06:39,048 WARN
> [org.apache.activemq.artemis.core.server] AMQ222061: Client connection
> failed, clearing up resources for session
> ea11b326-d08b-11e8-9365-b808cf47fdc0
>   server-out:2018-10-15 17:06:39,048 WARN
> [org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources
> for session ea11b326-d08b-11e8-9365-b808cf47fdc0
>   server-out:2018-10-15 17:06:39,048 WARN
> [org.apache.activemq.artemis.core.server] AMQ222061: Client connection
> failed, clearing up resources for session
> ea11b327-d08b-11e8-9365-b808cf47fdc0
>   server-out:2018-10-15 17:06:39,058 WARN
> [org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources
> for session ea11b327-d08b-11e8-9365-b808cf47fdc0
>
> Any clue what's going on?
>
> Kind regards,
> Thomas Küstermann
>
>
>
> --
> Sent from:
> http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
>
Reply | Threaded
Open this post in threaded view
|

Re: [Artemis 2.6.3] Multicast consumer via HTTP transport: AMQ212037 Connection failure has been detected

jbertram
Some quick testing indicates this failure was introduced in 2.6.2 which
means if you use 2.6.1 it should work.


Justin

On Mon, Oct 15, 2018 at 12:54 PM Justin Bertram <[hidden email]> wrote:

> This WARN message:
>
>   AMQ212037: Connection failure has been detected:
> io.netty.handler.codec.http.HttpObjectAggregator$AggregatedFullHttpRequest
> cannot be cast to io.netty.buffer.ByteBuf [code=GENERIC_EXCEPTION]
>
> Indicates to me that you're hitting a bug.
>
> Out of curiosity, why are you using the HTTP transport.  I don't think
> it's commonly used.
>
>
> Justin
>
> On Mon, Oct 15, 2018 at 10:15 AM thokuest <[hidden email]>
> wrote:
>
>> I just started using ActiveMQ Artemis and would like to check whether I'm
>> doing something wrong or if I hit a bug.
>>
>> I want to consume messages from a multicast address via HTTP transport. I
>> tweaked the http-transport example
>> (apache-artemis-2.6.3/examples/features/standard/http-transport) for my
>> purpose. The code I'm working on is to be found here:
>> https://github.com/thokuest/activemq-artemis-http-transport-multicast
>>
>> The code produces 10 messages. A consumer receives the 10 messages. Fine,
>> but when I add a delay (Thread.sleep()) between each
>> MessageConsumer.receive() call, let's say 1 second, then I receive the
>> following exception message in the client:
>>
>>   java.lang.reflect.InvocationTargetException
>>       ...
>>   Caused by: javax.jms.IllegalStateException: AMQ119017: Consumer is
>> closed
>>       ...
>>   Caused by: javax.jms.IllegalStateException: AMQ119017: Consumer is
>> closed
>>       at
>>
>> org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.checkClosed
>> (ClientConsumerImpl.java:952)
>>       at
>> org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.receive
>> (ClientConsumerImpl.java:195)
>>       at
>> org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.receive
>> (ClientConsumerImpl.java:379)
>>       at
>> org.apache.activemq.artemis.jms.client.ActiveMQMessageConsumer.getMessage
>> (ActiveMQMessageConsumer.java:212)
>>       at
>> org.apache.activemq.artemis.jms.client.ActiveMQMessageConsumer.receive
>> (ActiveMQMessageConsumer.java:128)
>>       at thokuest.HttpTransportTopicExample.main
>> (HttpTransportTopicExample.java:79)
>>
>> The server tells me the following:
>>
>>   server-out:2018-10-15 17:06:39,048 WARN
>> [org.apache.activemq.artemis.core.client] AMQ212037: Connection failure
>> has
>> been detected:
>> io.netty.handler.codec.http.HttpObjectAggregator$AggregatedFullHttpRequest
>> cannot be cast to io.netty.buffer.ByteBuf [code=GENERIC_EXCEPTION]
>>   server-out:2018-10-15 17:06:39,048 WARN
>> [org.apache.activemq.artemis.core.server] AMQ222061: Client connection
>> failed, clearing up resources for session
>> ea11b326-d08b-11e8-9365-b808cf47fdc0
>>   server-out:2018-10-15 17:06:39,048 WARN
>> [org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources
>> for session ea11b326-d08b-11e8-9365-b808cf47fdc0
>>   server-out:2018-10-15 17:06:39,048 WARN
>> [org.apache.activemq.artemis.core.server] AMQ222061: Client connection
>> failed, clearing up resources for session
>> ea11b327-d08b-11e8-9365-b808cf47fdc0
>>   server-out:2018-10-15 17:06:39,058 WARN
>> [org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources
>> for session ea11b327-d08b-11e8-9365-b808cf47fdc0
>>
>> Any clue what's going on?
>>
>> Kind regards,
>> Thomas Küstermann
>>
>>
>>
>> --
>> Sent from:
>> http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
>>
>
Reply | Threaded
Open this post in threaded view
|

Re: [Artemis 2.6.3] Multicast consumer via HTTP transport: AMQ212037 Connection failure has been detected

jbertram
A 'git bisect' revealed that the issue was introduced via
775b1c78aa690872ef7775f97ccdea408ed3830c for ARTEMIS-1927 [1].  You can
work around the issue by setting the 'confirmationWindowSize' on your URL
in jndi.properties to something > 0, e.g.:

  connectionFactory.ConnectionFactory=tcp://localhost:61616?httpEnabled
=true;confirmationWindowSize=1


Justin

[1] https://issues.apache.org/jira/browse/ARTEMIS-1927

On Mon, Oct 15, 2018 at 1:51 PM Justin Bertram <[hidden email]> wrote:

> Some quick testing indicates this failure was introduced in 2.6.2 which
> means if you use 2.6.1 it should work.
>
>
> Justin
>
> On Mon, Oct 15, 2018 at 12:54 PM Justin Bertram <[hidden email]>
> wrote:
>
>> This WARN message:
>>
>>   AMQ212037: Connection failure has been detected:
>> io.netty.handler.codec.http.HttpObjectAggregator$AggregatedFullHttpRequest
>> cannot be cast to io.netty.buffer.ByteBuf [code=GENERIC_EXCEPTION]
>>
>> Indicates to me that you're hitting a bug.
>>
>> Out of curiosity, why are you using the HTTP transport.  I don't think
>> it's commonly used.
>>
>>
>> Justin
>>
>> On Mon, Oct 15, 2018 at 10:15 AM thokuest <[hidden email]>
>> wrote:
>>
>>> I just started using ActiveMQ Artemis and would like to check whether I'm
>>> doing something wrong or if I hit a bug.
>>>
>>> I want to consume messages from a multicast address via HTTP transport. I
>>> tweaked the http-transport example
>>> (apache-artemis-2.6.3/examples/features/standard/http-transport) for my
>>> purpose. The code I'm working on is to be found here:
>>> https://github.com/thokuest/activemq-artemis-http-transport-multicast
>>>
>>> The code produces 10 messages. A consumer receives the 10 messages. Fine,
>>> but when I add a delay (Thread.sleep()) between each
>>> MessageConsumer.receive() call, let's say 1 second, then I receive the
>>> following exception message in the client:
>>>
>>>   java.lang.reflect.InvocationTargetException
>>>       ...
>>>   Caused by: javax.jms.IllegalStateException: AMQ119017: Consumer is
>>> closed
>>>       ...
>>>   Caused by: javax.jms.IllegalStateException: AMQ119017: Consumer is
>>> closed
>>>       at
>>>
>>> org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.checkClosed
>>> (ClientConsumerImpl.java:952)
>>>       at
>>> org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.receive
>>> (ClientConsumerImpl.java:195)
>>>       at
>>> org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.receive
>>> (ClientConsumerImpl.java:379)
>>>       at
>>> org.apache.activemq.artemis.jms.client.ActiveMQMessageConsumer.getMessage
>>> (ActiveMQMessageConsumer.java:212)
>>>       at
>>> org.apache.activemq.artemis.jms.client.ActiveMQMessageConsumer.receive
>>> (ActiveMQMessageConsumer.java:128)
>>>       at thokuest.HttpTransportTopicExample.main
>>> (HttpTransportTopicExample.java:79)
>>>
>>> The server tells me the following:
>>>
>>>   server-out:2018-10-15 17:06:39,048 WARN
>>> [org.apache.activemq.artemis.core.client] AMQ212037: Connection failure
>>> has
>>> been detected:
>>>
>>> io.netty.handler.codec.http.HttpObjectAggregator$AggregatedFullHttpRequest
>>> cannot be cast to io.netty.buffer.ByteBuf [code=GENERIC_EXCEPTION]
>>>   server-out:2018-10-15 17:06:39,048 WARN
>>> [org.apache.activemq.artemis.core.server] AMQ222061: Client connection
>>> failed, clearing up resources for session
>>> ea11b326-d08b-11e8-9365-b808cf47fdc0
>>>   server-out:2018-10-15 17:06:39,048 WARN
>>> [org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources
>>> for session ea11b326-d08b-11e8-9365-b808cf47fdc0
>>>   server-out:2018-10-15 17:06:39,048 WARN
>>> [org.apache.activemq.artemis.core.server] AMQ222061: Client connection
>>> failed, clearing up resources for session
>>> ea11b327-d08b-11e8-9365-b808cf47fdc0
>>>   server-out:2018-10-15 17:06:39,058 WARN
>>> [org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources
>>> for session ea11b327-d08b-11e8-9365-b808cf47fdc0
>>>
>>> Any clue what's going on?
>>>
>>> Kind regards,
>>> Thomas Küstermann
>>>
>>>
>>>
>>> --
>>> Sent from:
>>> http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
>>>
>>
Reply | Threaded
Open this post in threaded view
|

Re: [Artemis 2.6.3] Multicast consumer via HTTP transport: AMQ212037 Connection failure has been detected

thokuest
Thanks for sorting this out Justin! Is there an issue filed with JIRA already
or should I create one?

> Out of curiosity, why are you using the HTTP transport.  I don't think
> it's
> commonly used.

Firewall-friendliness and architecture restrictions are the main driver.

> Some quick testing indicates this failure was introduced in 2.6.2 which
> means if you use 2.6.1 it should work.

Yes, 2.6.1 works like a charm.

> You can
> work around the issue by setting the 'confirmationWindowSize' on your URL
> in jndi.properties to something > 0, e.g.:
>
>   connectionFactory.ConnectionFactory=tcp://localhost:61616?httpEnabled
> =true;confirmationWindowSize=1

Confirmed working! Thanks for that. Do you have a recommendation for the
value of confirmationWindowSize?

Cheers,
Thomas



--
Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
Reply | Threaded
Open this post in threaded view
|

Re: [Artemis 2.6.3] Multicast consumer via HTTP transport: AMQ212037 Connection failure has been detected

thokuest