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

Rob Godfrey commented on QPID-6249:
-----------------------------------

So, that's interesting... we see the heartbeating working (the first few frames 
here - heartbeating is sent as an empty frame):

2014-11-27 11:36:15,038 [QpidConnectionOutputThread-0] DEBUG FRM - 
SEND[testserver/127.0.0.1:5671|0] : null
2014-11-27 11:38:15,045 [QpidConnectionOutputThread-0] DEBUG FRM - 
SEND[testserver/127.0.0.1:5671|0] : null
2014-11-27 11:40:15,258 [QpidConnectionOutputThread-0] DEBUG FRM - 
SEND[testserver/127.0.0.1:5671|0] : null
2014-11-27 11:41:14,502 [QpidConnectionInputThread-0] DEBUG FRM - 
RECV[testserver/127.0.0.1:5671|0] : 
End{error=Error{condition=unauthorized-access}}

but the server then cuts us off before the next heartbeat (which I presume 
would be at 11:41:15).

Looking at the open from the server we see:

2014-11-27 11:41:19,643 [QpidConnectionInputThread-0] DEBUG FRM - 
RECV[testserver/127.0.0.1:5671|0] : 
Open{containerId=12424d64ba15260c8edef2dd36747c22_GT-SERVER-01,maxFrameSize=65536,channelMax=255,idleTimeOut=240000}

which to me says that there is a 4 minute idle timeout, and we have been 
sending heartbeats every 2 minutes (as I would expect - it is designed to send 
after half the idle timeout period has gone by).  Therefore I don't think this 
is a problem with the client handling of keep-alive/heartbeating.   

I'm not terribly familiar with Azure Service Bus,  so I'm not sure if this 
(unauthorized-access):

2014-11-27 11:41:14,502 [QpidConnectionInputThread-0] DEBUG FRM - 
RECV[testserver/127.0.0.1:5671|0] : 
End{error=Error{condition=unauthorized-access}}

is the error that you would get if heartbeating wasn't in place... But I don't 
see that the client is doing anything wrong here.


> [AMQP 1.0] - JMS AMQP 1.0 Client not sending keep-alive
> -------------------------------------------------------
>
>                 Key: QPID-6249
>                 URL: https://issues.apache.org/jira/browse/QPID-6249
>             Project: Qpid
>          Issue Type: Bug
>          Components: JMS AMQP 1.0 Client
>            Reporter: Mathias Wiberg
>
> I'm using the 0.32 version of the Qpid JMS framework to connect to a 
> Microsoft Azure Service bus broker (version 2.1). When there is no traffic 
> over the link I'm getting disconnected each XX minutes (depending on the 
> timeout setting in Azure). So it seems like the client doesn't send 
> keep-alive?
> Here is the stacktrace from the client:
> 2014-11-27 10:03:10,355 [QpidConnectionInputThread-0] WARN  
> o.s.j.c.SingleConnectionFactory - Encountered a JMSException - resetting the 
> underlying JMS Connectionorg.apache.qpid.amqp_1_0.jms.SessionException: null
>         at 
> org.apache.qpid.amqp_1_0.jms.impl.SessionImpl$1.remoteEnd(SessionImpl.java:124)
>  ~[qpid-amqp-1-0-client-jms-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at 
> org.apache.qpid.amqp_1_0.transport.SessionEndpoint.receiveEnd(SessionEndpoint.java:219)
>  [qpid-amqp-1-0-common-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at 
> org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.receiveEnd(ConnectionEndpoint.java:609)
>  [qpid-amqp-1-0-common-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at org.apache.qpid.amqp_1_0.type.transport.End.invoke(End.java:75) 
> [qpid-amqp-1-0-common-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at 
> org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.receive(ConnectionEndpoint.java:802)
>  [qpid-amqp-1-0-common-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at 
> org.apache.qpid.amqp_1_0.framing.FrameHandler.parse(FrameHandler.java:241) 
> [qpid-amqp-1-0-common-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at 
> org.apache.qpid.amqp_1_0.framing.ConnectionHandler.parse(ConnectionHandler.java:75)
>  [qpid-amqp-1-0-common-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at 
> org.apache.qpid.amqp_1_0.client.TCPTransportProvier.doRead(TCPTransportProvier.java:217)
>  [qpid-amqp-1-0-client-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at 
> org.apache.qpid.amqp_1_0.client.TCPTransportProvier.access$000(TCPTransportProvier.java:43)
>  [qpid-amqp-1-0-client-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at 
> org.apache.qpid.amqp_1_0.client.TCPTransportProvier$1.run(TCPTransportProvier.java:158)
>  [qpid-amqp-1-0-client-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67]
> 2014-11-27 10:03:10,372 [Thread-261] WARN  o.s.j.c.SingleConnectionFactory - 
> Encountered a JMSException - resetting the underlying JMS Connection 
> org.apache.qpid.amqp_1_0.jms.MessageConsumerException: Force detach the link 
> because the session is remotely ended.
>         at 
> org.apache.qpid.amqp_1_0.jms.impl.MessageConsumerImpl$1.run(MessageConsumerImpl.java:141)
>  ~[qpid-amqp-1-0-client-jms-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67]
> 2014-11-27 10:03:10,372 [QpidConnectionInputThread-0] DEBUG 
> o.s.j.c.SingleConnectionFactory - Closing shared JMS Connection: 
> org.apache.qpid.amqp_1_0.jms.impl.ConnectionImpl@21d28252
> 2014-11-27 10:03:10,372 
> [org.springframework.jms.listener.DefaultMessageListenerContainer#0-198] WARN 
>  o.s.j.l.DefaultMessageListenerContainer - Setup of JMS message listener 
> invoker failed for destination 
> 'org.apache.qpid.amqp_1_0.jms.impl.QueueImpl@e4f134ac' - trying to recover. 
> Cause: Closed javax.jms.IllegalStateException: Closed
>         at 
> org.apache.qpid.amqp_1_0.jms.impl.SessionImpl.checkClosed(SessionImpl.java:326)
>  ~[qpid-amqp-1-0-client-jms-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at 
> org.apache.qpid.amqp_1_0.jms.impl.SessionImpl.getTransacted(SessionImpl.java:222)
>  ~[qpid-amqp-1-0-client-jms-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at 
> org.springframework.jms.listener.AbstractMessageListenerContainer.commitIfNecessary(AbstractMessageListenerContainer.java:573)
>  ~[spring-jms-4.0.1.RELEASE.jar:4.0.1.RELEASE]
>         at 
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:358)
>  ~[spring-jms-4.0.1.RELEASE.jar:4.0.1.RELEASE]
>         at 
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:263)
>  ~[spring-jms-4.0.1.RELEASE.jar:4.0.1.RELEASE]
>         at 
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1102)
>  ~[spring-jms-4.0.1.RELEASE.jar:4.0.1.RELEASE]
>         at 
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1094)
>  ~[spring-jms-4.0.1.RELEASE.jar:4.0.1.RELEASE]
>         at 
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:991)
>  ~[spring-jms-4.0.1.RELEASE.jar:4.0.1.RELEASE]
>         at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67]
> 2014-11-27 10:03:16,336 [QpidConnectionInputThread-0] DEBUG 
> o.s.j.c.SingleConnectionFactory - Could not close shared JMS Connection 
> javax.jms.JMSException: Error while closing connection: Timed out while 
> waiting for connection closure
>         at 
> org.apache.qpid.amqp_1_0.jms.impl.ConnectionImpl.close(ConnectionImpl.java:483)
>  ~[qpid-amqp-1-0-client-jms-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at 
> org.springframework.jms.connection.SingleConnectionFactory.closeConnection(SingleConnectionFactory.java:435)
>  [spring-jms-4.0.1.RELEASE.jar:4.0.1.RELEASE]
>         at 
> org.springframework.jms.connection.SingleConnectionFactory.resetConnection(SingleConnectionFactory.java:330)
>  [spring-jms-4.0.1.RELEASE.jar:4.0.1.RELEASE]
>         at 
> org.springframework.jms.connection.SingleConnectionFactory.onException(SingleConnectionFactory.java:310)
>  [spring-jms-4.0.1.RELEASE.jar:4.0.1.RELEASE]
>         at 
> org.springframework.jms.connection.ChainedExceptionListener.onException(ChainedExceptionListener.java:58)
>  [spring-jms-4.0.1.RELEASE.jar:4.0.1.RELEASE]
>         at 
> org.apache.qpid.amqp_1_0.jms.impl.SessionImpl$1.remoteEnd(SessionImpl.java:128)
>  [qpid-amqp-1-0-client-jms-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at 
> org.apache.qpid.amqp_1_0.transport.SessionEndpoint.receiveEnd(SessionEndpoint.java:219)
>  [qpid-amqp-1-0-common-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at 
> org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.receiveEnd(ConnectionEndpoint.java:609)
>  [qpid-amqp-1-0-common-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at org.apache.qpid.amqp_1_0.type.transport.End.invoke(End.java:75) 
> [qpid-amqp-1-0-common-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at 
> org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.receive(ConnectionEndpoint.java:802)
>  [qpid-amqp-1-0-common-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at 
> org.apache.qpid.amqp_1_0.framing.FrameHandler.parse(FrameHandler.java:241) 
> [qpid-amqp-1-0-common-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at 
> org.apache.qpid.amqp_1_0.framing.ConnectionHandler.parse(ConnectionHandler.java:75)
>  [qpid-amqp-1-0-common-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at 
> org.apache.qpid.amqp_1_0.client.TCPTransportProvier.doRead(TCPTransportProvier.java:217)
>  [qpid-amqp-1-0-client-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at 
> org.apache.qpid.amqp_1_0.client.TCPTransportProvier.access$000(TCPTransportProvier.java:43)
>  [qpid-amqp-1-0-client-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at 
> org.apache.qpid.amqp_1_0.client.TCPTransportProvier$1.run(TCPTransportProvier.java:158)
>  [qpid-amqp-1-0-client-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67]
> 2014-11-27 10:03:16,336 
> [org.springframework.jms.listener.DefaultMessageListenerContainer#0-198] INFO 
>  o.s.j.c.SingleConnectionFactory - Established shared JMS Connection: 
> org.apache.qpid.amqp_1_0.jms.impl.ConnectionImpl@3eee6cf0
> 2014-11-27 10:03:16,336 [Thread-261] DEBUG o.s.j.c.SingleConnectionFactory - 
> Closing shared JMS Connection: 
> org.apache.qpid.amqp_1_0.jms.impl.ConnectionImpl@3eee6cf0
> 2014-11-27 10:03:16,336 
> [org.springframework.jms.listener.DefaultMessageListenerContainer#0-198] 
> ERROR o.s.j.l.DefaultMessageListenerContainer - Could not refresh JMS 
> Connection for destination 
> 'org.apache.qpid.amqp_1_0.jms.impl.QueueImpl@e4f134ac' - retrying in 5000 ms. 
> Cause: Closed javax.jms.IllegalStateException: Closed
>         at 
> org.apache.qpid.amqp_1_0.jms.impl.ConnectionImpl.checkClosed(ConnectionImpl.java:501)
>  ~[qpid-amqp-1-0-client-jms-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at 
> org.apache.qpid.amqp_1_0.jms.impl.ConnectionImpl.start(ConnectionImpl.java:365)
>  ~[qpid-amqp-1-0-client-jms-0.32-SNAPSHOT.jar:0.32-SNAPSHOT]
>         at 
> org.springframework.jms.connection.SingleConnectionFactory$SharedConnectionInvocationHandler.invoke(SingleConnectionFactory.java:525)
>  ~[spring-jms-4.0.1.RELEASE.jar:4.0.1.RELEASE]
>         at com.sun.proxy.$Proxy72.start(Unknown Source) ~[na:na]
>         at 
> org.springframework.jms.listener.AbstractJmsListeningContainer.refreshSharedConnection(AbstractJmsListeningContainer.java:400)
>  ~[spring-jms-4.0.1.RELEASE.jar:4.0.1.RELEASE]
>         at 
> org.springframework.jms.listener.DefaultMessageListenerContainer.refreshConnectionUntilSuccessful(DefaultMessageListenerContainer.java:885)
>  [spring-jms-4.0.1.RELEASE.jar:4.0.1.RELEASE]
>         at 
> org.springframework.jms.listener.DefaultMessageListenerContainer.recoverAfterListenerSetupFailure(DefaultMessageListenerContainer.java:861)
>  [spring-jms-4.0.1.RELEASE.jar:4.0.1.RELEASE]
>         at 
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1013)
>  [spring-jms-4.0.1.RELEASE.jar:4.0.1.RELEASE]
>         at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67]
> 2014-11-27 10:03:22,355 
> [org.springframework.jms.listener.DefaultMessageListenerContainer#0-198] INFO 
>  o.s.j.c.SingleConnectionFactory - Established shared JMS Connection: 
> org.apache.qpid.amqp_1_0.jms.impl.ConnectionImpl@743a3153
> 2014-11-27 10:03:22,412 
> [org.springframework.jms.listener.DefaultMessageListenerContainer#0-198] INFO 
>  o.s.j.l.DefaultMessageListenerContainer - Successfully refreshed JMS 
> Connection



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to