activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mffrench <mffre...@axway.com>
Subject Re: Killing activemq with connected JMS listener
Date Thu, 19 Mar 2009 11:07:29 GMT

it's not a question of exception throwing... I mean the only way to treat
properly Connection objects exception is in the ExceptionListener and you
can throw your exception only in ExceptionListener.  It's just a question of
trace in fact. Without ExceptionListener you have the impression that
ActiveMQ JMS listener doesn't detect the connection failure - and it fact it
does well ! - and this is the reasons of this post. 

I think if there is no ExceptionListener set for a Connection object you
should print exception - and particularly this one - from Connection object.
I think this is not an heavy modification and I'm sure it will avoid many
misunderstanding about ActiveMQ client behavior...

++



rajdavies wrote:
> 
> Where are you suggesting an exception is thrown with no  
> ExceptionListener ?
> On 19 Mar 2009, at 10:02, mffrench wrote:
> 
>>
>> With ExceptionListener it's working well ! :) Anyway I think you  
>> should get
>> this exception without any ExceptionListener !
>>
>> javax.jms.JMSException: java.io.EOFException
>> 	at
>> org 
>> .apache 
>> .activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49)
>> 	at
>> org 
>> .apache 
>> .activemq 
>> .ActiveMQConnection.onAsyncException(ActiveMQConnection.java:1773)
>> 	at
>> org 
>> .apache 
>> .activemq.ActiveMQConnection.onException(ActiveMQConnection.java:1790)
>> 	at
>> org 
>> .apache 
>> .activemq.transport.TransportFilter.onException(TransportFilter.java: 
>> 99)
>> 	at
>> org 
>> .apache 
>> .activemq 
>> .transport.ResponseCorrelator.onException(ResponseCorrelator.java:114)
>> 	at
>> org 
>> .apache 
>> .activemq.transport.TransportFilter.onException(TransportFilter.java: 
>> 99)
>> 	at
>> org 
>> .apache 
>> .activemq.transport.TransportFilter.onException(TransportFilter.java: 
>> 99)
>> 	at
>> org 
>> .apache 
>> .activemq 
>> .transport 
>> .WireFormatNegotiator.onException(WireFormatNegotiator.java:152)
>> 	at
>> org 
>> .apache 
>> .activemq 
>> .transport.InactivityMonitor.onException(InactivityMonitor.java:244)
>> 	at
>> org 
>> .apache 
>> .activemq 
>> .transport.TransportSupport.onException(TransportSupport.java:96)
>> 	at
>> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java: 
>> 189)
>> 	at java.lang.Thread.run(Thread.java:619)
>> Caused by: java.io.EOFException
>> 	at java.io.DataInputStream.readInt(DataInputStream.java:375)
>> 	at
>> org 
>> .apache 
>> .activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:269)
>> 	at
>> org 
>> .apache 
>> .activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java: 
>> 210)
>> 	at
>> org 
>> .apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java: 
>> 202)
>> 	at
>> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java: 
>> 185)
>> 	... 1 more
>>
>> Thanks for all...
>>
>>
>> mffrench wrote:
>>>
>>> Well I'm not agree with you. As specified by the JMS specification  
>>> the
>>> Connection object supports an optional ExceptionListener.
>>> ExceptionListener are the best way to treat the disconnection  
>>> exception or
>>> other exception BUT without ExceptionListener you should get a
>>> disconnection exception in the JMS listener anyway. For me the fact  
>>> JMS
>>> listener do not receive any disconnection exception without an
>>> ExceptionListener seems to be a bug from activemq... I'll implement  
>>> the
>>> ExceptionListener to check the behavior of ActiveMQ and I keep you in
>>> touch.
>>>
>>> Thanks for all.
>>>
>>> ++
>>>
>>>
>>> Gary Tully wrote:
>>>>
>>>> ah ok, I think you need an exception listener:
>>>> see:
>>>> http://java.sun.com/products/jms/javadoc-102a/javax/jms/Connection.html#setExceptionListener(javax.jms.ExceptionListener)
>>>>
>>>> On logging" see the activemq FAQ entry on
>>>> logging<http://activemq.apache.org/how-can-i-enable-detailed-logging.html

>>>> >
>>>>
>>>> 2009/3/18 mffrench <mffrench@axway.com>
>>>>
>>>>>
>>>>> yes my client is connected... and it only receive message (it's a  
>>>>> jms
>>>>> listener).
>>>>> can you tell me what options I must set to enable the log level  
>>>>> in the
>>>>> activemq client ?
>>>>>
>>>>> Some netstat
>>>>>
>>>>> Before killing :
>>>>>
>>>>> tcp6       0      0 *:61611                 *:*
>>>>> LISTEN
>>>>> 18673/java
>>>>> tcp6       0      0 localhost:35073         localhost:61611
>>>>> ESTABLISHED18727/java
>>>>> tcp6       0      0 localhost:61611         localhost:35073
>>>>> ESTABLISHED18673/java
>>>>>
>>>>> After killing :
>>>>>
>>>>> tcp6       0      0 localhost:61611         localhost:35073
>>>>> TIME_WAIT  -
>>>>>
>>>>> The listener is alway running and no exception is raised...
>>>>>
>>>>>
>>>>> Gary Tully wrote:
>>>>>>
>>>>>> Is your client really connected? Has it sent or received a  
>>>>>> message.
>>>>> With
>>>>>> activemq, the connection is created on demand on first but not  
>>>>>> when
>>>>> the
>>>>>> connection factory is created.
>>>>>> Can you enable debug logging and see what additional information
 
>>>>>> you
>>>>> can
>>>>>> gather?
>>>>>>
>>>>>> 2009/3/18 mffrench <mffrench@axway.com>
>>>>>>
>>>>>>>
>>>>>>> Here's my JNDI configuration :
>>>>>>>
>>>>>>> java.naming.factory.initial =
>>>>>>> org.apache.activemq.jndi.ActiveMQInitialContextFactory
>>>>>>> java.naming.provider.url = tcp://127.0.0.1:61611
>>>>>>> connectionFactoryNames = MICHEL
>>>>>>> queue.TEST = TEST
>>>>>>>
>>>>>>> As you can see I provide a brokerUrl with tcp://... and I never
 
>>>>>>> get
>>>>> any
>>>>>>> exceptions...
>>>>>>>
>>>>>>>
>>>>>>> Gary Tully wrote:
>>>>>>>>
>>>>>>>> If this is 5.2, and you do not provide a brokerUrl to your
 
>>>>>>>> activemq
>>>>>>>> connection factory then the failover transport will be used
by
>>>>> default
>>>>>>> and
>>>>>>>> it will block waiting to reconnect.
>>>>>>>> Provide a brokerUrl and use "tcp://..." and you will get
the
>>>>> exception
>>>>>>> you
>>>>>>>> require.
>>>>>>>>
>>>>>>>> 2009/3/18 mffrench <mffrench@axway.com>
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Hello,
>>>>>>>>>
>>>>>>>>> if I kill ActiveMQ, there is no exception raised to my
 
>>>>>>>>> connected
>>>>> JMS
>>>>>>>>> listener and so my client doesn't detect the link is
broken  
>>>>>>>>> with
>>>>>>>>> ActiveMQ.
>>>>>>>>> I
>>>>>>>>> think this is a bug which should be corrected. Is there
any  
>>>>>>>>> issue
>>>>>>> about
>>>>>>>>> this
>>>>>>>>> ?
>>>>>>>>>
>>>>>>>>> Thanks
>>>>>>>>> --
>>>>>>>>> View this message in context:
>>>>>>>>>
>>>>>>>
>>>>> http://www.nabble.com/Killing-activemq-with-connected-JMS-listener-tp22576446p22576446.html
>>>>>>>>> Sent from the ActiveMQ - User mailing list archive at
 
>>>>>>>>> Nabble.com.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> http://blog.garytully.com
>>>>>>>>
>>>>>>>> Open Source SOA
>>>>>>>> http://FUSESource.com
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> View this message in context:
>>>>>>>
>>>>> http://www.nabble.com/Killing-activemq-with-connected-JMS-listener-tp22576446p22583895.html
>>>>>>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> http://blog.garytully.com
>>>>>>
>>>>>> Open Source SOA
>>>>>> http://FUSESource.com
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://www.nabble.com/Killing-activemq-with-connected-JMS-listener-tp22576446p22585079.html
>>>>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>> -- 
>>>> http://blog.garytully.com
>>>>
>>>> Open Source SOA
>>>> http://FUSESource.com
>>>>
>>>>
>>>
>>>
>>
>> -- 
>> View this message in context:
>> http://www.nabble.com/Killing-activemq-with-connected-JMS-listener-tp22576446p22596871.html
>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Killing-activemq-with-connected-JMS-listener-tp22576446p22597960.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Mime
View raw message