[ 
https://issues.apache.org/jira/browse/TRANSPORTS-28?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12965835#action_12965835
 ] 

Andreas Veithen commented on TRANSPORTS-28:
-------------------------------------------

Why is the transport sender using a shared producer at all? The cost of 
creating a producer is negligible. Also, IIRC producers are not thread safe. 
Therefore there is no meaningful way to "share" it, except if we synchronize 
access to it, which would be much more costly than creating a new one.

> Error in JMS Sender When Producer Caching is Enabled
> ----------------------------------------------------
>
>                 Key: TRANSPORTS-28
>                 URL: https://issues.apache.org/jira/browse/TRANSPORTS-28
>             Project: Axis2 Transports
>          Issue Type: Bug
>          Components: JMS
>    Affects Versions: 1.1.0
>            Reporter: Hiranya Jayathilaka
>
> Define the following connection factory for the JMS sender (note the cache 
> level parameter):
>        <parameter name="default">
>             <parameter 
> name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
>             <parameter 
> name="java.naming.provider.url">tcp://localhost:61616</parameter>
>             <parameter 
> name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
>             <parameter name="transport.jms.CacheLevel">producer</parameter>
>         </parameter>
> Now try to send a message to the EPR 
> "jms:/SimpleStockQuoteService?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&amp;java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&amp;java.naming.provider.url=tcp://localhost:61616&amp;transport.jms.DestinationType=queue"
> Following exception is thrown:
> 2010-12-02 01:07:41,367 [-] [HttpServerWorker-1] ERROR Axis2Sender Unexpected 
> error during sending message out
> java.lang.UnsupportedOperationException: A destination must be specified.
>       at 
> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:195)
>       at 
> org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:241)
>       at 
> org.apache.axis2.transport.jms.JMSMessageSender.send(JMSMessageSender.java:141)
>       at 
> org.apache.axis2.transport.jms.JMSSender.sendOverJMS(JMSSender.java:203)
>       at 
> org.apache.axis2.transport.jms.JMSSender.sendMessage(JMSSender.java:150)
>       at 
> org.apache.axis2.transport.base.AbstractTransportSender.invoke(AbstractTransportSender.java:112)
>       at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443)
>       at 
> org.apache.axis2.description.OutOnlyAxisOperationClient.executeImpl(OutOnlyAxisOperation.java:278)
>       at 
> org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
>       at 
> org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:403)
>       at org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:57)
>       at 
> org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:219)
>       at 
> org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:253)
>       at 
> org.apache.synapse.endpoints.AddressEndpoint.send(AddressEndpoint.java:59)
>       at 
> org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:173)
>       at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:178)
>       at 
> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:173)
>       at 
> org.apache.synapse.transport.nhttp.ServerWorker.processEntityEnclosingMethod(ServerWorker.java:416)
>       at 
> org.apache.synapse.transport.nhttp.ServerWorker.run(ServerWorker.java:267)
>       at 
> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:58)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>       at java.lang.Thread.run(Thread.java:619)
> Without the cache level parameter in the connection factory configuration, 
> above will work fine.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to