Java client tries to resume a session that was terminated due to an error
-------------------------------------------------------------------------
Key: QPID-1544
URL: https://issues.apache.org/jira/browse/QPID-1544
Project: Qpid
Issue Type: Bug
Components: Java Client
Affects Versions: M4
Reporter: Rajith Attapattu
Priority: Blocker
Fix For: M4
f the session was closed due to an error, IMO it should throw the exception up
the stack and should not try to reconnect.
It should only attempt a reconnect if the underlying connection was broken due
to network issue or broker crashing.
When running the c++ broker in persistent mode and when the journal is full,
the broker sends the following error. "Enqueue capacity threshold exceeded on
queue
"testQueueD". (JournalImpl.cpp:538)"
Looking at the java client trace you could see that it receives this error.
"ConnectionClose(replyCode=FRAMING_ERROR, replyText=Enqueue capacity
threshold exceeded on queue "testQueueD". (JournalImpl.cpp:538))"
But instead of throwing this error up the stack, the java client tries to
create a new connection to the broker and tries to resume the session as
evident by the following logs.
IoReceiver - localhost/127.0.0.1:5672 2008-12-15 17:06:50,867 DEBUG
[apache.qpid.transport.Connection] RECV: [conn:13b8f864] AMQP.1 0-10
IoReceiver - localhost/127.0.0.1:5672 2008-12-15 17:06:50,867 DEBUG
[apache.qpid.transport.Connection] RECV: [conn:13b8f864] AMQP.1 0-10
IoReceiver - localhost/127.0.0.1:5672 2008-12-15 17:06:50,868 DEBUG
[apache.qpid.transport.Connection] RECV: [conn:13b8f864] ch=0
ConnectionStart(serverProperties={qpid.federation_tag=ef5b9951-7798-41a1-8f80-0ff30b8f093a},
mechanisms=[ANONYMOUS], locales=[en_US])
IoReceiver - localhost/127.0.0.1:5672 2008-12-15 17:06:50,954 DEBUG
[apache.qpid.transport.Connection] RECV: [conn:13b8f864] ch=1
SessionDetached(name...@36baa466, code=SESSION_BUSY)
IoReceiver - localhost/127.0.0.1:5672 2008-12-15 17:06:50,954 DEBUG
[apache.qpid.transport.Connection] RECV: [conn:13b8f864] ch=1
SessionDetached(name...@36baa466, code=SESSION_BUSY)
IoReceiver - localhost/127.0.0.1:5672 2008-12-15 17:06:53,597 DEBUG
[apache.qpid.transport.Connection] RECV: [conn:13b8f864] ch=1
SessionDetached(name...@177f409c, code=NOT_ATTACHED)
IoReceiver - localhost/127.0.0.1:5672 2008-12-15 17:06:53,597 DEBUG
[apache.qpid.transport.Connection] RECV: [conn:13b8f864] ch=1
SessionDetached(name...@177f409c, code=NOT_ATTACHED)
The java client would then time out trying to resume that session.
timed out waiting for sync: complete = 180058, point = 185059
org.apache.qpid.transport.SessionException: timed out waiting for sync:
complete = 180058, point = 185059
at org.apache.qpid.transport.Session.sync(Session.java:568)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.