You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Hiranya Jayathilaka (JIRA)" <ji...@apache.org> on 2010/12/01 21:17:10 UTC

[jira] Commented: (TRANSPORTS-28) Error in JMS Sender When Producer Caching is Enabled

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

Hiranya Jayathilaka commented on TRANSPORTS-28:
-----------------------------------------------

There are couple of possible solutions to this problem:

1. We can 'fix' the error and make sure that the connection factory uses the destination defined in the EPR to create the shared producer
2. We can consider that when caching is enabled, a connection factory can be used to send messages only to a single destination and mandate the transport.jms.Destination property

What is the best way of fixing this?

> 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: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org