The server configuration of Synapse usually has the non-blocking
transports. That may have an effect on the thread model of the callout
mediator.

Thanks,
Hiranya

On Mon, Jul 16, 2012 at 2:33 PM, Amila Suriarachchi <[email protected]> wrote:

>
>
> On Fri, Jul 13, 2012 at 4:47 PM, Lakmali Baminiwatta <[email protected]>wrote:
>
>> Hi all,
>>
>>
>> On Wed, Jul 11, 2012 at 6:23 PM, Supun Kamburugamuva 
>> <[email protected]>wrote:
>>
>>> The server config context has the nhttp transport as the http transport.
>>> So callout mediator will pick this transport if we use the server
>>> configuration context. We should have a proper naming for the transports in
>>> axis2 before we can do this. i.e. At the moment axis2 thinks that the name
>>> of the transport is equal to the protocol name of the transport.
>>
>>
>> We were able to use Callout mediator with local transport by doing some
>> modifications to the synapse Callout mediator. We are proposing to add an
>> attribute 'useServerConfig' to the callout mediator which will use server
>> configuration context if set as true. By default it will be false and
>> Client configuration context will be used.
>>
>> So to use the Server Configuration in Callout mediator, the configuration
>> will be,
>>
>> <callout serviceURL="local://localhost/services/DTPSampleService"
>> action="urn:addToAccountBalanceInBank2" useServerConfig="true">
>>                 <source xpath="$body/child::*[fn:position()=1]"/>
>>                 <target xpath="$body/child::*[fn:position()=1]"/>
>>  </callout>
>>
>> The modification done to the Callout Mediator was changing the init
>> method of CalloutMediator.java
>>
>> public void init(SynapseEnvironment synEnv) {
>>         try {
>>             if (useServerConfig) {
>>                 configCtx = ((Axis2SynapseEnvironment)
>> synEnv).getAxis2ConfigurationContext();
>>             } else {
>>                 configCtx =
>> ConfigurationContextFactory.createConfigurationContextFromFileSystem(
>>                          clientRepository != null ? clientRepository :
>> DEFAULT_CLIENT_REPO,
>>                  axis2xml != null ? axis2xml : DEFAULT_AXIS2_XML);
>>             }
>>         } catch (AxisFault e) {
>>             String msg = "Error initializing callout mediator : " +
>> e.getMessage();
>>             log.error(msg, e);
>>             throw new SynapseException(msg, e);
>>         }
>>     }
>>
>> When *useServerConfig* is set true, the *configCtx* will be initialized
>> with Server Configuration Context as in Send mediator.
>>
>> Shall we proceed with this solution?
>>
>
> +1. This allows to use the call out mediator with local transport as well.
>
> thanks,
> Amila.
>
>>
>> Thanks,
>> Lakmali
>>
>>>
>>> Thanks,
>>> Supun..
>>>
>>>
>>> On Wed, Jul 11, 2012 at 4:46 AM, Lakmali Baminiwatta 
>>> <[email protected]>wrote:
>>>
>>>> Hi,
>>>>
>>>> How can we proceed if we are going to change the Callout mediator to
>>>> use the server config context as well?
>>>>
>>>> Thanks,
>>>> Lakmali
>>>>
>>>>
>>>>
>>>> On Tue, Jul 10, 2012 at 11:39 PM, Kasun Indrasiri <[email protected]>wrote:
>>>>
>>>>> However, following scenario seems to work fine. Seems this is not the
>>>>> expected behavior.
>>>>>
>>>>>    <proxy name="EchoProxy" transports="https http" startOnLoad="true"
>>>>> trace="disable">
>>>>>         <description/>
>>>>>         <target>
>>>>>             <inSequence>
>>>>>
>>>>>                 <callout serviceURL="local://services/echo"
>>>>> action="urn:echoString">
>>>>>                     <source xmlns:s12="
>>>>> http://www.w3.org/2003/05/soap-envelope"; xmlns:s11="
>>>>> http://schemas.xmlsoap.org/soap/envelope/";
>>>>> xpath="s11:Body/child::*[fn:position()=1] |
>>>>> s12:Body/child::*[fn:position()=1]"/>
>>>>>                     <target xmlns:s12="
>>>>> http://www.w3.org/2003/05/soap-envelope"; xmlns:s11="
>>>>> http://schemas.xmlsoap.org/soap/envelope/";
>>>>> xpath="s11:Body/child::*[fn:position()=1] |
>>>>> s12:Body/child::*[fn:position()=1]"/>
>>>>>                 </callout>
>>>>>                 <property name="RESPONSE" value="true"/>
>>>>>                 <header name="To" action="remove"/>
>>>>>                 <send/>
>>>>>             </inSequence>
>>>>>             <outSequence>
>>>>>                 <send/>
>>>>>             </outSequence>
>>>>>         </target>
>>>>>     </proxy>
>>>>>
>>>>> On Tue, Jul 10, 2012 at 10:23 PM, Supun Kamburugamuva <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> For the local transport to work both the invoker and the invoking
>>>>>> service should be in the same configuration context. So this scenario 
>>>>>> will
>>>>>> never work with the local transport + callout mediator.
>>>>>>
>>>>>> Thanks,
>>>>>> Supun..
>>>>>>
>>>>>> On Tue, Jul 10, 2012 at 12:48 PM, Hiranya Jayathilaka <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Jul 10, 2012 at 5:50 PM, Lakmali Baminiwatta <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> On Tue, Jul 10, 2012 at 5:26 PM, Hiranya Jayathilaka <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Send mediator and callout mediator use different
>>>>>>>>> ConfigurationContext instances. Former uses the server cfgctx and the
>>>>>>>>> latter uses the client cfgctx. That should be the problem.
>>>>>>>>
>>>>>>>>
>>>>>>>> I have enabled local transport on
>>>>>>>> samples/axis2Client/client_repo/conf/axis2.xml. Does it require more
>>>>>>>> configurations to the client cfgctx ?
>>>>>>>>
>>>>>>>
>>>>>>> I think the local transport looks up the cfgctx to find the target
>>>>>>> AxisService. So unless you somehow use the server cfgctx in the callout
>>>>>>> mediator, this scenario will never work. Better to debug and confirm - 
>>>>>>> I'm
>>>>>>> not 100% certain.
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>>> If you're using the local transport, it doesn't matter which
>>>>>>>>> mediator you use performance wise. So why not just use the send 
>>>>>>>>> mediator?
>>>>>>>>>
>>>>>>>>
>>>>>>>> The requirement is to get the response from the endpoint in the
>>>>>>>> same sequence. For instance with send mediator , when the operation at 
>>>>>>>> the
>>>>>>>> endpoint is failed and soap fault is returned, it will go to the
>>>>>>>> outSequence. Is there a way to jump to the fault sequence once a soap 
>>>>>>>> fault
>>>>>>>> has returned from the endpoint?
>>>>>>>>
>>>>>>>
>>>>>>> Use a simple filter in the out-sequence to check the message and
>>>>>>> jump to the fault sequence. It will be something like this:
>>>>>>>
>>>>>>> <filter xpath="get-property('FAULT')">
>>>>>>>    <sequence key="my_fault_seq"/>
>>>>>>>    <drop/>
>>>>>>> </filter>
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Hiranya
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> I am trying to do a distributed transaction between dataservice
>>>>>>>> endpoints, using ESB transport mediator. When an operation in one of 
>>>>>>>> the
>>>>>>>> data service endpoint has failed, the soap fault message will be 
>>>>>>>> received
>>>>>>>> in the out sequence. As a result we are facing a problem of where to 
>>>>>>>> call
>>>>>>>> rollback action on transport mediator.
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Lakmali
>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Hiranya
>>>>>>>>>
>>>>>>>>> On Tue, Jul 10, 2012 at 1:44 PM, Lakmali Baminiwatta <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Tue, Jul 10, 2012 at 1:09 PM, Lakmali Baminiwatta <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi,
>>>>>>>>>>>
>>>>>>>>>>> I am trying to configure ESB Callout mediator to access a
>>>>>>>>>>> dataservice endpoint through local transport. I have enabled local
>>>>>>>>>>> transport on samples/axis2Client/client_repo/conf/axis2.xml.
>>>>>>>>>>>
>>>>>>>>>>> I configured the callout mediator serviceURL and action as
>>>>>>>>>>> follows,
>>>>>>>>>>>
>>>>>>>>>>> * <callout serviceURL="
>>>>>>>>>>> http://localhost:8282/services/updateNonxaTrans "
>>>>>>>>>>> action="urn:UpdateXATransOp">
>>>>>>>>>>> *
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> The callout mediator configuration I used  was,
>>>>>>>>>> *
>>>>>>>>>> <callout serviceURL="local://localhost/services/updateNonxaTrans*
>>>>>>>>>> *" action="urn:UpdateXATransOp">*
>>>>>>>>>>
>>>>>>>>>> I have mistakenly mentioned a wrong URL above.
>>>>>>>>>>
>>>>>>>>>>> *
>>>>>>>>>>> *I am getting the following error while invoking the service.
>>>>>>>>>>>
>>>>>>>>>>> ERROR - AxisEngine The service cannot be found for the endpoint
>>>>>>>>>>> reference (EPR) local://localhost/services/updateNonxaTrans
>>>>>>>>>>> org.apache.axis2.AxisFault: The service cannot be found for the
>>>>>>>>>>> endpoint reference (EPR) local://localhost/services/updateNonxaTrans
>>>>>>>>>>>     at
>>>>>>>>>>> org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:78)
>>>>>>>>>>>     at org.apache.axis2.engine.Phase.invoke(Phase.java:329)
>>>>>>>>>>>     at
>>>>>>>>>>> org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:262)
>>>>>>>>>>>     at
>>>>>>>>>>> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:168)
>>>>>>>>>>>
>>>>>>>>>>> But the endpoint works when configured with send mediator.
>>>>>>>>>>>
>>>>>>>>>>> How can we use callout mediator to access endpoints through
>>>>>>>>>>> local transport?
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Lakmali
>>>>>>>>>>> --
>>>>>>>>>>> Lakmali Baminiwatta*
>>>>>>>>>>> *
>>>>>>>>>>> Software Engineer
>>>>>>>>>>> WSO2, Inc.: http://wso2.com
>>>>>>>>>>> lean.enterprise.middleware
>>>>>>>>>>>
>>>>>>>>>>> *
>>>>>>>>>>> *
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Lakmali Baminiwatta*
>>>>>>>>>> *
>>>>>>>>>> Software Engineer
>>>>>>>>>> WSO2, Inc.: http://wso2.com
>>>>>>>>>> lean.enterprise.middleware
>>>>>>>>>> mobile:  +94 71 2335936
>>>>>>>>>> *
>>>>>>>>>> *
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Dev mailing list
>>>>>>>>>> [email protected]
>>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Hiranya Jayathilaka
>>>>>>>>> Senior Technical Lead;
>>>>>>>>> WSO2 Inc.;  http://wso2.org
>>>>>>>>> E-mail: [email protected];  Mobile: +94 77 633 3491
>>>>>>>>> Blog: http://techfeast-hiranya.blogspot.com
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Lakmali Baminiwatta*
>>>>>>>> *
>>>>>>>> Software Engineer
>>>>>>>> WSO2, Inc.: http://wso2.com
>>>>>>>> lean.enterprise.middleware
>>>>>>>> mobile:  +94 71 2335936
>>>>>>>> *
>>>>>>>> *
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Hiranya Jayathilaka
>>>>>>> Senior Technical Lead;
>>>>>>> WSO2 Inc.;  http://wso2.org
>>>>>>> E-mail: [email protected];  Mobile: +94 77 633 3491
>>>>>>> Blog: http://techfeast-hiranya.blogspot.com
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Dev mailing list
>>>>>>> [email protected]
>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Supun Kamburugamuva
>>>>>> Member, Apache Software Foundation; http://www.apache.org
>>>>>> E-mail: [email protected] <[email protected]>;  Mobile: +94 77 431 3585
>>>>>> Blog: http://supunk.blogspot.com
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Dev mailing list
>>>>>> [email protected]
>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Kasun Indrasiri
>>>>> Associate Technical Lead
>>>>>
>>>>> WSO2, Inc.; http://wso2.com
>>>>> lean.enterprise.middleware
>>>>>
>>>>> cell: +94 71 536 4128
>>>>> Blog : http://kasunpanorama.blogspot.com/
>>>>>
>>>>> _______________________________________________
>>>>> Dev mailing list
>>>>> [email protected]
>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Lakmali Baminiwatta*
>>>> *
>>>> Software Engineer
>>>> WSO2, Inc.: http://wso2.com
>>>> lean.enterprise.middleware
>>>> mobile:  +94 71 2335936
>>>> *
>>>> *
>>>>
>>>>
>>>
>>>
>>> --
>>> Supun Kamburugamuva
>>> Member, Apache Software Foundation; http://www.apache.org
>>> E-mail: [email protected] <[email protected]>;  Mobile: +94 77 431 3585
>>> Blog: http://supunk.blogspot.com
>>>
>>>
>>>
>>>
>>
>>
>> --
>> Lakmali Baminiwatta*
>> *
>> Software Engineer
>> WSO2, Inc.: http://wso2.com
>> lean.enterprise.middleware
>> mobile:  +94 71 2335936
>> *
>> *
>>
>>
>> _______________________________________________
>> Dev mailing list
>> [email protected]
>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>
>>
>
>
> --
> *Amila Suriarachchi*
>
> Software Architect
> WSO2 Inc. ; http://wso2.com
> lean . enterprise . middleware
>
> phone : +94 71 3082805
>
>
> _______________________________________________
> Dev mailing list
> [email protected]
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
Hiranya Jayathilaka
Senior Technical Lead;
WSO2 Inc.;  http://wso2.org
E-mail: [email protected];  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to