[ 
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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to