activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nathan Mittler (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (AMQCPP-90) Openwire Session doesn't run its MessageListeners from a single thread
Date Sun, 18 Mar 2007 11:44:36 GMT

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

Nathan Mittler resolved AMQCPP-90.
----------------------------------

    Resolution: Fixed

Fixed in trunk.  I ran with the sample application and verfied that messages are always received
in the same thread.

> 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, MultipleConsumerTest.java
>
>
> 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