You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by Benjamin Schmeling <Be...@gmx.de> on 2006/01/17 15:41:11 UTC

Problem with mixed (oneway and twoway) calls

Hi,

I have a problem when making three calls in one sequence, where the 
second call is twoway and the others are oneway. The calls are all 
successful but the calling of endSequence() results in an endless loop, 
because the isSequenceComplete(String seqId) method of the 
ClientStorageManager always returns false (because of 
incomingTerminateReceived = false).

In my attachment it concerns the last test.

Thanks,

Benjamin

Re: Problem with mixed (oneway and twoway) calls

Posted by Jaliya Ekanayake <jn...@gmail.com>.
SandeshaContext is by default initialized to handle *Asyncronous* cases 
since it will be the common case for Sandesha not the

Thanks,
Jaliya

----- Original Message ----- 
From: "Benjamin Schmeling" <Be...@gmx.de>
To: "Jaliya Ekanayake" <ja...@apache.org>
Cc: <sa...@ws.apache.org>
Sent: Friday, January 20, 2006 10:50 AM
Subject: Re: Problem with mixed (oneway and twoway) calls


> Yes, but sync = 1 all the time. This means that the SandeshaContext was 
> initialized by default:
> new SandeshaContext();
>
> Because of this I have a asynchronous communication, but mixed (oneway and 
> twoway) calls don't work either.
>
> Thanks for support,
>
> Benjamin
>
>> Hi,
>>
>> What I mentioned was this
>>
>> SandeshaContext ctx = new SandeshaContext();
>>
>>>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>>>> ctx = new SandeshaContext(sync);
>>>
>>
>> Hmm, Yes, it is a possibility and thanks for letting us know this.
>> Will include fixes for all these in a new release.
>>
>> Thanks,
>> Jaliya
>>
>> ----- Original Message ----- From: "Benjamin Schmeling" 
>> <Be...@gmx.de>
>> To: "Jaliya Ekanayake" <ja...@apache.org>
>> Cc: <sa...@ws.apache.org>
>> Sent: Wednesday, January 18, 2006 4:44 AM
>> Subject: Re: Problem with mixed (oneway and twoway) calls
>>
>>
>>> Hi,
>>>
>>> Sync = true ?, I did not set sync to true and ctx.isSync() = false all 
>>> the time. I think when you need a new Sandesha context for mixed calls 
>>> there can result a very high network traffic because of the message 
>>> overhead of reliable messaging (CreateSequence, TerminateSequence etc.). 
>>> Is there no possibility to change this?
>>>
>>> Thanks,
>>> Benjamin
>>>
>>>> Hi Benjamin,
>>>>
>>>> In sandesha you cannot mix one-way and two-way messages in a single 
>>>> context.
>>>> There should be two contexes for oneway and two way sequences.
>>>>
>>>> This is because once we initialize a sequence with sync=true then it 
>>>> will not handle two-way sequences.
>>>>
>>>> Thanks,
>>>> Jaliya
>>>>
>>>>
>>>> ----- Original Message ----- From: "Benjamin Schmeling" 
>>>> <Be...@gmx.de>
>>>> To: <sa...@ws.apache.org>
>>>> Sent: Tuesday, January 17, 2006 9:41 AM
>>>> Subject: Problem with mixed (oneway and twoway) calls
>>>>
>>>>
>>>>> Hi,
>>>>>
>>>>> I have a problem when making three calls in one sequence, where the
>>>>> second call is twoway and the others are oneway. The calls are all
>>>>> successful but the calling of endSequence() results in an endless 
>>>>> loop,
>>>>> because the isSequenceComplete(String seqId) method of the
>>>>> ClientStorageManager always returns false (because of
>>>>> incomingTerminateReceived = false).
>>>>>
>>>>> In my attachment it concerns the last test.
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Benjamin
>>>>>
>>>>
>>>>
>>>> --------------------------------------------------------------------------------
>>>>
>>>>
>>>>
>>>>
>>>>> package de.tud.ao4bpel.services.reliability.test;
>>>>>
>>>>> import java.net.MalformedURLException;
>>>>> import java.rmi.RemoteException;
>>>>>
>>>>> import javax.xml.namespace.QName;
>>>>> import javax.xml.rpc.ParameterMode;
>>>>> import javax.xml.rpc.ServiceException;
>>>>>
>>>>> import junit.framework.TestCase;
>>>>>
>>>>> import org.apache.axis.Constants;
>>>>> import org.apache.axis.client.Call;
>>>>> import org.apache.axis.client.Service;
>>>>> import org.apache.sandesha.SandeshaContext;
>>>>>
>>>>> public class SandeshaTest extends TestCase{
>>>>>
>>>>>
>>>>> public void testCallTwowaySequence() throws ServiceException, 
>>>>> MalformedURLException, RemoteException{
>>>>> int sync = 1;
>>>>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>>>>> SandeshaContext ctx = new SandeshaContext();
>>>>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>>>>> ctx = new SandeshaContext(sync);
>>>>> // --------------------------- Init -------------------------//
>>>>> String operationName = "testWSOneway1";
>>>>> Service service1 = new Service();
>>>>> Call call1;
>>>>> call1 = (Call) service1.createCall();
>>>>>
>>>>> ctx.initCall(call1, endpoint,
>>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
>>>>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>>
>>>>> call1.setOperationName(new QName("TestWebservice", operationName));
>>>>> call1.addParameter("message",
>>>>>             org.apache.axis.Constants.XSD_STRING,
>>>>>             javax.xml.rpc.ParameterMode.IN);
>>>>>
>>>>> call1.setReturnType(Constants.XSD_STRING);
>>>>> //---------------------------- Service 
>>>>> 1 -------------------------------  //
>>>>> call1.setOperationName(new QName("TestWebservice", "testWS1"));
>>>>> Object[] paramArray1 = new Object[] {"message1 sent by 
>>>>> callOnewaySequence"};
>>>>> System.out.println(call1.invoke(paramArray1));
>>>>> // ---------------------------- Service 
>>>>> 2 -------------------------------  //
>>>>> Call call2;
>>>>> call2 = (Call) service1.createCall();
>>>>> ctx.initCall(call2, endpoint,
>>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
>>>>> call2.addParameter("message",
>>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>>              javax.xml.rpc.ParameterMode.IN);
>>>>> call2.setReturnType(Constants.XSD_STRING);
>>>>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>> call2.setOperationName(new QName("TestWebservice", "testWS2"));
>>>>> Object[] paramArray2 = new Object[] {"message2 sent by 
>>>>> callOnewaySequence"};
>>>>> System.out.println(call2.invoke(paramArray2));
>>>>> //---------------------------- Service 
>>>>> 3 -------------------------------  //
>>>>> Call call3;
>>>>> call3 = (Call) service1.createCall();
>>>>> ctx.initCall(call3, endpoint,
>>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
>>>>> call3.addParameter("message",
>>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>>              javax.xml.rpc.ParameterMode.IN);
>>>>> call3.setReturnType(Constants.XSD_STRING);
>>>>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>> call3.setOperationName(new QName("TestWebservice", "testWS3"));
>>>>> ctx.setLastMessage(call3);
>>>>> Object[] paramArray3 = new Object[] {"message3 sent by 
>>>>> callOnewaySequence"};
>>>>> System.out.println(call3.invoke(paramArray3));
>>>>> ctx.endSequence();
>>>>> }
>>>>>
>>>>> public void testCallOnewaySequence() throws ServiceException, 
>>>>> MalformedURLException, RemoteException{
>>>>> int sync = 1;
>>>>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>>>>> SandeshaContext ctx = new SandeshaContext();
>>>>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>>>>> ctx = new SandeshaContext(sync);
>>>>> // --------------------------- Init -------------------------//
>>>>> String operationName = "testWSOneway1";
>>>>> Service service1 = new Service();
>>>>> Call call1;
>>>>> call1 = (Call) service1.createCall();
>>>>>
>>>>> ctx.initCall(call1, endpoint,
>>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
>>>>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>>
>>>>> call1.setOperationName(new QName("TestWebservice", operationName));
>>>>> call1.addParameter("message",
>>>>>             org.apache.axis.Constants.XSD_STRING,
>>>>>             javax.xml.rpc.ParameterMode.IN);
>>>>>
>>>>> //---------------------------- Service 
>>>>> 1 -------------------------------  //
>>>>> call1.setOperationName(new QName("TestWebservice", "testOnewayWS1"));
>>>>> Object[] paramArray1 = new Object[] {"message1 sent by 
>>>>> callOnewaySequence"};
>>>>> System.out.println(call1.invoke(paramArray1));
>>>>> // ---------------------------- Service 
>>>>> 2 -------------------------------  //
>>>>> Call call2;
>>>>> call2 = (Call) service1.createCall();
>>>>> ctx.initCall(call2, endpoint,
>>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
>>>>> call2.addParameter("message",
>>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>>              javax.xml.rpc.ParameterMode.IN);
>>>>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>> call2.setOperationName(new QName("TestWebservice", "testOnewayWS2"));
>>>>> Object[] paramArray2 = new Object[] {"message2 sent by 
>>>>> callOnewaySequence"};
>>>>> System.out.println(call2.invoke(paramArray2));
>>>>> //---------------------------- Service 
>>>>> 3 -------------------------------  //
>>>>> Call call3;
>>>>> call3 = (Call) service1.createCall();
>>>>> ctx.initCall(call3, endpoint,
>>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
>>>>> call3.addParameter("message",
>>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>>              javax.xml.rpc.ParameterMode.IN);
>>>>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>> call3.setOperationName(new QName("TestWebservice", "testOnewayWS3"));
>>>>> ctx.setLastMessage(call3);
>>>>> Object[] paramArray3 = new Object[] {"message3 sent by 
>>>>> callOnewaySequence"};
>>>>> System.out.println(call3.invoke(paramArray3));
>>>>> ctx.endSequence();
>>>>> }
>>>>>
>>>>> public void testCallOnewaySequenceMixed() throws ServiceException, 
>>>>> MalformedURLException, RemoteException{
>>>>> int sync = 1;
>>>>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>>>>> SandeshaContext ctx = new SandeshaContext();
>>>>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>>>>> ctx = new SandeshaContext(sync);
>>>>> // --------------------------- Init -------------------------//
>>>>> String operationName = "testWSOneway1";
>>>>> Service service1 = new Service();
>>>>> Call call1;
>>>>> call1 = (Call) service1.createCall();
>>>>>
>>>>> ctx.initCall(call1, endpoint,
>>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
>>>>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>>
>>>>> call1.setOperationName(new QName("TestWebservice", operationName));
>>>>> call1.addParameter("message",
>>>>>             org.apache.axis.Constants.XSD_STRING,
>>>>>             javax.xml.rpc.ParameterMode.IN);
>>>>>
>>>>> //---------------------------- Service 
>>>>> 1 -------------------------------  //
>>>>> call1.setOperationName(new QName("TestWebservice", "testOnewayWS1"));
>>>>> Object[] paramArray1 = new Object[] {"message1 sent by 
>>>>> callOnewaySequence"};
>>>>> System.out.println(call1.invoke(paramArray1));
>>>>> // ---------------------------- Service 
>>>>> 2 -------------------------------  //
>>>>> Call call2;
>>>>> call2 = (Call) service1.createCall();
>>>>> ctx.initCall(call2, endpoint,
>>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
>>>>> call2.addParameter("message",
>>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>>              javax.xml.rpc.ParameterMode.IN);
>>>>> call2.setReturnType(Constants.XSD_STRING);
>>>>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>> call2.setOperationName(new QName("TestWebservice", "testWS2"));
>>>>> Object[] paramArray2 = new Object[] {"message2 sent by 
>>>>> callOnewaySequence"};
>>>>> System.out.println(call2.invoke(paramArray2));
>>>>> //---------------------------- Service 
>>>>> 3 -------------------------------  //
>>>>> Call call3;
>>>>> call3 = (Call) service1.createCall();
>>>>> ctx.initCall(call3, endpoint,
>>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
>>>>> call3.addParameter("message",
>>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>>              javax.xml.rpc.ParameterMode.IN);
>>>>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>> call3.setOperationName(new QName("TestWebservice", "testOnewayWS3"));
>>>>> ctx.setLastMessage(call3);
>>>>> Object[] paramArray3 = new Object[] {"message3 sent by 
>>>>> callOnewaySequence"};
>>>>> System.out.println(call3.invoke(paramArray3));
>>>>> ctx.endSequence();
>>>>> }
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>
>>>>
>>>> --------------------------------------------------------------------------------
>>>>
>>>>
>>>>
>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
>>>>> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>>>>
>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
>>>> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>>>>
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
>>> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
>> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>>
>>
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org


Re: Problem with mixed (oneway and twoway) calls

Posted by Jaliya Ekanayake <jn...@gmail.com>.
SandeshaContext is by default initialized to handle *Asyncronous* cases 
since it will be the common case for Sandesha not the

Thanks,
Jaliya

----- Original Message ----- 
From: "Benjamin Schmeling" <Be...@gmx.de>
To: "Jaliya Ekanayake" <ja...@apache.org>
Cc: <sa...@ws.apache.org>
Sent: Friday, January 20, 2006 10:50 AM
Subject: Re: Problem with mixed (oneway and twoway) calls


> Yes, but sync = 1 all the time. This means that the SandeshaContext was 
> initialized by default:
> new SandeshaContext();
>
> Because of this I have a asynchronous communication, but mixed (oneway and 
> twoway) calls don't work either.
>
> Thanks for support,
>
> Benjamin
>
>> Hi,
>>
>> What I mentioned was this
>>
>> SandeshaContext ctx = new SandeshaContext();
>>
>>>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>>>> ctx = new SandeshaContext(sync);
>>>
>>
>> Hmm, Yes, it is a possibility and thanks for letting us know this.
>> Will include fixes for all these in a new release.
>>
>> Thanks,
>> Jaliya
>>
>> ----- Original Message ----- From: "Benjamin Schmeling" 
>> <Be...@gmx.de>
>> To: "Jaliya Ekanayake" <ja...@apache.org>
>> Cc: <sa...@ws.apache.org>
>> Sent: Wednesday, January 18, 2006 4:44 AM
>> Subject: Re: Problem with mixed (oneway and twoway) calls
>>
>>
>>> Hi,
>>>
>>> Sync = true ?, I did not set sync to true and ctx.isSync() = false all 
>>> the time. I think when you need a new Sandesha context for mixed calls 
>>> there can result a very high network traffic because of the message 
>>> overhead of reliable messaging (CreateSequence, TerminateSequence etc.). 
>>> Is there no possibility to change this?
>>>
>>> Thanks,
>>> Benjamin
>>>
>>>> Hi Benjamin,
>>>>
>>>> In sandesha you cannot mix one-way and two-way messages in a single 
>>>> context.
>>>> There should be two contexes for oneway and two way sequences.
>>>>
>>>> This is because once we initialize a sequence with sync=true then it 
>>>> will not handle two-way sequences.
>>>>
>>>> Thanks,
>>>> Jaliya
>>>>
>>>>
>>>> ----- Original Message ----- From: "Benjamin Schmeling" 
>>>> <Be...@gmx.de>
>>>> To: <sa...@ws.apache.org>
>>>> Sent: Tuesday, January 17, 2006 9:41 AM
>>>> Subject: Problem with mixed (oneway and twoway) calls
>>>>
>>>>
>>>>> Hi,
>>>>>
>>>>> I have a problem when making three calls in one sequence, where the
>>>>> second call is twoway and the others are oneway. The calls are all
>>>>> successful but the calling of endSequence() results in an endless 
>>>>> loop,
>>>>> because the isSequenceComplete(String seqId) method of the
>>>>> ClientStorageManager always returns false (because of
>>>>> incomingTerminateReceived = false).
>>>>>
>>>>> In my attachment it concerns the last test.
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Benjamin
>>>>>
>>>>
>>>>
>>>> --------------------------------------------------------------------------------
>>>>
>>>>
>>>>
>>>>
>>>>> package de.tud.ao4bpel.services.reliability.test;
>>>>>
>>>>> import java.net.MalformedURLException;
>>>>> import java.rmi.RemoteException;
>>>>>
>>>>> import javax.xml.namespace.QName;
>>>>> import javax.xml.rpc.ParameterMode;
>>>>> import javax.xml.rpc.ServiceException;
>>>>>
>>>>> import junit.framework.TestCase;
>>>>>
>>>>> import org.apache.axis.Constants;
>>>>> import org.apache.axis.client.Call;
>>>>> import org.apache.axis.client.Service;
>>>>> import org.apache.sandesha.SandeshaContext;
>>>>>
>>>>> public class SandeshaTest extends TestCase{
>>>>>
>>>>>
>>>>> public void testCallTwowaySequence() throws ServiceException, 
>>>>> MalformedURLException, RemoteException{
>>>>> int sync = 1;
>>>>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>>>>> SandeshaContext ctx = new SandeshaContext();
>>>>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>>>>> ctx = new SandeshaContext(sync);
>>>>> // --------------------------- Init -------------------------//
>>>>> String operationName = "testWSOneway1";
>>>>> Service service1 = new Service();
>>>>> Call call1;
>>>>> call1 = (Call) service1.createCall();
>>>>>
>>>>> ctx.initCall(call1, endpoint,
>>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
>>>>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>>
>>>>> call1.setOperationName(new QName("TestWebservice", operationName));
>>>>> call1.addParameter("message",
>>>>>             org.apache.axis.Constants.XSD_STRING,
>>>>>             javax.xml.rpc.ParameterMode.IN);
>>>>>
>>>>> call1.setReturnType(Constants.XSD_STRING);
>>>>> //---------------------------- Service 
>>>>> 1 -------------------------------  //
>>>>> call1.setOperationName(new QName("TestWebservice", "testWS1"));
>>>>> Object[] paramArray1 = new Object[] {"message1 sent by 
>>>>> callOnewaySequence"};
>>>>> System.out.println(call1.invoke(paramArray1));
>>>>> // ---------------------------- Service 
>>>>> 2 -------------------------------  //
>>>>> Call call2;
>>>>> call2 = (Call) service1.createCall();
>>>>> ctx.initCall(call2, endpoint,
>>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
>>>>> call2.addParameter("message",
>>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>>              javax.xml.rpc.ParameterMode.IN);
>>>>> call2.setReturnType(Constants.XSD_STRING);
>>>>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>> call2.setOperationName(new QName("TestWebservice", "testWS2"));
>>>>> Object[] paramArray2 = new Object[] {"message2 sent by 
>>>>> callOnewaySequence"};
>>>>> System.out.println(call2.invoke(paramArray2));
>>>>> //---------------------------- Service 
>>>>> 3 -------------------------------  //
>>>>> Call call3;
>>>>> call3 = (Call) service1.createCall();
>>>>> ctx.initCall(call3, endpoint,
>>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
>>>>> call3.addParameter("message",
>>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>>              javax.xml.rpc.ParameterMode.IN);
>>>>> call3.setReturnType(Constants.XSD_STRING);
>>>>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>> call3.setOperationName(new QName("TestWebservice", "testWS3"));
>>>>> ctx.setLastMessage(call3);
>>>>> Object[] paramArray3 = new Object[] {"message3 sent by 
>>>>> callOnewaySequence"};
>>>>> System.out.println(call3.invoke(paramArray3));
>>>>> ctx.endSequence();
>>>>> }
>>>>>
>>>>> public void testCallOnewaySequence() throws ServiceException, 
>>>>> MalformedURLException, RemoteException{
>>>>> int sync = 1;
>>>>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>>>>> SandeshaContext ctx = new SandeshaContext();
>>>>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>>>>> ctx = new SandeshaContext(sync);
>>>>> // --------------------------- Init -------------------------//
>>>>> String operationName = "testWSOneway1";
>>>>> Service service1 = new Service();
>>>>> Call call1;
>>>>> call1 = (Call) service1.createCall();
>>>>>
>>>>> ctx.initCall(call1, endpoint,
>>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
>>>>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>>
>>>>> call1.setOperationName(new QName("TestWebservice", operationName));
>>>>> call1.addParameter("message",
>>>>>             org.apache.axis.Constants.XSD_STRING,
>>>>>             javax.xml.rpc.ParameterMode.IN);
>>>>>
>>>>> //---------------------------- Service 
>>>>> 1 -------------------------------  //
>>>>> call1.setOperationName(new QName("TestWebservice", "testOnewayWS1"));
>>>>> Object[] paramArray1 = new Object[] {"message1 sent by 
>>>>> callOnewaySequence"};
>>>>> System.out.println(call1.invoke(paramArray1));
>>>>> // ---------------------------- Service 
>>>>> 2 -------------------------------  //
>>>>> Call call2;
>>>>> call2 = (Call) service1.createCall();
>>>>> ctx.initCall(call2, endpoint,
>>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
>>>>> call2.addParameter("message",
>>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>>              javax.xml.rpc.ParameterMode.IN);
>>>>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>> call2.setOperationName(new QName("TestWebservice", "testOnewayWS2"));
>>>>> Object[] paramArray2 = new Object[] {"message2 sent by 
>>>>> callOnewaySequence"};
>>>>> System.out.println(call2.invoke(paramArray2));
>>>>> //---------------------------- Service 
>>>>> 3 -------------------------------  //
>>>>> Call call3;
>>>>> call3 = (Call) service1.createCall();
>>>>> ctx.initCall(call3, endpoint,
>>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
>>>>> call3.addParameter("message",
>>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>>              javax.xml.rpc.ParameterMode.IN);
>>>>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>> call3.setOperationName(new QName("TestWebservice", "testOnewayWS3"));
>>>>> ctx.setLastMessage(call3);
>>>>> Object[] paramArray3 = new Object[] {"message3 sent by 
>>>>> callOnewaySequence"};
>>>>> System.out.println(call3.invoke(paramArray3));
>>>>> ctx.endSequence();
>>>>> }
>>>>>
>>>>> public void testCallOnewaySequenceMixed() throws ServiceException, 
>>>>> MalformedURLException, RemoteException{
>>>>> int sync = 1;
>>>>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>>>>> SandeshaContext ctx = new SandeshaContext();
>>>>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>>>>> ctx = new SandeshaContext(sync);
>>>>> // --------------------------- Init -------------------------//
>>>>> String operationName = "testWSOneway1";
>>>>> Service service1 = new Service();
>>>>> Call call1;
>>>>> call1 = (Call) service1.createCall();
>>>>>
>>>>> ctx.initCall(call1, endpoint,
>>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
>>>>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>>
>>>>> call1.setOperationName(new QName("TestWebservice", operationName));
>>>>> call1.addParameter("message",
>>>>>             org.apache.axis.Constants.XSD_STRING,
>>>>>             javax.xml.rpc.ParameterMode.IN);
>>>>>
>>>>> //---------------------------- Service 
>>>>> 1 -------------------------------  //
>>>>> call1.setOperationName(new QName("TestWebservice", "testOnewayWS1"));
>>>>> Object[] paramArray1 = new Object[] {"message1 sent by 
>>>>> callOnewaySequence"};
>>>>> System.out.println(call1.invoke(paramArray1));
>>>>> // ---------------------------- Service 
>>>>> 2 -------------------------------  //
>>>>> Call call2;
>>>>> call2 = (Call) service1.createCall();
>>>>> ctx.initCall(call2, endpoint,
>>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
>>>>> call2.addParameter("message",
>>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>>              javax.xml.rpc.ParameterMode.IN);
>>>>> call2.setReturnType(Constants.XSD_STRING);
>>>>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>> call2.setOperationName(new QName("TestWebservice", "testWS2"));
>>>>> Object[] paramArray2 = new Object[] {"message2 sent by 
>>>>> callOnewaySequence"};
>>>>> System.out.println(call2.invoke(paramArray2));
>>>>> //---------------------------- Service 
>>>>> 3 -------------------------------  //
>>>>> Call call3;
>>>>> call3 = (Call) service1.createCall();
>>>>> ctx.initCall(call3, endpoint,
>>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
>>>>> call3.addParameter("message",
>>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>>              javax.xml.rpc.ParameterMode.IN);
>>>>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>> call3.setOperationName(new QName("TestWebservice", "testOnewayWS3"));
>>>>> ctx.setLastMessage(call3);
>>>>> Object[] paramArray3 = new Object[] {"message3 sent by 
>>>>> callOnewaySequence"};
>>>>> System.out.println(call3.invoke(paramArray3));
>>>>> ctx.endSequence();
>>>>> }
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>
>>>>
>>>> --------------------------------------------------------------------------------
>>>>
>>>>
>>>>
>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
>>>>> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>>>>
>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
>>>> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>>>>
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
>>> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
>> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>>
>>
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org


Re: Problem with mixed (oneway and twoway) calls

Posted by Benjamin Schmeling <Be...@gmx.de>.
Yes, but sync = 1 all the time. This means that the SandeshaContext was 
initialized by default:
new SandeshaContext();

Because of this I have a asynchronous communication, but mixed (oneway 
and twoway) calls don't work either.

Thanks for support,

Benjamin

> Hi,
>
> What I mentioned was this
>
> SandeshaContext ctx = new SandeshaContext();
>
>>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>>> ctx = new SandeshaContext(sync);
>>
>
> Hmm, Yes, it is a possibility and thanks for letting us know this.
> Will include fixes for all these in a new release.
>
> Thanks,
> Jaliya
>
> ----- Original Message ----- From: "Benjamin Schmeling" 
> <Be...@gmx.de>
> To: "Jaliya Ekanayake" <ja...@apache.org>
> Cc: <sa...@ws.apache.org>
> Sent: Wednesday, January 18, 2006 4:44 AM
> Subject: Re: Problem with mixed (oneway and twoway) calls
>
>
>> Hi,
>>
>> Sync = true ?, I did not set sync to true and ctx.isSync() = false 
>> all the time. I think when you need a new Sandesha context for mixed 
>> calls there can result a very high network traffic because of the 
>> message overhead of reliable messaging (CreateSequence, 
>> TerminateSequence etc.). Is there no possibility to change this?
>>
>> Thanks,
>> Benjamin
>>
>>> Hi Benjamin,
>>>
>>> In sandesha you cannot mix one-way and two-way messages in a single 
>>> context.
>>> There should be two contexes for oneway and two way sequences.
>>>
>>> This is because once we initialize a sequence with sync=true then it 
>>> will not handle two-way sequences.
>>>
>>> Thanks,
>>> Jaliya
>>>
>>>
>>> ----- Original Message ----- From: "Benjamin Schmeling" 
>>> <Be...@gmx.de>
>>> To: <sa...@ws.apache.org>
>>> Sent: Tuesday, January 17, 2006 9:41 AM
>>> Subject: Problem with mixed (oneway and twoway) calls
>>>
>>>
>>>> Hi,
>>>>
>>>> I have a problem when making three calls in one sequence, where the
>>>> second call is twoway and the others are oneway. The calls are all
>>>> successful but the calling of endSequence() results in an endless 
>>>> loop,
>>>> because the isSequenceComplete(String seqId) method of the
>>>> ClientStorageManager always returns false (because of
>>>> incomingTerminateReceived = false).
>>>>
>>>> In my attachment it concerns the last test.
>>>>
>>>> Thanks,
>>>>
>>>> Benjamin
>>>>
>>>
>>>
>>> -------------------------------------------------------------------------------- 
>>>
>>>
>>>
>>>
>>>> package de.tud.ao4bpel.services.reliability.test;
>>>>
>>>> import java.net.MalformedURLException;
>>>> import java.rmi.RemoteException;
>>>>
>>>> import javax.xml.namespace.QName;
>>>> import javax.xml.rpc.ParameterMode;
>>>> import javax.xml.rpc.ServiceException;
>>>>
>>>> import junit.framework.TestCase;
>>>>
>>>> import org.apache.axis.Constants;
>>>> import org.apache.axis.client.Call;
>>>> import org.apache.axis.client.Service;
>>>> import org.apache.sandesha.SandeshaContext;
>>>>
>>>> public class SandeshaTest extends TestCase{
>>>>
>>>>
>>>> public void testCallTwowaySequence() throws ServiceException, 
>>>> MalformedURLException, RemoteException{
>>>> int sync = 1;
>>>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>>>> SandeshaContext ctx = new SandeshaContext();
>>>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>>>> ctx = new SandeshaContext(sync);
>>>> // --------------------------- Init -------------------------//
>>>> String operationName = "testWSOneway1";
>>>> Service service1 = new Service();
>>>> Call call1;
>>>> call1 = (Call) service1.createCall();
>>>>
>>>> ctx.initCall(call1, endpoint,
>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT); 
>>>>
>>>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>
>>>> call1.setOperationName(new QName("TestWebservice", operationName));
>>>> call1.addParameter("message",
>>>>             org.apache.axis.Constants.XSD_STRING,
>>>>             javax.xml.rpc.ParameterMode.IN);
>>>>
>>>> call1.setReturnType(Constants.XSD_STRING);
>>>> //---------------------------- Service 1 
>>>> -------------------------------  //
>>>> call1.setOperationName(new QName("TestWebservice", "testWS1"));
>>>> Object[] paramArray1 = new Object[] {"message1 sent by 
>>>> callOnewaySequence"};
>>>> System.out.println(call1.invoke(paramArray1));
>>>> // ---------------------------- Service 2 
>>>> -------------------------------  //
>>>> Call call2;
>>>> call2 = (Call) service1.createCall();
>>>> ctx.initCall(call2, endpoint,
>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT); 
>>>>
>>>> call2.addParameter("message",
>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>              javax.xml.rpc.ParameterMode.IN);
>>>> call2.setReturnType(Constants.XSD_STRING);
>>>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>> call2.setOperationName(new QName("TestWebservice", "testWS2"));
>>>> Object[] paramArray2 = new Object[] {"message2 sent by 
>>>> callOnewaySequence"};
>>>> System.out.println(call2.invoke(paramArray2));
>>>> //---------------------------- Service 3 
>>>> -------------------------------  //
>>>> Call call3;
>>>> call3 = (Call) service1.createCall();
>>>> ctx.initCall(call3, endpoint,
>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT); 
>>>>
>>>> call3.addParameter("message",
>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>              javax.xml.rpc.ParameterMode.IN);
>>>> call3.setReturnType(Constants.XSD_STRING);
>>>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>> call3.setOperationName(new QName("TestWebservice", "testWS3"));
>>>> ctx.setLastMessage(call3);
>>>> Object[] paramArray3 = new Object[] {"message3 sent by 
>>>> callOnewaySequence"};
>>>> System.out.println(call3.invoke(paramArray3));
>>>> ctx.endSequence();
>>>> }
>>>>
>>>> public void testCallOnewaySequence() throws ServiceException, 
>>>> MalformedURLException, RemoteException{
>>>> int sync = 1;
>>>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>>>> SandeshaContext ctx = new SandeshaContext();
>>>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>>>> ctx = new SandeshaContext(sync);
>>>> // --------------------------- Init -------------------------//
>>>> String operationName = "testWSOneway1";
>>>> Service service1 = new Service();
>>>> Call call1;
>>>> call1 = (Call) service1.createCall();
>>>>
>>>> ctx.initCall(call1, endpoint,
>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY); 
>>>>
>>>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>
>>>> call1.setOperationName(new QName("TestWebservice", operationName));
>>>> call1.addParameter("message",
>>>>             org.apache.axis.Constants.XSD_STRING,
>>>>             javax.xml.rpc.ParameterMode.IN);
>>>>
>>>> //---------------------------- Service 1 
>>>> -------------------------------  //
>>>> call1.setOperationName(new QName("TestWebservice", "testOnewayWS1"));
>>>> Object[] paramArray1 = new Object[] {"message1 sent by 
>>>> callOnewaySequence"};
>>>> System.out.println(call1.invoke(paramArray1));
>>>> // ---------------------------- Service 2 
>>>> -------------------------------  //
>>>> Call call2;
>>>> call2 = (Call) service1.createCall();
>>>> ctx.initCall(call2, endpoint,
>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY); 
>>>>
>>>> call2.addParameter("message",
>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>              javax.xml.rpc.ParameterMode.IN);
>>>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>> call2.setOperationName(new QName("TestWebservice", "testOnewayWS2"));
>>>> Object[] paramArray2 = new Object[] {"message2 sent by 
>>>> callOnewaySequence"};
>>>> System.out.println(call2.invoke(paramArray2));
>>>> //---------------------------- Service 3 
>>>> -------------------------------  //
>>>> Call call3;
>>>> call3 = (Call) service1.createCall();
>>>> ctx.initCall(call3, endpoint,
>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY); 
>>>>
>>>> call3.addParameter("message",
>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>              javax.xml.rpc.ParameterMode.IN);
>>>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>> call3.setOperationName(new QName("TestWebservice", "testOnewayWS3"));
>>>> ctx.setLastMessage(call3);
>>>> Object[] paramArray3 = new Object[] {"message3 sent by 
>>>> callOnewaySequence"};
>>>> System.out.println(call3.invoke(paramArray3));
>>>> ctx.endSequence();
>>>> }
>>>>
>>>> public void testCallOnewaySequenceMixed() throws ServiceException, 
>>>> MalformedURLException, RemoteException{
>>>> int sync = 1;
>>>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>>>> SandeshaContext ctx = new SandeshaContext();
>>>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>>>> ctx = new SandeshaContext(sync);
>>>> // --------------------------- Init -------------------------//
>>>> String operationName = "testWSOneway1";
>>>> Service service1 = new Service();
>>>> Call call1;
>>>> call1 = (Call) service1.createCall();
>>>>
>>>> ctx.initCall(call1, endpoint,
>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY); 
>>>>
>>>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>
>>>> call1.setOperationName(new QName("TestWebservice", operationName));
>>>> call1.addParameter("message",
>>>>             org.apache.axis.Constants.XSD_STRING,
>>>>             javax.xml.rpc.ParameterMode.IN);
>>>>
>>>> //---------------------------- Service 1 
>>>> -------------------------------  //
>>>> call1.setOperationName(new QName("TestWebservice", "testOnewayWS1"));
>>>> Object[] paramArray1 = new Object[] {"message1 sent by 
>>>> callOnewaySequence"};
>>>> System.out.println(call1.invoke(paramArray1));
>>>> // ---------------------------- Service 2 
>>>> -------------------------------  //
>>>> Call call2;
>>>> call2 = (Call) service1.createCall();
>>>> ctx.initCall(call2, endpoint,
>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT); 
>>>>
>>>> call2.addParameter("message",
>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>              javax.xml.rpc.ParameterMode.IN);
>>>> call2.setReturnType(Constants.XSD_STRING);
>>>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>> call2.setOperationName(new QName("TestWebservice", "testWS2"));
>>>> Object[] paramArray2 = new Object[] {"message2 sent by 
>>>> callOnewaySequence"};
>>>> System.out.println(call2.invoke(paramArray2));
>>>> //---------------------------- Service 3 
>>>> -------------------------------  //
>>>> Call call3;
>>>> call3 = (Call) service1.createCall();
>>>> ctx.initCall(call3, endpoint,
>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY); 
>>>>
>>>> call3.addParameter("message",
>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>              javax.xml.rpc.ParameterMode.IN);
>>>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>> call3.setOperationName(new QName("TestWebservice", "testOnewayWS3"));
>>>> ctx.setLastMessage(call3);
>>>> Object[] paramArray3 = new Object[] {"message3 sent by 
>>>> callOnewaySequence"};
>>>> System.out.println(call3.invoke(paramArray3));
>>>> ctx.endSequence();
>>>> }
>>>>
>>>> }
>>>>
>>>>
>>>
>>>
>>> -------------------------------------------------------------------------------- 
>>>
>>>
>>>
>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
>>>> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>>>
>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
>>> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
>> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org


Re: Problem with mixed (oneway and twoway) calls

Posted by Benjamin Schmeling <Be...@gmx.de>.
Yes, but sync = 1 all the time. This means that the SandeshaContext was 
initialized by default:
new SandeshaContext();

Because of this I have a asynchronous communication, but mixed (oneway 
and twoway) calls don't work either.

Thanks for support,

Benjamin

> Hi,
>
> What I mentioned was this
>
> SandeshaContext ctx = new SandeshaContext();
>
>>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>>> ctx = new SandeshaContext(sync);
>>
>
> Hmm, Yes, it is a possibility and thanks for letting us know this.
> Will include fixes for all these in a new release.
>
> Thanks,
> Jaliya
>
> ----- Original Message ----- From: "Benjamin Schmeling" 
> <Be...@gmx.de>
> To: "Jaliya Ekanayake" <ja...@apache.org>
> Cc: <sa...@ws.apache.org>
> Sent: Wednesday, January 18, 2006 4:44 AM
> Subject: Re: Problem with mixed (oneway and twoway) calls
>
>
>> Hi,
>>
>> Sync = true ?, I did not set sync to true and ctx.isSync() = false 
>> all the time. I think when you need a new Sandesha context for mixed 
>> calls there can result a very high network traffic because of the 
>> message overhead of reliable messaging (CreateSequence, 
>> TerminateSequence etc.). Is there no possibility to change this?
>>
>> Thanks,
>> Benjamin
>>
>>> Hi Benjamin,
>>>
>>> In sandesha you cannot mix one-way and two-way messages in a single 
>>> context.
>>> There should be two contexes for oneway and two way sequences.
>>>
>>> This is because once we initialize a sequence with sync=true then it 
>>> will not handle two-way sequences.
>>>
>>> Thanks,
>>> Jaliya
>>>
>>>
>>> ----- Original Message ----- From: "Benjamin Schmeling" 
>>> <Be...@gmx.de>
>>> To: <sa...@ws.apache.org>
>>> Sent: Tuesday, January 17, 2006 9:41 AM
>>> Subject: Problem with mixed (oneway and twoway) calls
>>>
>>>
>>>> Hi,
>>>>
>>>> I have a problem when making three calls in one sequence, where the
>>>> second call is twoway and the others are oneway. The calls are all
>>>> successful but the calling of endSequence() results in an endless 
>>>> loop,
>>>> because the isSequenceComplete(String seqId) method of the
>>>> ClientStorageManager always returns false (because of
>>>> incomingTerminateReceived = false).
>>>>
>>>> In my attachment it concerns the last test.
>>>>
>>>> Thanks,
>>>>
>>>> Benjamin
>>>>
>>>
>>>
>>> -------------------------------------------------------------------------------- 
>>>
>>>
>>>
>>>
>>>> package de.tud.ao4bpel.services.reliability.test;
>>>>
>>>> import java.net.MalformedURLException;
>>>> import java.rmi.RemoteException;
>>>>
>>>> import javax.xml.namespace.QName;
>>>> import javax.xml.rpc.ParameterMode;
>>>> import javax.xml.rpc.ServiceException;
>>>>
>>>> import junit.framework.TestCase;
>>>>
>>>> import org.apache.axis.Constants;
>>>> import org.apache.axis.client.Call;
>>>> import org.apache.axis.client.Service;
>>>> import org.apache.sandesha.SandeshaContext;
>>>>
>>>> public class SandeshaTest extends TestCase{
>>>>
>>>>
>>>> public void testCallTwowaySequence() throws ServiceException, 
>>>> MalformedURLException, RemoteException{
>>>> int sync = 1;
>>>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>>>> SandeshaContext ctx = new SandeshaContext();
>>>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>>>> ctx = new SandeshaContext(sync);
>>>> // --------------------------- Init -------------------------//
>>>> String operationName = "testWSOneway1";
>>>> Service service1 = new Service();
>>>> Call call1;
>>>> call1 = (Call) service1.createCall();
>>>>
>>>> ctx.initCall(call1, endpoint,
>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT); 
>>>>
>>>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>
>>>> call1.setOperationName(new QName("TestWebservice", operationName));
>>>> call1.addParameter("message",
>>>>             org.apache.axis.Constants.XSD_STRING,
>>>>             javax.xml.rpc.ParameterMode.IN);
>>>>
>>>> call1.setReturnType(Constants.XSD_STRING);
>>>> //---------------------------- Service 1 
>>>> -------------------------------  //
>>>> call1.setOperationName(new QName("TestWebservice", "testWS1"));
>>>> Object[] paramArray1 = new Object[] {"message1 sent by 
>>>> callOnewaySequence"};
>>>> System.out.println(call1.invoke(paramArray1));
>>>> // ---------------------------- Service 2 
>>>> -------------------------------  //
>>>> Call call2;
>>>> call2 = (Call) service1.createCall();
>>>> ctx.initCall(call2, endpoint,
>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT); 
>>>>
>>>> call2.addParameter("message",
>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>              javax.xml.rpc.ParameterMode.IN);
>>>> call2.setReturnType(Constants.XSD_STRING);
>>>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>> call2.setOperationName(new QName("TestWebservice", "testWS2"));
>>>> Object[] paramArray2 = new Object[] {"message2 sent by 
>>>> callOnewaySequence"};
>>>> System.out.println(call2.invoke(paramArray2));
>>>> //---------------------------- Service 3 
>>>> -------------------------------  //
>>>> Call call3;
>>>> call3 = (Call) service1.createCall();
>>>> ctx.initCall(call3, endpoint,
>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT); 
>>>>
>>>> call3.addParameter("message",
>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>              javax.xml.rpc.ParameterMode.IN);
>>>> call3.setReturnType(Constants.XSD_STRING);
>>>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>> call3.setOperationName(new QName("TestWebservice", "testWS3"));
>>>> ctx.setLastMessage(call3);
>>>> Object[] paramArray3 = new Object[] {"message3 sent by 
>>>> callOnewaySequence"};
>>>> System.out.println(call3.invoke(paramArray3));
>>>> ctx.endSequence();
>>>> }
>>>>
>>>> public void testCallOnewaySequence() throws ServiceException, 
>>>> MalformedURLException, RemoteException{
>>>> int sync = 1;
>>>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>>>> SandeshaContext ctx = new SandeshaContext();
>>>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>>>> ctx = new SandeshaContext(sync);
>>>> // --------------------------- Init -------------------------//
>>>> String operationName = "testWSOneway1";
>>>> Service service1 = new Service();
>>>> Call call1;
>>>> call1 = (Call) service1.createCall();
>>>>
>>>> ctx.initCall(call1, endpoint,
>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY); 
>>>>
>>>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>
>>>> call1.setOperationName(new QName("TestWebservice", operationName));
>>>> call1.addParameter("message",
>>>>             org.apache.axis.Constants.XSD_STRING,
>>>>             javax.xml.rpc.ParameterMode.IN);
>>>>
>>>> //---------------------------- Service 1 
>>>> -------------------------------  //
>>>> call1.setOperationName(new QName("TestWebservice", "testOnewayWS1"));
>>>> Object[] paramArray1 = new Object[] {"message1 sent by 
>>>> callOnewaySequence"};
>>>> System.out.println(call1.invoke(paramArray1));
>>>> // ---------------------------- Service 2 
>>>> -------------------------------  //
>>>> Call call2;
>>>> call2 = (Call) service1.createCall();
>>>> ctx.initCall(call2, endpoint,
>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY); 
>>>>
>>>> call2.addParameter("message",
>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>              javax.xml.rpc.ParameterMode.IN);
>>>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>> call2.setOperationName(new QName("TestWebservice", "testOnewayWS2"));
>>>> Object[] paramArray2 = new Object[] {"message2 sent by 
>>>> callOnewaySequence"};
>>>> System.out.println(call2.invoke(paramArray2));
>>>> //---------------------------- Service 3 
>>>> -------------------------------  //
>>>> Call call3;
>>>> call3 = (Call) service1.createCall();
>>>> ctx.initCall(call3, endpoint,
>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY); 
>>>>
>>>> call3.addParameter("message",
>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>              javax.xml.rpc.ParameterMode.IN);
>>>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>> call3.setOperationName(new QName("TestWebservice", "testOnewayWS3"));
>>>> ctx.setLastMessage(call3);
>>>> Object[] paramArray3 = new Object[] {"message3 sent by 
>>>> callOnewaySequence"};
>>>> System.out.println(call3.invoke(paramArray3));
>>>> ctx.endSequence();
>>>> }
>>>>
>>>> public void testCallOnewaySequenceMixed() throws ServiceException, 
>>>> MalformedURLException, RemoteException{
>>>> int sync = 1;
>>>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>>>> SandeshaContext ctx = new SandeshaContext();
>>>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>>>> ctx = new SandeshaContext(sync);
>>>> // --------------------------- Init -------------------------//
>>>> String operationName = "testWSOneway1";
>>>> Service service1 = new Service();
>>>> Call call1;
>>>> call1 = (Call) service1.createCall();
>>>>
>>>> ctx.initCall(call1, endpoint,
>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY); 
>>>>
>>>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>>
>>>> call1.setOperationName(new QName("TestWebservice", operationName));
>>>> call1.addParameter("message",
>>>>             org.apache.axis.Constants.XSD_STRING,
>>>>             javax.xml.rpc.ParameterMode.IN);
>>>>
>>>> //---------------------------- Service 1 
>>>> -------------------------------  //
>>>> call1.setOperationName(new QName("TestWebservice", "testOnewayWS1"));
>>>> Object[] paramArray1 = new Object[] {"message1 sent by 
>>>> callOnewaySequence"};
>>>> System.out.println(call1.invoke(paramArray1));
>>>> // ---------------------------- Service 2 
>>>> -------------------------------  //
>>>> Call call2;
>>>> call2 = (Call) service1.createCall();
>>>> ctx.initCall(call2, endpoint,
>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT); 
>>>>
>>>> call2.addParameter("message",
>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>              javax.xml.rpc.ParameterMode.IN);
>>>> call2.setReturnType(Constants.XSD_STRING);
>>>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>> call2.setOperationName(new QName("TestWebservice", "testWS2"));
>>>> Object[] paramArray2 = new Object[] {"message2 sent by 
>>>> callOnewaySequence"};
>>>> System.out.println(call2.invoke(paramArray2));
>>>> //---------------------------- Service 3 
>>>> -------------------------------  //
>>>> Call call3;
>>>> call3 = (Call) service1.createCall();
>>>> ctx.initCall(call3, endpoint,
>>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY); 
>>>>
>>>> call3.addParameter("message",
>>>>              org.apache.axis.Constants.XSD_STRING,
>>>>              javax.xml.rpc.ParameterMode.IN);
>>>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>> call3.setOperationName(new QName("TestWebservice", "testOnewayWS3"));
>>>> ctx.setLastMessage(call3);
>>>> Object[] paramArray3 = new Object[] {"message3 sent by 
>>>> callOnewaySequence"};
>>>> System.out.println(call3.invoke(paramArray3));
>>>> ctx.endSequence();
>>>> }
>>>>
>>>> }
>>>>
>>>>
>>>
>>>
>>> -------------------------------------------------------------------------------- 
>>>
>>>
>>>
>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
>>>> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>>>
>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
>>> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
>> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org


Re: Problem with mixed (oneway and twoway) calls

Posted by Jaliya Ekanayake <jn...@gmail.com>.
Hi,

What I mentioned was this

 SandeshaContext ctx = new SandeshaContext();
>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>> ctx = new SandeshaContext(sync);

Hmm, Yes, it is a possibility and thanks for letting us know this.
Will include fixes for all these in a new release.

Thanks,
Jaliya

----- Original Message ----- 
From: "Benjamin Schmeling" <Be...@gmx.de>
To: "Jaliya Ekanayake" <ja...@apache.org>
Cc: <sa...@ws.apache.org>
Sent: Wednesday, January 18, 2006 4:44 AM
Subject: Re: Problem with mixed (oneway and twoway) calls


> Hi,
>
> Sync = true ?, I did not set sync to true and ctx.isSync() = false all the 
> time. I think when you need a new Sandesha context for mixed calls there 
> can result a very high network traffic because of the message overhead of 
> reliable messaging (CreateSequence, TerminateSequence etc.). Is there no 
> possibility to change this?
>
> Thanks,
> Benjamin
>
>> Hi Benjamin,
>>
>> In sandesha you cannot mix one-way and two-way messages in a single 
>> context.
>> There should be two contexes for oneway and two way sequences.
>>
>> This is because once we initialize a sequence with sync=true then it will 
>> not handle two-way sequences.
>>
>> Thanks,
>> Jaliya
>>
>>
>> ----- Original Message ----- From: "Benjamin Schmeling" 
>> <Be...@gmx.de>
>> To: <sa...@ws.apache.org>
>> Sent: Tuesday, January 17, 2006 9:41 AM
>> Subject: Problem with mixed (oneway and twoway) calls
>>
>>
>>> Hi,
>>>
>>> I have a problem when making three calls in one sequence, where the
>>> second call is twoway and the others are oneway. The calls are all
>>> successful but the calling of endSequence() results in an endless loop,
>>> because the isSequenceComplete(String seqId) method of the
>>> ClientStorageManager always returns false (because of
>>> incomingTerminateReceived = false).
>>>
>>> In my attachment it concerns the last test.
>>>
>>> Thanks,
>>>
>>> Benjamin
>>>
>>
>>
>> --------------------------------------------------------------------------------
>>
>>
>>
>>> package de.tud.ao4bpel.services.reliability.test;
>>>
>>> import java.net.MalformedURLException;
>>> import java.rmi.RemoteException;
>>>
>>> import javax.xml.namespace.QName;
>>> import javax.xml.rpc.ParameterMode;
>>> import javax.xml.rpc.ServiceException;
>>>
>>> import junit.framework.TestCase;
>>>
>>> import org.apache.axis.Constants;
>>> import org.apache.axis.client.Call;
>>> import org.apache.axis.client.Service;
>>> import org.apache.sandesha.SandeshaContext;
>>>
>>> public class SandeshaTest extends TestCase{
>>>
>>>
>>> public void testCallTwowaySequence() throws ServiceException, 
>>> MalformedURLException, RemoteException{
>>> int sync = 1;
>>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>>> SandeshaContext ctx = new SandeshaContext();
>>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>>> ctx = new SandeshaContext(sync);
>>> // --------------------------- Init -------------------------//
>>> String operationName = "testWSOneway1";
>>> Service service1 = new Service();
>>> Call call1;
>>> call1 = (Call) service1.createCall();
>>>
>>> ctx.initCall(call1, endpoint,
>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
>>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>
>>> call1.setOperationName(new QName("TestWebservice", operationName));
>>> call1.addParameter("message",
>>>             org.apache.axis.Constants.XSD_STRING,
>>>             javax.xml.rpc.ParameterMode.IN);
>>>
>>> call1.setReturnType(Constants.XSD_STRING);
>>> //---------------------------- Service 1 -------------------------------  
>>> //
>>> call1.setOperationName(new QName("TestWebservice", "testWS1"));
>>> Object[] paramArray1 = new Object[] {"message1 sent by 
>>> callOnewaySequence"};
>>> System.out.println(call1.invoke(paramArray1));
>>> // ---------------------------- Service 
>>> 2 -------------------------------  //
>>> Call call2;
>>> call2 = (Call) service1.createCall();
>>> ctx.initCall(call2, endpoint,
>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
>>> call2.addParameter("message",
>>>              org.apache.axis.Constants.XSD_STRING,
>>>              javax.xml.rpc.ParameterMode.IN);
>>> call2.setReturnType(Constants.XSD_STRING);
>>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>> call2.setOperationName(new QName("TestWebservice", "testWS2"));
>>> Object[] paramArray2 = new Object[] {"message2 sent by 
>>> callOnewaySequence"};
>>> System.out.println(call2.invoke(paramArray2));
>>> //---------------------------- Service 3 -------------------------------  
>>> //
>>> Call call3;
>>> call3 = (Call) service1.createCall();
>>> ctx.initCall(call3, endpoint,
>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
>>> call3.addParameter("message",
>>>              org.apache.axis.Constants.XSD_STRING,
>>>              javax.xml.rpc.ParameterMode.IN);
>>> call3.setReturnType(Constants.XSD_STRING);
>>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>> call3.setOperationName(new QName("TestWebservice", "testWS3"));
>>> ctx.setLastMessage(call3);
>>> Object[] paramArray3 = new Object[] {"message3 sent by 
>>> callOnewaySequence"};
>>> System.out.println(call3.invoke(paramArray3));
>>> ctx.endSequence();
>>> }
>>>
>>> public void testCallOnewaySequence() throws ServiceException, 
>>> MalformedURLException, RemoteException{
>>> int sync = 1;
>>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>>> SandeshaContext ctx = new SandeshaContext();
>>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>>> ctx = new SandeshaContext(sync);
>>> // --------------------------- Init -------------------------//
>>> String operationName = "testWSOneway1";
>>> Service service1 = new Service();
>>> Call call1;
>>> call1 = (Call) service1.createCall();
>>>
>>> ctx.initCall(call1, endpoint,
>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
>>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>
>>> call1.setOperationName(new QName("TestWebservice", operationName));
>>> call1.addParameter("message",
>>>             org.apache.axis.Constants.XSD_STRING,
>>>             javax.xml.rpc.ParameterMode.IN);
>>>
>>> //---------------------------- Service 1 -------------------------------  
>>> //
>>> call1.setOperationName(new QName("TestWebservice", "testOnewayWS1"));
>>> Object[] paramArray1 = new Object[] {"message1 sent by 
>>> callOnewaySequence"};
>>> System.out.println(call1.invoke(paramArray1));
>>> // ---------------------------- Service 
>>> 2 -------------------------------  //
>>> Call call2;
>>> call2 = (Call) service1.createCall();
>>> ctx.initCall(call2, endpoint,
>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
>>> call2.addParameter("message",
>>>              org.apache.axis.Constants.XSD_STRING,
>>>              javax.xml.rpc.ParameterMode.IN);
>>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>> call2.setOperationName(new QName("TestWebservice", "testOnewayWS2"));
>>> Object[] paramArray2 = new Object[] {"message2 sent by 
>>> callOnewaySequence"};
>>> System.out.println(call2.invoke(paramArray2));
>>> //---------------------------- Service 3 -------------------------------  
>>> //
>>> Call call3;
>>> call3 = (Call) service1.createCall();
>>> ctx.initCall(call3, endpoint,
>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
>>> call3.addParameter("message",
>>>              org.apache.axis.Constants.XSD_STRING,
>>>              javax.xml.rpc.ParameterMode.IN);
>>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>> call3.setOperationName(new QName("TestWebservice", "testOnewayWS3"));
>>> ctx.setLastMessage(call3);
>>> Object[] paramArray3 = new Object[] {"message3 sent by 
>>> callOnewaySequence"};
>>> System.out.println(call3.invoke(paramArray3));
>>> ctx.endSequence();
>>> }
>>>
>>> public void testCallOnewaySequenceMixed() throws ServiceException, 
>>> MalformedURLException, RemoteException{
>>> int sync = 1;
>>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>>> SandeshaContext ctx = new SandeshaContext();
>>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>>> ctx = new SandeshaContext(sync);
>>> // --------------------------- Init -------------------------//
>>> String operationName = "testWSOneway1";
>>> Service service1 = new Service();
>>> Call call1;
>>> call1 = (Call) service1.createCall();
>>>
>>> ctx.initCall(call1, endpoint,
>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
>>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>
>>> call1.setOperationName(new QName("TestWebservice", operationName));
>>> call1.addParameter("message",
>>>             org.apache.axis.Constants.XSD_STRING,
>>>             javax.xml.rpc.ParameterMode.IN);
>>>
>>> //---------------------------- Service 1 -------------------------------  
>>> //
>>> call1.setOperationName(new QName("TestWebservice", "testOnewayWS1"));
>>> Object[] paramArray1 = new Object[] {"message1 sent by 
>>> callOnewaySequence"};
>>> System.out.println(call1.invoke(paramArray1));
>>> // ---------------------------- Service 
>>> 2 -------------------------------  //
>>> Call call2;
>>> call2 = (Call) service1.createCall();
>>> ctx.initCall(call2, endpoint,
>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
>>> call2.addParameter("message",
>>>              org.apache.axis.Constants.XSD_STRING,
>>>              javax.xml.rpc.ParameterMode.IN);
>>> call2.setReturnType(Constants.XSD_STRING);
>>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>> call2.setOperationName(new QName("TestWebservice", "testWS2"));
>>> Object[] paramArray2 = new Object[] {"message2 sent by 
>>> callOnewaySequence"};
>>> System.out.println(call2.invoke(paramArray2));
>>> //---------------------------- Service 3 -------------------------------  
>>> //
>>> Call call3;
>>> call3 = (Call) service1.createCall();
>>> ctx.initCall(call3, endpoint,
>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
>>> call3.addParameter("message",
>>>              org.apache.axis.Constants.XSD_STRING,
>>>              javax.xml.rpc.ParameterMode.IN);
>>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>> call3.setOperationName(new QName("TestWebservice", "testOnewayWS3"));
>>> ctx.setLastMessage(call3);
>>> Object[] paramArray3 = new Object[] {"message3 sent by 
>>> callOnewaySequence"};
>>> System.out.println(call3.invoke(paramArray3));
>>> ctx.endSequence();
>>> }
>>>
>>> }
>>>
>>>
>>
>>
>> --------------------------------------------------------------------------------
>>
>>
>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
>>> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
>> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org


Re: Problem with mixed (oneway and twoway) calls

Posted by Jaliya Ekanayake <jn...@gmail.com>.
Hi,

What I mentioned was this

 SandeshaContext ctx = new SandeshaContext();
>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>> ctx = new SandeshaContext(sync);

Hmm, Yes, it is a possibility and thanks for letting us know this.
Will include fixes for all these in a new release.

Thanks,
Jaliya

----- Original Message ----- 
From: "Benjamin Schmeling" <Be...@gmx.de>
To: "Jaliya Ekanayake" <ja...@apache.org>
Cc: <sa...@ws.apache.org>
Sent: Wednesday, January 18, 2006 4:44 AM
Subject: Re: Problem with mixed (oneway and twoway) calls


> Hi,
>
> Sync = true ?, I did not set sync to true and ctx.isSync() = false all the 
> time. I think when you need a new Sandesha context for mixed calls there 
> can result a very high network traffic because of the message overhead of 
> reliable messaging (CreateSequence, TerminateSequence etc.). Is there no 
> possibility to change this?
>
> Thanks,
> Benjamin
>
>> Hi Benjamin,
>>
>> In sandesha you cannot mix one-way and two-way messages in a single 
>> context.
>> There should be two contexes for oneway and two way sequences.
>>
>> This is because once we initialize a sequence with sync=true then it will 
>> not handle two-way sequences.
>>
>> Thanks,
>> Jaliya
>>
>>
>> ----- Original Message ----- From: "Benjamin Schmeling" 
>> <Be...@gmx.de>
>> To: <sa...@ws.apache.org>
>> Sent: Tuesday, January 17, 2006 9:41 AM
>> Subject: Problem with mixed (oneway and twoway) calls
>>
>>
>>> Hi,
>>>
>>> I have a problem when making three calls in one sequence, where the
>>> second call is twoway and the others are oneway. The calls are all
>>> successful but the calling of endSequence() results in an endless loop,
>>> because the isSequenceComplete(String seqId) method of the
>>> ClientStorageManager always returns false (because of
>>> incomingTerminateReceived = false).
>>>
>>> In my attachment it concerns the last test.
>>>
>>> Thanks,
>>>
>>> Benjamin
>>>
>>
>>
>> --------------------------------------------------------------------------------
>>
>>
>>
>>> package de.tud.ao4bpel.services.reliability.test;
>>>
>>> import java.net.MalformedURLException;
>>> import java.rmi.RemoteException;
>>>
>>> import javax.xml.namespace.QName;
>>> import javax.xml.rpc.ParameterMode;
>>> import javax.xml.rpc.ServiceException;
>>>
>>> import junit.framework.TestCase;
>>>
>>> import org.apache.axis.Constants;
>>> import org.apache.axis.client.Call;
>>> import org.apache.axis.client.Service;
>>> import org.apache.sandesha.SandeshaContext;
>>>
>>> public class SandeshaTest extends TestCase{
>>>
>>>
>>> public void testCallTwowaySequence() throws ServiceException, 
>>> MalformedURLException, RemoteException{
>>> int sync = 1;
>>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>>> SandeshaContext ctx = new SandeshaContext();
>>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>>> ctx = new SandeshaContext(sync);
>>> // --------------------------- Init -------------------------//
>>> String operationName = "testWSOneway1";
>>> Service service1 = new Service();
>>> Call call1;
>>> call1 = (Call) service1.createCall();
>>>
>>> ctx.initCall(call1, endpoint,
>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
>>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>
>>> call1.setOperationName(new QName("TestWebservice", operationName));
>>> call1.addParameter("message",
>>>             org.apache.axis.Constants.XSD_STRING,
>>>             javax.xml.rpc.ParameterMode.IN);
>>>
>>> call1.setReturnType(Constants.XSD_STRING);
>>> //---------------------------- Service 1 -------------------------------  
>>> //
>>> call1.setOperationName(new QName("TestWebservice", "testWS1"));
>>> Object[] paramArray1 = new Object[] {"message1 sent by 
>>> callOnewaySequence"};
>>> System.out.println(call1.invoke(paramArray1));
>>> // ---------------------------- Service 
>>> 2 -------------------------------  //
>>> Call call2;
>>> call2 = (Call) service1.createCall();
>>> ctx.initCall(call2, endpoint,
>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
>>> call2.addParameter("message",
>>>              org.apache.axis.Constants.XSD_STRING,
>>>              javax.xml.rpc.ParameterMode.IN);
>>> call2.setReturnType(Constants.XSD_STRING);
>>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>> call2.setOperationName(new QName("TestWebservice", "testWS2"));
>>> Object[] paramArray2 = new Object[] {"message2 sent by 
>>> callOnewaySequence"};
>>> System.out.println(call2.invoke(paramArray2));
>>> //---------------------------- Service 3 -------------------------------  
>>> //
>>> Call call3;
>>> call3 = (Call) service1.createCall();
>>> ctx.initCall(call3, endpoint,
>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
>>> call3.addParameter("message",
>>>              org.apache.axis.Constants.XSD_STRING,
>>>              javax.xml.rpc.ParameterMode.IN);
>>> call3.setReturnType(Constants.XSD_STRING);
>>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>> call3.setOperationName(new QName("TestWebservice", "testWS3"));
>>> ctx.setLastMessage(call3);
>>> Object[] paramArray3 = new Object[] {"message3 sent by 
>>> callOnewaySequence"};
>>> System.out.println(call3.invoke(paramArray3));
>>> ctx.endSequence();
>>> }
>>>
>>> public void testCallOnewaySequence() throws ServiceException, 
>>> MalformedURLException, RemoteException{
>>> int sync = 1;
>>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>>> SandeshaContext ctx = new SandeshaContext();
>>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>>> ctx = new SandeshaContext(sync);
>>> // --------------------------- Init -------------------------//
>>> String operationName = "testWSOneway1";
>>> Service service1 = new Service();
>>> Call call1;
>>> call1 = (Call) service1.createCall();
>>>
>>> ctx.initCall(call1, endpoint,
>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
>>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>
>>> call1.setOperationName(new QName("TestWebservice", operationName));
>>> call1.addParameter("message",
>>>             org.apache.axis.Constants.XSD_STRING,
>>>             javax.xml.rpc.ParameterMode.IN);
>>>
>>> //---------------------------- Service 1 -------------------------------  
>>> //
>>> call1.setOperationName(new QName("TestWebservice", "testOnewayWS1"));
>>> Object[] paramArray1 = new Object[] {"message1 sent by 
>>> callOnewaySequence"};
>>> System.out.println(call1.invoke(paramArray1));
>>> // ---------------------------- Service 
>>> 2 -------------------------------  //
>>> Call call2;
>>> call2 = (Call) service1.createCall();
>>> ctx.initCall(call2, endpoint,
>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
>>> call2.addParameter("message",
>>>              org.apache.axis.Constants.XSD_STRING,
>>>              javax.xml.rpc.ParameterMode.IN);
>>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>> call2.setOperationName(new QName("TestWebservice", "testOnewayWS2"));
>>> Object[] paramArray2 = new Object[] {"message2 sent by 
>>> callOnewaySequence"};
>>> System.out.println(call2.invoke(paramArray2));
>>> //---------------------------- Service 3 -------------------------------  
>>> //
>>> Call call3;
>>> call3 = (Call) service1.createCall();
>>> ctx.initCall(call3, endpoint,
>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
>>> call3.addParameter("message",
>>>              org.apache.axis.Constants.XSD_STRING,
>>>              javax.xml.rpc.ParameterMode.IN);
>>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>> call3.setOperationName(new QName("TestWebservice", "testOnewayWS3"));
>>> ctx.setLastMessage(call3);
>>> Object[] paramArray3 = new Object[] {"message3 sent by 
>>> callOnewaySequence"};
>>> System.out.println(call3.invoke(paramArray3));
>>> ctx.endSequence();
>>> }
>>>
>>> public void testCallOnewaySequenceMixed() throws ServiceException, 
>>> MalformedURLException, RemoteException{
>>> int sync = 1;
>>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>>> SandeshaContext ctx = new SandeshaContext();
>>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>>> ctx = new SandeshaContext(sync);
>>> // --------------------------- Init -------------------------//
>>> String operationName = "testWSOneway1";
>>> Service service1 = new Service();
>>> Call call1;
>>> call1 = (Call) service1.createCall();
>>>
>>> ctx.initCall(call1, endpoint,
>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
>>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>>
>>> call1.setOperationName(new QName("TestWebservice", operationName));
>>> call1.addParameter("message",
>>>             org.apache.axis.Constants.XSD_STRING,
>>>             javax.xml.rpc.ParameterMode.IN);
>>>
>>> //---------------------------- Service 1 -------------------------------  
>>> //
>>> call1.setOperationName(new QName("TestWebservice", "testOnewayWS1"));
>>> Object[] paramArray1 = new Object[] {"message1 sent by 
>>> callOnewaySequence"};
>>> System.out.println(call1.invoke(paramArray1));
>>> // ---------------------------- Service 
>>> 2 -------------------------------  //
>>> Call call2;
>>> call2 = (Call) service1.createCall();
>>> ctx.initCall(call2, endpoint,
>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
>>> call2.addParameter("message",
>>>              org.apache.axis.Constants.XSD_STRING,
>>>              javax.xml.rpc.ParameterMode.IN);
>>> call2.setReturnType(Constants.XSD_STRING);
>>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>> call2.setOperationName(new QName("TestWebservice", "testWS2"));
>>> Object[] paramArray2 = new Object[] {"message2 sent by 
>>> callOnewaySequence"};
>>> System.out.println(call2.invoke(paramArray2));
>>> //---------------------------- Service 3 -------------------------------  
>>> //
>>> Call call3;
>>> call3 = (Call) service1.createCall();
>>> ctx.initCall(call3, endpoint,
>>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
>>> call3.addParameter("message",
>>>              org.apache.axis.Constants.XSD_STRING,
>>>              javax.xml.rpc.ParameterMode.IN);
>>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>> call3.setOperationName(new QName("TestWebservice", "testOnewayWS3"));
>>> ctx.setLastMessage(call3);
>>> Object[] paramArray3 = new Object[] {"message3 sent by 
>>> callOnewaySequence"};
>>> System.out.println(call3.invoke(paramArray3));
>>> ctx.endSequence();
>>> }
>>>
>>> }
>>>
>>>
>>
>>
>> --------------------------------------------------------------------------------
>>
>>
>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
>>> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
>> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org


Re: Problem with mixed (oneway and twoway) calls

Posted by Benjamin Schmeling <Be...@gmx.de>.
Hi,

Sync = true ?, I did not set sync to true and ctx.isSync() = false all 
the time. I think when you need a new Sandesha context for mixed calls 
there can result a very high network traffic because of the message 
overhead of reliable messaging (CreateSequence, TerminateSequence etc.). 
Is there no possibility to change this?

Thanks,
Benjamin

> Hi Benjamin,
>
> In sandesha you cannot mix one-way and two-way messages in a single 
> context.
> There should be two contexes for oneway and two way sequences.
>
> This is because once we initialize a sequence with sync=true then it 
> will not handle two-way sequences.
>
> Thanks,
> Jaliya
>
>
> ----- Original Message ----- From: "Benjamin Schmeling" 
> <Be...@gmx.de>
> To: <sa...@ws.apache.org>
> Sent: Tuesday, January 17, 2006 9:41 AM
> Subject: Problem with mixed (oneway and twoway) calls
>
>
>> Hi,
>>
>> I have a problem when making three calls in one sequence, where the
>> second call is twoway and the others are oneway. The calls are all
>> successful but the calling of endSequence() results in an endless loop,
>> because the isSequenceComplete(String seqId) method of the
>> ClientStorageManager always returns false (because of
>> incomingTerminateReceived = false).
>>
>> In my attachment it concerns the last test.
>>
>> Thanks,
>>
>> Benjamin
>>
>
>
> -------------------------------------------------------------------------------- 
>
>
>
>> package de.tud.ao4bpel.services.reliability.test;
>>
>> import java.net.MalformedURLException;
>> import java.rmi.RemoteException;
>>
>> import javax.xml.namespace.QName;
>> import javax.xml.rpc.ParameterMode;
>> import javax.xml.rpc.ServiceException;
>>
>> import junit.framework.TestCase;
>>
>> import org.apache.axis.Constants;
>> import org.apache.axis.client.Call;
>> import org.apache.axis.client.Service;
>> import org.apache.sandesha.SandeshaContext;
>>
>> public class SandeshaTest extends TestCase{
>>
>>
>> public void testCallTwowaySequence() throws ServiceException, 
>> MalformedURLException, RemoteException{
>> int sync = 1;
>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>> SandeshaContext ctx = new SandeshaContext();
>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>> ctx = new SandeshaContext(sync);
>> // --------------------------- Init -------------------------//
>> String operationName = "testWSOneway1";
>> Service service1 = new Service();
>> Call call1;
>> call1 = (Call) service1.createCall();
>>
>> ctx.initCall(call1, endpoint,
>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT); 
>>
>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>
>> call1.setOperationName(new QName("TestWebservice", operationName));
>> call1.addParameter("message",
>>             org.apache.axis.Constants.XSD_STRING,
>>             javax.xml.rpc.ParameterMode.IN);
>>
>> call1.setReturnType(Constants.XSD_STRING);
>> //---------------------------- Service 1 
>> -------------------------------  //
>> call1.setOperationName(new QName("TestWebservice", "testWS1"));
>> Object[] paramArray1 = new Object[] {"message1 sent by 
>> callOnewaySequence"};
>> System.out.println(call1.invoke(paramArray1));
>> // ---------------------------- Service 2 
>> -------------------------------  //
>> Call call2;
>> call2 = (Call) service1.createCall();
>> ctx.initCall(call2, endpoint,
>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT); 
>>
>> call2.addParameter("message",
>>              org.apache.axis.Constants.XSD_STRING,
>>              javax.xml.rpc.ParameterMode.IN);
>> call2.setReturnType(Constants.XSD_STRING);
>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>> call2.setOperationName(new QName("TestWebservice", "testWS2"));
>> Object[] paramArray2 = new Object[] {"message2 sent by 
>> callOnewaySequence"};
>> System.out.println(call2.invoke(paramArray2));
>> //---------------------------- Service 3 
>> -------------------------------  //
>> Call call3;
>> call3 = (Call) service1.createCall();
>> ctx.initCall(call3, endpoint,
>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT); 
>>
>> call3.addParameter("message",
>>              org.apache.axis.Constants.XSD_STRING,
>>              javax.xml.rpc.ParameterMode.IN);
>> call3.setReturnType(Constants.XSD_STRING);
>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>> call3.setOperationName(new QName("TestWebservice", "testWS3"));
>> ctx.setLastMessage(call3);
>> Object[] paramArray3 = new Object[] {"message3 sent by 
>> callOnewaySequence"};
>> System.out.println(call3.invoke(paramArray3));
>> ctx.endSequence();
>> }
>>
>> public void testCallOnewaySequence() throws ServiceException, 
>> MalformedURLException, RemoteException{
>> int sync = 1;
>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>> SandeshaContext ctx = new SandeshaContext();
>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>> ctx = new SandeshaContext(sync);
>> // --------------------------- Init -------------------------//
>> String operationName = "testWSOneway1";
>> Service service1 = new Service();
>> Call call1;
>> call1 = (Call) service1.createCall();
>>
>> ctx.initCall(call1, endpoint,
>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY); 
>>
>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>
>> call1.setOperationName(new QName("TestWebservice", operationName));
>> call1.addParameter("message",
>>             org.apache.axis.Constants.XSD_STRING,
>>             javax.xml.rpc.ParameterMode.IN);
>>
>> //---------------------------- Service 1 
>> -------------------------------  //
>> call1.setOperationName(new QName("TestWebservice", "testOnewayWS1"));
>> Object[] paramArray1 = new Object[] {"message1 sent by 
>> callOnewaySequence"};
>> System.out.println(call1.invoke(paramArray1));
>> // ---------------------------- Service 2 
>> -------------------------------  //
>> Call call2;
>> call2 = (Call) service1.createCall();
>> ctx.initCall(call2, endpoint,
>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY); 
>>
>> call2.addParameter("message",
>>              org.apache.axis.Constants.XSD_STRING,
>>              javax.xml.rpc.ParameterMode.IN);
>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>> call2.setOperationName(new QName("TestWebservice", "testOnewayWS2"));
>> Object[] paramArray2 = new Object[] {"message2 sent by 
>> callOnewaySequence"};
>> System.out.println(call2.invoke(paramArray2));
>> //---------------------------- Service 3 
>> -------------------------------  //
>> Call call3;
>> call3 = (Call) service1.createCall();
>> ctx.initCall(call3, endpoint,
>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY); 
>>
>> call3.addParameter("message",
>>              org.apache.axis.Constants.XSD_STRING,
>>              javax.xml.rpc.ParameterMode.IN);
>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>> call3.setOperationName(new QName("TestWebservice", "testOnewayWS3"));
>> ctx.setLastMessage(call3);
>> Object[] paramArray3 = new Object[] {"message3 sent by 
>> callOnewaySequence"};
>> System.out.println(call3.invoke(paramArray3));
>> ctx.endSequence();
>> }
>>
>> public void testCallOnewaySequenceMixed() throws ServiceException, 
>> MalformedURLException, RemoteException{
>> int sync = 1;
>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>> SandeshaContext ctx = new SandeshaContext();
>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>> ctx = new SandeshaContext(sync);
>> // --------------------------- Init -------------------------//
>> String operationName = "testWSOneway1";
>> Service service1 = new Service();
>> Call call1;
>> call1 = (Call) service1.createCall();
>>
>> ctx.initCall(call1, endpoint,
>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY); 
>>
>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>
>> call1.setOperationName(new QName("TestWebservice", operationName));
>> call1.addParameter("message",
>>             org.apache.axis.Constants.XSD_STRING,
>>             javax.xml.rpc.ParameterMode.IN);
>>
>> //---------------------------- Service 1 
>> -------------------------------  //
>> call1.setOperationName(new QName("TestWebservice", "testOnewayWS1"));
>> Object[] paramArray1 = new Object[] {"message1 sent by 
>> callOnewaySequence"};
>> System.out.println(call1.invoke(paramArray1));
>> // ---------------------------- Service 2 
>> -------------------------------  //
>> Call call2;
>> call2 = (Call) service1.createCall();
>> ctx.initCall(call2, endpoint,
>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT); 
>>
>> call2.addParameter("message",
>>              org.apache.axis.Constants.XSD_STRING,
>>              javax.xml.rpc.ParameterMode.IN);
>> call2.setReturnType(Constants.XSD_STRING);
>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>> call2.setOperationName(new QName("TestWebservice", "testWS2"));
>> Object[] paramArray2 = new Object[] {"message2 sent by 
>> callOnewaySequence"};
>> System.out.println(call2.invoke(paramArray2));
>> //---------------------------- Service 3 
>> -------------------------------  //
>> Call call3;
>> call3 = (Call) service1.createCall();
>> ctx.initCall(call3, endpoint,
>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY); 
>>
>> call3.addParameter("message",
>>              org.apache.axis.Constants.XSD_STRING,
>>              javax.xml.rpc.ParameterMode.IN);
>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>> call3.setOperationName(new QName("TestWebservice", "testOnewayWS3"));
>> ctx.setLastMessage(call3);
>> Object[] paramArray3 = new Object[] {"message3 sent by 
>> callOnewaySequence"};
>> System.out.println(call3.invoke(paramArray3));
>> ctx.endSequence();
>> }
>>
>> }
>>
>>
>
>
> -------------------------------------------------------------------------------- 
>
>
>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
>> For additional commands, e-mail: sandesha-dev-help@ws.apache.org 
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org


Re: Problem with mixed (oneway and twoway) calls

Posted by Benjamin Schmeling <Be...@gmx.de>.
Hi,

Sync = true ?, I did not set sync to true and ctx.isSync() = false all 
the time. I think when you need a new Sandesha context for mixed calls 
there can result a very high network traffic because of the message 
overhead of reliable messaging (CreateSequence, TerminateSequence etc.). 
Is there no possibility to change this?

Thanks,
Benjamin

> Hi Benjamin,
>
> In sandesha you cannot mix one-way and two-way messages in a single 
> context.
> There should be two contexes for oneway and two way sequences.
>
> This is because once we initialize a sequence with sync=true then it 
> will not handle two-way sequences.
>
> Thanks,
> Jaliya
>
>
> ----- Original Message ----- From: "Benjamin Schmeling" 
> <Be...@gmx.de>
> To: <sa...@ws.apache.org>
> Sent: Tuesday, January 17, 2006 9:41 AM
> Subject: Problem with mixed (oneway and twoway) calls
>
>
>> Hi,
>>
>> I have a problem when making three calls in one sequence, where the
>> second call is twoway and the others are oneway. The calls are all
>> successful but the calling of endSequence() results in an endless loop,
>> because the isSequenceComplete(String seqId) method of the
>> ClientStorageManager always returns false (because of
>> incomingTerminateReceived = false).
>>
>> In my attachment it concerns the last test.
>>
>> Thanks,
>>
>> Benjamin
>>
>
>
> -------------------------------------------------------------------------------- 
>
>
>
>> package de.tud.ao4bpel.services.reliability.test;
>>
>> import java.net.MalformedURLException;
>> import java.rmi.RemoteException;
>>
>> import javax.xml.namespace.QName;
>> import javax.xml.rpc.ParameterMode;
>> import javax.xml.rpc.ServiceException;
>>
>> import junit.framework.TestCase;
>>
>> import org.apache.axis.Constants;
>> import org.apache.axis.client.Call;
>> import org.apache.axis.client.Service;
>> import org.apache.sandesha.SandeshaContext;
>>
>> public class SandeshaTest extends TestCase{
>>
>>
>> public void testCallTwowaySequence() throws ServiceException, 
>> MalformedURLException, RemoteException{
>> int sync = 1;
>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>> SandeshaContext ctx = new SandeshaContext();
>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>> ctx = new SandeshaContext(sync);
>> // --------------------------- Init -------------------------//
>> String operationName = "testWSOneway1";
>> Service service1 = new Service();
>> Call call1;
>> call1 = (Call) service1.createCall();
>>
>> ctx.initCall(call1, endpoint,
>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT); 
>>
>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>
>> call1.setOperationName(new QName("TestWebservice", operationName));
>> call1.addParameter("message",
>>             org.apache.axis.Constants.XSD_STRING,
>>             javax.xml.rpc.ParameterMode.IN);
>>
>> call1.setReturnType(Constants.XSD_STRING);
>> //---------------------------- Service 1 
>> -------------------------------  //
>> call1.setOperationName(new QName("TestWebservice", "testWS1"));
>> Object[] paramArray1 = new Object[] {"message1 sent by 
>> callOnewaySequence"};
>> System.out.println(call1.invoke(paramArray1));
>> // ---------------------------- Service 2 
>> -------------------------------  //
>> Call call2;
>> call2 = (Call) service1.createCall();
>> ctx.initCall(call2, endpoint,
>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT); 
>>
>> call2.addParameter("message",
>>              org.apache.axis.Constants.XSD_STRING,
>>              javax.xml.rpc.ParameterMode.IN);
>> call2.setReturnType(Constants.XSD_STRING);
>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>> call2.setOperationName(new QName("TestWebservice", "testWS2"));
>> Object[] paramArray2 = new Object[] {"message2 sent by 
>> callOnewaySequence"};
>> System.out.println(call2.invoke(paramArray2));
>> //---------------------------- Service 3 
>> -------------------------------  //
>> Call call3;
>> call3 = (Call) service1.createCall();
>> ctx.initCall(call3, endpoint,
>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT); 
>>
>> call3.addParameter("message",
>>              org.apache.axis.Constants.XSD_STRING,
>>              javax.xml.rpc.ParameterMode.IN);
>> call3.setReturnType(Constants.XSD_STRING);
>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>> call3.setOperationName(new QName("TestWebservice", "testWS3"));
>> ctx.setLastMessage(call3);
>> Object[] paramArray3 = new Object[] {"message3 sent by 
>> callOnewaySequence"};
>> System.out.println(call3.invoke(paramArray3));
>> ctx.endSequence();
>> }
>>
>> public void testCallOnewaySequence() throws ServiceException, 
>> MalformedURLException, RemoteException{
>> int sync = 1;
>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>> SandeshaContext ctx = new SandeshaContext();
>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>> ctx = new SandeshaContext(sync);
>> // --------------------------- Init -------------------------//
>> String operationName = "testWSOneway1";
>> Service service1 = new Service();
>> Call call1;
>> call1 = (Call) service1.createCall();
>>
>> ctx.initCall(call1, endpoint,
>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY); 
>>
>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>
>> call1.setOperationName(new QName("TestWebservice", operationName));
>> call1.addParameter("message",
>>             org.apache.axis.Constants.XSD_STRING,
>>             javax.xml.rpc.ParameterMode.IN);
>>
>> //---------------------------- Service 1 
>> -------------------------------  //
>> call1.setOperationName(new QName("TestWebservice", "testOnewayWS1"));
>> Object[] paramArray1 = new Object[] {"message1 sent by 
>> callOnewaySequence"};
>> System.out.println(call1.invoke(paramArray1));
>> // ---------------------------- Service 2 
>> -------------------------------  //
>> Call call2;
>> call2 = (Call) service1.createCall();
>> ctx.initCall(call2, endpoint,
>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY); 
>>
>> call2.addParameter("message",
>>              org.apache.axis.Constants.XSD_STRING,
>>              javax.xml.rpc.ParameterMode.IN);
>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>> call2.setOperationName(new QName("TestWebservice", "testOnewayWS2"));
>> Object[] paramArray2 = new Object[] {"message2 sent by 
>> callOnewaySequence"};
>> System.out.println(call2.invoke(paramArray2));
>> //---------------------------- Service 3 
>> -------------------------------  //
>> Call call3;
>> call3 = (Call) service1.createCall();
>> ctx.initCall(call3, endpoint,
>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY); 
>>
>> call3.addParameter("message",
>>              org.apache.axis.Constants.XSD_STRING,
>>              javax.xml.rpc.ParameterMode.IN);
>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>> call3.setOperationName(new QName("TestWebservice", "testOnewayWS3"));
>> ctx.setLastMessage(call3);
>> Object[] paramArray3 = new Object[] {"message3 sent by 
>> callOnewaySequence"};
>> System.out.println(call3.invoke(paramArray3));
>> ctx.endSequence();
>> }
>>
>> public void testCallOnewaySequenceMixed() throws ServiceException, 
>> MalformedURLException, RemoteException{
>> int sync = 1;
>> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
>> SandeshaContext ctx = new SandeshaContext();
>> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
>> ctx = new SandeshaContext(sync);
>> // --------------------------- Init -------------------------//
>> String operationName = "testWSOneway1";
>> Service service1 = new Service();
>> Call call1;
>> call1 = (Call) service1.createCall();
>>
>> ctx.initCall(call1, endpoint,
>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY); 
>>
>> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>>
>> call1.setOperationName(new QName("TestWebservice", operationName));
>> call1.addParameter("message",
>>             org.apache.axis.Constants.XSD_STRING,
>>             javax.xml.rpc.ParameterMode.IN);
>>
>> //---------------------------- Service 1 
>> -------------------------------  //
>> call1.setOperationName(new QName("TestWebservice", "testOnewayWS1"));
>> Object[] paramArray1 = new Object[] {"message1 sent by 
>> callOnewaySequence"};
>> System.out.println(call1.invoke(paramArray1));
>> // ---------------------------- Service 2 
>> -------------------------------  //
>> Call call2;
>> call2 = (Call) service1.createCall();
>> ctx.initCall(call2, endpoint,
>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT); 
>>
>> call2.addParameter("message",
>>              org.apache.axis.Constants.XSD_STRING,
>>              javax.xml.rpc.ParameterMode.IN);
>> call2.setReturnType(Constants.XSD_STRING);
>> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
>> call2.setOperationName(new QName("TestWebservice", "testWS2"));
>> Object[] paramArray2 = new Object[] {"message2 sent by 
>> callOnewaySequence"};
>> System.out.println(call2.invoke(paramArray2));
>> //---------------------------- Service 3 
>> -------------------------------  //
>> Call call3;
>> call3 = (Call) service1.createCall();
>> ctx.initCall(call3, endpoint,
>> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY); 
>>
>> call3.addParameter("message",
>>              org.apache.axis.Constants.XSD_STRING,
>>              javax.xml.rpc.ParameterMode.IN);
>> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
>> call3.setOperationName(new QName("TestWebservice", "testOnewayWS3"));
>> ctx.setLastMessage(call3);
>> Object[] paramArray3 = new Object[] {"message3 sent by 
>> callOnewaySequence"};
>> System.out.println(call3.invoke(paramArray3));
>> ctx.endSequence();
>> }
>>
>> }
>>
>>
>
>
> -------------------------------------------------------------------------------- 
>
>
>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
>> For additional commands, e-mail: sandesha-dev-help@ws.apache.org 
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org


Re: Problem with mixed (oneway and twoway) calls

Posted by Jaliya Ekanayake <jn...@gmail.com>.
Hi Benjamin,

In sandesha you cannot mix one-way and two-way messages in a single context.
There should be two contexes for oneway and two way sequences.

This is because once we initialize a sequence with sync=true then it will 
not handle two-way sequences.

Thanks,
Jaliya


----- Original Message ----- 
From: "Benjamin Schmeling" <Be...@gmx.de>
To: <sa...@ws.apache.org>
Sent: Tuesday, January 17, 2006 9:41 AM
Subject: Problem with mixed (oneway and twoway) calls


> Hi,
>
> I have a problem when making three calls in one sequence, where the
> second call is twoway and the others are oneway. The calls are all
> successful but the calling of endSequence() results in an endless loop,
> because the isSequenceComplete(String seqId) method of the
> ClientStorageManager always returns false (because of
> incomingTerminateReceived = false).
>
> In my attachment it concerns the last test.
>
> Thanks,
>
> Benjamin
>


--------------------------------------------------------------------------------


> package de.tud.ao4bpel.services.reliability.test;
>
> import java.net.MalformedURLException;
> import java.rmi.RemoteException;
>
> import javax.xml.namespace.QName;
> import javax.xml.rpc.ParameterMode;
> import javax.xml.rpc.ServiceException;
>
> import junit.framework.TestCase;
>
> import org.apache.axis.Constants;
> import org.apache.axis.client.Call;
> import org.apache.axis.client.Service;
> import org.apache.sandesha.SandeshaContext;
>
> public class SandeshaTest extends TestCase{
>
>
> public void testCallTwowaySequence() throws ServiceException, 
> MalformedURLException, RemoteException{
> int sync = 1;
> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
> SandeshaContext ctx = new SandeshaContext();
> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
> ctx = new SandeshaContext(sync);
> // --------------------------- Init -------------------------//
> String operationName = "testWSOneway1";
> Service service1 = new Service();
> Call call1;
> call1 = (Call) service1.createCall();
>
> ctx.initCall(call1, endpoint,
> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>
> call1.setOperationName(new QName("TestWebservice", operationName));
> call1.addParameter("message",
>             org.apache.axis.Constants.XSD_STRING,
>             javax.xml.rpc.ParameterMode.IN);
>
> call1.setReturnType(Constants.XSD_STRING);
> //---------------------------- Service 1 -------------------------------  
> //
> call1.setOperationName(new QName("TestWebservice", "testWS1"));
> Object[] paramArray1 = new Object[] {"message1 sent by 
> callOnewaySequence"};
> System.out.println(call1.invoke(paramArray1));
> // ---------------------------- Service 2 -------------------------------  
> //
> Call call2;
> call2 = (Call) service1.createCall();
> ctx.initCall(call2, endpoint,
> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
> call2.addParameter("message",
>              org.apache.axis.Constants.XSD_STRING,
>              javax.xml.rpc.ParameterMode.IN);
> call2.setReturnType(Constants.XSD_STRING);
> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
> call2.setOperationName(new QName("TestWebservice", "testWS2"));
> Object[] paramArray2 = new Object[] {"message2 sent by 
> callOnewaySequence"};
> System.out.println(call2.invoke(paramArray2));
> //---------------------------- Service 3 -------------------------------  
> //
> Call call3;
> call3 = (Call) service1.createCall();
> ctx.initCall(call3, endpoint,
> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
> call3.addParameter("message",
>              org.apache.axis.Constants.XSD_STRING,
>              javax.xml.rpc.ParameterMode.IN);
> call3.setReturnType(Constants.XSD_STRING);
> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
> call3.setOperationName(new QName("TestWebservice", "testWS3"));
> ctx.setLastMessage(call3);
> Object[] paramArray3 = new Object[] {"message3 sent by 
> callOnewaySequence"};
> System.out.println(call3.invoke(paramArray3));
> ctx.endSequence();
> }
>
> public void testCallOnewaySequence() throws ServiceException, 
> MalformedURLException, RemoteException{
> int sync = 1;
> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
> SandeshaContext ctx = new SandeshaContext();
> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
> ctx = new SandeshaContext(sync);
> // --------------------------- Init -------------------------//
> String operationName = "testWSOneway1";
> Service service1 = new Service();
> Call call1;
> call1 = (Call) service1.createCall();
>
> ctx.initCall(call1, endpoint,
> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>
> call1.setOperationName(new QName("TestWebservice", operationName));
> call1.addParameter("message",
>             org.apache.axis.Constants.XSD_STRING,
>             javax.xml.rpc.ParameterMode.IN);
>
> //---------------------------- Service 1 -------------------------------  
> //
> call1.setOperationName(new QName("TestWebservice", "testOnewayWS1"));
> Object[] paramArray1 = new Object[] {"message1 sent by 
> callOnewaySequence"};
> System.out.println(call1.invoke(paramArray1));
> // ---------------------------- Service 2 -------------------------------  
> //
> Call call2;
> call2 = (Call) service1.createCall();
> ctx.initCall(call2, endpoint,
> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
> call2.addParameter("message",
>              org.apache.axis.Constants.XSD_STRING,
>              javax.xml.rpc.ParameterMode.IN);
> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
> call2.setOperationName(new QName("TestWebservice", "testOnewayWS2"));
> Object[] paramArray2 = new Object[] {"message2 sent by 
> callOnewaySequence"};
> System.out.println(call2.invoke(paramArray2));
> //---------------------------- Service 3 -------------------------------  
> //
> Call call3;
> call3 = (Call) service1.createCall();
> ctx.initCall(call3, endpoint,
> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
> call3.addParameter("message",
>              org.apache.axis.Constants.XSD_STRING,
>              javax.xml.rpc.ParameterMode.IN);
> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
> call3.setOperationName(new QName("TestWebservice", "testOnewayWS3"));
> ctx.setLastMessage(call3);
> Object[] paramArray3 = new Object[] {"message3 sent by 
> callOnewaySequence"};
> System.out.println(call3.invoke(paramArray3));
> ctx.endSequence();
> }
>
> public void testCallOnewaySequenceMixed() throws ServiceException, 
> MalformedURLException, RemoteException{
> int sync = 1;
> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
> SandeshaContext ctx = new SandeshaContext();
> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
> ctx = new SandeshaContext(sync);
> // --------------------------- Init -------------------------//
> String operationName = "testWSOneway1";
> Service service1 = new Service();
> Call call1;
> call1 = (Call) service1.createCall();
>
> ctx.initCall(call1, endpoint,
> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>
> call1.setOperationName(new QName("TestWebservice", operationName));
> call1.addParameter("message",
>             org.apache.axis.Constants.XSD_STRING,
>             javax.xml.rpc.ParameterMode.IN);
>
> //---------------------------- Service 1 -------------------------------  
> //
> call1.setOperationName(new QName("TestWebservice", "testOnewayWS1"));
> Object[] paramArray1 = new Object[] {"message1 sent by 
> callOnewaySequence"};
> System.out.println(call1.invoke(paramArray1));
> // ---------------------------- Service 2 -------------------------------  
> //
> Call call2;
> call2 = (Call) service1.createCall();
> ctx.initCall(call2, endpoint,
> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
> call2.addParameter("message",
>              org.apache.axis.Constants.XSD_STRING,
>              javax.xml.rpc.ParameterMode.IN);
> call2.setReturnType(Constants.XSD_STRING);
> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
> call2.setOperationName(new QName("TestWebservice", "testWS2"));
> Object[] paramArray2 = new Object[] {"message2 sent by 
> callOnewaySequence"};
> System.out.println(call2.invoke(paramArray2));
> //---------------------------- Service 3 -------------------------------  
> //
> Call call3;
> call3 = (Call) service1.createCall();
> ctx.initCall(call3, endpoint,
> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
> call3.addParameter("message",
>              org.apache.axis.Constants.XSD_STRING,
>              javax.xml.rpc.ParameterMode.IN);
> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
> call3.setOperationName(new QName("TestWebservice", "testOnewayWS3"));
> ctx.setLastMessage(call3);
> Object[] paramArray3 = new Object[] {"message3 sent by 
> callOnewaySequence"};
> System.out.println(call3.invoke(paramArray3));
> ctx.endSequence();
> }
>
> }
>
>


--------------------------------------------------------------------------------


> ---------------------------------------------------------------------
> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: sandesha-dev-help@ws.apache.org 


---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org


Re: Problem with mixed (oneway and twoway) calls

Posted by Jaliya Ekanayake <jn...@gmail.com>.
Hi Benjamin,

In sandesha you cannot mix one-way and two-way messages in a single context.
There should be two contexes for oneway and two way sequences.

This is because once we initialize a sequence with sync=true then it will 
not handle two-way sequences.

Thanks,
Jaliya


----- Original Message ----- 
From: "Benjamin Schmeling" <Be...@gmx.de>
To: <sa...@ws.apache.org>
Sent: Tuesday, January 17, 2006 9:41 AM
Subject: Problem with mixed (oneway and twoway) calls


> Hi,
>
> I have a problem when making three calls in one sequence, where the
> second call is twoway and the others are oneway. The calls are all
> successful but the calling of endSequence() results in an endless loop,
> because the isSequenceComplete(String seqId) method of the
> ClientStorageManager always returns false (because of
> incomingTerminateReceived = false).
>
> In my attachment it concerns the last test.
>
> Thanks,
>
> Benjamin
>


--------------------------------------------------------------------------------


> package de.tud.ao4bpel.services.reliability.test;
>
> import java.net.MalformedURLException;
> import java.rmi.RemoteException;
>
> import javax.xml.namespace.QName;
> import javax.xml.rpc.ParameterMode;
> import javax.xml.rpc.ServiceException;
>
> import junit.framework.TestCase;
>
> import org.apache.axis.Constants;
> import org.apache.axis.client.Call;
> import org.apache.axis.client.Service;
> import org.apache.sandesha.SandeshaContext;
>
> public class SandeshaTest extends TestCase{
>
>
> public void testCallTwowaySequence() throws ServiceException, 
> MalformedURLException, RemoteException{
> int sync = 1;
> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
> SandeshaContext ctx = new SandeshaContext();
> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
> ctx = new SandeshaContext(sync);
> // --------------------------- Init -------------------------//
> String operationName = "testWSOneway1";
> Service service1 = new Service();
> Call call1;
> call1 = (Call) service1.createCall();
>
> ctx.initCall(call1, endpoint,
> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>
> call1.setOperationName(new QName("TestWebservice", operationName));
> call1.addParameter("message",
>             org.apache.axis.Constants.XSD_STRING,
>             javax.xml.rpc.ParameterMode.IN);
>
> call1.setReturnType(Constants.XSD_STRING);
> //---------------------------- Service 1 -------------------------------  
> //
> call1.setOperationName(new QName("TestWebservice", "testWS1"));
> Object[] paramArray1 = new Object[] {"message1 sent by 
> callOnewaySequence"};
> System.out.println(call1.invoke(paramArray1));
> // ---------------------------- Service 2 -------------------------------  
> //
> Call call2;
> call2 = (Call) service1.createCall();
> ctx.initCall(call2, endpoint,
> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
> call2.addParameter("message",
>              org.apache.axis.Constants.XSD_STRING,
>              javax.xml.rpc.ParameterMode.IN);
> call2.setReturnType(Constants.XSD_STRING);
> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
> call2.setOperationName(new QName("TestWebservice", "testWS2"));
> Object[] paramArray2 = new Object[] {"message2 sent by 
> callOnewaySequence"};
> System.out.println(call2.invoke(paramArray2));
> //---------------------------- Service 3 -------------------------------  
> //
> Call call3;
> call3 = (Call) service1.createCall();
> ctx.initCall(call3, endpoint,
> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
> call3.addParameter("message",
>              org.apache.axis.Constants.XSD_STRING,
>              javax.xml.rpc.ParameterMode.IN);
> call3.setReturnType(Constants.XSD_STRING);
> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
> call3.setOperationName(new QName("TestWebservice", "testWS3"));
> ctx.setLastMessage(call3);
> Object[] paramArray3 = new Object[] {"message3 sent by 
> callOnewaySequence"};
> System.out.println(call3.invoke(paramArray3));
> ctx.endSequence();
> }
>
> public void testCallOnewaySequence() throws ServiceException, 
> MalformedURLException, RemoteException{
> int sync = 1;
> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
> SandeshaContext ctx = new SandeshaContext();
> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
> ctx = new SandeshaContext(sync);
> // --------------------------- Init -------------------------//
> String operationName = "testWSOneway1";
> Service service1 = new Service();
> Call call1;
> call1 = (Call) service1.createCall();
>
> ctx.initCall(call1, endpoint,
> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>
> call1.setOperationName(new QName("TestWebservice", operationName));
> call1.addParameter("message",
>             org.apache.axis.Constants.XSD_STRING,
>             javax.xml.rpc.ParameterMode.IN);
>
> //---------------------------- Service 1 -------------------------------  
> //
> call1.setOperationName(new QName("TestWebservice", "testOnewayWS1"));
> Object[] paramArray1 = new Object[] {"message1 sent by 
> callOnewaySequence"};
> System.out.println(call1.invoke(paramArray1));
> // ---------------------------- Service 2 -------------------------------  
> //
> Call call2;
> call2 = (Call) service1.createCall();
> ctx.initCall(call2, endpoint,
> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
> call2.addParameter("message",
>              org.apache.axis.Constants.XSD_STRING,
>              javax.xml.rpc.ParameterMode.IN);
> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
> call2.setOperationName(new QName("TestWebservice", "testOnewayWS2"));
> Object[] paramArray2 = new Object[] {"message2 sent by 
> callOnewaySequence"};
> System.out.println(call2.invoke(paramArray2));
> //---------------------------- Service 3 -------------------------------  
> //
> Call call3;
> call3 = (Call) service1.createCall();
> ctx.initCall(call3, endpoint,
> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
> call3.addParameter("message",
>              org.apache.axis.Constants.XSD_STRING,
>              javax.xml.rpc.ParameterMode.IN);
> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
> call3.setOperationName(new QName("TestWebservice", "testOnewayWS3"));
> ctx.setLastMessage(call3);
> Object[] paramArray3 = new Object[] {"message3 sent by 
> callOnewaySequence"};
> System.out.println(call3.invoke(paramArray3));
> ctx.endSequence();
> }
>
> public void testCallOnewaySequenceMixed() throws ServiceException, 
> MalformedURLException, RemoteException{
> int sync = 1;
> String endpoint = "http://majestix:8080/axis/services/TestWebservice";
> SandeshaContext ctx = new SandeshaContext();
> if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
> ctx = new SandeshaContext(sync);
> // --------------------------- Init -------------------------//
> String operationName = "testWSOneway1";
> Service service1 = new Service();
> Call call1;
> call1 = (Call) service1.createCall();
>
> ctx.initCall(call1, endpoint,
> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
> call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
>
> call1.setOperationName(new QName("TestWebservice", operationName));
> call1.addParameter("message",
>             org.apache.axis.Constants.XSD_STRING,
>             javax.xml.rpc.ParameterMode.IN);
>
> //---------------------------- Service 1 -------------------------------  
> //
> call1.setOperationName(new QName("TestWebservice", "testOnewayWS1"));
> Object[] paramArray1 = new Object[] {"message1 sent by 
> callOnewaySequence"};
> System.out.println(call1.invoke(paramArray1));
> // ---------------------------- Service 2 -------------------------------  
> //
> Call call2;
> call2 = (Call) service1.createCall();
> ctx.initCall(call2, endpoint,
> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_OUT);
> call2.addParameter("message",
>              org.apache.axis.Constants.XSD_STRING,
>              javax.xml.rpc.ParameterMode.IN);
> call2.setReturnType(Constants.XSD_STRING);
> call2.setTargetEndpointAddress( new java.net.URL(endpoint) );
> call2.setOperationName(new QName("TestWebservice", "testWS2"));
> Object[] paramArray2 = new Object[] {"message2 sent by 
> callOnewaySequence"};
> System.out.println(call2.invoke(paramArray2));
> //---------------------------- Service 3 -------------------------------  
> //
> Call call3;
> call3 = (Call) service1.createCall();
> ctx.initCall(call3, endpoint,
> "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
> call3.addParameter("message",
>              org.apache.axis.Constants.XSD_STRING,
>              javax.xml.rpc.ParameterMode.IN);
> call3.setTargetEndpointAddress( new java.net.URL(endpoint) );
> call3.setOperationName(new QName("TestWebservice", "testOnewayWS3"));
> ctx.setLastMessage(call3);
> Object[] paramArray3 = new Object[] {"message3 sent by 
> callOnewaySequence"};
> System.out.println(call3.invoke(paramArray3));
> ctx.endSequence();
> }
>
> }
>
>


--------------------------------------------------------------------------------


> ---------------------------------------------------------------------
> To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: sandesha-dev-help@ws.apache.org 


---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org