chamikara 2005/01/10 15:00:37
Modified: sandesha/src/org/apache/sandesha/server Sender.java
Log:
procesing of th eterminate sequence message
Revision Changes Path
1.17 +54 -1 ws-fx/sandesha/src/org/apache/sandesha/server/Sender.java
Index: Sender.java
===================================================================
RCS file:
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/server/Sender.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- Sender.java 24 Dec 2004 04:17:42 -0000 1.16
+++ Sender.java 10 Jan 2005 23:00:37 -0000 1.17
@@ -83,7 +83,14 @@
break;
}
case Constants.MSG_TYPE_TERMINATE_SEQUENCE: {
- //TODO TODO
+ System.out.println("INFO: SENDING TERMINATE SEQUENCE
REQUEST ....");
+ if ((rmMessageContext.getReTransmissionCount() <=
Constants.MAXIMUM_RETRANSMISSION_COUNT)
+ && ((System.currentTimeMillis() -
rmMessageContext
+ .getLastPrecessedTime()) >
Constants.RETRANSMISSION_INTERVAL)) {
+ sendTerminateSequenceRequest(rmMessageContext);
+ } else {
+ //TODO REPORT ERROR
+ }
break;
}
case Constants.MSG_TYPE_ACKNOWLEDGEMENT: {
@@ -138,6 +145,48 @@
}
}
+ /**
+ * @param rmMessageContext
+ */
+ private void sendTerminateSequenceRequest(RMMessageContext
rmMessageContext) {
+
+ if (rmMessageContext.getMsgContext().getRequestMessage() == null) {
+ //The code should not come to this point.
+ System.err.println("ERROR: NULL REQUEST MESSAGE");
+ } else {
+ Call call;
+ try {
+
rmMessageContext.setLastPrecessedTime(System.currentTimeMillis());
+ rmMessageContext
+
.setReTransmissionCount(rmMessageContext.getReTransmissionCount() + 1);
+ call = prepareCall(rmMessageContext);
+ call.invoke();
+ if (call.getResponseMessage() != null) {
+ RMHeaders rmHeaders = new RMHeaders();
+
rmHeaders.fromSOAPEnvelope(call.getResponseMessage().getSOAPEnvelope());
+ rmMessageContext.setRMHeaders(rmHeaders);
+ AddressingHeaders addrHeaders = new
AddressingHeaders(call.getResponseMessage()
+ .getSOAPEnvelope());
+ rmMessageContext.setAddressingHeaders(addrHeaders);
+
rmMessageContext.getMsgContext().setResponseMessage(call.getResponseMessage());
+ IRMMessageProcessor messagePrcessor =
RMMessageProcessorIdentifier
+ .getMessageProcessor(rmMessageContext,
storageManager);
+ messagePrcessor.processMessage(rmMessageContext);
+ }
+ } catch (AxisFault e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (SOAPException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ }
+
private void sendServiceResponse(RMMessageContext rmMessageContext) {
SOAPEnvelope responseEnvelope = null;
//This sho
@@ -322,7 +371,11 @@
}
}
+
+
}
+
+
}