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.

Reply via email to