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