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]