Hi all,
I have been using qpid for more than a year now and never experienced any
connection problems before. However, currently we have some network issues in
our company and one of the effects is that qpid is constantly reporting errors
with sync. This is happening in test environment, but it has me worried what if
we encounter these problems in production env too, so I wonder whether this is
expected behavior or a manifestation of some bug.
So, we have a VPN connection to another country and as said, recently there are
some issues with network - we have 1%-10% packet loss (tested with ping). Other
applications are not seriously affected by this (TCP/IP handles resending and
such), but qpid seems to be. The broker (qpid v0.24) is in my 'local' network
and client (v0.24) that receives and sends msgs to it is on the other side of
the VPN connection. The client is constantly logging this:
17:11:08 568: ERROR Error getting message; error receiving message from the
queue!
javax.jms.JMSException: Exception while receiving:timed out waiting for sync:
complete = 139129, point = 139133
at
org.apache.qpid.client.AMQSession.toJMSException(AMQSession.java:3465)
at
org.apache.qpid.client.BasicMessageConsumer.receive(BasicMessageConsumer.java:438)
at com.halcom.qw.QWrapper.getMessage(QWrapper.java:133)
at com.halcom.qw.QWrapper.getMessage(QWrapper.java:91)
at threads.SendSmsThread.run(SendSmsThread.java:87)
Caused by: org.apache.qpid.transport.SessionException: timed out waiting for
sync: complete = 139129, point = 139133
at org.apache.qpid.transport.Session.sync(Session.java:867)
at org.apache.qpid.transport.Session.sync(Session.java:837)
at
org.apache.qpid.client.BasicMessageConsumer_0_10.getMessageFromQueue(BasicMessageConsumer_0_10.java:402)
at
org.apache.qpid.client.BasicMessageConsumer.receive(BasicMessageConsumer.java:420)
... 3 more
Note that some classes here are from our app.
The main problem is that every time this problem with the connection seems to
occur, the client waits for the sync timeout (which by default is 1 min, I have
it set to 10s) and during that time it doesn't process any messages. So from
time to time (which can be every minute, depending on the msg quantity and
network problems) we have a period of 10s when no messages are handled.
The problem with connection manifests at time of connecting to queues too, like
that:
org.apache.qpid.client.JMSAMQException: cannot create session
at
org.apache.qpid.client.AMQConnectionDelegate_0_10.createSession(AMQConnectionDelegate_0_10.java:122)
at
org.apache.qpid.client.AMQConnectionDelegate_0_10.createSession(AMQConnectionDelegate_0_10.java:94)
at
org.apache.qpid.client.AMQConnection.createSession(AMQConnection.java:667)
...
Caused by: org.apache.qpid.transport.SessionException: timed out waiting for
session to become open (state=NEW)
at org.apache.qpid.transport.Session.invoke(Session.java:688)
at org.apache.qpid.transport.Session.invoke(Session.java:627)
at
org.apache.qpid.transport.SessionInvoker.txSelect(SessionInvoker.java:141)
at
org.apache.qpid.client.AMQSession_0_10.createSession(AMQSession_0_10.java:200)
at
org.apache.qpid.client.AMQSession_0_10.<init>(AMQSession_0_10.java:178)
at
org.apache.qpid.client.AMQSession_0_10.<init>(AMQSession_0_10.java:225)
at
org.apache.qpid.client.AMQConnectionDelegate_0_10.createSession(AMQConnectionDelegate_0_10.java:111)
... 116 more
Other errors are reported too, depending on the stage in which the network
problem occurred. This errors are especially nasty, since - although I have
broker reconnect configured - the queue connections are not initialized and the
whole application sits and does nothing without them.
Please advise.
Regards,
Ales