?
Solved

exchange pattern

Posted on 2011-03-24
8
Medium Priority
?
594 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 750 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
Optimize your web performance

What's in the eBook?
- Full list of reasons for poor performance
- Ultimate measures to speed things up
- Primary web monitoring types
- KPIs you should be monitoring in order to increase your ROI

 
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

Optimize your web performance

What's in the eBook?
- Full list of reasons for poor performance
- Ultimate measures to speed things up
- Primary web monitoring types
- KPIs you should be monitoring in order to increase your ROI

Question has a verified solution.

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

Java contains several comparison operators (e.g., <, <=, >, >=, ==, !=) that allow you to compare primitive values. However, these operators cannot be used to compare the contents of objects. Interface Comparable is used to allow objects of a cl…
Java had always been an easily readable and understandable language.  Some relatively recent changes in the language seem to be changing this pretty fast, and anyone that had not seen any Java code for the last 5 years will possibly have issues unde…
Viewers will learn about the different types of variables in Java and how to declare them. Decide the type of variable desired: Put the keyword corresponding to the type of variable in front of the variable name: Use the equal sign to assign a v…
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arr…
Suggested Courses
Course of the Month15 days, 6 hours left to enroll

741 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