activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Celso Pinto (JIRA)" <j...@apache.org>
Subject [jira] Created: (AMQ-1807) Activemq stops dispatching messages aborting transaction (STOMP)
Date Wed, 18 Jun 2008 10:13:00 GMT
Activemq stops dispatching messages aborting transaction (STOMP)
----------------------------------------------------------------

                 Key: AMQ-1807
                 URL: https://issues.apache.org/activemq/browse/AMQ-1807
             Project: ActiveMQ
          Issue Type: Bug
          Components: Transport
    Affects Versions: 5.1.0
         Environment: Linux, JDK 1.6_06b2
            Reporter: Celso Pinto
            Priority: Critical


As requested by Dejan Bosanac, I'm adding this ticket. I'm willing to help fix it, ie. I can
get my hands dirty, but I must have some pointers on where to look because (unfortunately)
I don't have much time to learn ActiveMQ's internals and architecture.

A copy of the email I sent to the users mailing-list:
=============================================

I'm currently struggling to understand the reason behind that's causing the behaviour described
in the subject: I'm connecting to activemq via stomp on a python app. Because I need to have
the messages rolled back in case of some processing failure I'm wrapping the message processing
in the following way:

 message received -> start transaction -> ack message in transaction ->
process message -> if no exception commit tx, else rollback transaction


AFAIK, this is the only way of making message unacknowledgement possible with stomp. Also,
this is a single client connection, ie. I'm using a
single client connection to create a message processing daemon, all messages are sent and
received via this single connection to the MQ server.

Here's a telnet session that can be used to reproduce the problem (open jconsole and send
5 text messages to the queue):

% telnet localhost 61613
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
CONNECT

^@
CONNECTED
session:ID:starfish-53281-1213736462979-2:2


SUBSCRIBE
destination: /queue/testq
ack: client
activemq.prefetchSize: 1

^@
MESSAGE
message-id:ID:starfish-53281-1213736462979-3:3:1:1:1
destination:/queue/testq
timestamp:1213736837743
expires:0
priority:0

1
BEGIN
transaction: 1

^@
ACK
message-id:ID:starfish-53281-1213736462979-3:3:1:1:1
transaction: 1

^@
MESSAGE
message-id:ID:starfish-53281-1213736462979-3:4:1:1:1
destination:/queue/testq
timestamp:1213736840224
expires:0
priority:0

2
MESSAGE
message-id:ID:starfish-53281-1213736462979-3:5:1:1:1
destination:/queue/testq
timestamp:1213736842611
expires:0
priority:0

3
ABORT   
transaction: 1

^@
BEGIN 
transaction:2

^@
ACK
message-id:ID:starfish-53281-1213736462979-3:4:1:1:1
transaction:2

^@
ABORT
transaction:2

^@
ACK
message-id:ID:starfish-53281-1213736462979-3:5:1:1:1

^@


I see a couple of issues here:

#1) even though I specified activemq.prefetchSize to 1 in the subscription command, the connector
dispatches two messages in a row

#2) no more messages are dispatched after aborting the transaction/acknowledging the last
received message. Even if the second message isn't wrapped in a transaction, message dispatch
stops there.

To add to the confusion, if I don't use transactions _at all_, my client keeps getting messages,
one by one, ie. no two messages are sent together, I only get a new message after ACK'ing
the previous one.

I think I may be stepping into the realms of a buggy STOMP connector. Please tell me if I'm
missing something obvious that fixes this issue
(hence making it a non-issue) or if indeed the STOMP connector has problems.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message