Solved

exchange pattern

Posted on 2011-03-24
8
568 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
  • 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
Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

 
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

NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
micro services spring boot application error 3 199
map related example 6 49
jsp login check 12 32
Html Table Looping (part 2) 5 11
For customizing the look of your lightweight component and making it look opaque like it was made of plastic.  This tip assumes your component to be of rectangular shape and completely opaque.   (CODE)
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…
Viewers learn about the “while” loop and how to utilize it correctly in Java. Additionally, viewers begin exploring how to include conditional statements within a while loop and avoid an endless loop. Define While Loop: Basic Example: Explanatio…
Viewers will learn about if statements in Java and their use The if statement: The condition required to create an if statement: Variations of if statements: An example using if statements:

831 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