You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Jose Luis Pedrosa (JIRA)" <ji...@apache.org> on 2013/10/31 12:35:19 UTC

[jira] [Created] (AMQNET-457) WCF Dispatching/Execution of messages happens in "ActiveMQ Task" thread

Jose Luis Pedrosa created AMQNET-457:
----------------------------------------

             Summary: WCF Dispatching/Execution of messages happens in "ActiveMQ Task" thread
                 Key: AMQNET-457
                 URL: https://issues.apache.org/jira/browse/AMQNET-457
             Project: ActiveMQ .Net
          Issue Type: Bug
    Affects Versions: 1.6.0
         Environment: IIS 7.5
.Net 4.
            Reporter: Jose Luis Pedrosa
            Assignee: Jim Gomes


Hi

When using the WCF Connector, the execution of the method corresponding to that message, happens in the same thread as the listener, this make the IIS single thread execution, which makes it not valid for production environments.

I guess this design is caused by the imposibility of Nack a single message with current NMS API. 

Example log, Incoming message:
{noformat}
2013-10-31 12:16:23,156 [ActiveMQ Task] DEBUG MessageConsumer - Decoding message
2013-10-31 12:16:23,157 [ActiveMQ Task] DEBUG MessageConsumer - <s:Envelope xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:s="http://www.w3.org/2003/05/soap-envelope">
  <s:Header>
    <a:Action s:mustUnderstand="1">XXXXXXXXXXXXXXXXXXXXXX</a:Action>
    <a:To>tcp://localhost:61616</a:To>
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <ProcessEvent xmlns="XXXXXXXXXXXXXXXXXXXX">
      <ev xsi:type="XXXXXXXXXXXXXX">
        <Customer xsi:nil="true" />       
      </ev>
    </ProcessEvent>
  </s:Body>
</s:Envelope>
2013-10-31 12:16:23,157 [ActiveMQ Task] DEBUG NmsInputChannelListener - Dispatching incoming message
{noformat}
Execution of the application code:
{noformat}
2013-10-31 12:16:23,157 [ActiveMQ Task] DEBUG QueueConsumerApplication - ProcessEvent Start
2013-10-31 12:16:23,157 [ActiveMQ Task] DEBUG QueueConsumerApplication - ProcessEvent end
{noformat}
Execution of the Ack after application has exit
{noformat}
2013-10-31 12:16:23,157 [ActiveMQ Task] DEBUG MessageConsumer - Session sending Ack: MessageAck[ commandId = 0, responseRequired = False, Destination = queue://ExampleApplicationQueue, TransactionId = , ConsumerId = ID:JLPedrosa-60663-635188168770182298-1:0:1:1, AckType = 2, FirstMessageId = ID:JLPedrosa-60805-1382980580178-5:8:1:1:11025782:0, LastMessageId = ID:JLPedrosa-60805-1382980580178-5:8:1:1:11025782:0, MessageCount = 1, PoisonCause =  ]
{noformat}



--
This message was sent by Atlassian JIRA
(v6.1#6144)