You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@synapse.apache.org by Abid Khan-EXT <Ab...@jeppesen.com> on 2010/09/28 17:42:17 UTC

If the message has name space setting the switch mediator does not work?

Hello all,

I am receiving a message and the switch works if I take the namespace string out of the message, but I cannot tell the sender to remove it. Is there anything I can do that synapse can handle the name space.

Message that starts with something like this is not handled properly, by "switch" mediator.

<Request xmlns="http://www.company.com/test" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.company.com/test ../test/Request.xsd">


Thanks & Regards,

Abid Khan
Java Consultant



Re: If the message has name space setting the switch mediator does not work?

Posted by Hiranya Jayathilaka <hi...@gmail.com>.
On Sat, Oct 9, 2010 at 1:19 PM, Andreas Veithen
<an...@gmail.com> wrote:
> In that case, the XPath should look like this:
>
> //*[local-name()='Message']/*[local-name()='header']/*[local-name()='msgType']

Thanks Andreas. This is helpful to me as well :)

>
> This is ugly, but this is to be expected since you are using an XML
> anti-pattern, namely defining different XML formats that have similar
> structure but use different namespaces.

+1

Thanks,
Hiranya

>
> Andreas
>
> On Fri, Oct 8, 2010 at 20:28, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>> Hiranya,
>>
>> Thanks for the quick response, but I cannot put the URL either since different messages will have different namespace and or URL.
>>
>> Thanks & Regards,
>> Abid
>>
>>
>> -----Original Message-----
>> From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com]
>> Sent: Friday, October 08, 2010 12:25 PM
>> To: user@synapse.apache.org
>> Subject: Re: If the message has name space setting the switch mediator does not work?
>>
>> On Fri, Oct 8, 2010 at 9:42 PM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>>> Hello Andreas,
>>>
>>> I understand that, but what if the message has no-prefix namespace something like:
>>
>> That's fine. As far as the functionality is concerned, URL is he
>> important part in the namespace. Prefix could be anything. The prefix
>> used in your XPath doesn't have to match to the prefix in the message.
>> In fact message doesn't have to have a prefix at all.
>>
>> Thanks,
>> Hiranya
>>
>>
>>>
>>> <Message xmlns="http://www.company.com/test"/>
>>> ....
>>> ...
>>> </Message>
>>>
>>> This what I have most of the messages that I am processing with Synapse, have not prefix name space or default namespace declaration. Which is the problem I am facing.
>>>
>>>
>>>
>>> Thanks & Regards,
>>> Abid
>>>
>>>
>>> -----Original Message-----
>>> From: Andreas Veithen [mailto:andreas.veithen@gmail.com]
>>> Sent: Friday, October 08, 2010 10:07 AM
>>> To: user@synapse.apache.org
>>> Subject: Re: If the message has name space setting the switch mediator does not work?
>>>
>>> Try with something like this:
>>>
>>> <switch source="//p:Message/p:header/p:msgType"
>>> xmlns:p="http://www.company.com/test">
>>>
>>> Note that XPath expressions in Synapse configuration files are
>>> supposed to work the same way as XPath expressions in XSLT, so if you
>>> have a colleague who is familiar with XSLT, he may help you to figure
>>> out the details.
>>>
>>> Andreas
>>>
>>> On Fri, Oct 8, 2010 at 17:46, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>>>> I am not sure what is the difference in both ways here is how I am creating the switch:
>>>>
>>>> <switch source="//Message/header/msgType">
>>>>         <case regex="RequesResponse">
>>>>                 <validate>
>>>>                         <schema key="Message01"/>
>>>>                         <on-fail>
>>>>                                 <sequence key="ValidationFaultSequence" />
>>>>                         </on-fail>
>>>>                 </validate>
>>>>         </case>
>>>>         <case regex="Publish">
>>>>                 <validate>
>>>>                         <schema key=" Message02"/>
>>>>                         <on-fail>
>>>>                                 <sequence key="ValidationFaultSequence" />
>>>>                         </on-fail>
>>>>                 </validate>^M
>>>>         </case>
>>>> </switch>
>>>>
>>>> This exact switch works if the name space of the document is removed, and does not work otherwise.
>>>>
>>>> Please advise.
>>>>
>>>> Thanks & Regards,
>>>> Abid
>>>>
>>>> -----Original Message-----
>>>> From: Supun Kamburugamuva [mailto:supun06@gmail.com]
>>>> Sent: Thursday, October 07, 2010 8:29 PM
>>>> To: user@synapse.apache.org
>>>> Subject: Re: If the message has name space setting the switch mediator does not work?
>>>>
>>>> I believe you are using XPath to get a value of a element. You can write a
>>>> Xpath in such a way that it works both with namespace qualified elements as
>>>> well as normal elements.
>>>>
>>>> Thanks,
>>>> Supun..
>>>>
>>>> On Tue, Sep 28, 2010 at 9:12 PM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:
>>>>
>>>>> Hello all,
>>>>>
>>>>> I am receiving a message and the switch works if I take the namespace
>>>>> string out of the message, but I cannot tell the sender to remove it. Is
>>>>> there anything I can do that synapse can handle the name space.
>>>>>
>>>>> Message that starts with something like this is not handled properly, by
>>>>> "switch" mediator.
>>>>>
>>>>> <Request xmlns="http://www.company.com/test" xmlns:xsi="
>>>>> http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
>>>>> http://www.company.com/test ../test/Request.xsd">
>>>>>
>>>>>
>>>>> Thanks & Regards,
>>>>>
>>>>> Abid Khan
>>>>> Java Consultant
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Tech Lead, WSO2 Inc
>>>> http://wso2.org
>>>> supunk.blogspot.com
>>>>
>>>
>>
>>
>>
>> --
>> Hiranya Jayathilaka
>> Senior Software Engineer;
>> WSO2 Inc.;  http://wso2.org
>> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
>> Blog: http://techfeast-hiranya.blogspot.com
>>
>



-- 
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

Re: If the message has name space setting the switch mediator does not work?

Posted by Andreas Veithen <an...@gmail.com>.
In that case, the XPath should look like this:

//*[local-name()='Message']/*[local-name()='header']/*[local-name()='msgType']

This is ugly, but this is to be expected since you are using an XML
anti-pattern, namely defining different XML formats that have similar
structure but use different namespaces.

Andreas

On Fri, Oct 8, 2010 at 20:28, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
> Hiranya,
>
> Thanks for the quick response, but I cannot put the URL either since different messages will have different namespace and or URL.
>
> Thanks & Regards,
> Abid
>
>
> -----Original Message-----
> From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com]
> Sent: Friday, October 08, 2010 12:25 PM
> To: user@synapse.apache.org
> Subject: Re: If the message has name space setting the switch mediator does not work?
>
> On Fri, Oct 8, 2010 at 9:42 PM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>> Hello Andreas,
>>
>> I understand that, but what if the message has no-prefix namespace something like:
>
> That's fine. As far as the functionality is concerned, URL is he
> important part in the namespace. Prefix could be anything. The prefix
> used in your XPath doesn't have to match to the prefix in the message.
> In fact message doesn't have to have a prefix at all.
>
> Thanks,
> Hiranya
>
>
>>
>> <Message xmlns="http://www.company.com/test"/>
>> ....
>> ...
>> </Message>
>>
>> This what I have most of the messages that I am processing with Synapse, have not prefix name space or default namespace declaration. Which is the problem I am facing.
>>
>>
>>
>> Thanks & Regards,
>> Abid
>>
>>
>> -----Original Message-----
>> From: Andreas Veithen [mailto:andreas.veithen@gmail.com]
>> Sent: Friday, October 08, 2010 10:07 AM
>> To: user@synapse.apache.org
>> Subject: Re: If the message has name space setting the switch mediator does not work?
>>
>> Try with something like this:
>>
>> <switch source="//p:Message/p:header/p:msgType"
>> xmlns:p="http://www.company.com/test">
>>
>> Note that XPath expressions in Synapse configuration files are
>> supposed to work the same way as XPath expressions in XSLT, so if you
>> have a colleague who is familiar with XSLT, he may help you to figure
>> out the details.
>>
>> Andreas
>>
>> On Fri, Oct 8, 2010 at 17:46, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>>> I am not sure what is the difference in both ways here is how I am creating the switch:
>>>
>>> <switch source="//Message/header/msgType">
>>>         <case regex="RequesResponse">
>>>                 <validate>
>>>                         <schema key="Message01"/>
>>>                         <on-fail>
>>>                                 <sequence key="ValidationFaultSequence" />
>>>                         </on-fail>
>>>                 </validate>
>>>         </case>
>>>         <case regex="Publish">
>>>                 <validate>
>>>                         <schema key=" Message02"/>
>>>                         <on-fail>
>>>                                 <sequence key="ValidationFaultSequence" />
>>>                         </on-fail>
>>>                 </validate>^M
>>>         </case>
>>> </switch>
>>>
>>> This exact switch works if the name space of the document is removed, and does not work otherwise.
>>>
>>> Please advise.
>>>
>>> Thanks & Regards,
>>> Abid
>>>
>>> -----Original Message-----
>>> From: Supun Kamburugamuva [mailto:supun06@gmail.com]
>>> Sent: Thursday, October 07, 2010 8:29 PM
>>> To: user@synapse.apache.org
>>> Subject: Re: If the message has name space setting the switch mediator does not work?
>>>
>>> I believe you are using XPath to get a value of a element. You can write a
>>> Xpath in such a way that it works both with namespace qualified elements as
>>> well as normal elements.
>>>
>>> Thanks,
>>> Supun..
>>>
>>> On Tue, Sep 28, 2010 at 9:12 PM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:
>>>
>>>> Hello all,
>>>>
>>>> I am receiving a message and the switch works if I take the namespace
>>>> string out of the message, but I cannot tell the sender to remove it. Is
>>>> there anything I can do that synapse can handle the name space.
>>>>
>>>> Message that starts with something like this is not handled properly, by
>>>> "switch" mediator.
>>>>
>>>> <Request xmlns="http://www.company.com/test" xmlns:xsi="
>>>> http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
>>>> http://www.company.com/test ../test/Request.xsd">
>>>>
>>>>
>>>> Thanks & Regards,
>>>>
>>>> Abid Khan
>>>> Java Consultant
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Tech Lead, WSO2 Inc
>>> http://wso2.org
>>> supunk.blogspot.com
>>>
>>
>
>
>
> --
> Hiranya Jayathilaka
> Senior Software Engineer;
> WSO2 Inc.;  http://wso2.org
> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
> Blog: http://techfeast-hiranya.blogspot.com
>

Re: If the message has name space setting the switch mediator does not work?

Posted by Hiranya Jayathilaka <hi...@gmail.com>.
On Sat, Oct 9, 2010 at 3:14 AM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
> In an ESB, there could be several application developed by completely groups or even companies, who had no link together, when they developed their application, but became partner to exchange information to get their day to day work done.
>

I understand. But how did they come up with the same XML structure
with different namespaces? Thats's little strange.

> The function of an ESB is to route all kind of messages not only one domain specific.

It CAN route all kinds of messages. Synapse can receive messages from
any client and send them to any endpoint. But if you want to do
advanced stuff such as filtering, then as the person who is
configuring the mediation rules and message flows, you should know the
exact format of the messages and the exact filter conditions on which
you want to filter requests. You cannot expect Synapse to take any
random message with some unknown namespace and execute filters on
them. (It can do it, but as you have already seen, the filters will
evaluate to false and you will not get the expected behavior)

> I never thought before making use of synapse that it would have this issue.

The problem is in your XPath and NOT in Synapse. As I mentioned
earlier, if you can find an XPath expression that selects elements in
a namespace independent manner then the switch mediator will work with
your scenario. Switch mediator cannot select an element that is not
addressable by XPath.

>
> Anyway thanks for the advice, for using xslt to remove the namespace, I am doing exactly that but developed my own mediator to do that.

Glad I could help

Thanks,
Hiranya

>
> Thanks & Regards,
> Abid
>
> -----Original Message-----
> From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com]
> Sent: Friday, October 08, 2010 1:08 PM
> To: user@synapse.apache.org
> Subject: Re: If the message has name space setting the switch mediator does not work?
>
> On Fri, Oct 8, 2010 at 11:58 PM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>> Hiranya,
>>
>> Thanks for the quick response, but I cannot put the URL either since different messages will have different namespace and or URL.
>
> So you get different messages with the same XML format but with
> different (unknown) namespaces? That is very unusual. Usually
> messaging systems deal with a previously agreed upon standard set of
> namespaces. Otherwise it becomes an interop nightmare.
>
> However if the messages are namespace qualified you need to define the
> exact namespaces in the switch mediator. Otherwise it won't work. I'm
> not a Xpath pro so I'm not sure whether there's a way to write an
> XPath expression in a namespace independent manner. Please see if you
> can find something like that. May be somebody else in the list will
> have an idea how to do that...
>
> Thanks,
> Hiranya
>
>>
>> Thanks & Regards,
>> Abid
>>
>>
>> -----Original Message-----
>> From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com]
>> Sent: Friday, October 08, 2010 12:25 PM
>> To: user@synapse.apache.org
>> Subject: Re: If the message has name space setting the switch mediator does not work?
>>
>> On Fri, Oct 8, 2010 at 9:42 PM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>>> Hello Andreas,
>>>
>>> I understand that, but what if the message has no-prefix namespace something like:
>>
>> That's fine. As far as the functionality is concerned, URL is he
>> important part in the namespace. Prefix could be anything. The prefix
>> used in your XPath doesn't have to match to the prefix in the message.
>> In fact message doesn't have to have a prefix at all.
>>
>> Thanks,
>> Hiranya
>>
>>
>>>
>>> <Message xmlns="http://www.company.com/test"/>
>>> ....
>>> ...
>>> </Message>
>>>
>>> This what I have most of the messages that I am processing with Synapse, have not prefix name space or default namespace declaration. Which is the problem I am facing.
>>>
>>>
>>>
>>> Thanks & Regards,
>>> Abid
>>>
>>>
>>> -----Original Message-----
>>> From: Andreas Veithen [mailto:andreas.veithen@gmail.com]
>>> Sent: Friday, October 08, 2010 10:07 AM
>>> To: user@synapse.apache.org
>>> Subject: Re: If the message has name space setting the switch mediator does not work?
>>>
>>> Try with something like this:
>>>
>>> <switch source="//p:Message/p:header/p:msgType"
>>> xmlns:p="http://www.company.com/test">
>>>
>>> Note that XPath expressions in Synapse configuration files are
>>> supposed to work the same way as XPath expressions in XSLT, so if you
>>> have a colleague who is familiar with XSLT, he may help you to figure
>>> out the details.
>>>
>>> Andreas
>>>
>>> On Fri, Oct 8, 2010 at 17:46, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>>>> I am not sure what is the difference in both ways here is how I am creating the switch:
>>>>
>>>> <switch source="//Message/header/msgType">
>>>>         <case regex="RequesResponse">
>>>>                 <validate>
>>>>                         <schema key="Message01"/>
>>>>                         <on-fail>
>>>>                                 <sequence key="ValidationFaultSequence" />
>>>>                         </on-fail>
>>>>                 </validate>
>>>>         </case>
>>>>         <case regex="Publish">
>>>>                 <validate>
>>>>                         <schema key=" Message02"/>
>>>>                         <on-fail>
>>>>                                 <sequence key="ValidationFaultSequence" />
>>>>                         </on-fail>
>>>>                 </validate>^M
>>>>         </case>
>>>> </switch>
>>>>
>>>> This exact switch works if the name space of the document is removed, and does not work otherwise.
>>>>
>>>> Please advise.
>>>>
>>>> Thanks & Regards,
>>>> Abid
>>>>
>>>> -----Original Message-----
>>>> From: Supun Kamburugamuva [mailto:supun06@gmail.com]
>>>> Sent: Thursday, October 07, 2010 8:29 PM
>>>> To: user@synapse.apache.org
>>>> Subject: Re: If the message has name space setting the switch mediator does not work?
>>>>
>>>> I believe you are using XPath to get a value of a element. You can write a
>>>> Xpath in such a way that it works both with namespace qualified elements as
>>>> well as normal elements.
>>>>
>>>> Thanks,
>>>> Supun..
>>>>
>>>> On Tue, Sep 28, 2010 at 9:12 PM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:
>>>>
>>>>> Hello all,
>>>>>
>>>>> I am receiving a message and the switch works if I take the namespace
>>>>> string out of the message, but I cannot tell the sender to remove it. Is
>>>>> there anything I can do that synapse can handle the name space.
>>>>>
>>>>> Message that starts with something like this is not handled properly, by
>>>>> "switch" mediator.
>>>>>
>>>>> <Request xmlns="http://www.company.com/test" xmlns:xsi="
>>>>> http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
>>>>> http://www.company.com/test ../test/Request.xsd">
>>>>>
>>>>>
>>>>> Thanks & Regards,
>>>>>
>>>>> Abid Khan
>>>>> Java Consultant
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Tech Lead, WSO2 Inc
>>>> http://wso2.org
>>>> supunk.blogspot.com
>>>>
>>>
>>
>>
>>
>> --
>> Hiranya Jayathilaka
>> Senior Software Engineer;
>> WSO2 Inc.;  http://wso2.org
>> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
>> Blog: http://techfeast-hiranya.blogspot.com
>>
>
>
>
> --
> Hiranya Jayathilaka
> Senior Software Engineer;
> WSO2 Inc.;  http://wso2.org
> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
> Blog: http://techfeast-hiranya.blogspot.com
>



-- 
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

RE: If the message has name space setting the switch mediator does not work?

Posted by Abid Khan-EXT <Ab...@jeppesen.com>.
In an ESB, there could be several application developed by completely groups or even companies, who had no link together, when they developed their application, but became partner to exchange information to get their day to day work done.

The function of an ESB is to route all kind of messages not only one domain specific. I never thought before making use of synapse that it would have this issue.

Anyway thanks for the advice, for using xslt to remove the namespace, I am doing exactly that but developed my own mediator to do that.

Thanks & Regards,
Abid

-----Original Message-----
From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com] 
Sent: Friday, October 08, 2010 1:08 PM
To: user@synapse.apache.org
Subject: Re: If the message has name space setting the switch mediator does not work?

On Fri, Oct 8, 2010 at 11:58 PM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
> Hiranya,
>
> Thanks for the quick response, but I cannot put the URL either since different messages will have different namespace and or URL.

So you get different messages with the same XML format but with
different (unknown) namespaces? That is very unusual. Usually
messaging systems deal with a previously agreed upon standard set of
namespaces. Otherwise it becomes an interop nightmare.

However if the messages are namespace qualified you need to define the
exact namespaces in the switch mediator. Otherwise it won't work. I'm
not a Xpath pro so I'm not sure whether there's a way to write an
XPath expression in a namespace independent manner. Please see if you
can find something like that. May be somebody else in the list will
have an idea how to do that...

Thanks,
Hiranya

>
> Thanks & Regards,
> Abid
>
>
> -----Original Message-----
> From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com]
> Sent: Friday, October 08, 2010 12:25 PM
> To: user@synapse.apache.org
> Subject: Re: If the message has name space setting the switch mediator does not work?
>
> On Fri, Oct 8, 2010 at 9:42 PM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>> Hello Andreas,
>>
>> I understand that, but what if the message has no-prefix namespace something like:
>
> That's fine. As far as the functionality is concerned, URL is he
> important part in the namespace. Prefix could be anything. The prefix
> used in your XPath doesn't have to match to the prefix in the message.
> In fact message doesn't have to have a prefix at all.
>
> Thanks,
> Hiranya
>
>
>>
>> <Message xmlns="http://www.company.com/test"/>
>> ....
>> ...
>> </Message>
>>
>> This what I have most of the messages that I am processing with Synapse, have not prefix name space or default namespace declaration. Which is the problem I am facing.
>>
>>
>>
>> Thanks & Regards,
>> Abid
>>
>>
>> -----Original Message-----
>> From: Andreas Veithen [mailto:andreas.veithen@gmail.com]
>> Sent: Friday, October 08, 2010 10:07 AM
>> To: user@synapse.apache.org
>> Subject: Re: If the message has name space setting the switch mediator does not work?
>>
>> Try with something like this:
>>
>> <switch source="//p:Message/p:header/p:msgType"
>> xmlns:p="http://www.company.com/test">
>>
>> Note that XPath expressions in Synapse configuration files are
>> supposed to work the same way as XPath expressions in XSLT, so if you
>> have a colleague who is familiar with XSLT, he may help you to figure
>> out the details.
>>
>> Andreas
>>
>> On Fri, Oct 8, 2010 at 17:46, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>>> I am not sure what is the difference in both ways here is how I am creating the switch:
>>>
>>> <switch source="//Message/header/msgType">
>>>         <case regex="RequesResponse">
>>>                 <validate>
>>>                         <schema key="Message01"/>
>>>                         <on-fail>
>>>                                 <sequence key="ValidationFaultSequence" />
>>>                         </on-fail>
>>>                 </validate>
>>>         </case>
>>>         <case regex="Publish">
>>>                 <validate>
>>>                         <schema key=" Message02"/>
>>>                         <on-fail>
>>>                                 <sequence key="ValidationFaultSequence" />
>>>                         </on-fail>
>>>                 </validate>^M
>>>         </case>
>>> </switch>
>>>
>>> This exact switch works if the name space of the document is removed, and does not work otherwise.
>>>
>>> Please advise.
>>>
>>> Thanks & Regards,
>>> Abid
>>>
>>> -----Original Message-----
>>> From: Supun Kamburugamuva [mailto:supun06@gmail.com]
>>> Sent: Thursday, October 07, 2010 8:29 PM
>>> To: user@synapse.apache.org
>>> Subject: Re: If the message has name space setting the switch mediator does not work?
>>>
>>> I believe you are using XPath to get a value of a element. You can write a
>>> Xpath in such a way that it works both with namespace qualified elements as
>>> well as normal elements.
>>>
>>> Thanks,
>>> Supun..
>>>
>>> On Tue, Sep 28, 2010 at 9:12 PM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:
>>>
>>>> Hello all,
>>>>
>>>> I am receiving a message and the switch works if I take the namespace
>>>> string out of the message, but I cannot tell the sender to remove it. Is
>>>> there anything I can do that synapse can handle the name space.
>>>>
>>>> Message that starts with something like this is not handled properly, by
>>>> "switch" mediator.
>>>>
>>>> <Request xmlns="http://www.company.com/test" xmlns:xsi="
>>>> http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
>>>> http://www.company.com/test ../test/Request.xsd">
>>>>
>>>>
>>>> Thanks & Regards,
>>>>
>>>> Abid Khan
>>>> Java Consultant
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Tech Lead, WSO2 Inc
>>> http://wso2.org
>>> supunk.blogspot.com
>>>
>>
>
>
>
> --
> Hiranya Jayathilaka
> Senior Software Engineer;
> WSO2 Inc.;  http://wso2.org
> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
> Blog: http://techfeast-hiranya.blogspot.com
>



-- 
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

Re: Help: how to invoke a Sequence from a class mediator

Posted by Ruwan Linton <ru...@gmail.com>.
Yeah, if it is a class mediator you have the access to the synapse
MessageContext so it is just a matter of calling,

synCtx.getSequence("$SEQ_NAME") to get hold of any defined or registry
looked up sequence.

Ruwan

On Tue, May 3, 2011 at 9:55 PM, Charith Wickramarachchi <
charith.dhanushka@gmail.com> wrote:

> That is the version of Synapse you are using ?
> And you can also use messageContext.getSequence()
>
> thanks,
> Charith
>
> On Thu, Apr 21, 2011 at 5:16 AM, Abid Khan-EXT <Abid.Khan@jeppesen.com
> >wrote:
>
> > Hello Charith,
> >
> >
> >
> > I finally got time to look into this again, but the method
> > “getSynapseConfiguration()” is not available in
> >
> >
> >
> > messageContext.getEnvironment().getSynapseConfiguration()
> >
> >
> >
> > if I write that it give me compilation error.
> >
> >
> >
> > Thanks,
> >
> > Abid
> >
> >
> >
> > *From:* Charith Wickramarachchi [mailto:charith.dhanushka@gmail.com]
> > *Sent:* Monday, April 04, 2011 3:45 PM
> > *To:* user@synapse.apache.org
> > *Cc:* Abid Khan-EXT
> > *Subject:* Re: Help: how to invoke a Sequence from a class mediator
> >
> >
> >
> > You have access to the Synapse Configuration inside any Mediator.
> > If its a defined sequence in the configuration.
> > you can use.
> >
> messageContext.getEnvironment().getSynapseConfiguration().getDefinedSequences().get("Sequence
> > Name").
> >
> > If its coming from a registry.
> > you can use.
> > messageContext.getSequence("Sequence Name")
> >
> > thanks,
> > Charith
> >
> >
> > On Mon, Apr 4, 2011 at 10:13 PM, Abid Khan-EXT <Ab...@jeppesen.com>
> > wrote:
> >
> > Hello
> >
> > I have a certain need for invoking a sequence from a class mediator,
> please
> > provide some hints,
> >
> > Thank,
> > Abid
> >
> >
> >
> >
> > --
> > Charith Dhanushka Wickramarachchi
> >
> > Software Engineer
> >
> > WSO2 Inc
> >
> > http://wso2.com/
> >
> > http://wso2.org/
> >
> >
> >
> > blog
> >
> > http://charithwiki.blogspot.com/
> >
> >
> >
> > twitter
> >
> > http://twitter.com/charithwiki
> >
> >
> >
>
>
>
> --
> Charith Dhanushka Wickramarachchi
> http://charithwiki.blogspot.com/
>



-- 
Ruwan Linton
Member, Apache Software Foundation; http://www.apache.org
<http://wso2.org>

phone: +94 11 282 7532
email: ruwan@blindvision.org; cell: +94 77 341 3097
blog: http://blog.ruwan.org
linkedin: http://www.linkedin.com/in/ruwanlinton
google: http://www.google.com/profiles/ruwan.linton
tweet: http://twitter.com/ruwanlinton

Re: Help: how to invoke a Sequence from a class mediator

Posted by Charith Wickramarachchi <ch...@gmail.com>.
That is the version of Synapse you are using ?
And you can also use messageContext.getSequence()

thanks,
Charith

On Thu, Apr 21, 2011 at 5:16 AM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:

> Hello Charith,
>
>
>
> I finally got time to look into this again, but the method
> “getSynapseConfiguration()” is not available in
>
>
>
> messageContext.getEnvironment().getSynapseConfiguration()
>
>
>
> if I write that it give me compilation error.
>
>
>
> Thanks,
>
> Abid
>
>
>
> *From:* Charith Wickramarachchi [mailto:charith.dhanushka@gmail.com]
> *Sent:* Monday, April 04, 2011 3:45 PM
> *To:* user@synapse.apache.org
> *Cc:* Abid Khan-EXT
> *Subject:* Re: Help: how to invoke a Sequence from a class mediator
>
>
>
> You have access to the Synapse Configuration inside any Mediator.
> If its a defined sequence in the configuration.
> you can use.
> messageContext.getEnvironment().getSynapseConfiguration().getDefinedSequences().get("Sequence
> Name").
>
> If its coming from a registry.
> you can use.
> messageContext.getSequence("Sequence Name")
>
> thanks,
> Charith
>
>
> On Mon, Apr 4, 2011 at 10:13 PM, Abid Khan-EXT <Ab...@jeppesen.com>
> wrote:
>
> Hello
>
> I have a certain need for invoking a sequence from a class mediator, please
> provide some hints,
>
> Thank,
> Abid
>
>
>
>
> --
> Charith Dhanushka Wickramarachchi
>
> Software Engineer
>
> WSO2 Inc
>
> http://wso2.com/
>
> http://wso2.org/
>
>
>
> blog
>
> http://charithwiki.blogspot.com/
>
>
>
> twitter
>
> http://twitter.com/charithwiki
>
>
>



-- 
Charith Dhanushka Wickramarachchi
http://charithwiki.blogspot.com/

Re: Please help: does Synapse leak memory?

Posted by Ruwan Linton <ru...@gmail.com>.
I think there is a possibility of leakage of message contexts in *none*
normal flows, *depending* on the configuration. It is subjective and most of
the time a configuration tune up can be done to overcome this situation. So
you better try to re-produce the problem with a fragment of the
configuration and share it with us so that we can have a look into possible
configuration tuneups.

Ruwan

On Sat, May 21, 2011 at 11:01 PM, Hiranya Jayathilaka
<hi...@gmail.com>wrote:

> On Sat, May 21, 2011 at 1:32 AM, Andreas Veithen
> <an...@gmail.com>wrote:
>
> > On Thu, May 19, 2011 at 20:09, Hiranya Jayathilaka <hiranya911@gmail.com
> >
> > wrote:
> > > Synapse creates an Axis2MessageContext for each message received. Each
> > > Axis2MessageContext instance encapsulates a MessageContext object. But
> > > Synapse does not keep them in memory for too long. As soon as messages
> > are
> > > mediated and sent to the corresponding endpoints/clients, they are
> > > discarded.
> >
> > Not sure that this is entirely correct. In a request-response
> > exchange, doesn't the callback keep a reference to the outgoing
> > message context?
>
>
> It does. I was speaking about the general case. When Synapse receives the
> response from the backend server, the callback will get removed and the
> message context instances will be cleaned up due course. So for normal HTTP
> invocations things should get cleaned up within a matter of seconds at
> most.
>
>
> > What I've seen in the past is that some configuration
> > problems may cause Synapse to believe that a message exchange is
> > request-response while the outgoing transport is actually doing
> > out-only. In that case, the callback handlers just continue to pile up
> > in memory until they expire.
>
>
> This could happen due to a configuration error. For instance if you haven't
> set the OUT_ONLY property on a flow where you should be setting it.
>
>
> > IIRC, at the time I observed this, the
> > default timeout was 24h.
> >
> > Abid's observation that this only occurs for failures may point to the
> > same root cause, i.e. callbacks not being removed.
>
>
> One possible cause is that callbacks may have accumulated for all the
> messages sent to the wrong endpoint. However if endpoint suspension is not
> disabled that should guard against this. From Abid's description it looks
> like suspension is disabled. Otherwise the very first error should have
> suspended the endpoint and subsequent messages would not have been sent.
>
> Thanks,
> Hiranya
>
>
> >
> > > These objects could be fairly big since they contain message
> > > payload, properties and all other context information of messages. So
> if
> > > Synapse is keeping them in memory forever, we won't be able to run any
> > > scenario with Synapse for more than several hours. But as Paul
> mentioned
> > we
> > > have seen some pretty heavy duty deployments of Synapse dealing with
> > > hundreds of transactions every second. One of the key strengths of
> > Synapse
> > > is that it can handle very high volumes of messages with a very small
> > memory
> > > footprint.
> > >
> > > How much memory have you allocated for JBoss server? Also what is your
> > > Synapse configuration like? What's the memory usage pattern when you
> run
> > > Synapse standalone (ie without JBoss)?
> > >
> > > Thanks,
> > > Hiranya
> > >
> > > On Thu, May 19, 2011 at 9:17 PM, Abid Khan-EXT <Abid.Khan@jeppesen.com
> > >wrote:
> > >
> > >> Hello Paul,
> > >>
> > >> What you are telling me is a good news. The facts I have here, are
> > >> different. I ran the server for a load-test and ran only 26000 message
> > (of
> > >> about 1K each message size), that made the GC threads taking over
> every
> > >> thing, the java process was so stuck that the jboss-shutdown command
> > could
> > >> not bring it down.
> > >>
> > >> And my trace log (memory profiling) showed that one instance of both
> > >> MessageContext and Axis2MessageContext were leaked for every message
> > that is
> > >> delivered/processed.
> > >>
> > >> I am using 1.2 GA of synapse. And I am running it in JBoss.
> > >>
> > >> And will be more than happy to send the thread dump, but that is very
> > big.
> > >>
> > >> Once again thanks for getting back to me and I am looking for good
> > pointers
> > >> from you very soon.
> > >>
> > >> Regards,
> > >> Abid
> > >>
> > >>
> > >>
> > >>
> > >> -----Original Message-----
> > >> From: Paul Fremantle [mailto:pzfreo@gmail.com]
> > >> Sent: Wednesday, May 18, 2011 8:39 PM
> > >> To: user@synapse.apache.org
> > >> Subject: Re: Please help: does Synapse leak memory?
> > >>
> > >> Abid
> > >>
> > >> Can you give us some idea of the flows? I know that Synapse is usually
> > >> memory safe - I have thread dumps from people who have pumped 134
> > >> terabytes of data, 1.4 billion messages and all this with a max heap
> > >> size of <2Gb and no leaks.
> > >>
> > >> Paul
> > >>
> > >> On Thu, May 19, 2011 at 1:49 AM, Abid Khan-EXT <
> Abid.Khan@jeppesen.com>
> > >> wrote:
> > >> > Hello all,
> > >> >
> > >> > I am troubleshooting an instance where I had used Synapse, the issue
> > is
> > >> that after delivering few thousand message server runs out of memory.
> > >> >
> > >> > I investigated and found out that for each message that is delivered
> > >> Synapse is leaking following two objects:
> > >> >
> > >> > 1) org.apache.axis2.context.MessageContext
> > >> >
> > >> > 2) org.apache.synapse.core.axis2.Axis2MessageContext
> > >> >
> > >> > I thought that it might be related to threads and ThreadLocal, but
> > when I
> > >> scanned the thread local of all 160+ threads those objects were not
> > there.
> > >> >
> > >> > It seems that synapse is keeping those two object in its some
> internal
> > >> object, that is difficult to find.
> > >> >
> > >> > Because of this problem those objects; server leaks memory at very
> > high
> > >> rate, and freezes after few hours of running?
> > >> >
> > >> > Any immediate response will be appreciated,
> > >> >
> > >> >
> > >> > Thanks,
> > >> > Abid
> > >> >
> > >>
> > >>
> > >>
> > >> --
> > >> Paul Fremantle
> > >> Co-Founder and CTO, WSO2
> > >> Apache Synapse PMC Chair
> > >> OASIS WS-RX TC Co-chair
> > >>
> > >> blog: http://pzf.fremantle.org
> > >> paul@wso2.com
> > >>
> > >> "Oxygenating the Web Service Platform", www.wso2.com
> > >>
> > >
> > >
> > >
> > > --
> > > Hiranya Jayathilaka
> > > Senior Software Engineer;
> > > WSO2 Inc.;  http://wso2.org
> > > E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
> > > Blog: http://techfeast-hiranya.blogspot.com
> > >
> >
>
>
>
> --
> Hiranya Jayathilaka
> Senior Software Engineer;
> WSO2 Inc.;  http://wso2.org
> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
> Blog: http://techfeast-hiranya.blogspot.com
>



-- 
Ruwan Linton
Member, Apache Software Foundation; http://www.apache.org
<http://wso2.org>

phone: +94 11 282 7532
email: ruwan@blindvision.org; cell: +94 77 341 3097
blog: http://blog.ruwan.org
linkedin: http://www.linkedin.com/in/ruwanlinton
google: http://www.google.com/profiles/ruwan.linton
tweet: http://twitter.com/ruwanlinton

Re: Please help: does Synapse leak memory?

Posted by Hiranya Jayathilaka <hi...@gmail.com>.
On Sat, May 21, 2011 at 1:32 AM, Andreas Veithen
<an...@gmail.com>wrote:

> On Thu, May 19, 2011 at 20:09, Hiranya Jayathilaka <hi...@gmail.com>
> wrote:
> > Synapse creates an Axis2MessageContext for each message received. Each
> > Axis2MessageContext instance encapsulates a MessageContext object. But
> > Synapse does not keep them in memory for too long. As soon as messages
> are
> > mediated and sent to the corresponding endpoints/clients, they are
> > discarded.
>
> Not sure that this is entirely correct. In a request-response
> exchange, doesn't the callback keep a reference to the outgoing
> message context?


It does. I was speaking about the general case. When Synapse receives the
response from the backend server, the callback will get removed and the
message context instances will be cleaned up due course. So for normal HTTP
invocations things should get cleaned up within a matter of seconds at most.


> What I've seen in the past is that some configuration
> problems may cause Synapse to believe that a message exchange is
> request-response while the outgoing transport is actually doing
> out-only. In that case, the callback handlers just continue to pile up
> in memory until they expire.


This could happen due to a configuration error. For instance if you haven't
set the OUT_ONLY property on a flow where you should be setting it.


> IIRC, at the time I observed this, the
> default timeout was 24h.
>
> Abid's observation that this only occurs for failures may point to the
> same root cause, i.e. callbacks not being removed.


One possible cause is that callbacks may have accumulated for all the
messages sent to the wrong endpoint. However if endpoint suspension is not
disabled that should guard against this. From Abid's description it looks
like suspension is disabled. Otherwise the very first error should have
suspended the endpoint and subsequent messages would not have been sent.

Thanks,
Hiranya


>
> > These objects could be fairly big since they contain message
> > payload, properties and all other context information of messages. So if
> > Synapse is keeping them in memory forever, we won't be able to run any
> > scenario with Synapse for more than several hours. But as Paul mentioned
> we
> > have seen some pretty heavy duty deployments of Synapse dealing with
> > hundreds of transactions every second. One of the key strengths of
> Synapse
> > is that it can handle very high volumes of messages with a very small
> memory
> > footprint.
> >
> > How much memory have you allocated for JBoss server? Also what is your
> > Synapse configuration like? What's the memory usage pattern when you run
> > Synapse standalone (ie without JBoss)?
> >
> > Thanks,
> > Hiranya
> >
> > On Thu, May 19, 2011 at 9:17 PM, Abid Khan-EXT <Abid.Khan@jeppesen.com
> >wrote:
> >
> >> Hello Paul,
> >>
> >> What you are telling me is a good news. The facts I have here, are
> >> different. I ran the server for a load-test and ran only 26000 message
> (of
> >> about 1K each message size), that made the GC threads taking over every
> >> thing, the java process was so stuck that the jboss-shutdown command
> could
> >> not bring it down.
> >>
> >> And my trace log (memory profiling) showed that one instance of both
> >> MessageContext and Axis2MessageContext were leaked for every message
> that is
> >> delivered/processed.
> >>
> >> I am using 1.2 GA of synapse. And I am running it in JBoss.
> >>
> >> And will be more than happy to send the thread dump, but that is very
> big.
> >>
> >> Once again thanks for getting back to me and I am looking for good
> pointers
> >> from you very soon.
> >>
> >> Regards,
> >> Abid
> >>
> >>
> >>
> >>
> >> -----Original Message-----
> >> From: Paul Fremantle [mailto:pzfreo@gmail.com]
> >> Sent: Wednesday, May 18, 2011 8:39 PM
> >> To: user@synapse.apache.org
> >> Subject: Re: Please help: does Synapse leak memory?
> >>
> >> Abid
> >>
> >> Can you give us some idea of the flows? I know that Synapse is usually
> >> memory safe - I have thread dumps from people who have pumped 134
> >> terabytes of data, 1.4 billion messages and all this with a max heap
> >> size of <2Gb and no leaks.
> >>
> >> Paul
> >>
> >> On Thu, May 19, 2011 at 1:49 AM, Abid Khan-EXT <Ab...@jeppesen.com>
> >> wrote:
> >> > Hello all,
> >> >
> >> > I am troubleshooting an instance where I had used Synapse, the issue
> is
> >> that after delivering few thousand message server runs out of memory.
> >> >
> >> > I investigated and found out that for each message that is delivered
> >> Synapse is leaking following two objects:
> >> >
> >> > 1) org.apache.axis2.context.MessageContext
> >> >
> >> > 2) org.apache.synapse.core.axis2.Axis2MessageContext
> >> >
> >> > I thought that it might be related to threads and ThreadLocal, but
> when I
> >> scanned the thread local of all 160+ threads those objects were not
> there.
> >> >
> >> > It seems that synapse is keeping those two object in its some internal
> >> object, that is difficult to find.
> >> >
> >> > Because of this problem those objects; server leaks memory at very
> high
> >> rate, and freezes after few hours of running?
> >> >
> >> > Any immediate response will be appreciated,
> >> >
> >> >
> >> > Thanks,
> >> > Abid
> >> >
> >>
> >>
> >>
> >> --
> >> Paul Fremantle
> >> Co-Founder and CTO, WSO2
> >> Apache Synapse PMC Chair
> >> OASIS WS-RX TC Co-chair
> >>
> >> blog: http://pzf.fremantle.org
> >> paul@wso2.com
> >>
> >> "Oxygenating the Web Service Platform", www.wso2.com
> >>
> >
> >
> >
> > --
> > Hiranya Jayathilaka
> > Senior Software Engineer;
> > WSO2 Inc.;  http://wso2.org
> > E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
> > Blog: http://techfeast-hiranya.blogspot.com
> >
>



-- 
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

Re: Please help: does Synapse leak memory?

Posted by Andreas Veithen <an...@gmail.com>.
On Thu, May 19, 2011 at 20:09, Hiranya Jayathilaka <hi...@gmail.com> wrote:
> Synapse creates an Axis2MessageContext for each message received. Each
> Axis2MessageContext instance encapsulates a MessageContext object. But
> Synapse does not keep them in memory for too long. As soon as messages are
> mediated and sent to the corresponding endpoints/clients, they are
> discarded.

Not sure that this is entirely correct. In a request-response
exchange, doesn't the callback keep a reference to the outgoing
message context? What I've seen in the past is that some configuration
problems may cause Synapse to believe that a message exchange is
request-response while the outgoing transport is actually doing
out-only. In that case, the callback handlers just continue to pile up
in memory until they expire. IIRC, at the time I observed this, the
default timeout was 24h.

Abid's observation that this only occurs for failures may point to the
same root cause, i.e. callbacks not being removed.

> These objects could be fairly big since they contain message
> payload, properties and all other context information of messages. So if
> Synapse is keeping them in memory forever, we won't be able to run any
> scenario with Synapse for more than several hours. But as Paul mentioned we
> have seen some pretty heavy duty deployments of Synapse dealing with
> hundreds of transactions every second. One of the key strengths of Synapse
> is that it can handle very high volumes of messages with a very small memory
> footprint.
>
> How much memory have you allocated for JBoss server? Also what is your
> Synapse configuration like? What's the memory usage pattern when you run
> Synapse standalone (ie without JBoss)?
>
> Thanks,
> Hiranya
>
> On Thu, May 19, 2011 at 9:17 PM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:
>
>> Hello Paul,
>>
>> What you are telling me is a good news. The facts I have here, are
>> different. I ran the server for a load-test and ran only 26000 message (of
>> about 1K each message size), that made the GC threads taking over every
>> thing, the java process was so stuck that the jboss-shutdown command could
>> not bring it down.
>>
>> And my trace log (memory profiling) showed that one instance of both
>> MessageContext and Axis2MessageContext were leaked for every message that is
>> delivered/processed.
>>
>> I am using 1.2 GA of synapse. And I am running it in JBoss.
>>
>> And will be more than happy to send the thread dump, but that is very big.
>>
>> Once again thanks for getting back to me and I am looking for good pointers
>> from you very soon.
>>
>> Regards,
>> Abid
>>
>>
>>
>>
>> -----Original Message-----
>> From: Paul Fremantle [mailto:pzfreo@gmail.com]
>> Sent: Wednesday, May 18, 2011 8:39 PM
>> To: user@synapse.apache.org
>> Subject: Re: Please help: does Synapse leak memory?
>>
>> Abid
>>
>> Can you give us some idea of the flows? I know that Synapse is usually
>> memory safe - I have thread dumps from people who have pumped 134
>> terabytes of data, 1.4 billion messages and all this with a max heap
>> size of <2Gb and no leaks.
>>
>> Paul
>>
>> On Thu, May 19, 2011 at 1:49 AM, Abid Khan-EXT <Ab...@jeppesen.com>
>> wrote:
>> > Hello all,
>> >
>> > I am troubleshooting an instance where I had used Synapse, the issue is
>> that after delivering few thousand message server runs out of memory.
>> >
>> > I investigated and found out that for each message that is delivered
>> Synapse is leaking following two objects:
>> >
>> > 1) org.apache.axis2.context.MessageContext
>> >
>> > 2) org.apache.synapse.core.axis2.Axis2MessageContext
>> >
>> > I thought that it might be related to threads and ThreadLocal, but when I
>> scanned the thread local of all 160+ threads those objects were not there.
>> >
>> > It seems that synapse is keeping those two object in its some internal
>> object, that is difficult to find.
>> >
>> > Because of this problem those objects; server leaks memory at very high
>> rate, and freezes after few hours of running?
>> >
>> > Any immediate response will be appreciated,
>> >
>> >
>> > Thanks,
>> > Abid
>> >
>>
>>
>>
>> --
>> Paul Fremantle
>> Co-Founder and CTO, WSO2
>> Apache Synapse PMC Chair
>> OASIS WS-RX TC Co-chair
>>
>> blog: http://pzf.fremantle.org
>> paul@wso2.com
>>
>> "Oxygenating the Web Service Platform", www.wso2.com
>>
>
>
>
> --
> Hiranya Jayathilaka
> Senior Software Engineer;
> WSO2 Inc.;  http://wso2.org
> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
> Blog: http://techfeast-hiranya.blogspot.com
>

Re: Please help: does Synapse leak memory?

Posted by Rajika Kumarasiri <ra...@wso2.com>.
Yes please, a sample configuration to re-produce the issue would be great.

Rajika

On Fri, May 20, 2011 at 9:43 PM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:

> The configuration that I have is huge, not only in number of mediators and
> sequences, but I am using lot of class mediators. That makes the
> configuration un useful for any who does not have the code.
>
> What I will do is that I will try to reproduce it with synapse server and
> post the results here.
>
> Thanks,
> Abid
>
>
>
> -----Original Message-----
> From: Rajika Kumarasiri [mailto:rajika@wso2.com]
> Sent: Thursday, May 19, 2011 11:22 PM
> To: user@synapse.apache.org
> Subject: Re: Please help: does Synapse leak memory?
>
> Can you attach your Synapse configuration if possible? And tell which
> endpoint has a typo ?
>
> Rajika
>
> On Thu, May 19, 2011 at 11:47 PM, Abid Khan-EXT <Abid.Khan@jeppesen.com
> >wrote:
>
> > Thanks Hiranya,
> >
> > I have done some more research, and found out the it leaks memory only on
> > the failures. Not on successful deliver.
> >
> > To give you the back ground, I had a typo in one of the endpoint URL. And
> I
> > had only two endpoints, all the message that were attempted to be
> delivered
> > to that "wrong" url; failed. That is what lead to this leaking issue.
> >
> > On the other hand the server I was testing had -Xms1024m, and -Xmx2048m.
> So
> > its little better than what I was thinking.
> >
> > I am still digging into and trying to find where the leak is. I will
> update
> > if I found anything but so far it's a leak on the failures only.
> >
> > If you can find out if this is correct that Synapse could leak those two
> > object on failures. That will help.
> >
> > Thanks,
> > Abid
> >
> >
> >
> >
> > -----Original Message-----
> > From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com]
> > Sent: Thursday, May 19, 2011 12:09 PM
> > To: user@synapse.apache.org
> > Subject: Re: Please help: does Synapse leak memory?
> >
> > Synapse creates an Axis2MessageContext for each message received. Each
> > Axis2MessageContext instance encapsulates a MessageContext object. But
> > Synapse does not keep them in memory for too long. As soon as messages
> are
> > mediated and sent to the corresponding endpoints/clients, they are
> > discarded. These objects could be fairly big since they contain message
> > payload, properties and all other context information of messages. So if
> > Synapse is keeping them in memory forever, we won't be able to run any
> > scenario with Synapse for more than several hours. But as Paul mentioned
> we
> > have seen some pretty heavy duty deployments of Synapse dealing with
> > hundreds of transactions every second. One of the key strengths of
> Synapse
> > is that it can handle very high volumes of messages with a very small
> > memory
> > footprint.
> >
> > How much memory have you allocated for JBoss server? Also what is your
> > Synapse configuration like? What's the memory usage pattern when you run
> > Synapse standalone (ie without JBoss)?
> >
> > Thanks,
> > Hiranya
> >
> > On Thu, May 19, 2011 at 9:17 PM, Abid Khan-EXT <Abid.Khan@jeppesen.com
> > >wrote:
> >
> > > Hello Paul,
> > >
> > > What you are telling me is a good news. The facts I have here, are
> > > different. I ran the server for a load-test and ran only 26000 message
> > (of
> > > about 1K each message size), that made the GC threads taking over every
> > > thing, the java process was so stuck that the jboss-shutdown command
> > could
> > > not bring it down.
> > >
> > > And my trace log (memory profiling) showed that one instance of both
> > > MessageContext and Axis2MessageContext were leaked for every message
> that
> > is
> > > delivered/processed.
> > >
> > > I am using 1.2 GA of synapse. And I am running it in JBoss.
> > >
> > > And will be more than happy to send the thread dump, but that is very
> > big.
> > >
> > > Once again thanks for getting back to me and I am looking for good
> > pointers
> > > from you very soon.
> > >
> > > Regards,
> > > Abid
> > >
> > >
> > >
> > >
> > > -----Original Message-----
> > > From: Paul Fremantle [mailto:pzfreo@gmail.com]
> > > Sent: Wednesday, May 18, 2011 8:39 PM
> > > To: user@synapse.apache.org
> > > Subject: Re: Please help: does Synapse leak memory?
> > >
> > > Abid
> > >
> > > Can you give us some idea of the flows? I know that Synapse is usually
> > > memory safe - I have thread dumps from people who have pumped 134
> > > terabytes of data, 1.4 billion messages and all this with a max heap
> > > size of <2Gb and no leaks.
> > >
> > > Paul
> > >
> > > On Thu, May 19, 2011 at 1:49 AM, Abid Khan-EXT <Abid.Khan@jeppesen.com
> >
> > > wrote:
> > > > Hello all,
> > > >
> > > > I am troubleshooting an instance where I had used Synapse, the issue
> is
> > > that after delivering few thousand message server runs out of memory.
> > > >
> > > > I investigated and found out that for each message that is delivered
> > > Synapse is leaking following two objects:
> > > >
> > > > 1) org.apache.axis2.context.MessageContext
> > > >
> > > > 2) org.apache.synapse.core.axis2.Axis2MessageContext
> > > >
> > > > I thought that it might be related to threads and ThreadLocal, but
> when
> > I
> > > scanned the thread local of all 160+ threads those objects were not
> > there.
> > > >
> > > > It seems that synapse is keeping those two object in its some
> internal
> > > object, that is difficult to find.
> > > >
> > > > Because of this problem those objects; server leaks memory at very
> high
> > > rate, and freezes after few hours of running?
> > > >
> > > > Any immediate response will be appreciated,
> > > >
> > > >
> > > > Thanks,
> > > > Abid
> > > >
> > >
> > >
> > >
> > > --
> > > Paul Fremantle
> > > Co-Founder and CTO, WSO2
> > > Apache Synapse PMC Chair
> > > OASIS WS-RX TC Co-chair
> > >
> > > blog: http://pzf.fremantle.org
> > > paul@wso2.com
> > >
> > > "Oxygenating the Web Service Platform", www.wso2.com
> > >
> >
> >
> >
> > --
> > Hiranya Jayathilaka
> > Senior Software Engineer;
> > WSO2 Inc.;  http://wso2.org
> > E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
> > Blog: http://techfeast-hiranya.blogspot.com
> >
>

RE: Please help: does Synapse leak memory?

Posted by Abid Khan-EXT <Ab...@jeppesen.com>.
The configuration that I have is huge, not only in number of mediators and sequences, but I am using lot of class mediators. That makes the configuration un useful for any who does not have the code.

What I will do is that I will try to reproduce it with synapse server and post the results here.

Thanks,
Abid



-----Original Message-----
From: Rajika Kumarasiri [mailto:rajika@wso2.com]
Sent: Thursday, May 19, 2011 11:22 PM
To: user@synapse.apache.org
Subject: Re: Please help: does Synapse leak memory?

Can you attach your Synapse configuration if possible? And tell which
endpoint has a typo ?

Rajika

On Thu, May 19, 2011 at 11:47 PM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:

> Thanks Hiranya,
>
> I have done some more research, and found out the it leaks memory only on
> the failures. Not on successful deliver.
>
> To give you the back ground, I had a typo in one of the endpoint URL. And I
> had only two endpoints, all the message that were attempted to be delivered
> to that "wrong" url; failed. That is what lead to this leaking issue.
>
> On the other hand the server I was testing had -Xms1024m, and -Xmx2048m. So
> its little better than what I was thinking.
>
> I am still digging into and trying to find where the leak is. I will update
> if I found anything but so far it's a leak on the failures only.
>
> If you can find out if this is correct that Synapse could leak those two
> object on failures. That will help.
>
> Thanks,
> Abid
>
>
>
>
> -----Original Message-----
> From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com]
> Sent: Thursday, May 19, 2011 12:09 PM
> To: user@synapse.apache.org
> Subject: Re: Please help: does Synapse leak memory?
>
> Synapse creates an Axis2MessageContext for each message received. Each
> Axis2MessageContext instance encapsulates a MessageContext object. But
> Synapse does not keep them in memory for too long. As soon as messages are
> mediated and sent to the corresponding endpoints/clients, they are
> discarded. These objects could be fairly big since they contain message
> payload, properties and all other context information of messages. So if
> Synapse is keeping them in memory forever, we won't be able to run any
> scenario with Synapse for more than several hours. But as Paul mentioned we
> have seen some pretty heavy duty deployments of Synapse dealing with
> hundreds of transactions every second. One of the key strengths of Synapse
> is that it can handle very high volumes of messages with a very small
> memory
> footprint.
>
> How much memory have you allocated for JBoss server? Also what is your
> Synapse configuration like? What's the memory usage pattern when you run
> Synapse standalone (ie without JBoss)?
>
> Thanks,
> Hiranya
>
> On Thu, May 19, 2011 at 9:17 PM, Abid Khan-EXT <Abid.Khan@jeppesen.com
> >wrote:
>
> > Hello Paul,
> >
> > What you are telling me is a good news. The facts I have here, are
> > different. I ran the server for a load-test and ran only 26000 message
> (of
> > about 1K each message size), that made the GC threads taking over every
> > thing, the java process was so stuck that the jboss-shutdown command
> could
> > not bring it down.
> >
> > And my trace log (memory profiling) showed that one instance of both
> > MessageContext and Axis2MessageContext were leaked for every message that
> is
> > delivered/processed.
> >
> > I am using 1.2 GA of synapse. And I am running it in JBoss.
> >
> > And will be more than happy to send the thread dump, but that is very
> big.
> >
> > Once again thanks for getting back to me and I am looking for good
> pointers
> > from you very soon.
> >
> > Regards,
> > Abid
> >
> >
> >
> >
> > -----Original Message-----
> > From: Paul Fremantle [mailto:pzfreo@gmail.com]
> > Sent: Wednesday, May 18, 2011 8:39 PM
> > To: user@synapse.apache.org
> > Subject: Re: Please help: does Synapse leak memory?
> >
> > Abid
> >
> > Can you give us some idea of the flows? I know that Synapse is usually
> > memory safe - I have thread dumps from people who have pumped 134
> > terabytes of data, 1.4 billion messages and all this with a max heap
> > size of <2Gb and no leaks.
> >
> > Paul
> >
> > On Thu, May 19, 2011 at 1:49 AM, Abid Khan-EXT <Ab...@jeppesen.com>
> > wrote:
> > > Hello all,
> > >
> > > I am troubleshooting an instance where I had used Synapse, the issue is
> > that after delivering few thousand message server runs out of memory.
> > >
> > > I investigated and found out that for each message that is delivered
> > Synapse is leaking following two objects:
> > >
> > > 1) org.apache.axis2.context.MessageContext
> > >
> > > 2) org.apache.synapse.core.axis2.Axis2MessageContext
> > >
> > > I thought that it might be related to threads and ThreadLocal, but when
> I
> > scanned the thread local of all 160+ threads those objects were not
> there.
> > >
> > > It seems that synapse is keeping those two object in its some internal
> > object, that is difficult to find.
> > >
> > > Because of this problem those objects; server leaks memory at very high
> > rate, and freezes after few hours of running?
> > >
> > > Any immediate response will be appreciated,
> > >
> > >
> > > Thanks,
> > > Abid
> > >
> >
> >
> >
> > --
> > Paul Fremantle
> > Co-Founder and CTO, WSO2
> > Apache Synapse PMC Chair
> > OASIS WS-RX TC Co-chair
> >
> > blog: http://pzf.fremantle.org
> > paul@wso2.com
> >
> > "Oxygenating the Web Service Platform", www.wso2.com
> >
>
>
>
> --
> Hiranya Jayathilaka
> Senior Software Engineer;
> WSO2 Inc.;  http://wso2.org
> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
> Blog: http://techfeast-hiranya.blogspot.com
>

Re: Please help: does Synapse leak memory?

Posted by Rajika Kumarasiri <ra...@wso2.com>.
Can you attach your Synapse configuration if possible? And tell which
endpoint has a typo ?

Rajika

On Thu, May 19, 2011 at 11:47 PM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:

> Thanks Hiranya,
>
> I have done some more research, and found out the it leaks memory only on
> the failures. Not on successful deliver.
>
> To give you the back ground, I had a typo in one of the endpoint URL. And I
> had only two endpoints, all the message that were attempted to be delivered
> to that "wrong" url; failed. That is what lead to this leaking issue.
>
> On the other hand the server I was testing had -Xms1024m, and -Xmx2048m. So
> its little better than what I was thinking.
>
> I am still digging into and trying to find where the leak is. I will update
> if I found anything but so far it's a leak on the failures only.
>
> If you can find out if this is correct that Synapse could leak those two
> object on failures. That will help.
>
> Thanks,
> Abid
>
>
>
>
> -----Original Message-----
> From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com]
> Sent: Thursday, May 19, 2011 12:09 PM
> To: user@synapse.apache.org
> Subject: Re: Please help: does Synapse leak memory?
>
> Synapse creates an Axis2MessageContext for each message received. Each
> Axis2MessageContext instance encapsulates a MessageContext object. But
> Synapse does not keep them in memory for too long. As soon as messages are
> mediated and sent to the corresponding endpoints/clients, they are
> discarded. These objects could be fairly big since they contain message
> payload, properties and all other context information of messages. So if
> Synapse is keeping them in memory forever, we won't be able to run any
> scenario with Synapse for more than several hours. But as Paul mentioned we
> have seen some pretty heavy duty deployments of Synapse dealing with
> hundreds of transactions every second. One of the key strengths of Synapse
> is that it can handle very high volumes of messages with a very small
> memory
> footprint.
>
> How much memory have you allocated for JBoss server? Also what is your
> Synapse configuration like? What's the memory usage pattern when you run
> Synapse standalone (ie without JBoss)?
>
> Thanks,
> Hiranya
>
> On Thu, May 19, 2011 at 9:17 PM, Abid Khan-EXT <Abid.Khan@jeppesen.com
> >wrote:
>
> > Hello Paul,
> >
> > What you are telling me is a good news. The facts I have here, are
> > different. I ran the server for a load-test and ran only 26000 message
> (of
> > about 1K each message size), that made the GC threads taking over every
> > thing, the java process was so stuck that the jboss-shutdown command
> could
> > not bring it down.
> >
> > And my trace log (memory profiling) showed that one instance of both
> > MessageContext and Axis2MessageContext were leaked for every message that
> is
> > delivered/processed.
> >
> > I am using 1.2 GA of synapse. And I am running it in JBoss.
> >
> > And will be more than happy to send the thread dump, but that is very
> big.
> >
> > Once again thanks for getting back to me and I am looking for good
> pointers
> > from you very soon.
> >
> > Regards,
> > Abid
> >
> >
> >
> >
> > -----Original Message-----
> > From: Paul Fremantle [mailto:pzfreo@gmail.com]
> > Sent: Wednesday, May 18, 2011 8:39 PM
> > To: user@synapse.apache.org
> > Subject: Re: Please help: does Synapse leak memory?
> >
> > Abid
> >
> > Can you give us some idea of the flows? I know that Synapse is usually
> > memory safe - I have thread dumps from people who have pumped 134
> > terabytes of data, 1.4 billion messages and all this with a max heap
> > size of <2Gb and no leaks.
> >
> > Paul
> >
> > On Thu, May 19, 2011 at 1:49 AM, Abid Khan-EXT <Ab...@jeppesen.com>
> > wrote:
> > > Hello all,
> > >
> > > I am troubleshooting an instance where I had used Synapse, the issue is
> > that after delivering few thousand message server runs out of memory.
> > >
> > > I investigated and found out that for each message that is delivered
> > Synapse is leaking following two objects:
> > >
> > > 1) org.apache.axis2.context.MessageContext
> > >
> > > 2) org.apache.synapse.core.axis2.Axis2MessageContext
> > >
> > > I thought that it might be related to threads and ThreadLocal, but when
> I
> > scanned the thread local of all 160+ threads those objects were not
> there.
> > >
> > > It seems that synapse is keeping those two object in its some internal
> > object, that is difficult to find.
> > >
> > > Because of this problem those objects; server leaks memory at very high
> > rate, and freezes after few hours of running?
> > >
> > > Any immediate response will be appreciated,
> > >
> > >
> > > Thanks,
> > > Abid
> > >
> >
> >
> >
> > --
> > Paul Fremantle
> > Co-Founder and CTO, WSO2
> > Apache Synapse PMC Chair
> > OASIS WS-RX TC Co-chair
> >
> > blog: http://pzf.fremantle.org
> > paul@wso2.com
> >
> > "Oxygenating the Web Service Platform", www.wso2.com
> >
>
>
>
> --
> Hiranya Jayathilaka
> Senior Software Engineer;
> WSO2 Inc.;  http://wso2.org
> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
> Blog: http://techfeast-hiranya.blogspot.com
>

RE: Please help: does Synapse leak memory?

Posted by Abid Khan-EXT <Ab...@jeppesen.com>.
Thanks Hiranya,

I have done some more research, and found out the it leaks memory only on the failures. Not on successful deliver.

To give you the back ground, I had a typo in one of the endpoint URL. And I had only two endpoints, all the message that were attempted to be delivered to that "wrong" url; failed. That is what lead to this leaking issue.

On the other hand the server I was testing had -Xms1024m, and -Xmx2048m. So its little better than what I was thinking.

I am still digging into and trying to find where the leak is. I will update if I found anything but so far it's a leak on the failures only.

If you can find out if this is correct that Synapse could leak those two object on failures. That will help.

Thanks,
Abid




-----Original Message-----
From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com] 
Sent: Thursday, May 19, 2011 12:09 PM
To: user@synapse.apache.org
Subject: Re: Please help: does Synapse leak memory?

Synapse creates an Axis2MessageContext for each message received. Each
Axis2MessageContext instance encapsulates a MessageContext object. But
Synapse does not keep them in memory for too long. As soon as messages are
mediated and sent to the corresponding endpoints/clients, they are
discarded. These objects could be fairly big since they contain message
payload, properties and all other context information of messages. So if
Synapse is keeping them in memory forever, we won't be able to run any
scenario with Synapse for more than several hours. But as Paul mentioned we
have seen some pretty heavy duty deployments of Synapse dealing with
hundreds of transactions every second. One of the key strengths of Synapse
is that it can handle very high volumes of messages with a very small memory
footprint.

How much memory have you allocated for JBoss server? Also what is your
Synapse configuration like? What's the memory usage pattern when you run
Synapse standalone (ie without JBoss)?

Thanks,
Hiranya

On Thu, May 19, 2011 at 9:17 PM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:

> Hello Paul,
>
> What you are telling me is a good news. The facts I have here, are
> different. I ran the server for a load-test and ran only 26000 message (of
> about 1K each message size), that made the GC threads taking over every
> thing, the java process was so stuck that the jboss-shutdown command could
> not bring it down.
>
> And my trace log (memory profiling) showed that one instance of both
> MessageContext and Axis2MessageContext were leaked for every message that is
> delivered/processed.
>
> I am using 1.2 GA of synapse. And I am running it in JBoss.
>
> And will be more than happy to send the thread dump, but that is very big.
>
> Once again thanks for getting back to me and I am looking for good pointers
> from you very soon.
>
> Regards,
> Abid
>
>
>
>
> -----Original Message-----
> From: Paul Fremantle [mailto:pzfreo@gmail.com]
> Sent: Wednesday, May 18, 2011 8:39 PM
> To: user@synapse.apache.org
> Subject: Re: Please help: does Synapse leak memory?
>
> Abid
>
> Can you give us some idea of the flows? I know that Synapse is usually
> memory safe - I have thread dumps from people who have pumped 134
> terabytes of data, 1.4 billion messages and all this with a max heap
> size of <2Gb and no leaks.
>
> Paul
>
> On Thu, May 19, 2011 at 1:49 AM, Abid Khan-EXT <Ab...@jeppesen.com>
> wrote:
> > Hello all,
> >
> > I am troubleshooting an instance where I had used Synapse, the issue is
> that after delivering few thousand message server runs out of memory.
> >
> > I investigated and found out that for each message that is delivered
> Synapse is leaking following two objects:
> >
> > 1) org.apache.axis2.context.MessageContext
> >
> > 2) org.apache.synapse.core.axis2.Axis2MessageContext
> >
> > I thought that it might be related to threads and ThreadLocal, but when I
> scanned the thread local of all 160+ threads those objects were not there.
> >
> > It seems that synapse is keeping those two object in its some internal
> object, that is difficult to find.
> >
> > Because of this problem those objects; server leaks memory at very high
> rate, and freezes after few hours of running?
> >
> > Any immediate response will be appreciated,
> >
> >
> > Thanks,
> > Abid
> >
>
>
>
> --
> Paul Fremantle
> Co-Founder and CTO, WSO2
> Apache Synapse PMC Chair
> OASIS WS-RX TC Co-chair
>
> blog: http://pzf.fremantle.org
> paul@wso2.com
>
> "Oxygenating the Web Service Platform", www.wso2.com
>



-- 
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

Re: Please help: does Synapse leak memory?

Posted by Hiranya Jayathilaka <hi...@gmail.com>.
Synapse creates an Axis2MessageContext for each message received. Each
Axis2MessageContext instance encapsulates a MessageContext object. But
Synapse does not keep them in memory for too long. As soon as messages are
mediated and sent to the corresponding endpoints/clients, they are
discarded. These objects could be fairly big since they contain message
payload, properties and all other context information of messages. So if
Synapse is keeping them in memory forever, we won't be able to run any
scenario with Synapse for more than several hours. But as Paul mentioned we
have seen some pretty heavy duty deployments of Synapse dealing with
hundreds of transactions every second. One of the key strengths of Synapse
is that it can handle very high volumes of messages with a very small memory
footprint.

How much memory have you allocated for JBoss server? Also what is your
Synapse configuration like? What's the memory usage pattern when you run
Synapse standalone (ie without JBoss)?

Thanks,
Hiranya

On Thu, May 19, 2011 at 9:17 PM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:

> Hello Paul,
>
> What you are telling me is a good news. The facts I have here, are
> different. I ran the server for a load-test and ran only 26000 message (of
> about 1K each message size), that made the GC threads taking over every
> thing, the java process was so stuck that the jboss-shutdown command could
> not bring it down.
>
> And my trace log (memory profiling) showed that one instance of both
> MessageContext and Axis2MessageContext were leaked for every message that is
> delivered/processed.
>
> I am using 1.2 GA of synapse. And I am running it in JBoss.
>
> And will be more than happy to send the thread dump, but that is very big.
>
> Once again thanks for getting back to me and I am looking for good pointers
> from you very soon.
>
> Regards,
> Abid
>
>
>
>
> -----Original Message-----
> From: Paul Fremantle [mailto:pzfreo@gmail.com]
> Sent: Wednesday, May 18, 2011 8:39 PM
> To: user@synapse.apache.org
> Subject: Re: Please help: does Synapse leak memory?
>
> Abid
>
> Can you give us some idea of the flows? I know that Synapse is usually
> memory safe - I have thread dumps from people who have pumped 134
> terabytes of data, 1.4 billion messages and all this with a max heap
> size of <2Gb and no leaks.
>
> Paul
>
> On Thu, May 19, 2011 at 1:49 AM, Abid Khan-EXT <Ab...@jeppesen.com>
> wrote:
> > Hello all,
> >
> > I am troubleshooting an instance where I had used Synapse, the issue is
> that after delivering few thousand message server runs out of memory.
> >
> > I investigated and found out that for each message that is delivered
> Synapse is leaking following two objects:
> >
> > 1) org.apache.axis2.context.MessageContext
> >
> > 2) org.apache.synapse.core.axis2.Axis2MessageContext
> >
> > I thought that it might be related to threads and ThreadLocal, but when I
> scanned the thread local of all 160+ threads those objects were not there.
> >
> > It seems that synapse is keeping those two object in its some internal
> object, that is difficult to find.
> >
> > Because of this problem those objects; server leaks memory at very high
> rate, and freezes after few hours of running?
> >
> > Any immediate response will be appreciated,
> >
> >
> > Thanks,
> > Abid
> >
>
>
>
> --
> Paul Fremantle
> Co-Founder and CTO, WSO2
> Apache Synapse PMC Chair
> OASIS WS-RX TC Co-chair
>
> blog: http://pzf.fremantle.org
> paul@wso2.com
>
> "Oxygenating the Web Service Platform", www.wso2.com
>



-- 
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

RE: Please help: does Synapse leak memory?

Posted by Abid Khan-EXT <Ab...@jeppesen.com>.
Hello Paul,

What you are telling me is a good news. The facts I have here, are different. I ran the server for a load-test and ran only 26000 message (of about 1K each message size), that made the GC threads taking over every thing, the java process was so stuck that the jboss-shutdown command could not bring it down.

And my trace log (memory profiling) showed that one instance of both MessageContext and Axis2MessageContext were leaked for every message that is delivered/processed.

I am using 1.2 GA of synapse. And I am running it in JBoss.

And will be more than happy to send the thread dump, but that is very big.

Once again thanks for getting back to me and I am looking for good pointers from you very soon.

Regards,
Abid




-----Original Message-----
From: Paul Fremantle [mailto:pzfreo@gmail.com] 
Sent: Wednesday, May 18, 2011 8:39 PM
To: user@synapse.apache.org
Subject: Re: Please help: does Synapse leak memory?

Abid

Can you give us some idea of the flows? I know that Synapse is usually
memory safe - I have thread dumps from people who have pumped 134
terabytes of data, 1.4 billion messages and all this with a max heap
size of <2Gb and no leaks.

Paul

On Thu, May 19, 2011 at 1:49 AM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
> Hello all,
>
> I am troubleshooting an instance where I had used Synapse, the issue is that after delivering few thousand message server runs out of memory.
>
> I investigated and found out that for each message that is delivered Synapse is leaking following two objects:
>
> 1) org.apache.axis2.context.MessageContext
>
> 2) org.apache.synapse.core.axis2.Axis2MessageContext
>
> I thought that it might be related to threads and ThreadLocal, but when I scanned the thread local of all 160+ threads those objects were not there.
>
> It seems that synapse is keeping those two object in its some internal object, that is difficult to find.
>
> Because of this problem those objects; server leaks memory at very high rate, and freezes after few hours of running?
>
> Any immediate response will be appreciated,
>
>
> Thanks,
> Abid
>



-- 
Paul Fremantle
Co-Founder and CTO, WSO2
Apache Synapse PMC Chair
OASIS WS-RX TC Co-chair

blog: http://pzf.fremantle.org
paul@wso2.com

"Oxygenating the Web Service Platform", www.wso2.com

Re: Please help: does Synapse leak memory?

Posted by Paul Fremantle <pz...@gmail.com>.
Also which release are  you on?

Paul

On Thu, May 19, 2011 at 3:38 AM, Paul Fremantle <pz...@gmail.com> wrote:
> Abid
>
> Can you give us some idea of the flows? I know that Synapse is usually
> memory safe - I have thread dumps from people who have pumped 134
> terabytes of data, 1.4 billion messages and all this with a max heap
> size of <2Gb and no leaks.
>
> Paul
>
> On Thu, May 19, 2011 at 1:49 AM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>> Hello all,
>>
>> I am troubleshooting an instance where I had used Synapse, the issue is that after delivering few thousand message server runs out of memory.
>>
>> I investigated and found out that for each message that is delivered Synapse is leaking following two objects:
>>
>> 1) org.apache.axis2.context.MessageContext
>>
>> 2) org.apache.synapse.core.axis2.Axis2MessageContext
>>
>> I thought that it might be related to threads and ThreadLocal, but when I scanned the thread local of all 160+ threads those objects were not there.
>>
>> It seems that synapse is keeping those two object in its some internal object, that is difficult to find.
>>
>> Because of this problem those objects; server leaks memory at very high rate, and freezes after few hours of running?
>>
>> Any immediate response will be appreciated,
>>
>>
>> Thanks,
>> Abid
>>
>
>
>
> --
> Paul Fremantle
> Co-Founder and CTO, WSO2
> Apache Synapse PMC Chair
> OASIS WS-RX TC Co-chair
>
> blog: http://pzf.fremantle.org
> paul@wso2.com
>
> "Oxygenating the Web Service Platform", www.wso2.com
>



-- 
Paul Fremantle
Co-Founder and CTO, WSO2
Apache Synapse PMC Chair
OASIS WS-RX TC Co-chair

blog: http://pzf.fremantle.org
paul@wso2.com

"Oxygenating the Web Service Platform", www.wso2.com

Re: Please help: does Synapse leak memory?

Posted by Paul Fremantle <pz...@gmail.com>.
Abid

Can you give us some idea of the flows? I know that Synapse is usually
memory safe - I have thread dumps from people who have pumped 134
terabytes of data, 1.4 billion messages and all this with a max heap
size of <2Gb and no leaks.

Paul

On Thu, May 19, 2011 at 1:49 AM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
> Hello all,
>
> I am troubleshooting an instance where I had used Synapse, the issue is that after delivering few thousand message server runs out of memory.
>
> I investigated and found out that for each message that is delivered Synapse is leaking following two objects:
>
> 1) org.apache.axis2.context.MessageContext
>
> 2) org.apache.synapse.core.axis2.Axis2MessageContext
>
> I thought that it might be related to threads and ThreadLocal, but when I scanned the thread local of all 160+ threads those objects were not there.
>
> It seems that synapse is keeping those two object in its some internal object, that is difficult to find.
>
> Because of this problem those objects; server leaks memory at very high rate, and freezes after few hours of running?
>
> Any immediate response will be appreciated,
>
>
> Thanks,
> Abid
>



-- 
Paul Fremantle
Co-Founder and CTO, WSO2
Apache Synapse PMC Chair
OASIS WS-RX TC Co-chair

blog: http://pzf.fremantle.org
paul@wso2.com

"Oxygenating the Web Service Platform", www.wso2.com

Please help: does Synapse leak memory?

Posted by Abid Khan-EXT <Ab...@jeppesen.com>.
Hello all,

I am troubleshooting an instance where I had used Synapse, the issue is that after delivering few thousand message server runs out of memory.

I investigated and found out that for each message that is delivered Synapse is leaking following two objects:

1) org.apache.axis2.context.MessageContext

2) org.apache.synapse.core.axis2.Axis2MessageContext

I thought that it might be related to threads and ThreadLocal, but when I scanned the thread local of all 160+ threads those objects were not there.

It seems that synapse is keeping those two object in its some internal object, that is difficult to find.

Because of this problem those objects; server leaks memory at very high rate, and freezes after few hours of running?

Any immediate response will be appreciated,


Thanks,
Abid

RE: Help needed

Posted by Abid Khan-EXT <Ab...@jeppesen.com>.
That is inside a filter-condition, there are different kind of messages that are flowing thru synapse, in the case when the type is 1, that is where the issue is.

For all other types of message is expected to be done, in the "else" section of the filter. However when the type of is 1. Then only the application on target endpoint is expected response.

So this config:

<filter source="get-property('com.jeppesen.jsi.message.Type')" regex="1">
               <then>
                    <class name="com.jeppesen.jsi.synapse.ContentBasedRouter"/>
                    <drop/>
               </then>



               <else>
                    <class name="com.jeppesen.jsi.synapse.MonitorLogger">
                         <property name="TextLine" value="SyncAsync-Filter -- The message is asynchronous it will be delivered asynchronously.in other words; if the message is synchronous it will NEVER be delivered."/>
                         <property name="QueueKey" value="JetPlan"/>
                         <property name="Recipient" value="JetPlan"/>
                    </class>
                    <property name="RESPONSE" value="true"/>
                    <header name="To" action="remove"/>
                    <class name="com.jeppesen.jsi.synapse.Responder">
                         <property name="ResponseCode" value="200"/>
                    </class>
                    <out>
                         <send/>
                    </out>
               </else>
          </filter>

Please advise.

Thanks,
Abid

-----Original Message-----
From: Sadeep Jayasumana [mailto:gayansadeep@gmail.com] 
Sent: Tuesday, July 12, 2011 12:22 AM
To: user@synapse.apache.org
Subject: Re: Help needed

Hi Abid,

I see the following configuration in JetPlan-JSI-EntrySequence.

<property name="RESPONSE" value="true"/>
<header name="To" action="remove"/>
<class name="com.jeppesen.jsi.synapse.Responder">
    <property name="ResponseCode" value="200"/>
</class>
<out>
    <send/>
</out>

Could you explain the reason for setting the "RESPONSE" property to true
here? This property marks the message as a response message and sends back
to the synapse client. Is this the expected behavior?

Thanks,
Sadeep


On Mon, Jul 11, 2011 at 10:20 PM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:

> Sorry for got to attach.
>
>
>
>
> -----Original Message-----
> From: Abid Khan-EXT [mailto:Abid.Khan@jeppesen.com]
> Sent: Monday, July 11, 2011 10:38 AM
> To: user@synapse.apache.org
> Subject: RE: Help needed
>
>
> The proxy config is like :
>
> <proxy name="JetPlan" transports="http">
>          <target inSequence="JetPlan-JSI-EntrySequence"
> outSequence="JetPlanOutSeq"/>
> </proxy>
>
> I have attached the full synapse configuration too, just in case you need
> anything else.
>
> Thanks for helping,
> Abid
>
> -----Original Message-----
> From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com]
> Sent: Monday, July 11, 2011 3:20 AM
> To: user@synapse.apache.org
> Subject: Re: Help needed
>
> Any chance of taking a look at the full proxy config?
>
> Thanks,
> Hiranya
>
> On Sat, Jul 9, 2011 at 8:59 AM, Abid Khan-EXT <Abid.Khan@jeppesen.com
> >wrote:
>
> > Hello all,
> >
> > I am using Synapse 1.2.
> >
> > I just have run into a problem;
> >
> > I have a proxy that has target with "inSequense" and "outSequence",
> > "inSequence" also has a onErrorSequence.
> >
> > The <send..> mediator is the last mediator in the "inSequence".
> >
> > The problem is as soon as the message is sent, empty response is written
> to
> > the client, and when the endpoint returns the actual response, it cannot
> be
> > written and exception is logged "response is already committed..."
> >
> > My understanding was that outSequence would be initiated, and the client
> is
> > put on hold until after the response is received by synapse?
> >
> > Please help,
> >
> > Thanks,
> > Abid
> >
> >
> >
>
>
> --
> Hiranya Jayathilaka
> Senior Software Engineer;
> WSO2 Inc.;  http://wso2.org
> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
> Blog: http://techfeast-hiranya.blogspot.com
>



-- 
Sadeep

Re: Help needed

Posted by Sadeep Jayasumana <ga...@gmail.com>.
Hi Abid,

I see the following configuration in JetPlan-JSI-EntrySequence.

<property name="RESPONSE" value="true"/>
<header name="To" action="remove"/>
<class name="com.jeppesen.jsi.synapse.Responder">
    <property name="ResponseCode" value="200"/>
</class>
<out>
    <send/>
</out>

Could you explain the reason for setting the "RESPONSE" property to true
here? This property marks the message as a response message and sends back
to the synapse client. Is this the expected behavior?

Thanks,
Sadeep


On Mon, Jul 11, 2011 at 10:20 PM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:

> Sorry for got to attach.
>
>
>
>
> -----Original Message-----
> From: Abid Khan-EXT [mailto:Abid.Khan@jeppesen.com]
> Sent: Monday, July 11, 2011 10:38 AM
> To: user@synapse.apache.org
> Subject: RE: Help needed
>
>
> The proxy config is like :
>
> <proxy name="JetPlan" transports="http">
>          <target inSequence="JetPlan-JSI-EntrySequence"
> outSequence="JetPlanOutSeq"/>
> </proxy>
>
> I have attached the full synapse configuration too, just in case you need
> anything else.
>
> Thanks for helping,
> Abid
>
> -----Original Message-----
> From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com]
> Sent: Monday, July 11, 2011 3:20 AM
> To: user@synapse.apache.org
> Subject: Re: Help needed
>
> Any chance of taking a look at the full proxy config?
>
> Thanks,
> Hiranya
>
> On Sat, Jul 9, 2011 at 8:59 AM, Abid Khan-EXT <Abid.Khan@jeppesen.com
> >wrote:
>
> > Hello all,
> >
> > I am using Synapse 1.2.
> >
> > I just have run into a problem;
> >
> > I have a proxy that has target with "inSequense" and "outSequence",
> > "inSequence" also has a onErrorSequence.
> >
> > The <send..> mediator is the last mediator in the "inSequence".
> >
> > The problem is as soon as the message is sent, empty response is written
> to
> > the client, and when the endpoint returns the actual response, it cannot
> be
> > written and exception is logged "response is already committed..."
> >
> > My understanding was that outSequence would be initiated, and the client
> is
> > put on hold until after the response is received by synapse?
> >
> > Please help,
> >
> > Thanks,
> > Abid
> >
> >
> >
>
>
> --
> Hiranya Jayathilaka
> Senior Software Engineer;
> WSO2 Inc.;  http://wso2.org
> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
> Blog: http://techfeast-hiranya.blogspot.com
>



-- 
Sadeep

RE: Help needed

Posted by Abid Khan-EXT <Ab...@jeppesen.com>.
Sorry for got to attach.




-----Original Message-----
From: Abid Khan-EXT [mailto:Abid.Khan@jeppesen.com] 
Sent: Monday, July 11, 2011 10:38 AM
To: user@synapse.apache.org
Subject: RE: Help needed


The proxy config is like :

<proxy name="JetPlan" transports="http">
          <target inSequence="JetPlan-JSI-EntrySequence" outSequence="JetPlanOutSeq"/>
</proxy>

I have attached the full synapse configuration too, just in case you need anything else.

Thanks for helping,
Abid

-----Original Message-----
From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com] 
Sent: Monday, July 11, 2011 3:20 AM
To: user@synapse.apache.org
Subject: Re: Help needed

Any chance of taking a look at the full proxy config?

Thanks,
Hiranya

On Sat, Jul 9, 2011 at 8:59 AM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:

> Hello all,
>
> I am using Synapse 1.2.
>
> I just have run into a problem;
>
> I have a proxy that has target with "inSequense" and "outSequence",
> "inSequence" also has a onErrorSequence.
>
> The <send..> mediator is the last mediator in the "inSequence".
>
> The problem is as soon as the message is sent, empty response is written to
> the client, and when the endpoint returns the actual response, it cannot be
> written and exception is logged "response is already committed..."
>
> My understanding was that outSequence would be initiated, and the client is
> put on hold until after the response is received by synapse?
>
> Please help,
>
> Thanks,
> Abid
>
>
>


-- 
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

RE: Help needed

Posted by Abid Khan-EXT <Ab...@jeppesen.com>.
The proxy config is like :

<proxy name="JetPlan" transports="http">
          <target inSequence="JetPlan-JSI-EntrySequence" outSequence="JetPlanOutSeq"/>
</proxy>

I have attached the full synapse configuration too, just in case you need anything else.

Thanks for helping,
Abid

-----Original Message-----
From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com] 
Sent: Monday, July 11, 2011 3:20 AM
To: user@synapse.apache.org
Subject: Re: Help needed

Any chance of taking a look at the full proxy config?

Thanks,
Hiranya

On Sat, Jul 9, 2011 at 8:59 AM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:

> Hello all,
>
> I am using Synapse 1.2.
>
> I just have run into a problem;
>
> I have a proxy that has target with "inSequense" and "outSequence",
> "inSequence" also has a onErrorSequence.
>
> The <send..> mediator is the last mediator in the "inSequence".
>
> The problem is as soon as the message is sent, empty response is written to
> the client, and when the endpoint returns the actual response, it cannot be
> written and exception is logged "response is already committed..."
>
> My understanding was that outSequence would be initiated, and the client is
> put on hold until after the response is received by synapse?
>
> Please help,
>
> Thanks,
> Abid
>
>
>


-- 
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

Re: Help needed

Posted by Hiranya Jayathilaka <hi...@gmail.com>.
Any chance of taking a look at the full proxy config?

Thanks,
Hiranya

On Sat, Jul 9, 2011 at 8:59 AM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:

> Hello all,
>
> I am using Synapse 1.2.
>
> I just have run into a problem;
>
> I have a proxy that has target with "inSequense" and "outSequence",
> "inSequence" also has a onErrorSequence.
>
> The <send..> mediator is the last mediator in the "inSequence".
>
> The problem is as soon as the message is sent, empty response is written to
> the client, and when the endpoint returns the actual response, it cannot be
> written and exception is logged "response is already committed..."
>
> My understanding was that outSequence would be initiated, and the client is
> put on hold until after the response is received by synapse?
>
> Please help,
>
> Thanks,
> Abid
>
>
>


-- 
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

RE: Help needed

Posted by Abid Khan-EXT <Ab...@jeppesen.com>.
Hello Sadeep,


No I am not using that "FORCE_SC_ACCEPTED", and here is the full configuration:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://ws.apache.org/ns/synapse">
     <sequence name="JSI_Main_fault">
          <log level="custom">
               <property name="text" value="An unexpected error occured"/>
               <property name="message" expression="get-property('ERROR_DETAIL')"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted"/>
     </sequence>
     <endpoint name="JetPlan_Sync">
          <address uri="http://denopsd3:8080/jetplan/services/Plan" format="pox">
               <suspendDurationOnFailure>2</suspendDurationOnFailure>
          </address>
     </endpoint>
     <endpoint name="JetPlan_ASync">
          <address uri="http://denopsd3:8080/jetplan/services/Plan" format="pox">
               <suspendDurationOnFailure>2</suspendDurationOnFailure>
          </address>
     </endpoint>
     <sequence name="JetPlanOutSeq">
          <log level="custom">
               <property name="text" value="Sequence {JetPlanOutSeq} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {JetPlanOutSeq} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JetPlanOutSeq_PostResponse} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {JetPlanOutSeq_PostResponse} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Checking to whether store the response, and store the response"/>
               <property name="InOutSequence" value="true"/>
               <property name="RecordResponse" value="true"/>
          </class>
          <send/>
          <log level="custom">
               <property name="text" value="Invoking {JetPlanOutSeq_PostResponseNotify} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {JetPlanOutSeq_PostResponseNotify} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted"/>
     </sequence>
     <proxy name="JetPlan" transports="http">
          <target inSequence="JetPlan-JSI-EntrySequence" outSequence="JetPlanOutSeq"/>
     </proxy>
     <endpoint name="RAIM_Sync">
          <address uri="http://localhost:50091/raim/echo" format="pox">
               <suspendDurationOnFailure>2</suspendDurationOnFailure>
          </address>
     </endpoint>
     <endpoint name="RAIM_ASync">
          <address uri="http://localhost:50091/raim/echo" format="pox">
               <suspendDurationOnFailure>2</suspendDurationOnFailure>
          </address>
     </endpoint>
     <sequence name="RAIMOutSeq">
          <log level="custom">
               <property name="text" value="Sequence {RAIMOutSeq} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {RAIMOutSeq} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {RAIMOutSeq_PostResponse} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {RAIMOutSeq_PostResponse} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Checking to whether store the response, and store the response"/>
               <property name="InOutSequence" value="true"/>
               <property name="RecordResponse" value="true"/>
          </class>
          <send/>
          <log level="custom">
               <property name="text" value="Invoking {RAIMOutSeq_PostResponseNotify} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {RAIMOutSeq_PostResponseNotify} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted"/>
     </sequence>
     <proxy name="RAIM" transports="http">
          <target inSequence="RAIM-JSI-EntrySequence" outSequence="RAIMOutSeq"/>
     </proxy>
     <endpoint name="SWPerfModule_Sync">
          <address uri="http://localhost:50091/raim/echo" format="pox">
               <suspendDurationOnFailure>2</suspendDurationOnFailure>
          </address>
     </endpoint>
     <endpoint name="SWPerfModule_ASync">
          <address uri="http://localhost:50091/raim/echo" format="pox">
               <suspendDurationOnFailure>2</suspendDurationOnFailure>
          </address>
     </endpoint>
     <sequence name="SWPerfModuleOutSeq">
          <log level="custom">
               <property name="text" value="Sequence {SWPerfModuleOutSeq} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {SWPerfModuleOutSeq} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {SWPerfModuleOutSeq_PostResponse} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {SWPerfModuleOutSeq_PostResponse} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Checking to whether store the response, and store the response"/>
               <property name="InOutSequence" value="true"/>
               <property name="RecordResponse" value="true"/>
          </class>
          <send/>
          <log level="custom">
               <property name="text" value="Invoking {SWPerfModuleOutSeq_PostResponseNotify} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {SWPerfModuleOutSeq_PostResponseNotify} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted"/>
     </sequence>
     <proxy name="SWPerfModule" transports="http">
          <target inSequence="SWPerfModule-JSI-EntrySequence" outSequence="SWPerfModuleOutSeq"/>
     </proxy>
     <sequence name="JDCOutSeq">
          <log level="custom">
               <property name="text" value="Sequence {JDCOutSeq} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {JDCOutSeq} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JDCOutSeq_PostResponse} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {JDCOutSeq_PostResponse} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Checking to whether store the response, and store the response"/>
               <property name="InOutSequence" value="true"/>
               <property name="RecordResponse" value="true"/>
          </class>
          <send/>
          <log level="custom">
               <property name="text" value="Invoking {JDCOutSeq_PostResponseNotify} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {JDCOutSeq_PostResponseNotify} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted"/>
     </sequence>
     <proxy name="JDC" transports="http">
          <target inSequence="JDC-JSI-EntrySequence" outSequence="JDCOutSeq"/>
     </proxy>
     <endpoint name="Twitter_Sync">
          <address uri="http://localhost:50091/sample/SampleProduct" format="pox">
               <suspendDurationOnFailure>2</suspendDurationOnFailure>
          </address>
     </endpoint>
     <endpoint name="Twitter_ASync">
          <address uri="http://localhost:50091/sample/SampleProduct" format="pox">
               <suspendDurationOnFailure>2</suspendDurationOnFailure>
          </address>
     </endpoint>
     <sequence name="TwitterOutSeq">
          <log level="custom">
               <property name="text" value="Sequence {TwitterOutSeq} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {TwitterOutSeq} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {TwitterOutSeq_PostResponse} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {TwitterOutSeq_PostResponse} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Checking to whether store the response, and store the response"/>
               <property name="InOutSequence" value="true"/>
               <property name="RecordResponse" value="true"/>
          </class>
          <send/>
          <log level="custom">
               <property name="text" value="Invoking {TwitterOutSeq_PostResponseNotify} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {TwitterOutSeq_PostResponseNotify} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted"/>
     </sequence>
     <proxy name="Twitter" transports="http">
          <target inSequence="Twitter-JSI-EntrySequence" outSequence="TwitterOutSeq"/>
     </proxy>
     <endpoint name="AeroData_Sync">
          <address uri="http://localhost:50091/raim/echo" format="pox">
               <suspendDurationOnFailure>2</suspendDurationOnFailure>
          </address>
     </endpoint>
     <endpoint name="AeroData_ASync">
          <address uri="http://localhost:50091/raim/echo" format="pox">
               <suspendDurationOnFailure>2</suspendDurationOnFailure>
          </address>
     </endpoint>
     <sequence name="AeroDataOutSeq">
          <log level="custom">
               <property name="text" value="Sequence {AeroDataOutSeq} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {AeroDataOutSeq} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {AeroDataOutSeq_PostResponse} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {AeroDataOutSeq_PostResponse} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Checking to whether store the response, and store the response"/>
               <property name="InOutSequence" value="true"/>
               <property name="RecordResponse" value="true"/>
          </class>
          <send/>
          <log level="custom">
               <property name="text" value="Invoking {AeroDataOutSeq_PostResponseNotify} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {AeroDataOutSeq_PostResponseNotify} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted"/>
     </sequence>
     <proxy name="AeroData" transports="http">
          <target inSequence="AeroData-JSI-EntrySequence" outSequence="AeroDataOutSeq"/>
     </proxy>
     <sequence name="JetPlan_Sync_RetrySequence" onError="Fault_JetPlan_Sync_DeliverySequence">
          <property name="ERROR_MESSAGE" action="remove" value="null"/>
          <log level="custom">
               <property name="text" value="Sequence {JetPlan_Sync_RetrySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {JetPlan_Sync_RetrySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JetPlan_Sync_RetrySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JetPlan_Sync"/>
               <property name="TextLine" value="Invoking {JetPlan_Sync_RetrySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="JetPlan_Sync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JetPlan_Sync_RetrySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JetPlan_Sync"/>
               <property name="TextLine" value="Invoking {JetPlan_Sync_RetrySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="JetPlan"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JetPlan_Sync_RetrySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JetPlan_Sync"/>
               <property name="TextLine" value="Invoking {JetPlan_Sync_RetrySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="JetPlan_Sync"/>
          </send>
          <class name="com.jeppesen.jsi.synapse.ResponseWaiter">
               <property name="QueueKey" value="JetPlan_Sync"/>
               <property name="RetryDelay" value="5"/>
               <property name="MaxTries" value="3"/>
               <property name="RetrySeqName" value="JetPlan_Sync_RetrySequence"/>
               <property name="FailureSeqName" value="Failure_JetPlan_Sync_DeliverySequence"/>
          </class>
          <filter source="get-property('com.jeppesen.jsi.synapse.ResponseWaiter.MessageMarkedFailed')" regex="false">
               <then>
                    <class name="com.jeppesen.jsi.synapse.Fetch">
                         <property name="QueueKey" value="JetPlan_Sync"/>
                         <property name="MessageStatus" value="4"/>
                         <property name="PostMessage" value="false"/>
                    </class>
               </then>
          </filter>
          <drop/>
     </sequence>
     <sequence name="Fault_JetPlan_Sync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {Fault_JetPlan_Sync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Fault_JetPlan_Sync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Fault_JetPlan_Sync_DeliverySequence_Retrying} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JetPlan_Sync"/>
               <property name="TextLine" value="Invoking {Fault_JetPlan_Sync_DeliverySequence_Retrying} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted">
               <property name="FailureOccurred" value="true"/>
          </class>
     </sequence>
     <sequence name="Failure_JetPlan_Sync_DeliverySequence" onError="JSI_Main_fault">
          <log level="custom">
               <property name="text" value="Sequence {Failure_JetPlan_Sync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Failure_JetPlan_Sync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Failure_JetPlan_Sync_DeliverySequence_FailedMarked} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {Failure_JetPlan_Sync_DeliverySequence_FailedMarked} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="JetPlan_Sync"/>
               <property name="MessageStatus" value="2"/>
               <property name="PostMessage" value="false"/>
          </class>
          <makefault response="true">
               <code xmlns:tns="http://www.w3.org/2003/05/soap-envelope" value="tns:Receiver"/>
               <reason expression="get-property('ERROR_MESSAGE')"/>
          </makefault>
          <property name="RESPONSE" action="set" value="true"/>
          <header name="To" action="remove"/>
          <send/>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted"/>
     </sequence>
     <sequence name="JetPlan_ASync_DeliverySequence" onError="Fault_JetPlan_ASync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {JetPlan_ASync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {JetPlan_ASync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JetPlan_ASync_DeliverySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JetPlan_ASync"/>
               <property name="TextLine" value="Invoking {JetPlan_ASync_DeliverySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="JetPlan_ASync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JetPlan_ASync_DeliverySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JetPlan_ASync"/>
               <property name="TextLine" value="Invoking {JetPlan_ASync_DeliverySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="JetPlan"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JetPlan_ASync_DeliverySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JetPlan_ASync"/>
               <property name="TextLine" value="Invoking {JetPlan_ASync_DeliverySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="JetPlan_ASync"/>
          </send>
     </sequence>
     <sequence name="JetPlan_ASync_RetrySequence" onError="Fault_JetPlan_ASync_DeliverySequence">
          <property name="ERROR_MESSAGE" action="remove" value="null"/>
          <log level="custom">
               <property name="text" value="Sequence {JetPlan_ASync_RetrySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {JetPlan_ASync_RetrySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JetPlan_ASync_RetrySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JetPlan_ASync"/>
               <property name="TextLine" value="Invoking {JetPlan_ASync_RetrySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="JetPlan_ASync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JetPlan_ASync_RetrySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JetPlan_ASync"/>
               <property name="TextLine" value="Invoking {JetPlan_ASync_RetrySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="JetPlan"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JetPlan_ASync_RetrySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JetPlan_ASync"/>
               <property name="TextLine" value="Invoking {JetPlan_ASync_RetrySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="JetPlan_ASync"/>
          </send>
     </sequence>
     <sequence name="Fault_JetPlan_ASync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {Fault_JetPlan_ASync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Fault_JetPlan_ASync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Fault_JetPlan_ASync_DeliverySequence_Retrying} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JetPlan_ASync"/>
               <property name="TextLine" value="Invoking {Fault_JetPlan_ASync_DeliverySequence_Retrying} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted">
               <property name="FailureOccurred" value="true"/>
          </class>
     </sequence>
     <sequence name="Failure_JetPlan_ASync_DeliverySequence" onError="JSI_Main_fault">
          <log level="custom">
               <property name="text" value="Sequence {Failure_JetPlan_ASync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Failure_JetPlan_ASync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Failure_JetPlan_ASync_DeliverySequence_FailedMarked} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {Failure_JetPlan_ASync_DeliverySequence_FailedMarked} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="JetPlan_ASync"/>
               <property name="MessageStatus" value="2"/>
               <property name="PostMessage" value="false"/>
          </class>
     </sequence>
     <sequence name="RAIM_Sync_DeliverySequence" onError="Fault_RAIM_Sync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {RAIM_Sync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {RAIM_Sync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {RAIM_Sync_DeliverySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="RAIM_Sync"/>
               <property name="TextLine" value="Invoking {RAIM_Sync_DeliverySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="RAIM_Sync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {RAIM_Sync_DeliverySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="RAIM_Sync"/>
               <property name="TextLine" value="Invoking {RAIM_Sync_DeliverySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="RAIM"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {RAIM_Sync_DeliverySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="RAIM_Sync"/>
               <property name="TextLine" value="Invoking {RAIM_Sync_DeliverySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="RAIM_Sync"/>
          </send>
          <class name="com.jeppesen.jsi.synapse.ResponseWaiter">
               <property name="QueueKey" value="RAIM_Sync"/>
               <property name="RetryDelay" value="5"/>
               <property name="MaxTries" value="3"/>
               <property name="RetrySeqName" value="RAIM_Sync_RetrySequence"/>
               <property name="FailureSeqName" value="Failure_RAIM_Sync_DeliverySequence"/>
          </class>
          <filter source="get-property('com.jeppesen.jsi.synapse.ResponseWaiter.MessageMarkedFailed')" regex="false">
               <then>
                    <class name="com.jeppesen.jsi.synapse.Fetch">
                         <property name="QueueKey" value="RAIM_Sync"/>
                         <property name="MessageStatus" value="4"/>
                         <property name="PostMessage" value="false"/>
                    </class>
               </then>
          </filter>
          <drop/>
     </sequence>
     <sequence name="RAIM_Sync_RetrySequence" onError="Fault_RAIM_Sync_DeliverySequence">
          <property name="ERROR_MESSAGE" action="remove" value="null"/>
          <log level="custom">
               <property name="text" value="Sequence {RAIM_Sync_RetrySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {RAIM_Sync_RetrySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {RAIM_Sync_RetrySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="RAIM_Sync"/>
               <property name="TextLine" value="Invoking {RAIM_Sync_RetrySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="RAIM_Sync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {RAIM_Sync_RetrySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="RAIM_Sync"/>
               <property name="TextLine" value="Invoking {RAIM_Sync_RetrySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="RAIM"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {RAIM_Sync_RetrySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="RAIM_Sync"/>
               <property name="TextLine" value="Invoking {RAIM_Sync_RetrySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="RAIM_Sync"/>
          </send>
          <class name="com.jeppesen.jsi.synapse.ResponseWaiter">
               <property name="QueueKey" value="RAIM_Sync"/>
               <property name="RetryDelay" value="5"/>
               <property name="MaxTries" value="3"/>
               <property name="RetrySeqName" value="RAIM_Sync_RetrySequence"/>
               <property name="FailureSeqName" value="Failure_RAIM_Sync_DeliverySequence"/>
          </class>
          <filter source="get-property('com.jeppesen.jsi.synapse.ResponseWaiter.MessageMarkedFailed')" regex="false">
               <then>
                    <class name="com.jeppesen.jsi.synapse.Fetch">
                         <property name="QueueKey" value="RAIM_Sync"/>
                         <property name="MessageStatus" value="4"/>
                         <property name="PostMessage" value="false"/>
                    </class>
               </then>
          </filter>
          <drop/>
     </sequence>
     <sequence name="Fault_RAIM_Sync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {Fault_RAIM_Sync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Fault_RAIM_Sync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Fault_RAIM_Sync_DeliverySequence_Retrying} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="RAIM_Sync"/>
               <property name="TextLine" value="Invoking {Fault_RAIM_Sync_DeliverySequence_Retrying} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted">
               <property name="FailureOccurred" value="true"/>
          </class>
     </sequence>
     <sequence name="Failure_RAIM_Sync_DeliverySequence" onError="JSI_Main_fault">
          <log level="custom">
               <property name="text" value="Sequence {Failure_RAIM_Sync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Failure_RAIM_Sync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Failure_RAIM_Sync_DeliverySequence_FailedMarked} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {Failure_RAIM_Sync_DeliverySequence_FailedMarked} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="RAIM_Sync"/>
               <property name="MessageStatus" value="2"/>
               <property name="PostMessage" value="false"/>
          </class>
          <makefault response="true">
               <code xmlns:tns="http://www.w3.org/2003/05/soap-envelope" value="tns:Receiver"/>
               <reason expression="get-property('ERROR_MESSAGE')"/>
          </makefault>
          <property name="RESPONSE" action="set" value="true"/>
          <header name="To" action="remove"/>
          <send/>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted"/>
     </sequence>
     <sequence name="RAIM_ASync_DeliverySequence" onError="Fault_RAIM_ASync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {RAIM_ASync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {RAIM_ASync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {RAIM_ASync_DeliverySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="RAIM_ASync"/>
               <property name="TextLine" value="Invoking {RAIM_ASync_DeliverySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="RAIM_ASync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {RAIM_ASync_DeliverySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="RAIM_ASync"/>
               <property name="TextLine" value="Invoking {RAIM_ASync_DeliverySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="RAIM"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {RAIM_ASync_DeliverySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="RAIM_ASync"/>
               <property name="TextLine" value="Invoking {RAIM_ASync_DeliverySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="RAIM_ASync"/>
          </send>
     </sequence>
     <sequence name="RAIM_ASync_RetrySequence" onError="Fault_RAIM_ASync_DeliverySequence">
          <property name="ERROR_MESSAGE" action="remove" value="null"/>
          <log level="custom">
               <property name="text" value="Sequence {RAIM_ASync_RetrySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {RAIM_ASync_RetrySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {RAIM_ASync_RetrySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="RAIM_ASync"/>
               <property name="TextLine" value="Invoking {RAIM_ASync_RetrySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="RAIM_ASync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {RAIM_ASync_RetrySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="RAIM_ASync"/>
               <property name="TextLine" value="Invoking {RAIM_ASync_RetrySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="RAIM"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {RAIM_ASync_RetrySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="RAIM_ASync"/>
               <property name="TextLine" value="Invoking {RAIM_ASync_RetrySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="RAIM_ASync"/>
          </send>
     </sequence>
     <sequence name="Fault_RAIM_ASync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {Fault_RAIM_ASync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Fault_RAIM_ASync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Fault_RAIM_ASync_DeliverySequence_Retrying} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="RAIM_ASync"/>
               <property name="TextLine" value="Invoking {Fault_RAIM_ASync_DeliverySequence_Retrying} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted">
               <property name="FailureOccurred" value="true"/>
          </class>
     </sequence>
     <sequence name="Failure_RAIM_ASync_DeliverySequence" onError="JSI_Main_fault">
          <log level="custom">
               <property name="text" value="Sequence {Failure_RAIM_ASync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Failure_RAIM_ASync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Failure_RAIM_ASync_DeliverySequence_FailedMarked} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {Failure_RAIM_ASync_DeliverySequence_FailedMarked} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="RAIM_ASync"/>
               <property name="MessageStatus" value="2"/>
               <property name="PostMessage" value="false"/>
          </class>
     </sequence>
     <sequence name="SWPerfModule_Sync_DeliverySequence" onError="Fault_SWPerfModule_Sync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {SWPerfModule_Sync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {SWPerfModule_Sync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {SWPerfModule_Sync_DeliverySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="SWPerfModule_Sync"/>
               <property name="TextLine" value="Invoking {SWPerfModule_Sync_DeliverySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="SWPerfModule_Sync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {SWPerfModule_Sync_DeliverySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="SWPerfModule_Sync"/>
               <property name="TextLine" value="Invoking {SWPerfModule_Sync_DeliverySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="SWPerfModule"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {SWPerfModule_Sync_DeliverySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="SWPerfModule_Sync"/>
               <property name="TextLine" value="Invoking {SWPerfModule_Sync_DeliverySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="SWPerfModule_Sync"/>
          </send>
          <class name="com.jeppesen.jsi.synapse.ResponseWaiter">
               <property name="QueueKey" value="SWPerfModule_Sync"/>
               <property name="RetryDelay" value="5"/>
               <property name="MaxTries" value="3"/>
               <property name="RetrySeqName" value="SWPerfModule_Sync_RetrySequence"/>
               <property name="FailureSeqName" value="Failure_SWPerfModule_Sync_DeliverySequence"/>
          </class>
          <filter source="get-property('com.jeppesen.jsi.synapse.ResponseWaiter.MessageMarkedFailed')" regex="false">
               <then>
                    <class name="com.jeppesen.jsi.synapse.Fetch">
                         <property name="QueueKey" value="SWPerfModule_Sync"/>
                         <property name="MessageStatus" value="4"/>
                         <property name="PostMessage" value="false"/>
                    </class>
               </then>
          </filter>
          <drop/>
     </sequence>
     <sequence name="SWPerfModule_Sync_RetrySequence" onError="Fault_SWPerfModule_Sync_DeliverySequence">
          <property name="ERROR_MESSAGE" action="remove" value="null"/>
          <log level="custom">
               <property name="text" value="Sequence {SWPerfModule_Sync_RetrySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {SWPerfModule_Sync_RetrySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {SWPerfModule_Sync_RetrySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="SWPerfModule_Sync"/>
               <property name="TextLine" value="Invoking {SWPerfModule_Sync_RetrySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="SWPerfModule_Sync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {SWPerfModule_Sync_RetrySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="SWPerfModule_Sync"/>
               <property name="TextLine" value="Invoking {SWPerfModule_Sync_RetrySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="SWPerfModule"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {SWPerfModule_Sync_RetrySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="SWPerfModule_Sync"/>
               <property name="TextLine" value="Invoking {SWPerfModule_Sync_RetrySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="SWPerfModule_Sync"/>
          </send>
          <class name="com.jeppesen.jsi.synapse.ResponseWaiter">
               <property name="QueueKey" value="SWPerfModule_Sync"/>
               <property name="RetryDelay" value="5"/>
               <property name="MaxTries" value="3"/>
               <property name="RetrySeqName" value="SWPerfModule_Sync_RetrySequence"/>
               <property name="FailureSeqName" value="Failure_SWPerfModule_Sync_DeliverySequence"/>
          </class>
          <filter source="get-property('com.jeppesen.jsi.synapse.ResponseWaiter.MessageMarkedFailed')" regex="false">
               <then>
                    <class name="com.jeppesen.jsi.synapse.Fetch">
                         <property name="QueueKey" value="SWPerfModule_Sync"/>
                         <property name="MessageStatus" value="4"/>
                         <property name="PostMessage" value="false"/>
                    </class>
               </then>
          </filter>
          <drop/>
     </sequence>
     <sequence name="Fault_SWPerfModule_Sync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {Fault_SWPerfModule_Sync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Fault_SWPerfModule_Sync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Fault_SWPerfModule_Sync_DeliverySequence_Retrying} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="SWPerfModule_Sync"/>
               <property name="TextLine" value="Invoking {Fault_SWPerfModule_Sync_DeliverySequence_Retrying} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted">
               <property name="FailureOccurred" value="true"/>
          </class>
     </sequence>
     <sequence name="Failure_SWPerfModule_Sync_DeliverySequence" onError="JSI_Main_fault">
          <log level="custom">
               <property name="text" value="Sequence {Failure_SWPerfModule_Sync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Failure_SWPerfModule_Sync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Failure_SWPerfModule_Sync_DeliverySequence_FailedMarked} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {Failure_SWPerfModule_Sync_DeliverySequence_FailedMarked} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="SWPerfModule_Sync"/>
               <property name="MessageStatus" value="2"/>
               <property name="PostMessage" value="false"/>
          </class>
          <makefault response="true">
               <code xmlns:tns="http://www.w3.org/2003/05/soap-envelope" value="tns:Receiver"/>
               <reason expression="get-property('ERROR_MESSAGE')"/>
          </makefault>
          <property name="RESPONSE" action="set" value="true"/>
          <header name="To" action="remove"/>
          <send/>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted"/>
     </sequence>
     <sequence name="SWPerfModule_ASync_DeliverySequence" onError="Fault_SWPerfModule_ASync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {SWPerfModule_ASync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {SWPerfModule_ASync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {SWPerfModule_ASync_DeliverySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="SWPerfModule_ASync"/>
               <property name="TextLine" value="Invoking {SWPerfModule_ASync_DeliverySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="SWPerfModule_ASync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {SWPerfModule_ASync_DeliverySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="SWPerfModule_ASync"/>
               <property name="TextLine" value="Invoking {SWPerfModule_ASync_DeliverySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="SWPerfModule"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {SWPerfModule_ASync_DeliverySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="SWPerfModule_ASync"/>
               <property name="TextLine" value="Invoking {SWPerfModule_ASync_DeliverySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="SWPerfModule_ASync"/>
          </send>
     </sequence>
     <sequence name="SWPerfModule_ASync_RetrySequence" onError="Fault_SWPerfModule_ASync_DeliverySequence">
          <property name="ERROR_MESSAGE" action="remove" value="null"/>
          <log level="custom">
               <property name="text" value="Sequence {SWPerfModule_ASync_RetrySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {SWPerfModule_ASync_RetrySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {SWPerfModule_ASync_RetrySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="SWPerfModule_ASync"/>
               <property name="TextLine" value="Invoking {SWPerfModule_ASync_RetrySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="SWPerfModule_ASync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {SWPerfModule_ASync_RetrySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="SWPerfModule_ASync"/>
               <property name="TextLine" value="Invoking {SWPerfModule_ASync_RetrySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="SWPerfModule"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {SWPerfModule_ASync_RetrySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="SWPerfModule_ASync"/>
               <property name="TextLine" value="Invoking {SWPerfModule_ASync_RetrySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="SWPerfModule_ASync"/>
          </send>
     </sequence>
     <sequence name="Fault_SWPerfModule_ASync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {Fault_SWPerfModule_ASync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Fault_SWPerfModule_ASync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Fault_SWPerfModule_ASync_DeliverySequence_Retrying} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="SWPerfModule_ASync"/>
               <property name="TextLine" value="Invoking {Fault_SWPerfModule_ASync_DeliverySequence_Retrying} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted">
               <property name="FailureOccurred" value="true"/>
          </class>
     </sequence>
     <sequence name="Failure_SWPerfModule_ASync_DeliverySequence" onError="JSI_Main_fault">
          <log level="custom">
               <property name="text" value="Sequence {Failure_SWPerfModule_ASync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Failure_SWPerfModule_ASync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Generated_535947679} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {Generated_535947679} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="SWPerfModule_ASync"/>
               <property name="MessageStatus" value="2"/>
               <property name="PostMessage" value="false"/>
          </class>
     </sequence>
     <sequence name="JDC_Sync_DeliverySequence" onError="Fault_JDC_Sync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {JDC_Sync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {JDC_Sync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JDC_Sync_DeliverySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JDC_Sync"/>
               <property name="TextLine" value="Invoking {JDC_Sync_DeliverySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="JDC_Sync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JDC_Sync_DeliverySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JDC_Sync"/>
               <property name="TextLine" value="Invoking {JDC_Sync_DeliverySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="JDC"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JDC_Sync_DeliverySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JDC_Sync"/>
               <property name="TextLine" value="Invoking {JDC_Sync_DeliverySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="JDC_Sync"/>
          </send>
          <class name="com.jeppesen.jsi.synapse.ResponseWaiter">
               <property name="QueueKey" value="JDC_Sync"/>
               <property name="RetryDelay" value="5"/>
               <property name="MaxTries" value="3"/>
               <property name="RetrySeqName" value="JDC_Sync_RetrySequence"/>
               <property name="FailureSeqName" value="Failure_JDC_Sync_DeliverySequence"/>
          </class>
          <filter source="get-property('com.jeppesen.jsi.synapse.ResponseWaiter.MessageMarkedFailed')" regex="false">
               <then>
                    <class name="com.jeppesen.jsi.synapse.Fetch">
                         <property name="QueueKey" value="JDC_Sync"/>
                         <property name="MessageStatus" value="4"/>
                         <property name="PostMessage" value="false"/>
                    </class>
               </then>
          </filter>
          <drop/>
     </sequence>
     <sequence name="JDC_Sync_RetrySequence" onError="Fault_JDC_Sync_DeliverySequence">
          <property name="ERROR_MESSAGE" action="remove" value="null"/>
          <log level="custom">
               <property name="text" value="Sequence {JDC_Sync_RetrySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {JDC_Sync_RetrySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JDC_Sync_RetrySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JDC_Sync"/>
               <property name="TextLine" value="Invoking {JDC_Sync_RetrySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="JDC_Sync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JDC_Sync_RetrySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JDC_Sync"/>
               <property name="TextLine" value="Invoking {JDC_Sync_RetrySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="JDC"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JDC_Sync_RetrySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JDC_Sync"/>
               <property name="TextLine" value="Invoking {JDC_Sync_RetrySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="JDC_Sync"/>
          </send>
          <class name="com.jeppesen.jsi.synapse.ResponseWaiter">
               <property name="QueueKey" value="JDC_Sync"/>
               <property name="RetryDelay" value="5"/>
               <property name="MaxTries" value="3"/>
               <property name="RetrySeqName" value="JDC_Sync_RetrySequence"/>
               <property name="FailureSeqName" value="Failure_JDC_Sync_DeliverySequence"/>
          </class>
          <filter source="get-property('com.jeppesen.jsi.synapse.ResponseWaiter.MessageMarkedFailed')" regex="false">
               <then>
                    <class name="com.jeppesen.jsi.synapse.Fetch">
                         <property name="QueueKey" value="JDC_Sync"/>
                         <property name="MessageStatus" value="4"/>
                         <property name="PostMessage" value="false"/>
                    </class>
               </then>
          </filter>
          <drop/>
     </sequence>
     <sequence name="Fault_JDC_Sync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {Fault_JDC_Sync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Fault_JDC_Sync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Fault_JDC_Sync_DeliverySequence_Retrying} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JDC_Sync"/>
               <property name="TextLine" value="Invoking {Fault_JDC_Sync_DeliverySequence_Retrying} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted">
               <property name="FailureOccurred" value="true"/>
          </class>
     </sequence>
     <sequence name="Failure_JDC_Sync_DeliverySequence" onError="JSI_Main_fault">
          <log level="custom">
               <property name="text" value="Sequence {Failure_JDC_Sync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Failure_JDC_Sync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Failure_JDC_Sync_DeliverySequence_FailedMarked} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {Failure_JDC_Sync_DeliverySequence_FailedMarked} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="JDC_Sync"/>
               <property name="MessageStatus" value="2"/>
               <property name="PostMessage" value="false"/>
          </class>
          <makefault response="true">
               <code xmlns:tns="http://www.w3.org/2003/05/soap-envelope" value="tns:Receiver"/>
               <reason expression="get-property('ERROR_MESSAGE')"/>
          </makefault>
          <property name="RESPONSE" action="set" value="true"/>
          <header name="To" action="remove"/>
          <send/>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted"/>
     </sequence>
     <sequence name="JDC_ASync_DeliverySequence" onError="Fault_JDC_ASync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {JDC_ASync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {JDC_ASync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JDC_ASync_DeliverySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JDC_ASync"/>
               <property name="TextLine" value="Invoking {JDC_ASync_DeliverySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="JDC_ASync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JDC_ASync_DeliverySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JDC_ASync"/>
               <property name="TextLine" value="Invoking {JDC_ASync_DeliverySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="JDC"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JDC_ASync_DeliverySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JDC_ASync"/>
               <property name="TextLine" value="Invoking {JDC_ASync_DeliverySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="JDC_ASync"/>
          </send>
     </sequence>
     <sequence name="JDC_ASync_RetrySequence" onError="Fault_JDC_ASync_DeliverySequence">
          <property name="ERROR_MESSAGE" action="remove" value="null"/>
          <log level="custom">
               <property name="text" value="Sequence {JDC_ASync_RetrySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {JDC_ASync_RetrySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JDC_ASync_RetrySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JDC_ASync"/>
               <property name="TextLine" value="Invoking {JDC_ASync_RetrySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="JDC_ASync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JDC_ASync_RetrySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JDC_ASync"/>
               <property name="TextLine" value="Invoking {JDC_ASync_RetrySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="JDC"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JDC_ASync_RetrySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JDC_ASync"/>
               <property name="TextLine" value="Invoking {JDC_ASync_RetrySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="JDC_ASync"/>
          </send>
     </sequence>
     <sequence name="Fault_JDC_ASync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {Fault_JDC_ASync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Fault_JDC_ASync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Fault_JDC_ASync_DeliverySequence_Retrying} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JDC_ASync"/>
               <property name="TextLine" value="Invoking {Fault_JDC_ASync_DeliverySequence_Retrying} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted">
               <property name="FailureOccurred" value="true"/>
          </class>
     </sequence>
     <sequence name="Failure_JDC_ASync_DeliverySequence" onError="JSI_Main_fault">
          <log level="custom">
               <property name="text" value="Sequence {Failure_JDC_ASync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Failure_JDC_ASync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Failure_JDC_ASync_DeliverySequence_FailedMarked} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {Failure_JDC_ASync_DeliverySequence_FailedMarked} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="JDC_ASync"/>
               <property name="MessageStatus" value="2"/>
               <property name="PostMessage" value="false"/>
          </class>
     </sequence>
     <sequence name="Twitter_Sync_DeliverySequence" onError="Fault_Twitter_Sync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {Twitter_Sync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Twitter_Sync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Twitter_Sync_DeliverySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="Twitter_Sync"/>
               <property name="TextLine" value="Invoking {Twitter_Sync_DeliverySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="Twitter_Sync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Twitter_Sync_DeliverySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="Twitter_Sync"/>
               <property name="TextLine" value="Invoking {Twitter_Sync_DeliverySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="Twitter"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Twitter_JSI2ProductAdapter} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {Twitter_JSI2ProductAdapter} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.AdapterProcessor">
               <property name="Name" value="TwitterAdapter"/>
               <property name="ClassName" value="com.ask.test.main.FlightLandedNotifier"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Twitter_Sync_DeliverySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="Twitter_Sync"/>
               <property name="TextLine" value="Invoking {Twitter_Sync_DeliverySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="Twitter_Sync"/>
          </send>
          <class name="com.jeppesen.jsi.synapse.ResponseWaiter">
               <property name="QueueKey" value="Twitter_Sync"/>
               <property name="RetryDelay" value="5"/>
               <property name="MaxTries" value="3"/>
               <property name="RetrySeqName" value="Twitter_Sync_RetrySequence"/>
               <property name="FailureSeqName" value="Failure_Twitter_Sync_DeliverySequence"/>
          </class>
          <filter source="get-property('com.jeppesen.jsi.synapse.ResponseWaiter.MessageMarkedFailed')" regex="false">
               <then>
                    <class name="com.jeppesen.jsi.synapse.Fetch">
                         <property name="QueueKey" value="Twitter_Sync"/>
                         <property name="MessageStatus" value="4"/>
                         <property name="PostMessage" value="false"/>
                    </class>
               </then>
          </filter>
          <drop/>
     </sequence>
     <sequence name="Twitter_Sync_RetrySequence" onError="Fault_Twitter_Sync_DeliverySequence">
          <property name="ERROR_MESSAGE" action="remove" value="null"/>
          <log level="custom">
               <property name="text" value="Sequence {Twitter_Sync_RetrySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Twitter_Sync_RetrySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Twitter_Sync_RetrySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="Twitter_Sync"/>
               <property name="TextLine" value="Invoking {Twitter_Sync_RetrySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="Twitter_Sync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Twitter_Sync_RetrySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="Twitter_Sync"/>
               <property name="TextLine" value="Invoking {Twitter_Sync_RetrySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="Twitter"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Twitter_JSI2ProductAdapter} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {Twitter_JSI2ProductAdapter} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.AdapterProcessor">
               <property name="Name" value="TwitterAdapter"/>
               <property name="ClassName" value="com.ask.test.main.FlightLandedNotifier"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Twitter_Sync_RetrySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="Twitter_Sync"/>
               <property name="TextLine" value="Invoking {Twitter_Sync_RetrySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="Twitter_Sync"/>
          </send>
          <class name="com.jeppesen.jsi.synapse.ResponseWaiter">
               <property name="QueueKey" value="Twitter_Sync"/>
               <property name="RetryDelay" value="5"/>
               <property name="MaxTries" value="3"/>
               <property name="RetrySeqName" value="Twitter_Sync_RetrySequence"/>
               <property name="FailureSeqName" value="Failure_Twitter_Sync_DeliverySequence"/>
          </class>
          <filter source="get-property('com.jeppesen.jsi.synapse.ResponseWaiter.MessageMarkedFailed')" regex="false">
               <then>
                    <class name="com.jeppesen.jsi.synapse.Fetch">
                         <property name="QueueKey" value="Twitter_Sync"/>
                         <property name="MessageStatus" value="4"/>
                         <property name="PostMessage" value="false"/>
                    </class>
               </then>
          </filter>
          <drop/>
     </sequence>
     <sequence name="Fault_Twitter_Sync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {Fault_Twitter_Sync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Fault_Twitter_Sync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Fault_Twitter_Sync_DeliverySequence_Retrying} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="Twitter_Sync"/>
               <property name="TextLine" value="Invoking {Fault_Twitter_Sync_DeliverySequence_Retrying} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted">
               <property name="FailureOccurred" value="true"/>
          </class>
     </sequence>
     <sequence name="Failure_Twitter_Sync_DeliverySequence" onError="JSI_Main_fault">
          <log level="custom">
               <property name="text" value="Sequence {Failure_Twitter_Sync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Failure_Twitter_Sync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Failure_Twitter_Sync_DeliverySequence_FailedMarked} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {Failure_Twitter_Sync_DeliverySequence_FailedMarked} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="Twitter_Sync"/>
               <property name="MessageStatus" value="2"/>
               <property name="PostMessage" value="false"/>
          </class>
          <makefault response="true">
               <code xmlns:tns="http://www.w3.org/2003/05/soap-envelope" value="tns:Receiver"/>
               <reason expression="get-property('ERROR_MESSAGE')"/>
          </makefault>
          <property name="RESPONSE" action="set" value="true"/>
          <header name="To" action="remove"/>
          <send/>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted"/>
     </sequence>
     <sequence name="Twitter_ASync_DeliverySequence" onError="Fault_Twitter_ASync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {Twitter_ASync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Twitter_ASync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Twitter_ASync_DeliverySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="Twitter_ASync"/>
               <property name="TextLine" value="Invoking {Twitter_ASync_DeliverySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="Twitter_ASync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Twitter_ASync_DeliverySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="Twitter_ASync"/>
               <property name="TextLine" value="Invoking {Twitter_ASync_DeliverySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="Twitter"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Twitter_JSI2ProductAdapter} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {Twitter_JSI2ProductAdapter} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.AdapterProcessor">
               <property name="Name" value="TwitterAdapter"/>
               <property name="ClassName" value="com.ask.test.main.FlightLandedNotifier"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Twitter_ASync_DeliverySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="Twitter_ASync"/>
               <property name="TextLine" value="Invoking {Twitter_ASync_DeliverySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="Twitter_ASync"/>
          </send>
     </sequence>
     <sequence name="Twitter_ASync_RetrySequence" onError="Fault_Twitter_ASync_DeliverySequence">
          <property name="ERROR_MESSAGE" action="remove" value="null"/>
          <log level="custom">
               <property name="text" value="Sequence {Twitter_ASync_RetrySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Twitter_ASync_RetrySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Twitter_ASync_RetrySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="Twitter_ASync"/>
               <property name="TextLine" value="Invoking {Twitter_ASync_RetrySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="Twitter_ASync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Twitter_ASync_RetrySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="Twitter_ASync"/>
               <property name="TextLine" value="Invoking {Twitter_ASync_RetrySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="Twitter"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Twitter_JSI2ProductAdapter} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {Twitter_JSI2ProductAdapter} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.AdapterProcessor">
               <property name="Name" value="TwitterAdapter"/>
               <property name="ClassName" value="com.ask.test.main.FlightLandedNotifier"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Twitter_ASync_RetrySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="Twitter_ASync"/>
               <property name="TextLine" value="Invoking {Twitter_ASync_RetrySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="Twitter_ASync"/>
          </send>
     </sequence>
     <sequence name="Fault_Twitter_ASync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {Fault_Twitter_ASync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Fault_Twitter_ASync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Fault_Twitter_ASync_DeliverySequence_Retrying} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="Twitter_ASync"/>
               <property name="TextLine" value="Invoking {Fault_Twitter_ASync_DeliverySequence_Retrying} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted">
               <property name="FailureOccurred" value="true"/>
          </class>
     </sequence>
     <sequence name="Failure_Twitter_ASync_DeliverySequence" onError="JSI_Main_fault">
          <log level="custom">
               <property name="text" value="Sequence {Failure_Twitter_ASync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Failure_Twitter_ASync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Failure_Twitter_ASync_DeliverySequence_FailedMarked} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {Failure_Twitter_ASync_DeliverySequence_FailedMarked} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="Twitter_ASync"/>
               <property name="MessageStatus" value="2"/>
               <property name="PostMessage" value="false"/>
          </class>
     </sequence>
     <sequence name="AeroData_Sync_DeliverySequence" onError="Fault_AeroData_Sync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {AeroData_Sync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {AeroData_Sync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {AeroData_Sync_DeliverySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="AeroData_Sync"/>
               <property name="TextLine" value="Invoking {AeroData_Sync_DeliverySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="AeroData_Sync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {AeroData_Sync_DeliverySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="AeroData_Sync"/>
               <property name="TextLine" value="Invoking {AeroData_Sync_DeliverySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="AeroData"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {AeroData_Sync_DeliverySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="AeroData_Sync"/>
               <property name="TextLine" value="Invoking {AeroData_Sync_DeliverySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="AeroData_Sync"/>
          </send>
          <class name="com.jeppesen.jsi.synapse.ResponseWaiter">
               <property name="QueueKey" value="AeroData_Sync"/>
               <property name="RetryDelay" value="5"/>
               <property name="MaxTries" value="3"/>
               <property name="RetrySeqName" value="AeroData_Sync_RetrySequence"/>
               <property name="FailureSeqName" value="Failure_AeroData_Sync_DeliverySequence"/>
          </class>
          <filter source="get-property('com.jeppesen.jsi.synapse.ResponseWaiter.MessageMarkedFailed')" regex="false">
               <then>
                    <class name="com.jeppesen.jsi.synapse.Fetch">
                         <property name="QueueKey" value="AeroData_Sync"/>
                         <property name="MessageStatus" value="4"/>
                         <property name="PostMessage" value="false"/>
                    </class>
               </then>
          </filter>
          <drop/>
     </sequence>
     <sequence name="AeroData_Sync_RetrySequence" onError="Fault_AeroData_Sync_DeliverySequence">
          <property name="ERROR_MESSAGE" action="remove" value="null"/>
          <log level="custom">
               <property name="text" value="Sequence {AeroData_Sync_RetrySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {AeroData_Sync_RetrySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {AeroData_Sync_RetrySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="AeroData_Sync"/>
               <property name="TextLine" value="Invoking {AeroData_Sync_RetrySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="AeroData_Sync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {AeroData_Sync_RetrySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="AeroData_Sync"/>
               <property name="TextLine" value="Invoking {AeroData_Sync_RetrySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="AeroData"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {AeroData_Sync_RetrySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="AeroData_Sync"/>
               <property name="TextLine" value="Invoking {AeroData_Sync_RetrySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="AeroData_Sync"/>
          </send>
          <class name="com.jeppesen.jsi.synapse.ResponseWaiter">
               <property name="QueueKey" value="AeroData_Sync"/>
               <property name="RetryDelay" value="5"/>
               <property name="MaxTries" value="3"/>
               <property name="RetrySeqName" value="AeroData_Sync_RetrySequence"/>
               <property name="FailureSeqName" value="Failure_AeroData_Sync_DeliverySequence"/>
          </class>
          <filter source="get-property('com.jeppesen.jsi.synapse.ResponseWaiter.MessageMarkedFailed')" regex="false">
               <then>
                    <class name="com.jeppesen.jsi.synapse.Fetch">
                         <property name="QueueKey" value="AeroData_Sync"/>
                         <property name="MessageStatus" value="4"/>
                         <property name="PostMessage" value="false"/>
                    </class>
               </then>
          </filter>
          <drop/>
     </sequence>
     <sequence name="Fault_AeroData_Sync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {Fault_AeroData_Sync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Fault_AeroData_Sync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Fault_AeroData_Sync_DeliverySequence_Retrying} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="AeroData_Sync"/>
               <property name="TextLine" value="Invoking {Fault_AeroData_Sync_DeliverySequence_Retrying} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted">
               <property name="FailureOccurred" value="true"/>
          </class>
     </sequence>
     <sequence name="Failure_AeroData_Sync_DeliverySequence" onError="JSI_Main_fault">
          <log level="custom">
               <property name="text" value="Sequence {Failure_AeroData_Sync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Failure_AeroData_Sync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Failure_AeroData_Sync_DeliverySequence_FailedMarked} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {Failure_AeroData_Sync_DeliverySequence_FailedMarked} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="AeroData_Sync"/>
               <property name="MessageStatus" value="2"/>
               <property name="PostMessage" value="false"/>
          </class>
          <makefault response="true">
               <code xmlns:tns="http://www.w3.org/2003/05/soap-envelope" value="tns:Receiver"/>
               <reason expression="get-property('ERROR_MESSAGE')"/>
          </makefault>
          <property name="RESPONSE" action="set" value="true"/>
          <header name="To" action="remove"/>
          <send/>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted"/>
     </sequence>
     <sequence name="AeroData_ASync_DeliverySequence" onError="Fault_AeroData_ASync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {AeroData_ASync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {AeroData_ASync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {AeroData_ASync_DeliverySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="AeroData_ASync"/>
               <property name="TextLine" value="Invoking {AeroData_ASync_DeliverySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="AeroData_ASync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {AeroData_ASync_DeliverySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="AeroData_ASync"/>
               <property name="TextLine" value="Invoking {AeroData_ASync_DeliverySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="AeroData"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {AeroData_ASync_DeliverySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="AeroData_ASync"/>
               <property name="TextLine" value="Invoking {AeroData_ASync_DeliverySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="AeroData_ASync"/>
          </send>
     </sequence>
     <sequence name="AeroData_ASync_RetrySequence" onError="Fault_AeroData_ASync_DeliverySequence">
          <property name="ERROR_MESSAGE" action="remove" value="null"/>
          <log level="custom">
               <property name="text" value="Sequence {AeroData_ASync_RetrySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {AeroData_ASync_RetrySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {AeroData_ASync_RetrySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="AeroData_ASync"/>
               <property name="TextLine" value="Invoking {AeroData_ASync_RetrySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="AeroData_ASync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {AeroData_ASync_RetrySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="AeroData_ASync"/>
               <property name="TextLine" value="Invoking {AeroData_ASync_RetrySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="AeroData"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {AeroData_ASync_RetrySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="AeroData_ASync"/>
               <property name="TextLine" value="Invoking {AeroData_ASync_RetrySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="AeroData_ASync"/>
          </send>
     </sequence>
     <sequence name="Fault_AeroData_ASync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {Fault_AeroData_ASync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Fault_AeroData_ASync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Fault_AeroData_ASync_DeliverySequence_Retrying} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="AeroData_ASync"/>
               <property name="TextLine" value="Invoking {Fault_AeroData_ASync_DeliverySequence_Retrying} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.ResponsePosted">
               <property name="FailureOccurred" value="true"/>
          </class>
     </sequence>
     <sequence name="Failure_AeroData_ASync_DeliverySequence" onError="JSI_Main_fault">
          <log level="custom">
               <property name="text" value="Sequence {Failure_AeroData_ASync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Failure_AeroData_ASync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Failure_AeroData_ASync_DeliverySequence_FailedMarked} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {Failure_AeroData_ASync_DeliverySequence_FailedMarked} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="AeroData_ASync"/>
               <property name="MessageStatus" value="2"/>
               <property name="PostMessage" value="false"/>
          </class>
     </sequence>
     <sequence name="JetPlan-JSI-EntrySequence">
          <log level="custom">
               <property name="text" value="Sequence {JetPlan-JSI-EntrySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {JetPlan-JSI-EntrySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JetPlan-JSI-EntrySequence_Broadcaster} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {JetPlan-JSI-EntrySequence_Broadcaster} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Broadcaster">
               <property name="ValidateEnabled" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JetPlan-JSI-EntrySequence_SyncASyncMediator} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {JetPlan-JSI-EntrySequence_SyncASyncMediator} mediator"/>
          </class>
          <filter source="get-property('com.jeppesen.jsi.message.Type')" regex="1">
               <then>
                    <class name="com.jeppesen.jsi.synapse.ContentBasedRouter"/>
                    <drop/>
               </then>
               <else>
                    <class name="com.jeppesen.jsi.synapse.MonitorLogger">
                         <property name="TextLine" value="SyncAsync-Filter -- The message is asynchronous it will be delivered asynchronously.in other words; if the message is synchronous it will NEVER be delivered."/>
                         <property name="QueueKey" value="JetPlan"/>
                         <property name="Recipient" value="JetPlan"/>
                    </class>
                    <property name="RESPONSE" value="true"/>
                    <header name="To" action="remove"/>
                    <class name="com.jeppesen.jsi.synapse.Responder">
                         <property name="ResponseCode" value="200"/>
                    </class>
                    <out>
                         <send/>
                    </out>
               </else>
          </filter>
     </sequence>
     <sequence name="RAIM-JSI-EntrySequence">
          <log level="custom">
               <property name="text" value="Sequence {RAIM-JSI-EntrySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {RAIM-JSI-EntrySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {RAIM-JSI-EntrySequence_Broadcaster} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {RAIM-JSI-EntrySequence_Broadcaster} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Broadcaster">
               <property name="ValidateEnabled" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {RAIM-JSI-EntrySequence_SyncASyncMediator} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {RAIM-JSI-EntrySequence_SyncASyncMediator} mediator"/>
          </class>
          <filter source="get-property('com.jeppesen.jsi.message.Type')" regex="1">
               <then>
                    <class name="com.jeppesen.jsi.synapse.ContentBasedRouter"/>
                    <drop/>
               </then>
               <else>
                    <class name="com.jeppesen.jsi.synapse.MonitorLogger">
                         <property name="TextLine" value="SyncAsync-Filter -- The message is asynchronous it will be delivered asynchronously.in other words; if the message is synchronous it will NEVER be delivered."/>
                         <property name="QueueKey" value="RAIM"/>
                         <property name="Recipient" value="RAIM"/>
                    </class>
                    <property name="RESPONSE" value="true"/>
                    <header name="To" action="remove"/>
                    <class name="com.jeppesen.jsi.synapse.Responder">
                         <property name="ResponseCode" value="200"/>
                    </class>
                    <out>
                         <send/>
                    </out>
               </else>
          </filter>
     </sequence>
     <sequence name="SWPerfModule-JSI-EntrySequence">
          <log level="custom">
               <property name="text" value="Sequence {SWPerfModule-JSI-EntrySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {SWPerfModule-JSI-EntrySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {SWPerfModule-JSI-EntrySequence_Broadcaster} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {SWPerfModule-JSI-EntrySequence_Broadcaster} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Broadcaster">
               <property name="ValidateEnabled" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {SWPerfModule-JSI-EntrySequence_SyncASyncMediator} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {SWPerfModule-JSI-EntrySequence_SyncASyncMediator} mediator"/>
          </class>
          <filter source="get-property('com.jeppesen.jsi.message.Type')" regex="1">
               <then>
                    <class name="com.jeppesen.jsi.synapse.ContentBasedRouter"/>
                    <drop/>
               </then>
               <else>
                    <class name="com.jeppesen.jsi.synapse.MonitorLogger">
                         <property name="TextLine" value="SyncAsync-Filter -- The message is asynchronous it will be delivered asynchronously.in other words; if the message is synchronous it will NEVER be delivered."/>
                         <property name="QueueKey" value="SWPerfModule"/>
                         <property name="Recipient" value="SWPerfModule"/>
                    </class>
                    <property name="RESPONSE" value="true"/>
                    <header name="To" action="remove"/>
                    <class name="com.jeppesen.jsi.synapse.Responder">
                         <property name="ResponseCode" value="200"/>
                    </class>
                    <out>
                         <send/>
                    </out>
               </else>
          </filter>
     </sequence>
     <sequence name="JDC-JSI-EntrySequence">
          <log level="custom">
               <property name="text" value="Sequence {JDC-JSI-EntrySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {JDC-JSI-EntrySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JDC-JSI-EntrySequence_Broadcaster} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {JDC-JSI-EntrySequence_Broadcaster} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Broadcaster">
               <property name="ValidateEnabled" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JDC-JSI-EntrySequence_SyncASyncMediator} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {JDC-JSI-EntrySequence_SyncASyncMediator} mediator"/>
          </class>
          <filter source="get-property('com.jeppesen.jsi.message.Type')" regex="1">
               <then>
                    <class name="com.jeppesen.jsi.synapse.ContentBasedRouter"/>
                    <drop/>
               </then>
               <else>
                    <class name="com.jeppesen.jsi.synapse.MonitorLogger">
                         <property name="TextLine" value="SyncAsync-Filter -- The message is asynchronous it will be delivered asynchronously.in other words; if the message is synchronous it will NEVER be delivered."/>
                         <property name="QueueKey" value="JDC"/>
                         <property name="Recipient" value="JDC"/>
                    </class>
                    <property name="RESPONSE" value="true"/>
                    <header name="To" action="remove"/>
                    <class name="com.jeppesen.jsi.synapse.Responder">
                         <property name="ResponseCode" value="200"/>
                    </class>
                    <out>
                         <send/>
                    </out>
               </else>
          </filter>
     </sequence>
     <sequence name="Twitter-JSI-EntrySequence">
          <log level="custom">
               <property name="text" value="Sequence {Twitter-JSI-EntrySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {Twitter-JSI-EntrySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Twitter-JSI-EntrySequence_Broadcaster} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {Twitter-JSI-EntrySequence_Broadcaster} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Broadcaster">
               <property name="ValidateEnabled" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {Twitter-JSI-EntrySequence_SyncASyncMediator} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {Twitter-JSI-EntrySequence_SyncASyncMediator} mediator"/>
          </class>
          <filter source="get-property('com.jeppesen.jsi.message.Type')" regex="1">
               <then>
                    <class name="com.jeppesen.jsi.synapse.ContentBasedRouter"/>
                    <drop/>
               </then>
               <else>
                    <class name="com.jeppesen.jsi.synapse.MonitorLogger">
                         <property name="TextLine" value="SyncAsync-Filter -- The message is asynchronous it will be delivered asynchronously.in other words; if the message is synchronous it will NEVER be delivered."/>
                         <property name="QueueKey" value="Twitter"/>
                         <property name="Recipient" value="Twitter"/>
                    </class>
                    <property name="RESPONSE" value="true"/>
                    <header name="To" action="remove"/>
                    <class name="com.jeppesen.jsi.synapse.Responder">
                         <property name="ResponseCode" value="200"/>
                    </class>
                    <out>
                         <send/>
                    </out>
               </else>
          </filter>
     </sequence>
     <sequence name="AeroData-JSI-EntrySequence">
          <log level="custom">
               <property name="text" value="Sequence {AeroData-JSI-EntrySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {AeroData-JSI-EntrySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {AeroData-JSI-EntrySequence_Broadcaster} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {AeroData-JSI-EntrySequence_Broadcaster} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Broadcaster">
               <property name="ValidateEnabled" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {AeroData-JSI-EntrySequence_SyncASyncMediator} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="null"/>
               <property name="TextLine" value="Invoking {AeroData-JSI-EntrySequence_SyncASyncMediator} mediator"/>
          </class>
          <filter source="get-property('com.jeppesen.jsi.message.Type')" regex="1">
               <then>
                    <class name="com.jeppesen.jsi.synapse.ContentBasedRouter"/>
                    <drop/>
               </then>
               <else>
                    <class name="com.jeppesen.jsi.synapse.MonitorLogger">
                         <property name="TextLine" value="SyncAsync-Filter -- The message is asynchronous it will be delivered asynchronously.in other words; if the message is synchronous it will NEVER be delivered."/>
                         <property name="QueueKey" value="AeroData"/>
                         <property name="Recipient" value="AeroData"/>
                    </class>
                    <property name="RESPONSE" value="true"/>
                    <header name="To" action="remove"/>
                    <class name="com.jeppesen.jsi.synapse.Responder">
                         <property name="ResponseCode" value="200"/>
                    </class>
                    <out>
                         <send/>
                    </out>
               </else>
          </filter>
     </sequence>
     <sequence name="JetPlan_Sync_DeliverySequence" onError="Fault_JetPlan_Sync_DeliverySequence">
          <log level="custom">
               <property name="text" value="Sequence {JetPlan_Sync_DeliverySequence} launched"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="TextLine" value="Sequence {JetPlan_Sync_DeliverySequence} launched"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JetPlan_Sync_DeliverySequence_Fetch} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JetPlan_Sync"/>
               <property name="TextLine" value="Invoking {JetPlan_Sync_DeliverySequence_Fetch} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Fetch">
               <property name="QueueKey" value="JetPlan_Sync"/>
               <property name="MessageStatus" value="3"/>
               <property name="PostMessage" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JetPlan_Sync_DeliverySequence_XVersion} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JetPlan_Sync"/>
               <property name="TextLine" value="Invoking {JetPlan_Sync_DeliverySequence_XVersion} mediator"/>
          </class>
          <class name="com.jeppesen.jsi.synapse.Transform">
               <property name="ProductName" value="JetPlan"/>
               <property name="WrapInEnvelop" value="false"/>
          </class>
          <log level="custom">
               <property name="text" value="Invoking {JetPlan_Sync_DeliverySequence_Send} mediator"/>
          </log>
          <class name="com.jeppesen.jsi.synapse.MonitorLogger">
               <property name="QueueKey" value="JetPlan_Sync"/>
               <property name="TextLine" value="Invoking {JetPlan_Sync_DeliverySequence_Send} mediator"/>
          </class>
          <send>
               <endpoint key="JetPlan_Sync"/>
          </send>
          <class name="com.jeppesen.jsi.synapse.ResponseWaiter">
               <property name="QueueKey" value="JetPlan_Sync"/>
               <property name="RetryDelay" value="5"/>
               <property name="MaxTries" value="3"/>
               <property name="RetrySeqName" value="JetPlan_Sync_RetrySequence"/>
               <property name="FailureSeqName" value="Failure_JetPlan_Sync_DeliverySequence"/>
          </class>
          <filter source="get-property('com.jeppesen.jsi.synapse.ResponseWaiter.MessageMarkedFailed')" regex="false">
               <then>
                    <class name="com.jeppesen.jsi.synapse.Fetch">
                         <property name="QueueKey" value="JetPlan_Sync"/>
                         <property name="MessageStatus" value="4"/>
                         <property name="PostMessage" value="false"/>
                    </class>
               </then>
          </filter>
          <drop/>
     </sequence>
     <task class="com.jeppesen.jsi.registry.api.Initializer" name="Initializer">
          <trigger once="true"/>
     </task>
</definitions>


Thanks,
Abid


-----Original Message-----
From: Sadeep Jayasumana [mailto:gayansadeep@gmail.com]
Sent: Friday, July 08, 2011 11:48 PM
To: user@synapse.apache.org
Subject: Re: Help needed

Hi Abid,

Have you set "FORCE_SC_ACCEPTED" property to true in the inSequence?

It would be easier to suggest a solution if you could share the
configuration of your proxy service.

Thanks,
Sadeep

On Sat, Jul 9, 2011 at 9:29 AM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:

> Hello all,
>
> I am using Synapse 1.2.
>
> I just have run into a problem;
>
> I have a proxy that has target with "inSequense" and "outSequence",
> "inSequence" also has a onErrorSequence.
>
> The <send..> mediator is the last mediator in the "inSequence".
>
> The problem is as soon as the message is sent, empty response is written to
> the client, and when the endpoint returns the actual response, it cannot be
> written and exception is logged "response is already committed..."
>
> My understanding was that outSequence would be initiated, and the client is
> put on hold until after the response is received by synapse?
>
> Please help,
>
> Thanks,
> Abid
>
>
>


--
Sadeep

Re: Help needed

Posted by Sadeep Jayasumana <ga...@gmail.com>.
Hi Abid,

Have you set "FORCE_SC_ACCEPTED" property to true in the inSequence?

It would be easier to suggest a solution if you could share the
configuration of your proxy service.

Thanks,
Sadeep

On Sat, Jul 9, 2011 at 9:29 AM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:

> Hello all,
>
> I am using Synapse 1.2.
>
> I just have run into a problem;
>
> I have a proxy that has target with "inSequense" and "outSequence",
> "inSequence" also has a onErrorSequence.
>
> The <send..> mediator is the last mediator in the "inSequence".
>
> The problem is as soon as the message is sent, empty response is written to
> the client, and when the endpoint returns the actual response, it cannot be
> written and exception is logged "response is already committed..."
>
> My understanding was that outSequence would be initiated, and the client is
> put on hold until after the response is received by synapse?
>
> Please help,
>
> Thanks,
> Abid
>
>
>


-- 
Sadeep

Help needed

Posted by Abid Khan-EXT <Ab...@jeppesen.com>.
Hello all,

I am using Synapse 1.2.

I just have run into a problem;

I have a proxy that has target with "inSequense" and "outSequence", "inSequence" also has a onErrorSequence.

The <send..> mediator is the last mediator in the "inSequence".

The problem is as soon as the message is sent, empty response is written to the client, and when the endpoint returns the actual response, it cannot be written and exception is logged "response is already committed..."

My understanding was that outSequence would be initiated, and the client is put on hold until after the response is received by synapse?

Please help,

Thanks,
Abid



RE: Help: how to invoke a Sequence from a class mediator

Posted by Abid Khan-EXT <Ab...@jeppesen.com>.
Hello Charith,

I finally got time to look into this again, but the method "getSynapseConfiguration()" is not available in

messageContext.getEnvironment().getSynapseConfiguration()

if I write that it give me compilation error.

Thanks,
Abid

From: Charith Wickramarachchi [mailto:charith.dhanushka@gmail.com]
Sent: Monday, April 04, 2011 3:45 PM
To: user@synapse.apache.org
Cc: Abid Khan-EXT
Subject: Re: Help: how to invoke a Sequence from a class mediator

You have access to the Synapse Configuration inside any Mediator.
If its a defined sequence in the configuration.
you can use.
messageContext.getEnvironment().getSynapseConfiguration().getDefinedSequences().get("Sequence Name").

If its coming from a registry.
you can use.
messageContext.getSequence("Sequence Name")

thanks,
Charith


On Mon, Apr 4, 2011 at 10:13 PM, Abid Khan-EXT <Ab...@jeppesen.com>> wrote:
Hello

I have a certain need for invoking a sequence from a class mediator, please provide some hints,

Thank,
Abid



--
Charith Dhanushka Wickramarachchi
Software Engineer
WSO2 Inc
http://wso2.com/
http://wso2.org/

blog
http://charithwiki.blogspot.com/

twitter
http://twitter.com/charithwiki


Re: Help: how to invoke a Sequence from a class mediator

Posted by Charith Wickramarachchi <ch...@gmail.com>.
You have access to the Synapse Configuration inside any Mediator.
If its a defined sequence in the configuration.
you can use.
messageContext.getEnvironment().getSynapseConfiguration().getDefinedSequences().get("Sequence
Name").

If its coming from a registry.
you can use.
messageContext.getSequence("Sequence Name")

thanks,
Charith



On Mon, Apr 4, 2011 at 10:13 PM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:

> Hello
>
> I have a certain need for invoking a sequence from a class mediator, please
> provide some hints,
>
> Thank,
> Abid
>



-- 
Charith Dhanushka Wickramarachchi
Software Engineer
WSO2 Inc
http://wso2.com/
http://wso2.org/

blog
http://charithwiki.blogspot.com/

twitter
http://twitter.com/charithwiki

Help: how to invoke a Sequence from a class mediator

Posted by Abid Khan-EXT <Ab...@jeppesen.com>.
Hello

I have a certain need for invoking a sequence from a class mediator, please provide some hints,

Thank,
Abid

Re: Help needed! Integrating with a web service.

Posted by Charith Wickramarachchi <ch...@gmail.com>.
Hi Abid,

Have you look in to the Synapse samples[1] ? Where you find lot of examples
that shows how we can implement different integration scenarios.And these
samples are coming with the synapse distribution.
I think you will get some understanding of synapse configuration language
and how to configure this kind of scenario by running this samples. (Sample
0 and 1 are very simple ones that explain what you need.)

And [2] will be useful to get a better understanding of synapse.


[1] http://synapse.apache.org/Synapse_Samples.html
[2] http://wso2.org/library/2559
thanks,
Charith


On Sat, Feb 26, 2011 at 4:52 AM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:

> Hello Charith,
>
>
>
> Thanks for the quick response, what I am actually looking in simple form is
> some way to communicate with web-services. Which mean if an application a,
> want to send a web-service request to application b, if both applications
> are connected thru synapse. By some kind of communication they should be
> able to communicate. And I am looking for an example for that , if not the
> some steps to configure synapse would help too.
>
>
>
> [image: outlookReply]
>
>
>
> *From:* Charith Wickramarachchi [mailto:charith.dhanushka@gmail.com]
> *Sent:* Thursday, February 24, 2011 8:08 PM
> *To:* user@synapse.apache.org
> *Cc:* Abid Khan-EXT
> *Subject:* Re: Help needed! Integrating with a web service.
>
>
>
> Hi Abid ,
>
> If i get you correctly. Your requirement is to send some existing messages
> to the an another Web service with out interrupting the current Message
> flow.
>
> Are you currently using any content based filtering/routing to
> differentiate those message types ? If yes you will be able to use clone
> mediator at that points(where you need to send that message type to the
> webservice) and send a clone of the original messages to that service.
>
> thanks,
> Charith
>
>
> On Fri, Feb 25, 2011 at 4:46 AM, Abid Khan-EXT <Ab...@jeppesen.com>
> wrote:
>
> Hello all,
>
> I have synapse hosted in the company I am working for. And we are using
> synapse for integrating with different clients. Everything was fine until
> few days ago. One new clients have a web-service running at his location. We
> have number of application that are connecting using simple http. And we are
> consuming and generating nearly 100 different types of message. This new
> client want to user some of our messages. What is the best way for me to
> send some message to a web-service.
>
> I have tried few thing but nothing worked.
>
> Regards,
> Abid
>
>
>
>
> --
> Charith Dhanushka Wickramarachchi
> Software Engineer ,
> WSO2 Inc.
> http://wso2.com
>
>
>


-- 
Charith Dhanushka Wickramarachchi
http://charithwiki.blogspot.com/

Re: Help needed! Integrating with a web service.

Posted by Charith Wickramarachchi <ch...@gmail.com>.
Hi Abid ,

If i get you correctly. Your requirement is to send some existing messages
to the an another Web service with out interrupting the current Message
flow.

Are you currently using any content based filtering/routing to differentiate
those message types ? If yes you will be able to use clone mediator at that
points(where you need to send that message type to the webservice) and send
a clone of the original messages to that service.

thanks,
Charith


On Fri, Feb 25, 2011 at 4:46 AM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:

> Hello all,
>
> I have synapse hosted in the company I am working for. And we are using
> synapse for integrating with different clients. Everything was fine until
> few days ago. One new clients have a web-service running at his location. We
> have number of application that are connecting using simple http. And we are
> consuming and generating nearly 100 different types of message. This new
> client want to user some of our messages. What is the best way for me to
> send some message to a web-service.
>
> I have tried few thing but nothing worked.
>
> Regards,
> Abid
>



-- 
Charith Dhanushka Wickramarachchi
Software Engineer ,
WSO2 Inc.
http://wso2.com

Help needed! Integrating with a web service.

Posted by Abid Khan-EXT <Ab...@jeppesen.com>.
Hello all,

I have synapse hosted in the company I am working for. And we are using synapse for integrating with different clients. Everything was fine until few days ago. One new clients have a web-service running at his location. We have number of application that are connecting using simple http. And we are consuming and generating nearly 100 different types of message. This new client want to user some of our messages. What is the best way for me to send some message to a web-service.

I have tried few thing but nothing worked.

Regards,
Abid

Re: Help needed: How to use co-rellation-id for JMS messages

Posted by Hiranya Jayathilaka <hi...@gmail.com>.
Hi Abid,

On Thu, Dec 2, 2010 at 5:01 AM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
> Thanks Hiranya,
>
> I will try that out and see if it works.

The JMS_COORELATION_ID property should be used when Synapse is acting
as the consumer (to set a custom correlation ID on the outgoing
response). It doesn't make much sense to use this property when
Synapse is acting as the producer. In the producer mode, Synapse
expects the consumer to send the request message ID as the correlation
ID in the response.

Thanks,
Hiranya

>
> Thanks,
> Abid
>
> -----Original Message-----
> From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com]
> Sent: Wednesday, December 01, 2010 4:28 PM
> To: user@synapse.apache.org
> Subject: Re: Help needed: How to use co-rellation-id for JMS messages
>
> On Thu, Dec 2, 2010 at 4:49 AM, Hiranya Jayathilaka
> <hi...@gmail.com> wrote:
>> On Thu, Dec 2, 2010 at 4:23 AM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>>> Could you also please tell me where would be the corelationId would it be in the SyanpseContext? Or somewhere else?
>>
>> It should be in the Axis2 MessageContext
>
> Actually by default Synapse doesn't send a correlation ID on the
> outgoing requests. So the replier will set the message ID of the
> request as the correlation ID. You can set a correlation ID on the
> request if you want by setting the JMS_COORELATION_ID property in
> Axis2 scope.
>
> Thanks,
> Hiranya
>
>>
>> Thanks,
>> Hiranya
>>
>>>
>>> -----Original Message-----
>>> From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com]
>>> Sent: Wednesday, December 01, 2010 3:38 PM
>>> To: user@synapse.apache.org
>>> Subject: Re: Help needed: How to use co-rellation-id for JMS messages
>>>
>>> Hi,
>>>
>>> On Thu, Dec 2, 2010 at 3:33 AM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>>>> Hello all,
>>>>
>>>> I was trying to find some example on how to set up an endpoint that uses JMS correlation id mechanism to send reply back to predefined Queue.
>>>>
>>>> I could not find any would you please guide me.
>>>
>>> Just add the transport.jms.ReplyDestination parameter to the JMS endpoint.
>>>
>>> eg:
>>>
>>> <endpoint>
>>>                <address
>>>
>>> uri="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&amp;transport.jms.ReplyDestination=TestReplyQueue"/>
>>> </endpoint>
>>>
>>> Synapse will set the REPLY_TO JMS header on the outgoing request so
>>> that the server can look it up and send the response to the
>>> TestReplyQueue.
>>>
>>> Thanks,
>>> Hiranya
>>>
>>>>
>>>> Thanks,
>>>> Abid
>>>>
>>>
>>>
>>>
>>> --
>>> Hiranya Jayathilaka
>>> Senior Software Engineer;
>>> WSO2 Inc.;  http://wso2.org
>>> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
>>> Blog: http://techfeast-hiranya.blogspot.com
>>>
>>
>>
>>
>> --
>> Hiranya Jayathilaka
>> Senior Software Engineer;
>> WSO2 Inc.;  http://wso2.org
>> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
>> Blog: http://techfeast-hiranya.blogspot.com
>>
>
>
>
> --
> Hiranya Jayathilaka
> Senior Software Engineer;
> WSO2 Inc.;  http://wso2.org
> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
> Blog: http://techfeast-hiranya.blogspot.com
>



-- 
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

RE: Help needed: How to use co-rellation-id for JMS messages

Posted by Abid Khan-EXT <Ab...@jeppesen.com>.
Thanks Hiranya,

I will try that out and see if it works.

Thanks,
Abid

-----Original Message-----
From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com]
Sent: Wednesday, December 01, 2010 4:28 PM
To: user@synapse.apache.org
Subject: Re: Help needed: How to use co-rellation-id for JMS messages

On Thu, Dec 2, 2010 at 4:49 AM, Hiranya Jayathilaka
<hi...@gmail.com> wrote:
> On Thu, Dec 2, 2010 at 4:23 AM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>> Could you also please tell me where would be the corelationId would it be in the SyanpseContext? Or somewhere else?
>
> It should be in the Axis2 MessageContext

Actually by default Synapse doesn't send a correlation ID on the
outgoing requests. So the replier will set the message ID of the
request as the correlation ID. You can set a correlation ID on the
request if you want by setting the JMS_COORELATION_ID property in
Axis2 scope.

Thanks,
Hiranya

>
> Thanks,
> Hiranya
>
>>
>> -----Original Message-----
>> From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com]
>> Sent: Wednesday, December 01, 2010 3:38 PM
>> To: user@synapse.apache.org
>> Subject: Re: Help needed: How to use co-rellation-id for JMS messages
>>
>> Hi,
>>
>> On Thu, Dec 2, 2010 at 3:33 AM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>>> Hello all,
>>>
>>> I was trying to find some example on how to set up an endpoint that uses JMS correlation id mechanism to send reply back to predefined Queue.
>>>
>>> I could not find any would you please guide me.
>>
>> Just add the transport.jms.ReplyDestination parameter to the JMS endpoint.
>>
>> eg:
>>
>> <endpoint>
>>                <address
>>
>> uri="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&amp;transport.jms.ReplyDestination=TestReplyQueue"/>
>> </endpoint>
>>
>> Synapse will set the REPLY_TO JMS header on the outgoing request so
>> that the server can look it up and send the response to the
>> TestReplyQueue.
>>
>> Thanks,
>> Hiranya
>>
>>>
>>> Thanks,
>>> Abid
>>>
>>
>>
>>
>> --
>> Hiranya Jayathilaka
>> Senior Software Engineer;
>> WSO2 Inc.;  http://wso2.org
>> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
>> Blog: http://techfeast-hiranya.blogspot.com
>>
>
>
>
> --
> Hiranya Jayathilaka
> Senior Software Engineer;
> WSO2 Inc.;  http://wso2.org
> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
> Blog: http://techfeast-hiranya.blogspot.com
>



--
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

Re: Help needed: How to use co-rellation-id for JMS messages

Posted by Hiranya Jayathilaka <hi...@gmail.com>.
On Thu, Dec 2, 2010 at 4:49 AM, Hiranya Jayathilaka
<hi...@gmail.com> wrote:
> On Thu, Dec 2, 2010 at 4:23 AM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>> Could you also please tell me where would be the corelationId would it be in the SyanpseContext? Or somewhere else?
>
> It should be in the Axis2 MessageContext

Actually by default Synapse doesn't send a correlation ID on the
outgoing requests. So the replier will set the message ID of the
request as the correlation ID. You can set a correlation ID on the
request if you want by setting the JMS_COORELATION_ID property in
Axis2 scope.

Thanks,
Hiranya

>
> Thanks,
> Hiranya
>
>>
>> -----Original Message-----
>> From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com]
>> Sent: Wednesday, December 01, 2010 3:38 PM
>> To: user@synapse.apache.org
>> Subject: Re: Help needed: How to use co-rellation-id for JMS messages
>>
>> Hi,
>>
>> On Thu, Dec 2, 2010 at 3:33 AM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>>> Hello all,
>>>
>>> I was trying to find some example on how to set up an endpoint that uses JMS correlation id mechanism to send reply back to predefined Queue.
>>>
>>> I could not find any would you please guide me.
>>
>> Just add the transport.jms.ReplyDestination parameter to the JMS endpoint.
>>
>> eg:
>>
>> <endpoint>
>>                <address
>>
>> uri="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&amp;transport.jms.ReplyDestination=TestReplyQueue"/>
>> </endpoint>
>>
>> Synapse will set the REPLY_TO JMS header on the outgoing request so
>> that the server can look it up and send the response to the
>> TestReplyQueue.
>>
>> Thanks,
>> Hiranya
>>
>>>
>>> Thanks,
>>> Abid
>>>
>>
>>
>>
>> --
>> Hiranya Jayathilaka
>> Senior Software Engineer;
>> WSO2 Inc.;  http://wso2.org
>> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
>> Blog: http://techfeast-hiranya.blogspot.com
>>
>
>
>
> --
> Hiranya Jayathilaka
> Senior Software Engineer;
> WSO2 Inc.;  http://wso2.org
> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
> Blog: http://techfeast-hiranya.blogspot.com
>



-- 
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

Re: Help needed: How to use co-rellation-id for JMS messages

Posted by Hiranya Jayathilaka <hi...@gmail.com>.
On Thu, Dec 2, 2010 at 4:23 AM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
> Could you also please tell me where would be the corelationId would it be in the SyanpseContext? Or somewhere else?

It should be in the Axis2 MessageContext

Thanks,
Hiranya

>
> -----Original Message-----
> From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com]
> Sent: Wednesday, December 01, 2010 3:38 PM
> To: user@synapse.apache.org
> Subject: Re: Help needed: How to use co-rellation-id for JMS messages
>
> Hi,
>
> On Thu, Dec 2, 2010 at 3:33 AM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>> Hello all,
>>
>> I was trying to find some example on how to set up an endpoint that uses JMS correlation id mechanism to send reply back to predefined Queue.
>>
>> I could not find any would you please guide me.
>
> Just add the transport.jms.ReplyDestination parameter to the JMS endpoint.
>
> eg:
>
> <endpoint>
>                <address
>
> uri="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&amp;transport.jms.ReplyDestination=TestReplyQueue"/>
> </endpoint>
>
> Synapse will set the REPLY_TO JMS header on the outgoing request so
> that the server can look it up and send the response to the
> TestReplyQueue.
>
> Thanks,
> Hiranya
>
>>
>> Thanks,
>> Abid
>>
>
>
>
> --
> Hiranya Jayathilaka
> Senior Software Engineer;
> WSO2 Inc.;  http://wso2.org
> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
> Blog: http://techfeast-hiranya.blogspot.com
>



-- 
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

RE: Help needed: How to use co-rellation-id for JMS messages

Posted by Abid Khan-EXT <Ab...@jeppesen.com>.
Could you also please tell me where would be the corelationId would it be in the SyanpseContext? Or somewhere else?

-----Original Message-----
From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com]
Sent: Wednesday, December 01, 2010 3:38 PM
To: user@synapse.apache.org
Subject: Re: Help needed: How to use co-rellation-id for JMS messages

Hi,

On Thu, Dec 2, 2010 at 3:33 AM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
> Hello all,
>
> I was trying to find some example on how to set up an endpoint that uses JMS correlation id mechanism to send reply back to predefined Queue.
>
> I could not find any would you please guide me.

Just add the transport.jms.ReplyDestination parameter to the JMS endpoint.

eg:

<endpoint>
                <address

uri="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&amp;transport.jms.ReplyDestination=TestReplyQueue"/>
</endpoint>

Synapse will set the REPLY_TO JMS header on the outgoing request so
that the server can look it up and send the response to the
TestReplyQueue.

Thanks,
Hiranya

>
> Thanks,
> Abid
>



--
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

Re: Help needed: How to use co-rellation-id for JMS messages

Posted by Hiranya Jayathilaka <hi...@gmail.com>.
Hi,

On Thu, Dec 2, 2010 at 3:33 AM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
> Hello all,
>
> I was trying to find some example on how to set up an endpoint that uses JMS correlation id mechanism to send reply back to predefined Queue.
>
> I could not find any would you please guide me.

Just add the transport.jms.ReplyDestination parameter to the JMS endpoint.

eg:

<endpoint>
                <address

uri="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&amp;transport.jms.ReplyDestination=TestReplyQueue"/>
</endpoint>

Synapse will set the REPLY_TO JMS header on the outgoing request so
that the server can look it up and send the response to the
TestReplyQueue.

Thanks,
Hiranya

>
> Thanks,
> Abid
>



-- 
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

Help needed: How to use co-rellation-id for JMS messages

Posted by Abid Khan-EXT <Ab...@jeppesen.com>.
Hello all,

I was trying to find some example on how to set up an endpoint that uses JMS correlation id mechanism to send reply back to predefined Queue.

I could not find any would you please guide me.

Thanks,
Abid

Re: Any help would be appreciated ! synapse is reprocessing the message if the target (EPR) product fails to respond.

Posted by Hiranya Jayathilaka <hi...@gmail.com>.
Hi,

On Wed, Oct 27, 2010 at 6:01 AM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
> Thanks for quick response,
>
> Synapse version is 1.2
>
> Please see attached synapse.xml

I had a quick look at the synapse.xml. It looks alright. But since
there is some custom code involved I cannot make a conclusion. Can you
try to isolate the issue at your end? Basically create a new
synapse.xml with a simple proxy service (you can create a proxy
service for the sample service - SimpleStockQuoteService) without any
custom mediators and invoke it. After a couple of successful
invocations take down the backend service and try again. See if the
problem occurs.

Another thing you can try is enabling debug level logs. Enable debug
level logs for org.apache.synapse and org.apache.synapse.transport
packages and try sending a message with the backend endpoint down. If
you can attach the debug logs I can try to figure out what's going on.

Thanks,
Hiranya

>
> Thanks,
> Abid
>
> -----Original Message-----
> From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com]
> Sent: Tuesday, October 26, 2010 5:58 PM
> To: user@synapse.apache.org
> Subject: Re: Any help would be appreciated ! synapse is reprocessing the message if the target (EPR) product fails to respond.
>
> Hi,
>
> I haven't come across any issue like that. Please let us know the
> Synapse version and attach your synapse.xml.
>
> Thanks,
> Hiranya
>
> On Tue, Oct 26, 2010 at 8:40 PM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>> Please help in this scenario, I really want synapse to process one message only one time.
>>
>> -----Original Message-----
>> From: Abid Khan-EXT [mailto:Abid.Khan@jeppesen.com]
>> Sent: Monday, October 25, 2010 2:44 PM
>> To: user@synapse.apache.org
>> Subject: Synapse is reprocessing the message if the target (EPR) product fails to respond.
>>
>> Hello all,
>>
>> This is very strange behavior, I have a proxy that has a http endpoint at the end of the process. If that endpoint is down for any reason. It look like the message is being posted twice.
>>
>> For example a proxy "TestProxy" is receiving the message the very first mediator logs the message into a table in database. then the send mediator tries to send it to an http endpoint.
>>
>> If the product at that endpoint is not running, the same message is posted again. It ends up being saved into database as a new message.
>>
>> Please help.
>> Thanks
>> Abid
>>
>
>
>
> --
> Hiranya Jayathilaka
> Senior Software Engineer;
> WSO2 Inc.;  http://wso2.org
> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
> Blog: http://techfeast-hiranya.blogspot.com
>



-- 
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

RE: Any help would be appreciated ! synapse is reprocessing the message if the target (EPR) product fails to respond.

Posted by Abid Khan-EXT <Ab...@jeppesen.com>.
Thanks for quick response, 

Synapse version is 1.2

Please see attached synapse.xml

Thanks,
Abid

-----Original Message-----
From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com] 
Sent: Tuesday, October 26, 2010 5:58 PM
To: user@synapse.apache.org
Subject: Re: Any help would be appreciated ! synapse is reprocessing the message if the target (EPR) product fails to respond.

Hi,

I haven't come across any issue like that. Please let us know the
Synapse version and attach your synapse.xml.

Thanks,
Hiranya

On Tue, Oct 26, 2010 at 8:40 PM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
> Please help in this scenario, I really want synapse to process one message only one time.
>
> -----Original Message-----
> From: Abid Khan-EXT [mailto:Abid.Khan@jeppesen.com]
> Sent: Monday, October 25, 2010 2:44 PM
> To: user@synapse.apache.org
> Subject: Synapse is reprocessing the message if the target (EPR) product fails to respond.
>
> Hello all,
>
> This is very strange behavior, I have a proxy that has a http endpoint at the end of the process. If that endpoint is down for any reason. It look like the message is being posted twice.
>
> For example a proxy "TestProxy" is receiving the message the very first mediator logs the message into a table in database. then the send mediator tries to send it to an http endpoint.
>
> If the product at that endpoint is not running, the same message is posted again. It ends up being saved into database as a new message.
>
> Please help.
> Thanks
> Abid
>



-- 
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

Re: Any help would be appreciated ! synapse is reprocessing the message if the target (EPR) product fails to respond.

Posted by Hiranya Jayathilaka <hi...@gmail.com>.
Hi,

I haven't come across any issue like that. Please let us know the
Synapse version and attach your synapse.xml.

Thanks,
Hiranya

On Tue, Oct 26, 2010 at 8:40 PM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
> Please help in this scenario, I really want synapse to process one message only one time.
>
> -----Original Message-----
> From: Abid Khan-EXT [mailto:Abid.Khan@jeppesen.com]
> Sent: Monday, October 25, 2010 2:44 PM
> To: user@synapse.apache.org
> Subject: Synapse is reprocessing the message if the target (EPR) product fails to respond.
>
> Hello all,
>
> This is very strange behavior, I have a proxy that has a http endpoint at the end of the process. If that endpoint is down for any reason. It look like the message is being posted twice.
>
> For example a proxy "TestProxy" is receiving the message the very first mediator logs the message into a table in database. then the send mediator tries to send it to an http endpoint.
>
> If the product at that endpoint is not running, the same message is posted again. It ends up being saved into database as a new message.
>
> Please help.
> Thanks
> Abid
>



-- 
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

Any help would be appreciated ! synapse is reprocessing the message if the target (EPR) product fails to respond.

Posted by Abid Khan-EXT <Ab...@jeppesen.com>.
Please help in this scenario, I really want synapse to process one message only one time.

-----Original Message-----
From: Abid Khan-EXT [mailto:Abid.Khan@jeppesen.com]
Sent: Monday, October 25, 2010 2:44 PM
To: user@synapse.apache.org
Subject: Synapse is reprocessing the message if the target (EPR) product fails to respond.

Hello all,

This is very strange behavior, I have a proxy that has a http endpoint at the end of the process. If that endpoint is down for any reason. It look like the message is being posted twice.

For example a proxy "TestProxy" is receiving the message the very first mediator logs the message into a table in database. then the send mediator tries to send it to an http endpoint.

If the product at that endpoint is not running, the same message is posted again. It ends up being saved into database as a new message.

Please help.
Thanks
Abid

Synapse is reprocessing the message if the target (EPR) product fails to respond.

Posted by Abid Khan-EXT <Ab...@jeppesen.com>.
Hello all,

This is very strange behavior, I have a proxy that has a http endpoint at the end of the process. If that endpoint is down for any reason. It look like the message is being posted twice.

For example a proxy "TestProxy" is receiving the message the very first mediator logs the message into a table in database. then the send mediator tries to send it to an http endpoint.

If the product at that endpoint is not running, the same message is posted again. It ends up being saved into database as a new message.

Please help.
Thanks
Abid

Re: If the message has name space setting the switch mediator does not work?

Posted by Hiranya Jayathilaka <hi...@gmail.com>.
On Sat, Oct 9, 2010 at 12:37 AM, Hiranya Jayathilaka
<hi...@gmail.com> wrote:
> On Fri, Oct 8, 2010 at 11:58 PM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>> Hiranya,
>>
>> Thanks for the quick response, but I cannot put the URL either since different messages will have different namespace and or URL.

Another option is to use the XSLT mediator and remove namespaces from
all incoming messages. Then you can use the switch mediator. (Not a
very 'nice' solution of course but it will work)

Thanks,
Hiranya

>
> So you get different messages with the same XML format but with
> different (unknown) namespaces? That is very unusual. Usually
> messaging systems deal with a previously agreed upon standard set of
> namespaces. Otherwise it becomes an interop nightmare.
>
> However if the messages are namespace qualified you need to define the
> exact namespaces in the switch mediator. Otherwise it won't work. I'm
> not a Xpath pro so I'm not sure whether there's a way to write an
> XPath expression in a namespace independent manner. Please see if you
> can find something like that. May be somebody else in the list will
> have an idea how to do that...
>
> Thanks,
> Hiranya
>
>>
>> Thanks & Regards,
>> Abid
>>
>>
>> -----Original Message-----
>> From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com]
>> Sent: Friday, October 08, 2010 12:25 PM
>> To: user@synapse.apache.org
>> Subject: Re: If the message has name space setting the switch mediator does not work?
>>
>> On Fri, Oct 8, 2010 at 9:42 PM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>>> Hello Andreas,
>>>
>>> I understand that, but what if the message has no-prefix namespace something like:
>>
>> That's fine. As far as the functionality is concerned, URL is he
>> important part in the namespace. Prefix could be anything. The prefix
>> used in your XPath doesn't have to match to the prefix in the message.
>> In fact message doesn't have to have a prefix at all.
>>
>> Thanks,
>> Hiranya
>>
>>
>>>
>>> <Message xmlns="http://www.company.com/test"/>
>>> ....
>>> ...
>>> </Message>
>>>
>>> This what I have most of the messages that I am processing with Synapse, have not prefix name space or default namespace declaration. Which is the problem I am facing.
>>>
>>>
>>>
>>> Thanks & Regards,
>>> Abid
>>>
>>>
>>> -----Original Message-----
>>> From: Andreas Veithen [mailto:andreas.veithen@gmail.com]
>>> Sent: Friday, October 08, 2010 10:07 AM
>>> To: user@synapse.apache.org
>>> Subject: Re: If the message has name space setting the switch mediator does not work?
>>>
>>> Try with something like this:
>>>
>>> <switch source="//p:Message/p:header/p:msgType"
>>> xmlns:p="http://www.company.com/test">
>>>
>>> Note that XPath expressions in Synapse configuration files are
>>> supposed to work the same way as XPath expressions in XSLT, so if you
>>> have a colleague who is familiar with XSLT, he may help you to figure
>>> out the details.
>>>
>>> Andreas
>>>
>>> On Fri, Oct 8, 2010 at 17:46, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>>>> I am not sure what is the difference in both ways here is how I am creating the switch:
>>>>
>>>> <switch source="//Message/header/msgType">
>>>>         <case regex="RequesResponse">
>>>>                 <validate>
>>>>                         <schema key="Message01"/>
>>>>                         <on-fail>
>>>>                                 <sequence key="ValidationFaultSequence" />
>>>>                         </on-fail>
>>>>                 </validate>
>>>>         </case>
>>>>         <case regex="Publish">
>>>>                 <validate>
>>>>                         <schema key=" Message02"/>
>>>>                         <on-fail>
>>>>                                 <sequence key="ValidationFaultSequence" />
>>>>                         </on-fail>
>>>>                 </validate>^M
>>>>         </case>
>>>> </switch>
>>>>
>>>> This exact switch works if the name space of the document is removed, and does not work otherwise.
>>>>
>>>> Please advise.
>>>>
>>>> Thanks & Regards,
>>>> Abid
>>>>
>>>> -----Original Message-----
>>>> From: Supun Kamburugamuva [mailto:supun06@gmail.com]
>>>> Sent: Thursday, October 07, 2010 8:29 PM
>>>> To: user@synapse.apache.org
>>>> Subject: Re: If the message has name space setting the switch mediator does not work?
>>>>
>>>> I believe you are using XPath to get a value of a element. You can write a
>>>> Xpath in such a way that it works both with namespace qualified elements as
>>>> well as normal elements.
>>>>
>>>> Thanks,
>>>> Supun..
>>>>
>>>> On Tue, Sep 28, 2010 at 9:12 PM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:
>>>>
>>>>> Hello all,
>>>>>
>>>>> I am receiving a message and the switch works if I take the namespace
>>>>> string out of the message, but I cannot tell the sender to remove it. Is
>>>>> there anything I can do that synapse can handle the name space.
>>>>>
>>>>> Message that starts with something like this is not handled properly, by
>>>>> "switch" mediator.
>>>>>
>>>>> <Request xmlns="http://www.company.com/test" xmlns:xsi="
>>>>> http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
>>>>> http://www.company.com/test ../test/Request.xsd">
>>>>>
>>>>>
>>>>> Thanks & Regards,
>>>>>
>>>>> Abid Khan
>>>>> Java Consultant
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Tech Lead, WSO2 Inc
>>>> http://wso2.org
>>>> supunk.blogspot.com
>>>>
>>>
>>
>>
>>
>> --
>> Hiranya Jayathilaka
>> Senior Software Engineer;
>> WSO2 Inc.;  http://wso2.org
>> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
>> Blog: http://techfeast-hiranya.blogspot.com
>>
>
>
>
> --
> Hiranya Jayathilaka
> Senior Software Engineer;
> WSO2 Inc.;  http://wso2.org
> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
> Blog: http://techfeast-hiranya.blogspot.com
>



-- 
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

Re: If the message has name space setting the switch mediator does not work?

Posted by Hiranya Jayathilaka <hi...@gmail.com>.
On Fri, Oct 8, 2010 at 11:58 PM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
> Hiranya,
>
> Thanks for the quick response, but I cannot put the URL either since different messages will have different namespace and or URL.

So you get different messages with the same XML format but with
different (unknown) namespaces? That is very unusual. Usually
messaging systems deal with a previously agreed upon standard set of
namespaces. Otherwise it becomes an interop nightmare.

However if the messages are namespace qualified you need to define the
exact namespaces in the switch mediator. Otherwise it won't work. I'm
not a Xpath pro so I'm not sure whether there's a way to write an
XPath expression in a namespace independent manner. Please see if you
can find something like that. May be somebody else in the list will
have an idea how to do that...

Thanks,
Hiranya

>
> Thanks & Regards,
> Abid
>
>
> -----Original Message-----
> From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com]
> Sent: Friday, October 08, 2010 12:25 PM
> To: user@synapse.apache.org
> Subject: Re: If the message has name space setting the switch mediator does not work?
>
> On Fri, Oct 8, 2010 at 9:42 PM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>> Hello Andreas,
>>
>> I understand that, but what if the message has no-prefix namespace something like:
>
> That's fine. As far as the functionality is concerned, URL is he
> important part in the namespace. Prefix could be anything. The prefix
> used in your XPath doesn't have to match to the prefix in the message.
> In fact message doesn't have to have a prefix at all.
>
> Thanks,
> Hiranya
>
>
>>
>> <Message xmlns="http://www.company.com/test"/>
>> ....
>> ...
>> </Message>
>>
>> This what I have most of the messages that I am processing with Synapse, have not prefix name space or default namespace declaration. Which is the problem I am facing.
>>
>>
>>
>> Thanks & Regards,
>> Abid
>>
>>
>> -----Original Message-----
>> From: Andreas Veithen [mailto:andreas.veithen@gmail.com]
>> Sent: Friday, October 08, 2010 10:07 AM
>> To: user@synapse.apache.org
>> Subject: Re: If the message has name space setting the switch mediator does not work?
>>
>> Try with something like this:
>>
>> <switch source="//p:Message/p:header/p:msgType"
>> xmlns:p="http://www.company.com/test">
>>
>> Note that XPath expressions in Synapse configuration files are
>> supposed to work the same way as XPath expressions in XSLT, so if you
>> have a colleague who is familiar with XSLT, he may help you to figure
>> out the details.
>>
>> Andreas
>>
>> On Fri, Oct 8, 2010 at 17:46, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>>> I am not sure what is the difference in both ways here is how I am creating the switch:
>>>
>>> <switch source="//Message/header/msgType">
>>>         <case regex="RequesResponse">
>>>                 <validate>
>>>                         <schema key="Message01"/>
>>>                         <on-fail>
>>>                                 <sequence key="ValidationFaultSequence" />
>>>                         </on-fail>
>>>                 </validate>
>>>         </case>
>>>         <case regex="Publish">
>>>                 <validate>
>>>                         <schema key=" Message02"/>
>>>                         <on-fail>
>>>                                 <sequence key="ValidationFaultSequence" />
>>>                         </on-fail>
>>>                 </validate>^M
>>>         </case>
>>> </switch>
>>>
>>> This exact switch works if the name space of the document is removed, and does not work otherwise.
>>>
>>> Please advise.
>>>
>>> Thanks & Regards,
>>> Abid
>>>
>>> -----Original Message-----
>>> From: Supun Kamburugamuva [mailto:supun06@gmail.com]
>>> Sent: Thursday, October 07, 2010 8:29 PM
>>> To: user@synapse.apache.org
>>> Subject: Re: If the message has name space setting the switch mediator does not work?
>>>
>>> I believe you are using XPath to get a value of a element. You can write a
>>> Xpath in such a way that it works both with namespace qualified elements as
>>> well as normal elements.
>>>
>>> Thanks,
>>> Supun..
>>>
>>> On Tue, Sep 28, 2010 at 9:12 PM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:
>>>
>>>> Hello all,
>>>>
>>>> I am receiving a message and the switch works if I take the namespace
>>>> string out of the message, but I cannot tell the sender to remove it. Is
>>>> there anything I can do that synapse can handle the name space.
>>>>
>>>> Message that starts with something like this is not handled properly, by
>>>> "switch" mediator.
>>>>
>>>> <Request xmlns="http://www.company.com/test" xmlns:xsi="
>>>> http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
>>>> http://www.company.com/test ../test/Request.xsd">
>>>>
>>>>
>>>> Thanks & Regards,
>>>>
>>>> Abid Khan
>>>> Java Consultant
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Tech Lead, WSO2 Inc
>>> http://wso2.org
>>> supunk.blogspot.com
>>>
>>
>
>
>
> --
> Hiranya Jayathilaka
> Senior Software Engineer;
> WSO2 Inc.;  http://wso2.org
> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
> Blog: http://techfeast-hiranya.blogspot.com
>



-- 
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

RE: If the message has name space setting the switch mediator does not work?

Posted by Abid Khan-EXT <Ab...@jeppesen.com>.
Hiranya,

Thanks for the quick response, but I cannot put the URL either since different messages will have different namespace and or URL.

Thanks & Regards,
Abid


-----Original Message-----
From: Hiranya Jayathilaka [mailto:hiranya911@gmail.com] 
Sent: Friday, October 08, 2010 12:25 PM
To: user@synapse.apache.org
Subject: Re: If the message has name space setting the switch mediator does not work?

On Fri, Oct 8, 2010 at 9:42 PM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
> Hello Andreas,
>
> I understand that, but what if the message has no-prefix namespace something like:

That's fine. As far as the functionality is concerned, URL is he
important part in the namespace. Prefix could be anything. The prefix
used in your XPath doesn't have to match to the prefix in the message.
In fact message doesn't have to have a prefix at all.

Thanks,
Hiranya


>
> <Message xmlns="http://www.company.com/test"/>
> ....
> ...
> </Message>
>
> This what I have most of the messages that I am processing with Synapse, have not prefix name space or default namespace declaration. Which is the problem I am facing.
>
>
>
> Thanks & Regards,
> Abid
>
>
> -----Original Message-----
> From: Andreas Veithen [mailto:andreas.veithen@gmail.com]
> Sent: Friday, October 08, 2010 10:07 AM
> To: user@synapse.apache.org
> Subject: Re: If the message has name space setting the switch mediator does not work?
>
> Try with something like this:
>
> <switch source="//p:Message/p:header/p:msgType"
> xmlns:p="http://www.company.com/test">
>
> Note that XPath expressions in Synapse configuration files are
> supposed to work the same way as XPath expressions in XSLT, so if you
> have a colleague who is familiar with XSLT, he may help you to figure
> out the details.
>
> Andreas
>
> On Fri, Oct 8, 2010 at 17:46, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>> I am not sure what is the difference in both ways here is how I am creating the switch:
>>
>> <switch source="//Message/header/msgType">
>>         <case regex="RequesResponse">
>>                 <validate>
>>                         <schema key="Message01"/>
>>                         <on-fail>
>>                                 <sequence key="ValidationFaultSequence" />
>>                         </on-fail>
>>                 </validate>
>>         </case>
>>         <case regex="Publish">
>>                 <validate>
>>                         <schema key=" Message02"/>
>>                         <on-fail>
>>                                 <sequence key="ValidationFaultSequence" />
>>                         </on-fail>
>>                 </validate>^M
>>         </case>
>> </switch>
>>
>> This exact switch works if the name space of the document is removed, and does not work otherwise.
>>
>> Please advise.
>>
>> Thanks & Regards,
>> Abid
>>
>> -----Original Message-----
>> From: Supun Kamburugamuva [mailto:supun06@gmail.com]
>> Sent: Thursday, October 07, 2010 8:29 PM
>> To: user@synapse.apache.org
>> Subject: Re: If the message has name space setting the switch mediator does not work?
>>
>> I believe you are using XPath to get a value of a element. You can write a
>> Xpath in such a way that it works both with namespace qualified elements as
>> well as normal elements.
>>
>> Thanks,
>> Supun..
>>
>> On Tue, Sep 28, 2010 at 9:12 PM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:
>>
>>> Hello all,
>>>
>>> I am receiving a message and the switch works if I take the namespace
>>> string out of the message, but I cannot tell the sender to remove it. Is
>>> there anything I can do that synapse can handle the name space.
>>>
>>> Message that starts with something like this is not handled properly, by
>>> "switch" mediator.
>>>
>>> <Request xmlns="http://www.company.com/test" xmlns:xsi="
>>> http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
>>> http://www.company.com/test ../test/Request.xsd">
>>>
>>>
>>> Thanks & Regards,
>>>
>>> Abid Khan
>>> Java Consultant
>>>
>>>
>>>
>>
>>
>> --
>> Tech Lead, WSO2 Inc
>> http://wso2.org
>> supunk.blogspot.com
>>
>



-- 
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

Re: If the message has name space setting the switch mediator does not work?

Posted by Hiranya Jayathilaka <hi...@gmail.com>.
On Fri, Oct 8, 2010 at 9:42 PM, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
> Hello Andreas,
>
> I understand that, but what if the message has no-prefix namespace something like:

That's fine. As far as the functionality is concerned, URL is he
important part in the namespace. Prefix could be anything. The prefix
used in your XPath doesn't have to match to the prefix in the message.
In fact message doesn't have to have a prefix at all.

Thanks,
Hiranya


>
> <Message xmlns="http://www.company.com/test"/>
> ....
> ...
> </Message>
>
> This what I have most of the messages that I am processing with Synapse, have not prefix name space or default namespace declaration. Which is the problem I am facing.
>
>
>
> Thanks & Regards,
> Abid
>
>
> -----Original Message-----
> From: Andreas Veithen [mailto:andreas.veithen@gmail.com]
> Sent: Friday, October 08, 2010 10:07 AM
> To: user@synapse.apache.org
> Subject: Re: If the message has name space setting the switch mediator does not work?
>
> Try with something like this:
>
> <switch source="//p:Message/p:header/p:msgType"
> xmlns:p="http://www.company.com/test">
>
> Note that XPath expressions in Synapse configuration files are
> supposed to work the same way as XPath expressions in XSLT, so if you
> have a colleague who is familiar with XSLT, he may help you to figure
> out the details.
>
> Andreas
>
> On Fri, Oct 8, 2010 at 17:46, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
>> I am not sure what is the difference in both ways here is how I am creating the switch:
>>
>> <switch source="//Message/header/msgType">
>>         <case regex="RequesResponse">
>>                 <validate>
>>                         <schema key="Message01"/>
>>                         <on-fail>
>>                                 <sequence key="ValidationFaultSequence" />
>>                         </on-fail>
>>                 </validate>
>>         </case>
>>         <case regex="Publish">
>>                 <validate>
>>                         <schema key=" Message02"/>
>>                         <on-fail>
>>                                 <sequence key="ValidationFaultSequence" />
>>                         </on-fail>
>>                 </validate>^M
>>         </case>
>> </switch>
>>
>> This exact switch works if the name space of the document is removed, and does not work otherwise.
>>
>> Please advise.
>>
>> Thanks & Regards,
>> Abid
>>
>> -----Original Message-----
>> From: Supun Kamburugamuva [mailto:supun06@gmail.com]
>> Sent: Thursday, October 07, 2010 8:29 PM
>> To: user@synapse.apache.org
>> Subject: Re: If the message has name space setting the switch mediator does not work?
>>
>> I believe you are using XPath to get a value of a element. You can write a
>> Xpath in such a way that it works both with namespace qualified elements as
>> well as normal elements.
>>
>> Thanks,
>> Supun..
>>
>> On Tue, Sep 28, 2010 at 9:12 PM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:
>>
>>> Hello all,
>>>
>>> I am receiving a message and the switch works if I take the namespace
>>> string out of the message, but I cannot tell the sender to remove it. Is
>>> there anything I can do that synapse can handle the name space.
>>>
>>> Message that starts with something like this is not handled properly, by
>>> "switch" mediator.
>>>
>>> <Request xmlns="http://www.company.com/test" xmlns:xsi="
>>> http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
>>> http://www.company.com/test ../test/Request.xsd">
>>>
>>>
>>> Thanks & Regards,
>>>
>>> Abid Khan
>>> Java Consultant
>>>
>>>
>>>
>>
>>
>> --
>> Tech Lead, WSO2 Inc
>> http://wso2.org
>> supunk.blogspot.com
>>
>



-- 
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

RE: If the message has name space setting the switch mediator does not work?

Posted by Abid Khan-EXT <Ab...@jeppesen.com>.
Hello Andreas,

I understand that, but what if the message has no-prefix namespace something like:

<Message xmlns="http://www.company.com/test"/>
....
...
</Message>

This what I have most of the messages that I am processing with Synapse, have not prefix name space or default namespace declaration. Which is the problem I am facing.



Thanks & Regards,
Abid


-----Original Message-----
From: Andreas Veithen [mailto:andreas.veithen@gmail.com]
Sent: Friday, October 08, 2010 10:07 AM
To: user@synapse.apache.org
Subject: Re: If the message has name space setting the switch mediator does not work?

Try with something like this:

<switch source="//p:Message/p:header/p:msgType"
xmlns:p="http://www.company.com/test">

Note that XPath expressions in Synapse configuration files are
supposed to work the same way as XPath expressions in XSLT, so if you
have a colleague who is familiar with XSLT, he may help you to figure
out the details.

Andreas

On Fri, Oct 8, 2010 at 17:46, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
> I am not sure what is the difference in both ways here is how I am creating the switch:
>
> <switch source="//Message/header/msgType">
>         <case regex="RequesResponse">
>                 <validate>
>                         <schema key="Message01"/>
>                         <on-fail>
>                                 <sequence key="ValidationFaultSequence" />
>                         </on-fail>
>                 </validate>
>         </case>
>         <case regex="Publish">
>                 <validate>
>                         <schema key=" Message02"/>
>                         <on-fail>
>                                 <sequence key="ValidationFaultSequence" />
>                         </on-fail>
>                 </validate>^M
>         </case>
> </switch>
>
> This exact switch works if the name space of the document is removed, and does not work otherwise.
>
> Please advise.
>
> Thanks & Regards,
> Abid
>
> -----Original Message-----
> From: Supun Kamburugamuva [mailto:supun06@gmail.com]
> Sent: Thursday, October 07, 2010 8:29 PM
> To: user@synapse.apache.org
> Subject: Re: If the message has name space setting the switch mediator does not work?
>
> I believe you are using XPath to get a value of a element. You can write a
> Xpath in such a way that it works both with namespace qualified elements as
> well as normal elements.
>
> Thanks,
> Supun..
>
> On Tue, Sep 28, 2010 at 9:12 PM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:
>
>> Hello all,
>>
>> I am receiving a message and the switch works if I take the namespace
>> string out of the message, but I cannot tell the sender to remove it. Is
>> there anything I can do that synapse can handle the name space.
>>
>> Message that starts with something like this is not handled properly, by
>> "switch" mediator.
>>
>> <Request xmlns="http://www.company.com/test" xmlns:xsi="
>> http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
>> http://www.company.com/test ../test/Request.xsd">
>>
>>
>> Thanks & Regards,
>>
>> Abid Khan
>> Java Consultant
>>
>>
>>
>
>
> --
> Tech Lead, WSO2 Inc
> http://wso2.org
> supunk.blogspot.com
>

Re: If the message has name space setting the switch mediator does not work?

Posted by Andreas Veithen <an...@gmail.com>.
Try with something like this:

<switch source="//p:Message/p:header/p:msgType"
xmlns:p="http://www.company.com/test">

Note that XPath expressions in Synapse configuration files are
supposed to work the same way as XPath expressions in XSLT, so if you
have a colleague who is familiar with XSLT, he may help you to figure
out the details.

Andreas

On Fri, Oct 8, 2010 at 17:46, Abid Khan-EXT <Ab...@jeppesen.com> wrote:
> I am not sure what is the difference in both ways here is how I am creating the switch:
>
> <switch source="//Message/header/msgType">
>         <case regex="RequesResponse">
>                 <validate>
>                         <schema key="Message01"/>
>                         <on-fail>
>                                 <sequence key="ValidationFaultSequence" />
>                         </on-fail>
>                 </validate>
>         </case>
>         <case regex="Publish">
>                 <validate>
>                         <schema key=" Message02"/>
>                         <on-fail>
>                                 <sequence key="ValidationFaultSequence" />
>                         </on-fail>
>                 </validate>^M
>         </case>
> </switch>
>
> This exact switch works if the name space of the document is removed, and does not work otherwise.
>
> Please advise.
>
> Thanks & Regards,
> Abid
>
> -----Original Message-----
> From: Supun Kamburugamuva [mailto:supun06@gmail.com]
> Sent: Thursday, October 07, 2010 8:29 PM
> To: user@synapse.apache.org
> Subject: Re: If the message has name space setting the switch mediator does not work?
>
> I believe you are using XPath to get a value of a element. You can write a
> Xpath in such a way that it works both with namespace qualified elements as
> well as normal elements.
>
> Thanks,
> Supun..
>
> On Tue, Sep 28, 2010 at 9:12 PM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:
>
>> Hello all,
>>
>> I am receiving a message and the switch works if I take the namespace
>> string out of the message, but I cannot tell the sender to remove it. Is
>> there anything I can do that synapse can handle the name space.
>>
>> Message that starts with something like this is not handled properly, by
>> "switch" mediator.
>>
>> <Request xmlns="http://www.company.com/test" xmlns:xsi="
>> http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
>> http://www.company.com/test ../test/Request.xsd">
>>
>>
>> Thanks & Regards,
>>
>> Abid Khan
>> Java Consultant
>>
>>
>>
>
>
> --
> Tech Lead, WSO2 Inc
> http://wso2.org
> supunk.blogspot.com
>

RE: If the message has name space setting the switch mediator does not work?

Posted by Abid Khan-EXT <Ab...@jeppesen.com>.
I am not sure what is the difference in both ways here is how I am creating the switch:

<switch source="//Message/header/msgType">
         <case regex="RequesResponse">
                 <validate>
                         <schema key="Message01"/>
                         <on-fail>
                                 <sequence key="ValidationFaultSequence" />
                         </on-fail>
                 </validate>
         </case>
         <case regex="Publish">
                 <validate>
                         <schema key=" Message02"/>
                         <on-fail>
                                 <sequence key="ValidationFaultSequence" />
                         </on-fail>
                 </validate>^M
         </case>
</switch>

This exact switch works if the name space of the document is removed, and does not work otherwise.

Please advise.

Thanks & Regards,
Abid

-----Original Message-----
From: Supun Kamburugamuva [mailto:supun06@gmail.com] 
Sent: Thursday, October 07, 2010 8:29 PM
To: user@synapse.apache.org
Subject: Re: If the message has name space setting the switch mediator does not work?

I believe you are using XPath to get a value of a element. You can write a
Xpath in such a way that it works both with namespace qualified elements as
well as normal elements.

Thanks,
Supun..

On Tue, Sep 28, 2010 at 9:12 PM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:

> Hello all,
>
> I am receiving a message and the switch works if I take the namespace
> string out of the message, but I cannot tell the sender to remove it. Is
> there anything I can do that synapse can handle the name space.
>
> Message that starts with something like this is not handled properly, by
> "switch" mediator.
>
> <Request xmlns="http://www.company.com/test" xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
> http://www.company.com/test ../test/Request.xsd">
>
>
> Thanks & Regards,
>
> Abid Khan
> Java Consultant
>
>
>


-- 
Tech Lead, WSO2 Inc
http://wso2.org
supunk.blogspot.com

Re: If the message has name space setting the switch mediator does not work?

Posted by Supun Kamburugamuva <su...@gmail.com>.
I believe you are using XPath to get a value of a element. You can write a
Xpath in such a way that it works both with namespace qualified elements as
well as normal elements.

Thanks,
Supun..

On Tue, Sep 28, 2010 at 9:12 PM, Abid Khan-EXT <Ab...@jeppesen.com>wrote:

> Hello all,
>
> I am receiving a message and the switch works if I take the namespace
> string out of the message, but I cannot tell the sender to remove it. Is
> there anything I can do that synapse can handle the name space.
>
> Message that starts with something like this is not handled properly, by
> "switch" mediator.
>
> <Request xmlns="http://www.company.com/test" xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
> http://www.company.com/test ../test/Request.xsd">
>
>
> Thanks & Regards,
>
> Abid Khan
> Java Consultant
>
>
>


-- 
Tech Lead, WSO2 Inc
http://wso2.org
supunk.blogspot.com