JMS exceptions in Mule 2.2.1

View: New views
12 Messages — Rating Filter:   Alert me  

JMS exceptions in Mule 2.2.1

by ron.fulkerson :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello,

I am using Mule 2.2.1 with ActiveMQ 5.2.0, and getting several JMS exceptions, such as:
Cannot publish to a deleted Destination: temp-topic://ID:magnus-63160-1245885575383-0:4:5

The exceptions appear intermittently, but often enough to easily reproduce.  The problem seems to stem from duplicate messages being received on an inbound endpoint.  These duplicate messages use the same reply-to temporary topic, and my guess is that 1 reply uses the temporary reply topic and then deletes it, leaving the duplicated message without a reply topic.

The core problem of duplicate messages may be related to http://www.mulesource.org/jira/browse/MULE-3823.

I have attached my configuration files.  A message is sent out on ZVCRouter (in transports.xml) and received by ZVCService (in zvcontroller.xml).  The result is then passed back in a request-response manner.  These processes run in separate VM's - with the exceptions seen on the ZVCService side.  Any help would be greatly appreciated.

Thanks,
Ron

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesource.org/schema/mule/core/2.2"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:spring="http://www.springframework.org/schema/beans"
       xmlns:vm="http://www.mulesource.org/schema/mule/vm/2.2"
       xmlns:jms="http://www.mulesource.org/schema/mule/jms/2.2"
       xsi:schemaLocation="
                        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
                        http://www.mulesource.org/schema/mule/core/2.2 http://www.mulesource.org/schema/mule/core/2.2/mule.xsd
                        http://www.mulesource.org/schema/mule/vm/2.2 http://www.mulesource.org/schema/mule/vm/2.2/mule-vm.xsd
                        http://www.mulesource.org/schema/mule/jms/2.2 http://www.mulesource.org/schema/mule/jms/2.2/mule-jms.xsd">      
       
        <!-- A description of this configuration  -->  
    <description>
        ZViDEO transport and routing definitions.  End points are defined in separate files which extend these definitions.
    </description>

        <!-- Define our connectors -->
    <jms:activemq-connector name="jmsConnector" brokerURL="tcp://localhost:4101" specification="1.1"/>
       
        <!-- Define custom transformers -->
        <custom-transformer name="ExceptionMessageToString" class="com.zvideo.vware.services.mule.transformers.ExceptionMessageToString" />
       
        <!-- Define our end points -->
        <jms:endpoint name="ZVCCommands" topic="zvc.commands" responseTimeout="15000" connector-ref="jmsConnector"/>
        <jms:endpoint name="VXCommands" topic="vx.commands" connector-ref="jmsConnector"/>
        <jms:endpoint name="VACommands" topic="va.commands" connector-ref="jmsConnector"/>
        <vm:endpoint name="ZVCOutgoing" path="zvc.outgoing.localhost"/>
        <vm:endpoint name="VXOutgoing" path="vx.outgoing"/>
        <vm:endpoint name="VAOutgoing" path="va.outgoing"/>

        <!-- Set end points to be synchronous by default -->
        <configuration defaultSynchronousEndpoints="true"/>

        <!-- Define the service model -->
        <model name="ServiceModel">
       
                <service name="VARouter">
                        <inbound>
                                <inbound-endpoint ref="VAOutgoing"/>
                        </inbound>
                        <outbound>
                                <pass-through-router>
                                        <outbound-endpoint ref="VACommands">
                                                <jms:object-to-jmsmessage-transformer/>
                                        </outbound-endpoint>
                                </pass-through-router>
                        </outbound>
                </service>
                <service name="VXRouter">
                        <inbound>
                                <inbound-endpoint ref="VXOutgoing"/>
                        </inbound>
                        <outbound>
                                <pass-through-router>
                                        <outbound-endpoint ref="VXCommands">
                                                <jms:object-to-jmsmessage-transformer/>
                                        </outbound-endpoint>
                                </pass-through-router>
                        </outbound>
                </service>
                <service name="ZVCRouter">
                        <inbound>
                                <inbound-endpoint ref="ZVCOutgoing"/>
                        </inbound>
                        <outbound>
                                <pass-through-router>
                                        <outbound-endpoint ref="ZVCCommands">
                                                <jms:object-to-jmsmessage-transformer/>
                                        </outbound-endpoint>
                                </pass-through-router>
                        </outbound>
                </service>
        </model>
       
</mule>

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesource.org/schema/mule/core/2.2"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:vm="http://www.mulesource.org/schema/mule/vm/2.2"
       xmlns:jms="http://www.mulesource.org/schema/mule/jms/2.2"
       xsi:schemaLocation="
                        http://www.mulesource.org/schema/mule/core/2.2 http://www.mulesource.org/schema/mule/core/2.2/mule.xsd
                        http://www.mulesource.org/schema/mule/vm/2.2 http://www.mulesource.org/schema/mule/vm/2.2/mule-vm.xsd
                        http://www.mulesource.org/schema/mule/jms/2.2 http://www.mulesource.org/schema/mule/jms/2.2/mule-jms.xsd">                
                 
    <description>
        ZViDEO ZVC service definition
    </description>
       
        <model name="ServiceModel" inherit="true">
                <service name="ZVCService">
                        <inbound>
                                <inbound-endpoint synchronous="true" ref="ZVCCommands">
                                        <jms:jmsmessage-to-object-transformer/>
                                </inbound-endpoint>
                        </inbound>
                        <component class="com.zvideo.vware.services.zvcontroller.ZVCEndpoint" />
                </service>
        </model>
       
</mule>
---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email

Re: JMS exceptions in Mule 2.2.1

by Gerwin Postma :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Yes, this is a known issue in Mule. Here is another JIRA that talks about the same problem: http://www.mulesource.org/jira/browse/MULE-4386

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email



Re: JMS exceptions in Mule 2.2.1

by ron.fulkerson :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thanks for the response.  Is there any preferred strategy to deal with
this, or a way to a least suppress the exceptions?

Thanks again, I really appreciate the feedback.
--Ron

Puneet Gupta wrote:
> Yes, this is a known issue in Mule. Here is another JIRA that talks about the same problem: http://www.mulesource.org/jira/browse/MULE-4386
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>     http://xircles.codehaus.org/manage_email
>
>
>  

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email



Re: JMS exceptions in Mule 2.2.1

by Gerwin Postma :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

In 2.2 you can set disableTemporaryReplyToDestinations="true" attribute in the <jms:activemq-connector> tag.

If you are doing request/reply then specify a Real Topic/Queue using the <replyTo> tag in the in the outbound router.

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email



Re: JMS exceptions in Mule 2.2.1

by ron.fulkerson :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

Thanks for the reply.  I have tried you suggestion, but still have not
found any success.  I am setting the connection as:
<jms:activemq-connector name="jmsConnector"
brokerURL="tcp://localhost:4101" specification="1.1"
disableTemporaryReplyToDestinations="true"/>

I also added the reply-to tag to the outbound router, as follows:
        <service name="ZVCRouter">
            <inbound>
                <inbound-endpoint ref="ZVCOutgoing"/>
            </inbound>
            <outbound>
                <pass-through-router>
                    <outbound-endpoint ref="ZVCCommands">
                        <jms:object-to-jmsmessage-transformer/>
                    </outbound-endpoint>
                    <reply-to ref="ZVCResponses"/>
                </pass-through-router>            </outbound>
        </service>

The ZVCCommands and ZVCResponses topics exist, and the outbound message
is being received.  There is no response from the service though.  I
have tried to configure the service (shown below) with both an outbound
endpoint and without.  Neither seem to work.  The request/response MEP
documentation indicates that an outbound endpoint should not exist - is
this still the case using the reply-to tag?

Thanks for all the help,
Ron

<service name="ZVCService">
    <inbound>
        <inbound-endpoint synchronous="true" ref="ZVCCommands">
            <jms:jmsmessage-to-object-transformer/>
                </inbound-endpoint>
            </inbound>
        <component
class="com.zvideo.vware.services.zvcontroller.ZVCEndpoint" />
</service>

Puneet Gupta wrote:

> In 2.2 you can set disableTemporaryReplyToDestinations="true" attribute in the <jms:activemq-connector> tag.
>
> If you are doing request/reply then specify a Real Topic/Queue using the <replyTo> tag in the in the outbound router.
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>     http://xircles.codehaus.org/manage_email
>
>
>  

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email



Re: JMS exceptions in Mule 2.2.1

by ron.fulkerson :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

Thanks for the reply.  I tried your suggestions, but had no success.  
After applying the reply-to tag to my outbound router and disabling temp
jms topics, I did not receive a result from the service.  I have noticed
that 2.2.2 has had many tickets closed recently, so I am hoping for a
quick release which will include the needed fix.

Thanks,
Ron

Puneet Gupta wrote:

> In 2.2 you can set disableTemporaryReplyToDestinations="true" attribute in the <jms:activemq-connector> tag.
>
> If you are doing request/reply then specify a Real Topic/Queue using the <replyTo> tag in the in the outbound router.
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>     http://xircles.codehaus.org/manage_email
>
>
>  

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email



Re: JMS exceptions in Mule 2.2.1

by Gerwin Postma :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Here is a working example:

   <model name="jms-test-suite">
       <service name="Requester">
           <inbound>
               <vm:inbound-endpoint path="IN" synchronous="true"/>
           </inbound>
           <outbound>
               <chaining-router>
                   <jms:outbound-endpoint queue="RequestQueue"
synchronous="true"/>
                   <reply-to address="jms://ReplyQueue"/>
               </chaining-router>
           </outbound>
           <async-reply timeout="10000" failOnTimeout="true">
               <jms:inbound-endpoint queue="ReplyQueue"/>
               <single-async-reply-router/>
           </async-reply>
       </service>

       <service name="Replier">
           <inbound>
               <jms:inbound-endpoint queue="RequestQueue" synchronous="true"/>
           </inbound>
           <echo-component/>
       </service>
</model>

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email



Re: JMS exceptions in Mule 2.2.1

by ron.fulkerson :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

Thanks again for the reply.  I tried to update my configuration to match
the example, but still had no success.  I then adapted the echo example
in 2.2.1 to work similar to your example, but still no luck.  I have
pasted the adapted echo config below.

Thanks for the help,
Ron

<?xml version="1.0" encoding="utf-8"?>
<mule xmlns="http://www.mulesource.org/schema/mule/core/2.2"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:spring="http://www.springframework.org/schema/beans"
        xmlns:stdio="http://www.mulesource.org/schema/mule/stdio/2.2"
        xmlns:vm="http://www.mulesource.org/schema/mule/vm/2.2"
        xmlns:jms="http://www.mulesource.org/schema/mule/jms/2.2"
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
                           
http://www.mulesource.org/schema/mule/core/2.2 
http://www.mulesource.org/schema/mule/core/2.2/mule.xsd
                           
http://www.mulesource.org/schema/mule/stdio/2.2 
http://www.mulesource.org/schema/mule/stdio/2.2/mule-stdio.xsd
                           
http://www.mulesource.org/schema/mule/jms/2.2 
http://www.mulesource.org/schema/mule/jms/2.2/mule-jms.xsd
                            http://www.mulesource.org/schema/mule/vm/2.2 
http://www.mulesource.org/schema/mule/vm/2.2/mule-vm.xsd">
    <description>This is a simple component example that demostrates how
to expose a component over multiple transports.</description>

    <jms:activemq-connector name="jmsConnector"
brokerURL="tcp://localhost:4101" specification="1.1"
disableTemporaryReplyToDestinations="true" />
    <stdio:connector name="SystemStreamConnector" promptMessage="Please
enter something:" messageDelayTime="1000" />

    <model name="echoSample">
        <service name="EchoUMO">
            <inbound>
                <stdio:inbound-endpoint system="IN"/>
            </inbound>
            <outbound>
                <chaining-router>
                    <vm:outbound-endpoint path="echo" synchronous="true" />
                    <stdio:outbound-endpoint system="OUT"
synchronous="false" />
                </chaining-router>
            </outbound>
        </service>
        <service name="Requester">
            <inbound>
                <vm:inbound-endpoint path="echo" synchronous="true" />
            </inbound>
            <outbound>
                <chaining-router>
                    <jms:outbound-endpoint queue="RequestQueue"
synchronous="true" />
                    <reply-to address="jms://ReplyQueue" />
                </chaining-router>
            </outbound>
            <async-reply timeout="10000" failOnTimeout="true">
                <jms:inbound-endpoint queue="ReplyQueue" />
                <single-async-reply-router />
            </async-reply>
        </service>
        <service name="Replier">
            <inbound>
                <jms:inbound-endpoint queue="RequestQueue"
synchronous="true" />
            </inbound>
            <echo-component />
        </service>
    </model>
</mule>


Puneet Gupta wrote:

> Here is a working example:
>
>    <model name="jms-test-suite">
>        <service name="Requester">
>            <inbound>
>                <vm:inbound-endpoint path="IN" synchronous="true"/>
>            </inbound>
>            <outbound>
>                <chaining-router>
>                    <jms:outbound-endpoint queue="RequestQueue"
> synchronous="true"/>
>                    <reply-to address="jms://ReplyQueue"/>
>                </chaining-router>
>            </outbound>
>            <async-reply timeout="10000" failOnTimeout="true">
>                <jms:inbound-endpoint queue="ReplyQueue"/>
>                <single-async-reply-router/>
>            </async-reply>
>        </service>
>
>        <service name="Replier">
>            <inbound>
>                <jms:inbound-endpoint queue="RequestQueue" synchronous="true"/>
>            </inbound>
>            <echo-component/>
>        </service>
> </model>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>     http://xircles.codehaus.org/manage_email
>
>
>  

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email



Re: JMS exceptions in Mule 2.2.1

by Gerwin Postma :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I tested the below config in 2.2.1-EE and it worked fine. The log shows that the reply was sent to the correct replyTo destination

*****************
Please enter something:
hello
INFO  2009-07-02 13:09:33,216 [EchoUMO.2] org.mule.transport.vm.VMMessageDispatc
her: Connected: endpoint.outbound.vm://echo
INFO  2009-07-02 13:09:33,229 [jmsConnector.dispatcher.1] com.mulesource.mule.tr
ansport.jms.EeJmsMessageDispatcher: Connected: endpoint.outbound.jms://RequestQueue
INFO  2009-07-02 13:09:33,269 [ActiveMQ Session Task] org.mule.transport.jms.Jms
ReplyToHandler: Reply Message sent to: queue://ReplyQueue with correlationID:421
6f05e-6744-11de-8f0c-3b9c8e1bf4e7
INFO  2009-07-02 13:09:33,287 [SystemStreamConnector.dispatcher.1] org.mule.tran
sport.stdio.StdioMessageDispatcher: Connected: endpoint.outbound.stdio://system.out
hello
******************

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesource.org/schema/mule/core/2.2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:spring="http://www.springframework.org/schema/beans"
    xmlns:jms="http://www.mulesource.org/schema/mule/jms/2.2"
    xmlns:stdio="http://www.mulesource.org/schema/mule/stdio/2.2"
    xmlns:vm="http://www.mulesource.org/schema/mule/vm/2.2"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.mulesource.org/schema/mule/core/2.2 http://www.mulesource.org/schema/mule/core/2.2/mule.xsd
    http://www.mulesource.org/schema/mule/jms/2.2 http://www.mulesource.org/schema/mule/jms/2.2/mule-jms.xsd
    http://www.mulesource.org/schema/mule/stdio/2.2 http://www.mulesource.org/schema/mule/stdio/2.2/mule-stdio.xsd
    http://www.mulesource.org/schema/mule/vm/2.2 http://www.mulesource.org/schema/mule/vm/2.2/mule-vm.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
   
    <jms:activemq-connector name="jmsConnector" brokerURL="tcp://localhost:61616"/>

    <stdio:connector name="SystemStreamConnector" promptMessage="Please enter something:" messageDelayTime="1000" />
   
    <model name="jms-test-suite">
               
        <service name="EchoUMO">
            <inbound>
                <stdio:inbound-endpoint system="IN"/>
            </inbound>
            <outbound>
                <chaining-router>
                    <vm:outbound-endpoint path="echo" synchronous="true" />
                    <stdio:outbound-endpoint system="OUT" synchronous="false" />
                </chaining-router>
            </outbound>
        </service>
       
        <service name="Requester">
            <inbound>
                <vm:inbound-endpoint path="echo" synchronous="true"/>
            </inbound>
            <outbound>
                <chaining-router>
                    <jms:outbound-endpoint queue="RequestQueue" synchronous="true"/>
                    <reply-to address="jms://ReplyQueue"/>
                </chaining-router>
            </outbound>
            <async-reply timeout="10000" failOnTimeout="true">
                <jms:inbound-endpoint queue="ReplyQueue"/>
                <single-async-reply-router/>
            </async-reply>
        </service>

        <service name="Replier">
            <inbound>
                <jms:inbound-endpoint queue="RequestQueue" synchronous="true"/>
            </inbound>
        </service>
    </model>
   
   
</mule>

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email



Re: JMS exceptions in Mule 2.2.1

by ron.fulkerson :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

This works, thank you!  It was immensely helpful to have a working
example to test configuration changes against, etc..  Doing so allowed
me to eventually track down the final issue that was preventing me from
progressing - one small bug.

The <reply-to> tag must be used with an address attribute.  Using a ref
attribute works with queues, but does not work with topics.  Topics in a
reply-to ref tag cause a ClassCastException (pasted below with config).  
I also tested this in 2.1.2 and had the same results.  Do you want a
jira filed for this issue?

Fortunately this is easy enough to work around, and I am now enjoying
Mule 2.2.1!

Thanks again for all the help,
Ron

ERROR 2009-07-02 15:57:59,247 [jmsConnector.dispatcher.1]
org.mule.DefaultExceptionStrategy: Caught exception in Exception
Strategy: org.apache.activemq.ActiveMQTopicSession cannot be cast to
javax.jms.QueueSession
java.lang.ClassCastException: org.apache.activemq.ActiveMQTopicSession
cannot be cast to javax.jms.QueueSession
        at
org.mule.transport.jms.Jms102bSupport.createDestination(Jms102bSupport.java:219)
        at
org.mule.transport.jms.JmsMessageDispatcher.getReplyToDestination(JmsMessageDispatcher.java:477)
        at
org.mule.transport.jms.JmsMessageDispatcher.dispatchMessage(JmsMessageDispatcher.java:171)
        at
org.mule.transport.jms.JmsMessageDispatcher.doDispatch(JmsMessageDispatcher.java:73)
        at
org.mule.transport.AbstractMessageDispatcher$Worker.run(AbstractMessageDispatcher.java:262)
        at org.mule.work.WorkerContext.run(WorkerContext.java:310)

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesource.org/schema/mule/core/2.2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:spring="http://www.springframework.org/schema/beans"
    xmlns:jms="http://www.mulesource.org/schema/mule/jms/2.2"
    xmlns:stdio="http://www.mulesource.org/schema/mule/stdio/2.2"
    xmlns:vm="http://www.mulesource.org/schema/mule/vm/2.2"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.mulesource.org/schema/mule/core/2.2 
http://www.mulesource.org/schema/mule/core/2.2/mule.xsd
    http://www.mulesource.org/schema/mule/jms/2.2 
http://www.mulesource.org/schema/mule/jms/2.2/mule-jms.xsd
    http://www.mulesource.org/schema/mule/stdio/2.2 
http://www.mulesource.org/schema/mule/stdio/2.2/mule-stdio.xsd
    http://www.mulesource.org/schema/mule/vm/2.2 
http://www.mulesource.org/schema/mule/vm/2.2/mule-vm.xsd
    http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
   
    <jms:activemq-connector name="jmsConnector"
brokerURL="tcp://localhost:4101"
disableTemporaryReplyToDestinations="true"/>

    <stdio:connector name="SystemStreamConnector" promptMessage="Please
enter something:" messageDelayTime="1000" />
   
    <jms:endpoint name="RequestRef" topic="request"
connector-ref="jmsConnector"/>
    <jms:endpoint name="ReplyRef" topic="reply"
connector-ref="jmsConnector"/>
   
    <model name="jms-test-suite">
               
        <service name="EchoUMO">
            <inbound>
                <stdio:inbound-endpoint system="IN"/>
            </inbound>
            <outbound>
                <chaining-router>
                    <vm:outbound-endpoint path="echo" synchronous="true" />
                    <stdio:outbound-endpoint system="OUT"
synchronous="false" />
                </chaining-router>
            </outbound>
        </service>
       
        <service name="Requester">
            <inbound>
                <vm:inbound-endpoint path="echo" synchronous="true"/>
            </inbound>
            <outbound>
                <chaining-router>
                    <outbound-endpoint ref="RequestRef" synchronous="true"/>
                    <reply-to ref="ReplyRef"/>
                </chaining-router>
            </outbound>
            <async-reply timeout="10000" failOnTimeout="true">
                <inbound-endpoint ref="ReplyRef"/>
                <single-async-reply-router/>
            </async-reply>
        </service>

        <service name="Replier">
            <inbound>
                <inbound-endpoint ref="RequestRef" synchronous="true"/>
            </inbound>
            <echo-component />
        </service>
    </model>

</mule>


Puneet Gupta wrote:

> I tested the below config in 2.2.1-EE and it worked fine. The log shows that the reply was sent to the correct replyTo destination
>
> *****************
> Please enter something:
> hello
> INFO  2009-07-02 13:09:33,216 [EchoUMO.2] org.mule.transport.vm.VMMessageDispatc
> her: Connected: endpoint.outbound.vm://echo
> INFO  2009-07-02 13:09:33,229 [jmsConnector.dispatcher.1] com.mulesource.mule.tr
> ansport.jms.EeJmsMessageDispatcher: Connected: endpoint.outbound.jms://RequestQueue
> INFO  2009-07-02 13:09:33,269 [ActiveMQ Session Task] org.mule.transport.jms.Jms
> ReplyToHandler: Reply Message sent to: queue://ReplyQueue with correlationID:421
> 6f05e-6744-11de-8f0c-3b9c8e1bf4e7
> INFO  2009-07-02 13:09:33,287 [SystemStreamConnector.dispatcher.1] org.mule.tran
> sport.stdio.StdioMessageDispatcher: Connected: endpoint.outbound.stdio://system.out
> hello
> ******************
>
> <?xml version="1.0" encoding="UTF-8"?>
> <mule xmlns="http://www.mulesource.org/schema/mule/core/2.2"
>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>     xmlns:spring="http://www.springframework.org/schema/beans"
>     xmlns:jms="http://www.mulesource.org/schema/mule/jms/2.2"
>     xmlns:stdio="http://www.mulesource.org/schema/mule/stdio/2.2"
>     xmlns:vm="http://www.mulesource.org/schema/mule/vm/2.2"
>     xmlns:context="http://www.springframework.org/schema/context"
>     xsi:schemaLocation="
>     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
>     http://www.mulesource.org/schema/mule/core/2.2 http://www.mulesource.org/schema/mule/core/2.2/mule.xsd
>     http://www.mulesource.org/schema/mule/jms/2.2 http://www.mulesource.org/schema/mule/jms/2.2/mule-jms.xsd
>     http://www.mulesource.org/schema/mule/stdio/2.2 http://www.mulesource.org/schema/mule/stdio/2.2/mule-stdio.xsd
>     http://www.mulesource.org/schema/mule/vm/2.2 http://www.mulesource.org/schema/mule/vm/2.2/mule-vm.xsd
>     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
>    
>     <jms:activemq-connector name="jmsConnector" brokerURL="tcp://localhost:61616"/>
>
>     <stdio:connector name="SystemStreamConnector" promptMessage="Please enter something:" messageDelayTime="1000" />
>    
>     <model name="jms-test-suite">
>                
>         <service name="EchoUMO">
>             <inbound>
>                 <stdio:inbound-endpoint system="IN"/>
>             </inbound>
>             <outbound>
>                 <chaining-router>
>                     <vm:outbound-endpoint path="echo" synchronous="true" />
>                     <stdio:outbound-endpoint system="OUT" synchronous="false" />
>                 </chaining-router>
>             </outbound>
>         </service>
>        
>         <service name="Requester">
>             <inbound>
>                 <vm:inbound-endpoint path="echo" synchronous="true"/>
>             </inbound>
>             <outbound>
>                 <chaining-router>
>                     <jms:outbound-endpoint queue="RequestQueue" synchronous="true"/>
>                     <reply-to address="jms://ReplyQueue"/>
>                 </chaining-router>
>             </outbound>
>             <async-reply timeout="10000" failOnTimeout="true">
>                 <jms:inbound-endpoint queue="ReplyQueue"/>
>                 <single-async-reply-router/>
>             </async-reply>
>         </service>
>
>         <service name="Replier">
>             <inbound>
>                 <jms:inbound-endpoint queue="RequestQueue" synchronous="true"/>
>             </inbound>
>         </service>
>     </model>
>    
>    
> </mule>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>     http://xircles.codehaus.org/manage_email
>
>
>  

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email



Parent Message unknown Re: JMS exceptions in Mule 2.2.1

by Andrew Perepelytsya :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Please do file a jira. It also seems that if you set specification on the jms connector to 1.1 the error will go away.

HTH,
Andrew

On Jul 2, 2009 7:09 PM, "Ron Fulkerson" <ron.fulkerson@...> wrote:

Hi,

This works, thank you!  It was immensely helpful to have a working example to test configuration changes against, etc..  Doing so allowed me to eventually track down the final issue that was preventing me from progressing - one small bug.

The <reply-to> tag must be used with an address attribute.  Using a ref attribute works with queues, but does not work with topics.  Topics in a reply-to ref tag cause a ClassCastException (pasted below with config).  I also tested this in 2.1.2 and had the same results.  Do you want a jira filed for this issue?

Fortunately this is easy enough to work around, and I am now enjoying Mule 2.2.1!

Thanks again for all the help,
Ron

ERROR 2009-07-02 15:57:59,247 [jmsConnector.dispatcher.1] org.mule.DefaultExceptionStrategy: Caught exception in Exception Strategy: org.apache.activemq.ActiveMQTopicSession cannot be cast to javax.jms.QueueSession
java.lang.ClassCastException: org.apache.activemq.ActiveMQTopicSession cannot be cast to javax.jms.QueueSession
      at org.mule.transport.jms.Jms102bSupport.createDestination(Jms102bSupport.java:219)
      at org.mule.transport.jms.JmsMessageDispatcher.getReplyToDestination(JmsMessageDispatcher.java:477)
      at org.mule.transport.jms.JmsMessageDispatcher.dispatchMessage(JmsMessageDispatcher.java:171)
      at org.mule.transport.jms.JmsMessageDispatcher.doDispatch(JmsMessageDispatcher.java:73)
      at org.mule.transport.AbstractMessageDispatcher$Worker.run(AbstractMessageDispatcher.java:262)
      at org.mule.work.WorkerContext.run(WorkerContext.java:310)

<?xml version="1.0" encoding="UTF-8"?> <mule xmlns="http://www.mulesource.org/schema/mule/core/2.2...

    <jms:activemq-connector name="jmsConnector" brokerURL="tcp://localhost:4101" disableTemporaryReplyToDestinations="true"/>

  <stdio:connector name="SystemStreamConnector" promptMessage="Please enter something:" messageDel...

    <jms:endpoint name="RequestRef" topic="request" connector-ref="jmsConnector"/>
  <jms:endpoint name="ReplyRef" topic="reply" connector-ref="jmsConnector"/>

    <model name="jms-test-suite">                     <service name="EchoUMO">           <inbound> ...

                  <outbound-endpoint ref="RequestRef" synchronous="true"/>
                  <reply-to ref="ReplyRef"/>

              </chaining-router>           </outbound>           <async-reply timeout="10000" failO...

              <inbound-endpoint ref="ReplyRef"/>

              <single-async-reply-router/>           </async-reply>       </service>       <servic...

              <inbound-endpoint ref="RequestRef" synchronous="true"/>

          </inbound>           <echo-component />       </service>   </model> </mule> Puneet Gup...

> > I tested the below config in 2.2.1-EE and it worked fine. The log shows that the reply was sent ...


Re: JMS exceptions in Mule 2.2.1

by ron.fulkerson :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Setting specification to 1.1 suppresses the ClassCastException, but the
response eventually times out.

Jira filed @ http://www.mulesource.org/jira/browse/MULE-4422

Thanks,
Ron

Andrew Perepelytsya wrote:

>
> Please do file a jira. It also seems that if you set specification on
> the jms connector to 1.1 the error will go away.
>
> HTH,
> Andrew
>
>> On Jul 2, 2009 7:09 PM, "Ron Fulkerson" <ron.fulkerson@...
>> <mailto:ron.fulkerson@...>> wrote:
>>
>> Hi,
>>
>> This works, thank you!  It was immensely helpful to have a working
>> example to test configuration changes against, etc..  Doing so
>> allowed me to eventually track down the final issue that was
>> preventing me from progressing - one small bug.
>>
>> The <reply-to> tag must be used with an address attribute.  Using a
>> ref attribute works with queues, but does not work with topics.
>>  Topics in a reply-to ref tag cause a ClassCastException (pasted
>> below with config).  I also tested this in 2.1.2 and had the same
>> results.  Do you want a jira filed for this issue?
>>
>> Fortunately this is easy enough to work around, and I am now enjoying
>> Mule 2.2.1!
>>
>> Thanks again for all the help,
>> Ron
>>
>> ERROR 2009-07-02 15:57:59,247 [jmsConnector.dispatcher.1]
>> org.mule.DefaultExceptionStrategy: Caught exception in Exception
>> Strategy: org.apache.activemq.ActiveMQTopicSession cannot be cast to
>> javax.jms.QueueSession
>> java.lang.ClassCastException:
>> org.apache.activemq.ActiveMQTopicSession cannot be cast to
>> javax.jms.QueueSession
>>       at
>> org.mule.transport.jms.Jms102bSupport.createDestination(Jms102bSupport.java:219)
>>       at
>> org.mule.transport.jms.JmsMessageDispatcher.getReplyToDestination(JmsMessageDispatcher.java:477)
>>       at
>> org.mule.transport.jms.JmsMessageDispatcher.dispatchMessage(JmsMessageDispatcher.java:171)
>>       at
>> org.mule.transport.jms.JmsMessageDispatcher.doDispatch(JmsMessageDispatcher.java:73)
>>       at
>> org.mule.transport.AbstractMessageDispatcher$Worker.run(AbstractMessageDispatcher.java:262)
>>       at org.mule.work.WorkerContext.run(WorkerContext.java:310)
>>
>> <?xml version="1.0" encoding="UTF-8"?> <mule
>> xmlns="http://www.mulesource.org/schema/mule/core/2.2...
>>
>>     <jms:activemq-connector name="jmsConnector"
>> brokerURL="tcp://localhost:4101"
>> disableTemporaryReplyToDestinations="true"/>
>>
>>   <stdio:connector name="SystemStreamConnector" promptMessage="Please
>> enter something:" messageDel...
>>
>>     <jms:endpoint name="RequestRef" topic="request"
>> connector-ref="jmsConnector"/>
>>   <jms:endpoint name="ReplyRef" topic="reply"
>> connector-ref="jmsConnector"/>
>>
>>     <model name="jms-test-suite">                     <service
>> name="EchoUMO">           <inbound> ...
>>
>>                   <outbound-endpoint ref="RequestRef"
>> synchronous="true"/>
>>                   <reply-to ref="ReplyRef"/>
>>
>>               </chaining-router>           </outbound>          
>> <async-reply timeout="10000" failO...
>>
>>               <inbound-endpoint ref="ReplyRef"/>
>>
>>               <single-async-reply-router/>           </async-reply>  
>>     </service>       <servic...
>>
>>               <inbound-endpoint ref="RequestRef" synchronous="true"/>
>>
>>           </inbound>           <echo-component />       </service>  
>> </model> </mule> Puneet Gup...
>>
>> > > I tested the below config in 2.2.1-EE and it worked fine. The log
>> shows that the reply was sent ...
>>

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email