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 "Amila Chinthaka Suriarachchi (JIRA)" <ji...@apache.org> on 2010/02/28 08:31:05 UTC
[jira] Resolved: (SANDESHA2-200) Sandesha2 retransmit only 4
messages with the correct time interval
[ https://issues.apache.org/jira/browse/SANDESHA2-200?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Amila Chinthaka Suriarachchi resolved SANDESHA2-200.
----------------------------------------------------
Resolution: Not A Problem
NUMBER_OF_EAGER_RESENDS_ALLOWED = 3; //the number of msg resends until we slow down our pace
LAZY_RESEND_SCALE_FACTOR = 10; //lazy resends are 10 times slower than eager resends
Sandesha has the above two constants which increase the retransmission time after 3 messages by the factor 10
> Sandesha2 retransmit only 4 messages with the correct time interval
> -------------------------------------------------------------------
>
> Key: SANDESHA2-200
> URL: https://issues.apache.org/jira/browse/SANDESHA2-200
> Project: Sandesha2
> Issue Type: Bug
> Reporter: Amila Chinthaka Suriarachchi
> Priority: Critical
>
> I try to send the messages with the following client keeping a retransmit interval of 10s.
> private void inOutAsyncClient1(){
> try {
> ConfigurationContext configurationContext =
> ConfigurationContextFactory.createConfigurationContextFromFileSystem(
> AXIS2_REPOSITORY_LOCATION, AXIS2_CLIENT_CONFIG_FILE);
> ServiceClient serviceClient = new ServiceClient(configurationContext, null);
> serviceClient.setTargetEPR(new EndpointReference("http://localhost:8088/axis2/services/TestInOutService"));
> serviceClient.getOptions().setAction("urn:TestInOutOperation");
> serviceClient.getOptions().setSoapVersionURI(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);
> serviceClient.engageModule("sandesha2");
> serviceClient.getOptions().setTimeOutInMilliSeconds(1000000);
> // setting time outs as a policy
> OMElement policyOMElement = getPolicyElement();
> RMAssertionBuilder builder = new RMAssertionBuilder();
> SandeshaPolicyBean sandeshaPolicyBean = (SandeshaPolicyBean) builder.build(policyOMElement, null);
> Parameter policyParam = new Parameter(Sandesha2Constants.SANDESHA_PROPERTY_BEAN, sandeshaPolicyBean);
> serviceClient.getAxisService().addParameter(policyParam);
> serviceClient.getOptions().setProperty(SandeshaClientConstants.LAST_MESSAGE, Constants.VALUE_TRUE);
> OMElement omElement = serviceClient.sendReceive(getTestOMElement("testElement"));
> System.out.println("OM Element ==> " + omElement.toString());
> try {
> System.out.println("Waiting thread to sleep");
> Thread.sleep(2000000);
> } catch (InterruptedException e) {
> }
> } catch (AxisFault axisFault) {
> axisFault.printStackTrace();
> }
> }
> private OMElement getPolicyElement() {
> String policyString = "<sandesha2:RMAssertion xmlns:sandesha2=\"http://ws.apache.org/sandesha2/policy\">" +
> " <wsp:Policy xmlns:wsp=\"http://schemas.xmlsoap.org/ws/2004/09/policy\" xmlns:wsu=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd\" xmlns:wsrm=\"http://ws.apache.org/sandesha2/policy\" wsu:Id=\"RMPolicy\">\n" +
> " <wsrm:AcknowledgementInterval>3000</wsrm:AcknowledgementInterval>\n" +
> " <wsrm:RetransmissionInterval>10000</wsrm:RetransmissionInterval>\n" +
> " <wsrm:MaximumRetransmissionCount>10</wsrm:MaximumRetransmissionCount>\n" +
> " <wsrm:ExponentialBackoff>false</wsrm:ExponentialBackoff>\n" +
> " <wsrm:InactivityTimeout>6000</wsrm:InactivityTimeout>\n" +
> " <wsrm:InactivityTimeoutMeasure>seconds</wsrm:InactivityTimeoutMeasure>\n" +
> " <wsrm:InvokeInOrder>true</wsrm:InvokeInOrder>\n" +
> " <wsrm:MessageTypesToDrop>none</wsrm:MessageTypesToDrop>\n" +
> "</wsp:Policy>\n" +
> "</sandesha2:RMAssertion>";
> try {
> XMLStreamReader xmlStreamReader = StAXUtils.createXMLStreamReader(new ByteArrayInputStream(policyString.getBytes()));
> StAXOMBuilder stAXOMBuilder = new StAXOMBuilder(xmlStreamReader);
> return stAXOMBuilder.getDocumentElement();
> } catch (XMLStreamException e) {
> e.printStackTrace();
> }
> return null;
> }
> Then I ran the client without starting the server expecting sandesha2 to retransmit the message at 10s intervals.
> However these are the intervals it retransmit the message.
> 18:09:59
> 18:10:09
> 18:10:19
> 18:10:29
> 18:12:09
> 18:13:50
> 18:15:30
> 18:17:10
> 18:18:50
> 18:20:30
> Upto 4 messages it retransmit correctly with 10s time gap. After that it takes 1:40 to retransmit. From where this 1:40 comes from
> have I missed any other parameter to set?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org