Solved

exchange pattern

Posted on 2011-03-24
8
590 Views
Last Modified: 2012-05-11
We use mule ESB for file transfers, socket connections, jms. We developed our modules using mule 2.x version at that time and encountered no issues. We have been experimenting lately with mule 3.0 to see if our existing modules will still work. After reading the docs for migrating from 2 - 3 we had to change the synchronous attribute with exchange-pattern with request-response. Everything else remains the same but when i test with the new versin i get an exception that

The endpoint "xservice" is malformed and cannot be parsed. If this is the name of a global endpoint, check the name is correct, that the endpoint exists, and that you are using the correct configuration (eg the "ref" attribute). Note that names on inbound and outbound endpoints cannot be used to send or receive messages; use a named global endpoint instead.

This used to work earlier fine but when upgrading i get that error.

0
Comment
Question by:Micheal_Male
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 3
8 Comments
 
LVL 19

Expert Comment

by:Jim Cakalic
ID: 35222780
Can you post the relevant segment(s) of your configuration?
0
 
LVL 19

Accepted Solution

by:
Jim Cakalic earned 250 total points
ID: 35222990
I haven't used Mule 3 (yet) but I have used Mule 2 for a significantly sized project. After reading the Mule 3 configuration docs I have a couple questions/suggestions ...

First, you said you are using the file, jms and socket (by which I assume you mean tcp) transports. Each transport has its own default and allowed message exchange patterns.

file is only one-way
jms is only one-way
tcp is one-way or request-response with default request-response
My thought is that if you are configuring file and jms connectors or endpoints (which at least jms used to allow synchronous="true") with exchange-pattern="request-response" then that would be an error in the Mule 3 configuration. I wouldn't be surprised if this resulted in a parse exception instead of some more useful indication that an invalid value was supplied for the endpoint. If this is the case, try removing the exchange-pattern attribute from those configuration elements (since you can't configure for anything other than one-way anyway).

Perhaps for jms they may have decided to remove support for the request-response pattern (at least in community edition) because it was very problematic - at least in our experience as we wanted essentially a one-way or in-only pattern but needed to declare the endpoints synchronous so we could use XA transactions across the message flow. The requreiment that the component return a response was messy to configure away. For file endpoints the attribute wouldn't have made any sense but might have been allowed and ignored.
0
 

Author Comment

by:Micheal_Male
ID: 35224696
Thanks for the detailed explanation. The one which i am testing is related to tcp.  This is the same config we used in mule 2.x with the only difference is that it had synchronous="true" which is replaced with exchange-pattern as per the docs. So it should work but apparently it does not and just giving the global endpoint exception really does not make any sense and is hard to debug to see where the error is.

<inbound>
<inbound-endpoint name="xService" address="vm://xService.endpoint" exchange-pattern="request-response"/>
</inbound>
</echo-component>
<outbound>
<pass-through-router>
<outbound-endpoint ref="testServer">
</outbound-endpoint>
</pass-through-router>
</outbound>
0
PeopleSoft Has Never Been Easier

PeopleSoft Adoption Made Smooth & Simple!

On-The-Job Training Is made Intuitive & Easy With WalkMe's On-Screen Guidance Tool.  Claim Your Free WalkMe Account Now

 
LVL 19

Expert Comment

by:Jim Cakalic
ID: 35226562
Have you tried configuring with the transport-specific namespace?

<inbound>
    <vm:inbound-endpoint name="xService" path="xService.endpoint" exchange-pattern="request-response"/>
</inbound>
</echo-component>
<outbound>
    <pass-through-router>
        <outbound-endpoint ref="testServer">
        </outbound-endpoint>
    </pass-through-router>
</outbound> 

Open in new window

0
 

Author Comment

by:Micheal_Male
ID: 35226615
Yes i did tried that and still got the global endpoint exception.
0
 

Author Comment

by:Micheal_Male
ID: 35226674
I also saw a bug posted on mulesoft for this version but that is related to smtp.

http://mule.1045714.n5.nabble.com/MalformedEndpointException-when-configuring-SMTP-with-URL-encoded-character-td3308646.html 
0
 

Author Comment

by:Micheal_Male
ID: 35227258
Upgrading to the newer version did solve my problem.
0
 

Author Closing Comment

by:Micheal_Male
ID: 35227263
Upgraded to the newer version 3.0.1
0

Featured Post

On Demand Webinar: Networking for the Cloud Era

Did you know SD-WANs can improve network connectivity? Check out this webinar to learn how an SD-WAN simplified, one-click tool can help you migrate and manage data in the cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

After being asked a question last year, I went into one of my moods where I did some research and code just for the fun and learning of it all.  Subsequently, from this journey, I put together this article on "Range Searching Using Visual Basic.NET …
In this post we will learn different types of Android Layout and some basics of an Android App.
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …

691 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question