activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Albert Strasheim (JIRA)" <j...@apache.org>
Subject [jira] Updated: (AMQCPP-90) Openwire Session doesn't run its MessageListeners from a single thread
Date Fri, 16 Mar 2007 11:13:34 GMT

     [ https://issues.apache.org/activemq/browse/AMQCPP-90?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Albert Strasheim updated AMQCPP-90:
-----------------------------------

    Attachment: MultipleConsumerTest.cpp

Here's the C++. Will attach Java next. I had these attached, but my previous attempt to submit
the issue timed out and I forgot to add them again.

> Openwire Session doesn't run its MessageListeners from a single thread
> ----------------------------------------------------------------------
>
>                 Key: AMQCPP-90
>                 URL: https://issues.apache.org/activemq/browse/AMQCPP-90
>             Project: ActiveMQ C++ Client
>          Issue Type: Bug
>          Components: Openwire
>    Affects Versions: 2.0
>            Reporter: Albert Strasheim
>         Assigned To: Nathan Mittler
>             Fix For: 2.0
>
>         Attachments: MultipleConsumerTest.cpp
>
>
> According to the JMS 1.1 specification, section 4.4.14 Serial Execution of Client Code:
> For this reason, JMS does not cause concurrent execution of client code unless
> a client explicitly requests it. One way this is done is to define that a session
> serializes all asynchronous delivery of messages.
> To receive messages asynchronously, a client registers an object that
> implements the JMS MessageListener interface with a MessageConsumer. In effect,
> a Session uses a single thread to run all its MessageListeners. While the thread is
> busy executing one listener, all other messages to be asynchronously delivered
> to the session must wait.
> In the attached code I have 5 consumers created from the same session, all with the same
message listener instance that receives a message, prints something and then sleeps for a
while. When running the C++ code, one sees that 5 messages (there are 5 consumers) are delivered
at approximately the same time. Under Java, one only sees 1 message delivered per interval.
> This seems to indicate that the Openwire Session doesn't run its MessageListeners from
a single thread. This can cause problems if the user's MessageListener isn't thread safe.

-- 
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