svn commit: r831290 [2/2] - in /webservices/sandesha/trunk/c: ./ include/ samples/rm_echo_1_0/ samples/rm_echo_1_1/ samples/rm_echo_single_1_0/ samples/rm_echo_single_1_1/ samples/rm_mtom_1_0/ samples/rm_ping_1_0/ samples/rm_ping_1_1/ src/client/ src/h...

[email protected] Fri, 30 Oct 2009 13:31:20 -0000
Newsgroups gmane.comp.apache.webservices.fx.devel
Message-ID <[email protected]>
Modified: webservices/sandesha/trunk/c/src/msgprocessors/close_seq_msg_processor.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/msgprocessors/close_seq_msg_processor.c?rev=831290&r1=831289&r2=831290&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/close_seq_msg_processor.c (original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/close_seq_msg_processor.c Fri Oct 30 13:31:18 2009
@@ -20,6 +20,7 @@
 #include <sandesha2_create_seq_mgr.h>
 #include <sandesha2_sender_mgr.h>
 #include <sandesha2_next_msg_mgr.h>
+#include <sandesha2_terminate_mgr.h>
 #include <sandesha2_permanent_seq_property_mgr.h>
 #include <sandesha2_permanent_create_seq_mgr.h>
 #include <sandesha2_permanent_sender_mgr.h>
@@ -362,12 +363,19 @@
     axis2_op_t *old_op = NULL;
     axis2_op_t *out_in_op = NULL;
     axutil_qname_t *qname = NULL;
-    sandesha2_close_seq_t *close_seq_part = NULL;
+    sandesha2_close_seq_t *close_seq = NULL;
+    sandesha2_identifier_t *identifier = NULL;
     axis2_char_t *rm_version = NULL;
+    axis2_char_t *rm_ns_value = NULL;
     axis2_char_t *transport_to = NULL;
     axis2_char_t *temp_action = NULL;
     axutil_string_t *soap_action = NULL;
     axis2_char_t *dbname = NULL;
+    axiom_soap_envelope_t *envelope = NULL;
+    sandesha2_seq_property_bean_t *last_out_msg_no_bean = NULL;
+    axis2_char_t *reply_to_addr = NULL;
+    sandesha2_seq_property_bean_t *reply_to_bean = NULL;
+    axis2_bool_t is_svr_side = AXIS2_FALSE;
     
     AXIS2_PARAM_CHECK(env->error, rm_msg_ctx, AXIS2_FAILURE);
 
@@ -393,7 +401,7 @@
 
     int_seq_id = sandesha2_utils_get_client_internal_sequence_id(env, to_address, seq_key);
     out_seq_id = sandesha2_utils_get_seq_property(env, int_seq_id, 
-        SANDESHA2_SEQUENCE_PROPERTY_RMS_SEQ_ID, seq_prop_mgr);
+        SANDESHA2_SEQUENCE_PROPERTY_OUTGOING_SEQUENCE_ID, seq_prop_mgr);
 
     if(!out_seq_id)
     {
@@ -436,9 +444,9 @@
     axis2_op_set_msg_exchange_pattern(out_in_op, env, AXIS2_MEP_URI_OUT_IN);
     axis2_op_set_in_flow(out_in_op, env, axis2_op_get_in_flow(old_op, env));
 
-    close_seq_part = sandesha2_msg_ctx_get_close_seq(rm_msg_ctx, env);
-    sandesha2_identifier_set_identifier(sandesha2_close_seq_get_identifier(close_seq_part, env), 
-            env, out_seq_id);
+    /*close_seq = sandesha2_msg_ctx_get_close_seq(rm_msg_ctx, env);
+    sandesha2_identifier_set_identifier(sandesha2_close_seq_get_identifier(close_seq, env), 
+            env, out_seq_id);*/
 
     sandesha2_msg_ctx_set_flow(rm_msg_ctx, env, AXIS2_OUT_FLOW);
     property = axutil_property_create_with_args(env, 0, 0, 0, AXIS2_VALUE_TRUE);
@@ -478,6 +486,161 @@
         return AXIS2_FAILURE;
     }
 
+    /* Handling the case where reply to address is anonymous */
+    reply_to_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, int_seq_id, 
+            SANDESHA2_SEQ_PROP_REPLY_TO_EPR);
+    if(reply_to_bean)
+    {
+        reply_to_addr = axutil_strdup(env, sandesha2_seq_property_bean_get_value(reply_to_bean, env));
+    }
+    is_svr_side = axis2_msg_ctx_get_server_side(msg_ctx, env);
+    if(!is_svr_side && (!reply_to_addr || sandesha2_utils_is_anon_uri(env, reply_to_addr)))
+    {
+        sandesha2_seq_property_bean_t *to_bean = NULL;
+        axis2_endpoint_ref_t *to_epr = NULL;
+        sandesha2_seq_property_bean_t *transport_to_bean = NULL;
+        axis2_char_t *temp_action = NULL;
+        axutil_string_t *soap_action = NULL;
+        axis2_engine_t *engine = NULL;
+        sandesha2_msg_ctx_t *close_rm_msg_ctx = NULL;
+        axis2_msg_ctx_t *close_msg_ctx = NULL;
+
+        close_rm_msg_ctx = sandesha2_msg_creator_create_close_seq_msg(env, rm_msg_ctx, 
+            out_seq_id, int_seq_id, seq_prop_mgr);
+
+        if(!close_rm_msg_ctx)
+        {
+            axis2_msg_ctx_set_paused(msg_ctx, env, AXIS2_TRUE);
+            return AXIS2_FAILURE;
+        }
+    
+        close_msg_ctx = sandesha2_msg_ctx_get_msg_ctx(close_rm_msg_ctx, env);
+        sandesha2_msg_ctx_set_flow(rm_msg_ctx, env, AXIS2_OUT_FLOW);
+        property = axutil_property_create_with_args(env, 0, 0, 0, AXIS2_VALUE_TRUE);
+        axis2_msg_ctx_set_property(msg_ctx, env, SANDESHA2_APPLICATION_PROCESSING_DONE, property);
+        to_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, int_seq_id, 
+            SANDESHA2_SEQ_PROP_TO_EPR);
+
+        if(to_bean)
+        {
+            axis2_char_t *temp_addr = NULL;
+
+            temp_addr = sandesha2_seq_property_bean_get_value(to_bean, env);
+            to_epr = axis2_endpoint_ref_create(env, temp_addr);
+            sandesha2_seq_property_bean_free(to_bean, env);
+        }
+
+        if(to_epr)
+        {
+            const axis2_char_t *to_addr = NULL;
+
+            to_addr = axis2_endpoint_ref_get_address(to_epr, env);
+            AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "to_addr:%s", to_addr);
+            sandesha2_msg_ctx_set_to(close_rm_msg_ctx, env, to_epr);
+        }
+        sandesha2_msg_ctx_set_wsa_action(close_rm_msg_ctx, env, 
+            sandesha2_spec_specific_consts_get_close_seq_action(env, rm_version));
+
+        temp_action = sandesha2_spec_specific_consts_get_close_seq_action(env, rm_version);
+        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "temp_action:%s", temp_action);
+        soap_action = axutil_string_create(env, temp_action);
+        if(soap_action)
+        {
+            sandesha2_msg_ctx_set_soap_action(close_rm_msg_ctx, env, soap_action);
+            axutil_string_free(soap_action, env);
+        }
+
+        transport_to_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, int_seq_id, 
+            SANDESHA2_SEQ_PROP_TRANSPORT_TO);
+
+        if(transport_to_bean)
+        {
+            axis2_char_t *value = sandesha2_seq_property_bean_get_value(transport_to_bean, env);
+            property = axutil_property_create_with_args(env, 0, 0, 0, value);
+            sandesha2_msg_ctx_set_property(close_rm_msg_ctx, env, AXIS2_TRANSPORT_URL, property);
+        }
+        if(rm_version)
+        {
+            AXIS2_FREE(env->allocator, rm_version);
+        }
+
+        if(!sandesha2_util_is_ack_already_piggybacked(env, close_rm_msg_ctx))
+        {
+            sandesha2_ack_mgr_piggyback_acks_if_present(env, out_seq_id, close_rm_msg_ctx, 
+                storage_mgr, seq_prop_mgr, sender_mgr);
+        }
+    
+        sandesha2_msg_ctx_add_soap_envelope(close_rm_msg_ctx, env);
+        engine = axis2_engine_create(env, conf_ctx);
+        if(AXIS2_SUCCESS == axis2_engine_send(engine, env, close_msg_ctx))
+        {
+            axiom_soap_envelope_t *res_envelope = NULL;
+            axis2_char_t *soap_ns_uri = NULL;
+            
+            soap_ns_uri = axis2_msg_ctx_get_is_soap_11(close_msg_ctx, env) ?
+                 AXIOM_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI:
+                 AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI;
+
+            res_envelope = axis2_msg_ctx_get_response_soap_envelope(close_msg_ctx, env);
+            if(!res_envelope)
+            {
+                AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2] Response envelope not found");
+
+                res_envelope = (axiom_soap_envelope_t *) axis2_http_transport_utils_create_soap_msg(
+                        env, close_msg_ctx, soap_ns_uri);
+            }
+
+            if(res_envelope)
+            {
+                if(AXIS2_SUCCESS != sandesha2_terminate_mgr_process_response(env, 
+                            close_msg_ctx, storage_mgr))
+                {
+                    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
+                        "[sandesha2] Close message response process failed for sequence %s", 
+                        int_seq_id);
+                }
+            }
+        }
+
+        axis2_msg_ctx_set_paused(msg_ctx, env, AXIS2_TRUE);
+        
+        return AXIS2_SUCCESS;
+
+    }
+
+    /* Continue if reply to address is not anonymous */
+
+    rm_ns_value = sandesha2_spec_specific_consts_get_rm_ns_val(env, rm_version);
+    close_seq = sandesha2_close_seq_create(env, rm_ns_value);
+    identifier = sandesha2_identifier_create(env, rm_ns_value);
+    sandesha2_identifier_set_identifier(identifier, env, out_seq_id);
+    sandesha2_close_seq_set_identifier(close_seq, env, identifier);
+    last_out_msg_no_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, 
+        int_seq_id, SANDESHA2_SEQ_PROP_LAST_OUT_MESSAGE_NUMBER);
+    if(last_out_msg_no_bean)
+    {
+        axis2_char_t *last_msg_num_str = NULL;
+
+        last_msg_num_str = sandesha2_seq_property_bean_get_value(last_out_msg_no_bean, env);
+        if(last_msg_num_str)
+        {
+            sandesha2_last_msg_number_t *last_msg_number = NULL;
+            
+            last_msg_number = sandesha2_last_msg_number_create(env, rm_ns_value);
+            if(last_msg_number)
+            {
+                long last_msg_num = -1;
+
+                AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "last msg no:%s", last_msg_num_str);
+                last_msg_num = axutil_atol(last_msg_num_str);
+                
+                sandesha2_last_msg_number_set_last_msg_number(last_msg_number, env, last_msg_num);
+                sandesha2_close_seq_set_last_msg_number(close_seq, env, last_msg_number);
+            }
+        }
+    }
+    envelope = axis2_msg_ctx_get_soap_envelope(msg_ctx, env);
+    sandesha2_close_seq_to_soap_envelope(close_seq, env, envelope);
     axis2_msg_ctx_set_wsa_action(msg_ctx, env, 
             sandesha2_spec_specific_consts_get_close_seq_action(env, rm_version));
 
@@ -502,6 +665,7 @@
     {
         sandesha2_ack_mgr_piggyback_acks_if_present(env, out_seq_id, rm_msg_ctx, storage_mgr, 
                 seq_prop_mgr, sender_mgr);
+        sandesha2_msg_ctx_add_soap_envelope(rm_msg_ctx, env);
     }
 
     if(out_seq_id)

Modified: webservices/sandesha/trunk/c/src/msgprocessors/close_seq_res_msg_processor.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/msgprocessors/close_seq_res_msg_processor.c?rev=831290&r1=831289&r2=831290&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/close_seq_res_msg_processor.c (original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/close_seq_res_msg_processor.c Fri Oct 30 13:31:18 2009
@@ -121,8 +121,9 @@
     sandesha2_msg_ctx_t *rm_msg_ctx)
 {
     axis2_msg_ctx_t *msg_ctx = NULL;
-    sandesha2_close_seq_res_t *term_seq_res = NULL;
-    axis2_char_t *seq_id = NULL;
+    sandesha2_close_seq_res_t *close_seq_res = NULL;
+    axis2_char_t *outgoing_sequence_id = NULL;
+    axis2_char_t *outgoing_internal_sequence_id = NULL;
     axis2_conf_ctx_t *conf_ctx = NULL;
     sandesha2_storage_mgr_t *storage_mgr = NULL;
     sandesha2_seq_property_mgr_t *seq_prop_mgr = NULL;
@@ -136,8 +137,8 @@
             "[sandesha2] Entry:sandesha2_close_seq_res_msg_processor_process_in_msg");
 
     msg_ctx = sandesha2_msg_ctx_get_msg_ctx(rm_msg_ctx, env);
-    term_seq_res = sandesha2_msg_ctx_get_close_seq_res(rm_msg_ctx, env);
-    if(!term_seq_res)
+    close_seq_res = sandesha2_msg_ctx_get_close_seq_res(rm_msg_ctx, env);
+    if(!close_seq_res)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                 "[sandesha2] Close Sequence part is not available");
@@ -145,9 +146,9 @@
         return AXIS2_FAILURE;
     }
 
-    seq_id = sandesha2_identifier_get_identifier(
-        sandesha2_close_seq_res_get_identifier(term_seq_res, env), env);
-    if(!seq_id || 0 == axutil_strlen(seq_id))
+    outgoing_sequence_id = sandesha2_identifier_get_identifier(
+        sandesha2_close_seq_res_get_identifier(close_seq_res, env), env);
+    if(!outgoing_sequence_id || 0 == axutil_strlen(outgoing_sequence_id))
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] Invalid sequence id");
         return AXIS2_FAILURE;
@@ -160,7 +161,22 @@
     create_seq_mgr = sandesha2_permanent_create_seq_mgr_create(env, dbname);
     sender_mgr =sandesha2_permanent_sender_mgr_create(env, dbname);
 
-    sandesha2_msg_ctx_set_paused(rm_msg_ctx, env, AXIS2_TRUE);
+    /*sandesha2_msg_ctx_set_paused(rm_msg_ctx, env, AXIS2_TRUE);*/
+
+    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
+            "[sandesha2] Close sequence message for sequence %s is sent and response received. "\
+            "So adding terminate msg", outgoing_sequence_id);
+
+    outgoing_internal_sequence_id = sandesha2_utils_get_seq_property(env, outgoing_sequence_id, 
+            SANDESHA2_SEQUENCE_PROPERTY_OUTGOING_INTERNAL_SEQUENCE_ID, seq_prop_mgr);
+
+    sandesha2_terminate_mgr_send_terminate_seq_msg(env, rm_msg_ctx, 
+            outgoing_sequence_id, outgoing_internal_sequence_id, storage_mgr, 
+            seq_prop_mgr, create_seq_mgr, sender_mgr);
+
+
+
+
 
     if(seq_prop_mgr)
     {

Modified: webservices/sandesha/trunk/c/src/msgprocessors/create_seq_msg_processor.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/msgprocessors/create_seq_msg_processor.c?rev=831290&r1=831289&r2=831290&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/create_seq_msg_processor.c (original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/create_seq_msg_processor.c Fri Oct 30 13:31:18 2009
@@ -163,7 +163,7 @@
     sandesha2_seq_property_mgr_t *seq_prop_mgr = NULL;
     sandesha2_next_msg_mgr_t *next_msg_mgr = NULL;
     axutil_property_t *property = NULL;
-    axis2_char_t *rmd_sequence_id = NULL;
+    axis2_char_t *incoming_sequence_id = NULL;
     sandesha2_msg_ctx_t *rm_create_seq_res_msg_ctx = NULL;
     sandesha2_create_seq_res_t *create_seq_res_part = NULL;
     sandesha2_seq_offer_t *seq_offer = NULL;
@@ -249,19 +249,19 @@
 
     out_msg_ctx = sandesha2_utils_create_out_msg_ctx(env, create_seq_msg_ctx);
 
-    rmd_sequence_id = sandesha2_seq_mgr_setup_new_rmd_sequence(env, rm_msg_ctx, seq_prop_mgr, 
-            next_msg_mgr);
+    incoming_sequence_id = sandesha2_seq_mgr_setup_new_incoming_sequence(env, rm_msg_ctx, 
+            seq_prop_mgr, next_msg_mgr);
 
     rm_create_seq_res_msg_ctx = sandesha2_msg_creator_create_create_seq_res_msg(env, rm_msg_ctx, 
-            out_msg_ctx, rmd_sequence_id, seq_prop_mgr);
+            out_msg_ctx, incoming_sequence_id, seq_prop_mgr);
 
     axis2_msg_ctx_set_flow(out_msg_ctx, env, AXIS2_OUT_FLOW);
 
     if(!rm_create_seq_res_msg_ctx)
     {
-        if(rmd_sequence_id)
+        if(incoming_sequence_id)
         {
-            AXIS2_FREE(env->allocator, rmd_sequence_id);
+            AXIS2_FREE(env->allocator, incoming_sequence_id);
         }
 
         if(seq_prop_mgr)
@@ -295,7 +295,7 @@
     if(seq_offer)
     {
         sandesha2_accept_t *accept = NULL;
-        axis2_char_t *rms_sequence_id = NULL;
+        axis2_char_t *outgoing_sequence_id = NULL;
         axis2_bool_t offer_accepted = AXIS2_FALSE;
 
         if(create_seq_res_part)
@@ -313,9 +313,9 @@
                 sandesha2_msg_ctx_free(rm_create_seq_res_msg_ctx, env);
             }
 
-            if(rmd_sequence_id)
+            if(incoming_sequence_id)
             {
-                AXIS2_FREE(env->allocator, rmd_sequence_id);
+                AXIS2_FREE(env->allocator, incoming_sequence_id);
             }
 
             if(seq_prop_mgr)
@@ -336,69 +336,80 @@
             return AXIS2_FAILURE;
         }
 
-        rms_sequence_id = sandesha2_identifier_get_identifier(sandesha2_seq_offer_get_identifier(
+        outgoing_sequence_id = sandesha2_identifier_get_identifier(sandesha2_seq_offer_get_identifier(
                     seq_offer, env), env);
 
         /* Check whether offered sequence id is valid or create sequence bean already created */
-        offer_accepted = sandesha2_create_seq_msg_processor_offer_accepted(env, rms_sequence_id, 
+        offer_accepted = sandesha2_create_seq_msg_processor_offer_accepted(env, outgoing_sequence_id, 
                 rm_msg_ctx, create_seq_mgr);
 
         if(offer_accepted)
         {
             /*sandesha2_create_seq_bean_t *create_seq_bean = NULL;*/
-            axis2_char_t *rms_internal_seq_id = NULL;
-            sandesha2_seq_property_bean_t *rms_sequence_bean = NULL;
-            sandesha2_seq_property_bean_t *rms_internal_sequence_bean = NULL;
+            axis2_char_t *outgoing_internal_sequence_id = NULL;
+            sandesha2_seq_property_bean_t *outgoing_sequence_bean = NULL;
+            sandesha2_seq_property_bean_t *outgoing_internal_sequence_bean = NULL;
     
             AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2] Offer Accepted"); 
 
             /*
              * If previously a create sequence message has arrived with an offer then there is
              * a create sequence bean already created in the database. Free it. Also free
-             * rms_internal_sequence_bean, and rms_sequence_bean.
+             * outgoing_internal_sequence_bean, and outgoing_sequence_bean.
              */
-            sandesha2_create_seq_msg_processor_create_seq_msg_already_received(env, rms_sequence_id, 
-                rm_msg_ctx, create_seq_mgr, seq_prop_mgr);
-
-            rms_internal_seq_id = sandesha2_utils_get_internal_sequence_id(env, rmd_sequence_id);
+            sandesha2_create_seq_msg_processor_create_seq_msg_already_received(env, 
+                    outgoing_sequence_id, rm_msg_ctx, create_seq_mgr, seq_prop_mgr);
+            /* Note that outgoing_internal_sequence_id is derived from incoming_sequence_id. This
+             * is server side. So it should be noted that in server side 
+             * incoming_internal_sequence_id and outgoing_internal_sequence_id are same
+             */
+            outgoing_internal_sequence_id = sandesha2_utils_get_internal_sequence_id(env, 
+                    incoming_sequence_id);
 
             /*create_seq_bean = sandesha2_create_seq_bean_create(env);
-            sandesha2_create_seq_bean_set_rms_sequence_id(create_seq_bean, env, rms_sequence_id);
+            sandesha2_create_seq_bean_set_outgoing_sequence_id(create_seq_bean, env, 
+                outgoing_sequence_id);
             sandesha2_create_seq_bean_set_internal_sequence_id(create_seq_bean, env, 
-                    rms_internal_seq_id);
+                    outgoing_internal_sequence_id);
 
             sandesha2_create_seq_bean_set_create_seq_msg_id(create_seq_bean, env, 
                     axutil_uuid_gen(env));
 
             sandesha2_create_seq_mgr_insert(create_seq_mgr, env, create_seq_bean);*/
             
-            rms_sequence_bean = sandesha2_seq_property_bean_create(env);
-            if(rms_sequence_bean)
+            outgoing_sequence_bean = sandesha2_seq_property_bean_create(env);
+            if(outgoing_sequence_bean)
             {
-                sandesha2_seq_property_bean_set_name(rms_sequence_bean, env, SANDESHA2_SEQUENCE_PROPERTY_RMS_SEQ_ID);
+                sandesha2_seq_property_bean_set_name(outgoing_sequence_bean, env, 
+                        SANDESHA2_SEQUENCE_PROPERTY_OUTGOING_SEQUENCE_ID);
 
-                sandesha2_seq_property_bean_set_seq_id(rms_sequence_bean, env, rms_internal_seq_id);
-                sandesha2_seq_property_bean_set_value(rms_sequence_bean, env, rms_sequence_id);
-                AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2] rmd_sequence_id:%s", rmd_sequence_id); 
-                sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, rms_sequence_bean);
-                sandesha2_seq_property_bean_free(rms_sequence_bean, env);
+                sandesha2_seq_property_bean_set_seq_id(outgoing_sequence_bean, env, 
+                        outgoing_internal_sequence_id);
+                sandesha2_seq_property_bean_set_value(outgoing_sequence_bean, env, 
+                        outgoing_sequence_id);
+                AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2] incoming_sequence_id:%s", 
+                        incoming_sequence_id); 
+                sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, outgoing_sequence_bean);
+                sandesha2_seq_property_bean_free(outgoing_sequence_bean, env);
             }
 
-            rms_internal_sequence_bean = sandesha2_seq_property_bean_create(env);
-            if(rms_internal_sequence_bean)
+            outgoing_internal_sequence_bean = sandesha2_seq_property_bean_create(env);
+            if(outgoing_internal_sequence_bean)
             {
-                sandesha2_seq_property_bean_set_name(rms_internal_sequence_bean, env, 
-                    SANDESHA2_SEQUENCE_PROPERTY_RMS_INTERNAL_SEQ_ID);
+                sandesha2_seq_property_bean_set_name(outgoing_internal_sequence_bean, env, 
+                    SANDESHA2_SEQUENCE_PROPERTY_OUTGOING_INTERNAL_SEQUENCE_ID);
 
-                sandesha2_seq_property_bean_set_seq_id(rms_internal_sequence_bean, env, rms_sequence_id);
-                sandesha2_seq_property_bean_set_value(rms_internal_sequence_bean, env, rms_internal_seq_id);
-                sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, rms_internal_sequence_bean);
-                sandesha2_seq_property_bean_free(rms_internal_sequence_bean, env);
+                sandesha2_seq_property_bean_set_seq_id(outgoing_internal_sequence_bean, env, 
+                        outgoing_sequence_id);
+                sandesha2_seq_property_bean_set_value(outgoing_internal_sequence_bean, env, 
+                        outgoing_internal_sequence_id);
+                sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, outgoing_internal_sequence_bean);
+                sandesha2_seq_property_bean_free(outgoing_internal_sequence_bean, env);
             }
 
-            if(rms_internal_seq_id)
+            if(outgoing_internal_sequence_id)
             {
-                AXIS2_FREE(env->allocator, rms_internal_seq_id);
+                AXIS2_FREE(env->allocator, outgoing_internal_sequence_id);
             }
         }
         else
@@ -420,9 +431,9 @@
             sandesha2_msg_ctx_free(rm_create_seq_res_msg_ctx, env);
         }
 
-        if(rmd_sequence_id)
+        if(incoming_sequence_id)
         {
-            AXIS2_FREE(env->allocator, rmd_sequence_id);
+            AXIS2_FREE(env->allocator, incoming_sequence_id);
         }
 
         if(seq_prop_mgr)
@@ -443,7 +454,7 @@
         return AXIS2_FAILURE;
     }
 
-    acks_to_bean = sandesha2_seq_property_bean_create_with_data(env, rmd_sequence_id, 
+    acks_to_bean = sandesha2_seq_property_bean_create_with_data(env, incoming_sequence_id, 
             SANDESHA2_SEQ_PROP_ACKS_TO_EPR, (axis2_char_t*)axis2_endpoint_ref_get_address(
                 acks_to_epr, env));
 
@@ -457,8 +468,8 @@
     if(ref_param_list)
     {
         ref_param_list_str = sandesha2_util_get_string_from_node_list(env, ref_param_list);
-        acks_to_ref_param_bean = sandesha2_seq_property_bean_create_with_data(env, rmd_sequence_id,
-            SANDESHA2_SEQ_PROP_ACKS_TO_REF_PARAM, ref_param_list_str);
+        acks_to_ref_param_bean = sandesha2_seq_property_bean_create_with_data(env, 
+                incoming_sequence_id, SANDESHA2_SEQ_PROP_ACKS_TO_REF_PARAM, ref_param_list_str);
         
         if(ref_param_list_str)
         {
@@ -473,7 +484,7 @@
     }
 
     axis2_op_ctx_set_response_written(op_ctx, env, AXIS2_TRUE);
-    sandesha2_seq_mgr_update_last_activated_time(env, rmd_sequence_id, seq_prop_mgr);
+    sandesha2_seq_mgr_update_last_activated_time(env, incoming_sequence_id, seq_prop_mgr);
 
     engine = axis2_engine_create(env, conf_ctx);
 
@@ -497,15 +508,15 @@
         sandesha2_msg_ctx_free(rm_create_seq_res_msg_ctx, env);
     }
 
-    to_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, rmd_sequence_id, 
+    to_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, incoming_sequence_id, 
             SANDESHA2_SEQ_PROP_TO_EPR);
     if(!to_bean)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] wsa:To is not set");
 
-        if(rmd_sequence_id)
+        if(incoming_sequence_id)
         {
-            AXIS2_FREE(env->allocator, rmd_sequence_id);
+            AXIS2_FREE(env->allocator, incoming_sequence_id);
         }
 
         if(seq_prop_mgr)
@@ -527,7 +538,7 @@
     }
 
     to_addr = sandesha2_seq_property_bean_get_value(to_bean, env);
-    addr_ns_uri = sandesha2_utils_get_seq_property(env, rmd_sequence_id, 
+    addr_ns_uri = sandesha2_utils_get_seq_property(env, incoming_sequence_id, 
             SANDESHA2_SEQ_PROP_ADDRESSING_NAMESPACE_VALUE, seq_prop_mgr);
 
     anon_uri = sandesha2_spec_specific_consts_get_anon_uri(env, addr_ns_uri);
@@ -550,9 +561,9 @@
     /* Pausing the flow here so that it won't go to a message receiver which is not set for this flow */
     sandesha2_msg_ctx_set_paused(rm_msg_ctx, env, AXIS2_TRUE);
 
-    if(rmd_sequence_id)
+    if(incoming_sequence_id)
     {
-        AXIS2_FREE(env->allocator, rmd_sequence_id);
+        AXIS2_FREE(env->allocator, incoming_sequence_id);
     }
 
     if(seq_prop_mgr)
@@ -664,7 +675,7 @@
                 axis2_char_t *name = NULL;
 
                 name = sandesha2_seq_property_bean_get_name(seq_prop_bean, env);
-                if(!axutil_strcmp(name, SANDESHA2_SEQUENCE_PROPERTY_RMS_INTERNAL_SEQ_ID))
+                if(!axutil_strcmp(name, SANDESHA2_SEQUENCE_PROPERTY_OUTGOING_INTERNAL_SEQUENCE_ID))
                 {
                     axutil_array_list_t *temp_list = NULL;
                     int temp_size = 0;

Modified: webservices/sandesha/trunk/c/src/msgprocessors/create_seq_res_msg_processor.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/msgprocessors/create_seq_res_msg_processor.c?rev=831290&r1=831289&r2=831290&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/create_seq_res_msg_processor.c (original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/create_seq_res_msg_processor.c Fri Oct 30 13:31:18 2009
@@ -147,16 +147,16 @@
     axis2_conf_ctx_t *conf_ctx = NULL;
     sandesha2_storage_mgr_t *storage_mgr = NULL;
     sandesha2_create_seq_res_t *csr_part = NULL;
-    axis2_char_t *rms_sequence_id = NULL;
+    axis2_char_t *outgoing_sequence_id = NULL;
     axis2_relates_to_t *relates_to = NULL;
     axis2_char_t *create_seq_msg_id = NULL;
     sandesha2_sender_mgr_t *sender_mgr = NULL;
     sandesha2_create_seq_mgr_t *create_seq_mgr = NULL;
     sandesha2_create_seq_bean_t *create_seq_bean = NULL;
-    axis2_char_t *internal_sequence_id = NULL;
+    axis2_char_t *outgoing_internal_sequence_id = NULL;
     sandesha2_seq_property_mgr_t *seq_prop_mgr = NULL;
-    sandesha2_seq_property_bean_t *rms_sequence_bean = NULL;
-    sandesha2_seq_property_bean_t *rms_internal_sequence_bean = NULL;
+    sandesha2_seq_property_bean_t *outgoing_sequence_bean = NULL;
+    sandesha2_seq_property_bean_t *outgoing_internal_sequence_bean = NULL;
     sandesha2_accept_t *accept = NULL;
     axis2_op_ctx_t *op_ctx = NULL;
     axis2_bool_t polling_mode = AXIS2_FALSE;
@@ -185,11 +185,11 @@
         return AXIS2_FAILURE;
     }
 
-    rms_sequence_id = sandesha2_identifier_get_identifier(sandesha2_create_seq_res_get_identifier(
-                csr_part, env), env);
-    if(!rms_sequence_id)
+    outgoing_sequence_id = sandesha2_identifier_get_identifier(
+            sandesha2_create_seq_res_get_identifier(csr_part, env), env);
+    if(!outgoing_sequence_id)
     {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] New sequence id is null");
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] Out going sequence id is null");
         AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_CANNOT_FIND_SEQ_ID, AXIS2_FAILURE);
         if(storage_mgr)
         {
@@ -240,10 +240,10 @@
         return AXIS2_FAILURE;
     }
 
-    internal_sequence_id = axutil_strdup(env, sandesha2_create_seq_bean_get_internal_sequence_id(
+    outgoing_internal_sequence_id = axutil_strdup(env, sandesha2_create_seq_bean_get_internal_sequence_id(
             create_seq_bean, env));
 
-    if(!internal_sequence_id)
+    if(!outgoing_internal_sequence_id)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] Internal sequence id is not set");
         AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_CANNOT_FIND_SEQ_ID, AXIS2_FAILURE);
@@ -270,32 +270,35 @@
         return AXIS2_FAILURE;
     }
 
-    sandesha2_create_seq_bean_set_rms_sequence_id(create_seq_bean, env, rms_sequence_id);
+    sandesha2_create_seq_bean_set_outgoing_sequence_id(create_seq_bean, env, outgoing_sequence_id);
     sandesha2_create_seq_mgr_update(create_seq_mgr, env, create_seq_bean);
     sandesha2_create_seq_bean_free(create_seq_bean, env);
     
-    rms_sequence_bean = sandesha2_seq_property_bean_create_with_data(env, internal_sequence_id,
-                        SANDESHA2_SEQUENCE_PROPERTY_RMS_SEQ_ID, rms_sequence_id);
-    if(rms_sequence_bean)
+    outgoing_sequence_bean = sandesha2_seq_property_bean_create_with_data(env, 
+            outgoing_internal_sequence_id, SANDESHA2_SEQUENCE_PROPERTY_OUTGOING_SEQUENCE_ID, 
+            outgoing_sequence_id);
+    if(outgoing_sequence_bean)
     {
         AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
-                "[sandesha2] Inserting rms_sequence_bean with rms_sequence_id :%s and internal_sequence_id :%s", 
-                rms_sequence_id, internal_sequence_id);
+                "[sandesha2] Inserting outgoing_sequence_bean with outgoing_sequence_id :%s and "\
+                "outgoing internal_sequence_id :%s", outgoing_sequence_id, 
+                outgoing_internal_sequence_id);
 
-        sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, rms_sequence_bean);
-        sandesha2_seq_property_bean_free(rms_sequence_bean, env);
+        sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, outgoing_sequence_bean);
+        sandesha2_seq_property_bean_free(outgoing_sequence_bean, env);
     }
 
-    rms_internal_sequence_bean = sandesha2_seq_property_bean_create_with_data(env, rms_sequence_id, 
-            SANDESHA2_SEQUENCE_PROPERTY_RMS_INTERNAL_SEQ_ID, internal_sequence_id);
-    if(rms_internal_sequence_bean)
+    outgoing_internal_sequence_bean = sandesha2_seq_property_bean_create_with_data(env, outgoing_sequence_id, 
+            SANDESHA2_SEQUENCE_PROPERTY_OUTGOING_INTERNAL_SEQUENCE_ID, outgoing_internal_sequence_id);
+    if(outgoing_internal_sequence_bean)
     {
         sandesha2_sender_bean_t *find_sender_bean = NULL;
         sandesha2_sender_bean_t *sender_bean = NULL;
 
         find_sender_bean = sandesha2_sender_bean_create(env);
         sandesha2_sender_bean_set_msg_type(find_sender_bean, env, SANDESHA2_MSG_TYPE_CREATE_SEQ);
-        sandesha2_sender_bean_set_internal_seq_id(find_sender_bean, env, internal_sequence_id);
+        sandesha2_sender_bean_set_internal_seq_id(find_sender_bean, env, 
+                outgoing_internal_sequence_id);
         sandesha2_sender_bean_set_send(find_sender_bean, env, AXIS2_TRUE);
 
         sender_bean = sandesha2_sender_mgr_find_unique(sender_mgr, env, find_sender_bean);
@@ -308,17 +311,17 @@
             sandesha2_sender_bean_free(sender_bean, env);
         }
 
-        sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, rms_internal_sequence_bean);
-        sandesha2_seq_property_bean_free(rms_internal_sequence_bean, env);
+        sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, outgoing_internal_sequence_bean);
+        sandesha2_seq_property_bean_free(outgoing_internal_sequence_bean, env);
     }
 
     accept = sandesha2_create_seq_res_get_accept(csr_part, env);
 
     if(accept)
     {
-        sandesha2_seq_property_bean_t *special_int_seq_bean = NULL;
+        /*sandesha2_seq_property_bean_t *special_int_seq_bean = NULL;*/
         sandesha2_seq_property_bean_t *offerd_seq_bean = NULL;
-        axis2_char_t *rmd_sequence_id = NULL;
+        axis2_char_t *incoming_sequence_id = NULL;
         axis2_endpoint_ref_t *acks_to_epr = NULL;
         axis2_endpoint_ref_t *to_epr = NULL;
         sandesha2_seq_property_bean_t *acks_to_bean = NULL;
@@ -335,20 +338,20 @@
         sandesha2_msg_ctx_t *create_seq_rm_msg = NULL;
         axis2_msg_ctx_t *create_seq_msg = NULL;
         axis2_char_t *acks_to = NULL;
-        axis2_char_t *reply_to_addr = NULL; 
+        /* axis2_char_t *reply_to_addr = NULL; */
         
         next_msg_mgr = sandesha2_permanent_next_msg_mgr_create(env, dbname);
-        offerd_seq_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, internal_sequence_id, 
-                SANDESHA2_SEQ_PROP_OFFERED_SEQ);
+        offerd_seq_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, 
+                outgoing_internal_sequence_id, SANDESHA2_SEQ_PROP_OFFERED_SEQ);
 
         if(!offerd_seq_bean)
         {
             AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                 "[sandesha2] No offered sequence entry. But an accept was received");
 
-            if(internal_sequence_id)
+            if(outgoing_internal_sequence_id)
             {
-                AXIS2_FREE(env->allocator, internal_sequence_id);
+                AXIS2_FREE(env->allocator, outgoing_internal_sequence_id);
             }
 
             if(seq_prop_mgr)
@@ -375,19 +378,20 @@
             return AXIS2_FAILURE;
         }
 
-        rmd_sequence_id = axutil_strdup(env, sandesha2_seq_property_bean_get_value(offerd_seq_bean, 
-            env));
+        incoming_sequence_id = axutil_strdup(env, sandesha2_seq_property_bean_get_value(
+                    offerd_seq_bean, env));
 
         sandesha2_seq_property_bean_free(offerd_seq_bean, env);
 
-        special_int_seq_bean = sandesha2_seq_property_bean_create_with_data(env, rmd_sequence_id, 
-                SANDESHA2_SEQ_PROP_SPECIAL_INTERNAL_SEQ_ID, internal_sequence_id);
+        /*special_int_seq_bean = sandesha2_seq_property_bean_create_with_data(env, 
+                incoming_sequence_id, SANDESHA2_SEQ_PROP_SPECIAL_INTERNAL_SEQUENCE_ID, 
+                outgoing_internal_sequence_id);
 
         if(special_int_seq_bean)
         {
             sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, special_int_seq_bean);
             sandesha2_seq_property_bean_free(special_int_seq_bean, env);
-        }
+        }*/
 
         acks_to_epr = sandesha2_address_get_epr(sandesha2_acks_to_get_address(
                     sandesha2_accept_get_acks_to(accept, env), env), env);
@@ -396,7 +400,7 @@
         if(acks_to_bean)
         {
             sandesha2_seq_property_bean_set_name(acks_to_bean, env, SANDESHA2_SEQ_PROP_ACKS_TO_EPR);
-            sandesha2_seq_property_bean_set_seq_id(acks_to_bean, env, rmd_sequence_id);
+            sandesha2_seq_property_bean_set_seq_id(acks_to_bean, env, incoming_sequence_id);
 
             if (acks_to_epr)
             {
@@ -412,35 +416,35 @@
 
         if(!axutil_strcmp(SANDESHA2_SPEC_VERSION_1_1, rm_spec_ver))
         {
-            reply_to_addr = sandesha2_utils_get_seq_property(env, internal_sequence_id, 
+            /*reply_to_addr = sandesha2_utils_get_seq_property(env, internal_sequence_id, 
                     SANDESHA2_SEQ_PROP_REPLY_TO_EPR, seq_prop_mgr); 
             if(reply_to_addr)
             {
                 polling_mode = sandesha2_utils_is_anon_uri(env, reply_to_addr);
-            }
+            }*/
         }
         
         acks_to = (axis2_char_t *) axis2_endpoint_ref_get_address(acks_to_epr, env);
         create_seq_rm_msg = sandesha2_msg_creator_create_create_seq_msg(env, rm_msg_ctx, 
-                internal_sequence_id, acks_to, seq_prop_mgr);
+                outgoing_internal_sequence_id, acks_to, seq_prop_mgr);
 
         if(!create_seq_rm_msg)
         {
             AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2]create_seq_rm_msg is NULL");
 
-            if(reply_to_addr)
+            /*if(reply_to_addr)
             {
                 AXIS2_FREE(env->allocator, reply_to_addr);
-            }
+            }*/
 
-            if(rmd_sequence_id)
+            if(incoming_sequence_id)
             {
-                AXIS2_FREE(env->allocator, rmd_sequence_id);
+                AXIS2_FREE(env->allocator, incoming_sequence_id);
             }
 
-            if(internal_sequence_id)
+            if(outgoing_internal_sequence_id)
             {
-                AXIS2_FREE(env->allocator, internal_sequence_id);
+                AXIS2_FREE(env->allocator, outgoing_internal_sequence_id);
             }
 
             if(seq_prop_mgr)
@@ -469,8 +473,8 @@
 
         sandesha2_msg_ctx_set_flow(create_seq_rm_msg, env, SANDESHA2_MSG_CTX_OUT_FLOW);
         create_seq_msg = sandesha2_msg_ctx_get_msg_ctx(create_seq_rm_msg, env);
-        to_seq_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, internal_sequence_id, 
-                SANDESHA2_SEQ_PROP_TO_EPR);
+        to_seq_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, 
+                outgoing_internal_sequence_id, SANDESHA2_SEQ_PROP_TO_EPR);
 
         if(to_seq_bean)
         {
@@ -484,19 +488,19 @@
         {
             AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] to_seq_bean is NULL");
 
-            if(reply_to_addr)
+            /*if(reply_to_addr)
             {
                 AXIS2_FREE(env->allocator, reply_to_addr);
-            }
+            }*/
 
-            if(rmd_sequence_id)
+            if(incoming_sequence_id)
             {
-                AXIS2_FREE(env->allocator, rmd_sequence_id);
+                AXIS2_FREE(env->allocator, incoming_sequence_id);
             }
 
-            if(internal_sequence_id)
+            if(outgoing_internal_sequence_id)
             {
-                AXIS2_FREE(env->allocator, internal_sequence_id);
+                AXIS2_FREE(env->allocator, outgoing_internal_sequence_id);
             }
 
             if(seq_prop_mgr)
@@ -544,8 +548,8 @@
                 AXIS2_TRUE);
 
         next_bean = sandesha2_next_msg_bean_create(env);
-        sandesha2_next_msg_bean_set_seq_id(next_bean, env, rmd_sequence_id);
-        sandesha2_next_msg_bean_set_internal_seq_id(next_bean, env, internal_sequence_id);
+        sandesha2_next_msg_bean_set_seq_id(next_bean, env, incoming_sequence_id);
+        sandesha2_next_msg_bean_set_internal_seq_id(next_bean, env, outgoing_internal_sequence_id);
         sandesha2_next_msg_bean_set_next_msg_no_to_process(next_bean, env, 1);
         sandesha2_next_msg_bean_set_ref_msg_key(next_bean, env, new_msg_store_key);
         sandesha2_next_msg_bean_set_polling_mode(next_bean, env, polling_mode);
@@ -558,13 +562,13 @@
         if(polling_mode)
         {
             /*sandesha2_polling_mgr_start(env, conf_ctx, storage_mgr, sender_mgr, create_seq_rm_msg, 
-                    internal_sequence_id, rmd_sequence_id, reply_to_addr);*/
+                    outgoing_internal_sequence_id, incoming_sequence_id, reply_to_addr);*/
         }
 
         sandesha2_next_msg_mgr_insert(next_msg_mgr, env, next_bean);
         sandesha2_next_msg_bean_free(next_bean, env);
         
-        spec_ver_bean = sandesha2_seq_property_bean_create_with_data(env, rmd_sequence_id, 
+        spec_ver_bean = sandesha2_seq_property_bean_create_with_data(env, incoming_sequence_id, 
                 SANDESHA2_SEQ_PROP_RM_SPEC_VERSION, rm_spec_ver);
 
         if(spec_ver_bean)
@@ -573,7 +577,7 @@
             sandesha2_seq_property_bean_free(spec_ver_bean, env);
         }
         
-        rcvd_msg_bean = sandesha2_seq_property_bean_create_with_data(env, rmd_sequence_id, 
+        rcvd_msg_bean = sandesha2_seq_property_bean_create_with_data(env, incoming_sequence_id, 
                 SANDESHA2_SEQ_PROP_SERVER_COMPLETED_MESSAGES, "");
 
         if(rcvd_msg_bean)
@@ -582,7 +586,7 @@
             sandesha2_seq_property_bean_free(rcvd_msg_bean, env);
         }
         
-        msgs_bean = sandesha2_seq_property_bean_create_with_data(env, rmd_sequence_id, 
+        msgs_bean = sandesha2_seq_property_bean_create_with_data(env, incoming_sequence_id, 
                 SANDESHA2_SEQ_PROP_CLIENT_COMPLETED_MESSAGES, "");
         if(msgs_bean)
         {
@@ -591,7 +595,7 @@
         }
         
         addr_ns_val = sandesha2_msg_ctx_get_addr_ns_val(rm_msg_ctx, env);
-        addr_ver_bean = sandesha2_seq_property_bean_create_with_data(env, rmd_sequence_id, 
+        addr_ver_bean = sandesha2_seq_property_bean_create_with_data(env, incoming_sequence_id, 
                 SANDESHA2_SEQ_PROP_ADDRESSING_NAMESPACE_VALUE, addr_ns_val);
         if(addr_ver_bean)
         {
@@ -605,10 +609,10 @@
             axis2_msg_ctx_free(create_seq_msg, env);
         }
 
-        if(reply_to_addr)
+        /*if(reply_to_addr)
         {
             AXIS2_FREE(env->allocator, reply_to_addr);
-        }
+        }*/
 
         if(create_seq_rm_msg)
         {
@@ -620,24 +624,24 @@
             sandesha2_next_msg_mgr_free(next_msg_mgr, env);
         }
 
-        if(rmd_sequence_id)
+        if(incoming_sequence_id)
         {
-            AXIS2_FREE(env->allocator, rmd_sequence_id);
+            AXIS2_FREE(env->allocator, incoming_sequence_id);
         }
     } /* End of if accept block */
 
-    sandesha2_seq_mgr_update_last_activated_time(env, internal_sequence_id, seq_prop_mgr);
+    sandesha2_seq_mgr_update_last_activated_time(env, outgoing_internal_sequence_id, seq_prop_mgr);
     op_ctx = axis2_msg_ctx_get_op_ctx(msg_ctx, env);
     axis2_op_ctx_set_response_written(op_ctx, env, AXIS2_TRUE);
     
     /* Pausing the flow here so that it won't go to a message receiver which is not set for this flow */
     sandesha2_msg_ctx_set_paused(rm_msg_ctx, env, AXIS2_TRUE);
 
-    if(internal_sequence_id)
+    if(outgoing_internal_sequence_id)
     {
-        AXIS2_FREE(env->allocator, internal_sequence_id);
+        AXIS2_FREE(env->allocator, outgoing_internal_sequence_id);
     }
-
+    
     if(seq_prop_mgr)
     {
         sandesha2_seq_property_mgr_free(seq_prop_mgr, env);

Modified: webservices/sandesha/trunk/c/src/msgprocessors/make_connection_msg_processor.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/msgprocessors/make_connection_msg_processor.c?rev=831290&r1=831289&r2=831290&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/make_connection_msg_processor.c (original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/make_connection_msg_processor.c Fri Oct 30 13:31:18 2009
@@ -295,7 +295,7 @@
     }
 
     int_seq_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, seq_id, 
-            SANDESHA2_SEQUENCE_PROPERTY_RMS_INTERNAL_SEQ_ID);
+            SANDESHA2_SEQUENCE_PROPERTY_OUTGOING_INTERNAL_SEQUENCE_ID);
 
     if(int_seq_bean)
     {

Modified: webservices/sandesha/trunk/c/src/msgprocessors/terminate_seq_msg_processor.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/msgprocessors/terminate_seq_msg_processor.c?rev=831290&r1=831289&r2=831290&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/terminate_seq_msg_processor.c (original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/terminate_seq_msg_processor.c Fri Oct 30 13:31:18 2009
@@ -301,7 +301,7 @@
                     seq_ack, env), env);
 
         internal_sequence_id = sandesha2_utils_get_seq_property(env, rms_sequence_id, 
-                SANDESHA2_SEQUENCE_PROPERTY_RMS_INTERNAL_SEQ_ID, seq_prop_mgr);
+                SANDESHA2_SEQUENCE_PROPERTY_OUTGOING_INTERNAL_SEQUENCE_ID, seq_prop_mgr);
 
         terminated_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, internal_sequence_id, 
                 SANDESHA2_SEQ_PROP_TERMINATE_ADDED);
@@ -545,7 +545,7 @@
     AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2] add_rec_side_term:%d", add_rec_side_term);
 
     out_seq_id = sandesha2_utils_get_seq_property(env, rec_side_int_seq_id,
-        SANDESHA2_SEQUENCE_PROPERTY_RMS_SEQ_ID, seq_prop_mgr);
+        SANDESHA2_SEQUENCE_PROPERTY_OUTGOING_SEQUENCE_ID, seq_prop_mgr);
 
     AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2] out_seq_id:%s", out_seq_id);
     if(rec_side_int_seq_id)
@@ -771,7 +771,7 @@
 
     int_seq_id = sandesha2_utils_get_client_internal_sequence_id(env, to_address, seq_key);
     out_seq_id = sandesha2_utils_get_seq_property(env, int_seq_id, 
-        SANDESHA2_SEQUENCE_PROPERTY_RMS_SEQ_ID, seq_prop_mgr);
+        SANDESHA2_SEQUENCE_PROPERTY_OUTGOING_SEQUENCE_ID, seq_prop_mgr);
 
     if(!out_seq_id)
     {

Modified: webservices/sandesha/trunk/c/src/storage/beans/create_seq_bean.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/storage/beans/create_seq_bean.c?rev=831290&r1=831289&r2=831290&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/storage/beans/create_seq_bean.c (original)
+++ webservices/sandesha/trunk/c/src/storage/beans/create_seq_bean.c Fri Oct 30 13:31:18 2009
@@ -172,7 +172,7 @@
 }
 
 void AXIS2_CALL
-sandesha2_create_seq_bean_set_rms_sequence_id(
+sandesha2_create_seq_bean_set_outgoing_sequence_id(
     sandesha2_create_seq_bean_t *create_seq_bean,
 	const axutil_env_t *env, 
     axis2_char_t *seq_id)

Modified: webservices/sandesha/trunk/c/src/storage/sqlite/permanent_bean_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/storage/sqlite/permanent_bean_mgr.c?rev=831290&r1=831289&r2=831290&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/storage/sqlite/permanent_bean_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/storage/sqlite/permanent_bean_mgr.c Fri Oct 30 13:31:18 2009
@@ -821,7 +821,7 @@
         if(*error_msg)
              sqlite3_free(*error_msg);
         counter++;
-        AXIS2_USLEEP(100000);
+        AXIS2_SLEEP(1);
         /* Sleeping is over, lock again */
         rc = sqlite3_exec(dbconn, sql_stmt, callback_func, args, error_msg);
     }

Modified: webservices/sandesha/trunk/c/src/storage/sqlite/permanent_create_seq_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/storage/sqlite/permanent_create_seq_mgr.c?rev=831290&r1=831289&r2=831290&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/storage/sqlite/permanent_create_seq_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/storage/sqlite/permanent_create_seq_mgr.c Fri Oct 30 13:31:18 2009
@@ -72,7 +72,7 @@
                 sandesha2_create_seq_bean_set_internal_sequence_id(bean, env, argv[i]);
         if(0 == axutil_strcmp(col_name[i], "seq_id"))
             if(argv[i])
-                sandesha2_create_seq_bean_set_rms_sequence_id(bean, env, argv[i]);
+                sandesha2_create_seq_bean_set_outgoing_sequence_id(bean, env, argv[i]);
         if(0 == axutil_strcmp(col_name[i], "create_seq_msg_store_key"))
             if(argv[i])
                 sandesha2_create_seq_bean_set_create_seq_msg_store_key(bean, env, 
@@ -124,7 +124,7 @@
         {
             if(argv[i])
             {
-                sandesha2_create_seq_bean_set_rms_sequence_id(bean, env, argv[i]);
+                sandesha2_create_seq_bean_set_outgoing_sequence_id(bean, env, argv[i]);
             }
         }
         if(!axutil_strcmp(col_name[i], "create_seq_msg_store_key"))

Modified: webservices/sandesha/trunk/c/src/util/ack_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/ack_mgr.c?rev=831290&r1=831289&r2=831290&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/ack_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/ack_mgr.c Fri Oct 30 13:31:18 2009
@@ -187,7 +187,7 @@
     
     /* First trying to get it from the internal sequence id.*/
     internal_seq_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, 
-            rms_seq_id, SANDESHA2_SEQUENCE_PROPERTY_RMS_INTERNAL_SEQ_ID);
+            rms_seq_id, SANDESHA2_SEQUENCE_PROPERTY_OUTGOING_INTERNAL_SEQUENCE_ID);
     if(internal_seq_bean != NULL)
     {
         internal_seq_id = sandesha2_seq_property_bean_get_value(
@@ -306,11 +306,11 @@
     return AXIS2_FALSE;
 }
 
-
+/* We piggyback the ack messages stored for the same sequence with the sequence id */
 AXIS2_EXTERN axis2_status_t AXIS2_CALL
 sandesha2_ack_mgr_piggyback_acks_if_present(
     const axutil_env_t *env,
-    axis2_char_t *seq_id,
+    axis2_char_t *outgoing_sequence_id,
     sandesha2_msg_ctx_t *target_rm_msg_ctx,
     sandesha2_storage_mgr_t *storage_mgr,
     sandesha2_seq_property_mgr_t *seq_prop_mgr,
@@ -331,8 +331,8 @@
 
     find_bean = sandesha2_sender_bean_create(env);
     sandesha2_sender_bean_set_msg_type(find_bean, env, SANDESHA2_MSG_TYPE_ACK);
-    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "dam_seq_id:%s", seq_id);
-    sandesha2_sender_bean_set_seq_id(find_bean, env, seq_id);
+    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "outgoing_sequence_id:%s", outgoing_sequence_id);
+    sandesha2_sender_bean_set_seq_id(find_bean, env, outgoing_sequence_id);
     sandesha2_sender_bean_set_send(find_bean, env, AXIS2_TRUE);
     sandesha2_sender_bean_set_resend(find_bean, env, AXIS2_FALSE);
 
@@ -433,7 +433,11 @@
                  * context ,there happen freeing at both contexts if we do not increment ref.*/
                 sandesha2_seq_ack_increment_ref(seq_ack, env);
                 sandesha2_msg_ctx_set_seq_ack(target_rm_msg_ctx, env, seq_ack);
-                sandesha2_msg_ctx_add_soap_envelope(target_rm_msg_ctx, env);
+
+                /* This will be added just before message is sent, to make sure that the function is
+                 * not called multiple times causing message dupplication in the soap message.
+                 */
+                /*sandesha2_msg_ctx_add_soap_envelope(target_rm_msg_ctx, env);*/
 
                 if(ack_msg_ctx)
                 {

Modified: webservices/sandesha/trunk/c/src/util/fault_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/fault_mgr.c?rev=831290&r1=831289&r2=831290&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/fault_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/fault_mgr.c Fri Oct 30 13:31:18 2009
@@ -198,7 +198,7 @@
         axutil_array_list_t *list = NULL;
 
         find_bean = sandesha2_create_seq_bean_create(env);
-        sandesha2_create_seq_bean_set_rms_sequence_id(find_bean, env, seq_id);
+        sandesha2_create_seq_bean_set_outgoing_sequence_id(find_bean, env, seq_id);
         list = sandesha2_create_seq_mgr_find(create_seq_mgr, env, find_bean);
         if(find_bean)
         {

Modified: webservices/sandesha/trunk/c/src/util/msg_creator.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/msg_creator.c?rev=831290&r1=831289&r2=831290&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/msg_creator.c (original)
+++ webservices/sandesha/trunk/c/src/util/msg_creator.c Fri Oct 30 13:31:18 2009
@@ -492,6 +492,134 @@
 }
  
 /**
+ * Create a new create_close_seq_msg
+ * @param env
+ * @param ref_rm_msg
+ * @param seq_id
+ * @param internal_seq_id
+ * @param seq_prop_mgr
+ * @return
+ */
+sandesha2_msg_ctx_t *AXIS2_CALL
+sandesha2_msg_creator_create_close_seq_msg(
+    const axutil_env_t *env,
+    sandesha2_msg_ctx_t *ref_rm_msg, 
+    axis2_char_t *seq_id,
+    axis2_char_t *internal_seq_id,
+    sandesha2_seq_property_mgr_t *seq_prop_mgr)
+{
+    axis2_msg_ctx_t *ref_msg_ctx = NULL;
+    axis2_msg_ctx_t *close_seq_msg_ctx = NULL;
+    axis2_conf_ctx_t *conf_ctx = NULL;
+    axis2_char_t *close_seq_msg_id = NULL;
+    axis2_char_t *temp_msg_id = NULL;
+    axis2_char_t *rm_version = NULL;
+    axis2_char_t *rm_ns_value = NULL;
+    axis2_bool_t is_seq_res_reqd = AXIS2_FALSE;
+    axiom_soap_envelope_t *temp_envelope = NULL;
+    sandesha2_msg_ctx_t *close_rm_msg = NULL;
+    sandesha2_close_seq_t *close_seq = NULL;
+    int soap_version = -1;
+    sandesha2_identifier_t *identifier = NULL;
+    sandesha2_last_msg_number_t *last_msg_number = NULL;
+    sandesha2_seq_property_bean_t *last_out_msg_no_bean = NULL;
+
+    ref_msg_ctx = sandesha2_msg_ctx_get_msg_ctx(ref_rm_msg, env);
+    /*axis2_msg_ctx_set_keep_alive(ref_msg_ctx, env, AXIS2_TRUE);*/
+    if(!ref_msg_ctx)
+    {
+        AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_NULL_MSG_CTX,
+                AXIS2_FAILURE);
+        return NULL;
+    }
+
+    conf_ctx = axis2_msg_ctx_get_conf_ctx(ref_msg_ctx, env);
+    if(!conf_ctx)
+    {
+        AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_CONF_CTX_NULL, AXIS2_FAILURE);
+        return NULL;
+    }
+    close_seq_msg_ctx = sandesha2_utils_create_new_related_msg_ctx(env, ref_rm_msg);
+    close_seq_msg_id = (axis2_char_t*)axis2_msg_ctx_get_msg_id(
+                        close_seq_msg_ctx, env);
+
+    rm_version = sandesha2_utils_get_rm_version(env, internal_seq_id, seq_prop_mgr);
+    if(!rm_version)
+    {
+        AXIS2_ERROR_SET(env->error, 
+            SANDESHA2_ERROR_CANNOT_FIND_RM_VERSION_OF_GIVEN_MSG, AXIS2_FAILURE);
+        return NULL;
+    }
+
+    rm_ns_value = sandesha2_spec_specific_consts_get_rm_ns_val(env, rm_version);
+    sandesha2_msg_creator_init_creation(env, ref_msg_ctx, close_seq_msg_ctx);
+
+    is_seq_res_reqd = sandesha2_spec_specific_consts_is_term_seq_res_reqd(env, rm_version);
+
+    if(rm_version)
+    {
+        AXIS2_FREE(env->allocator, rm_version);
+    }
+
+    if(!is_seq_res_reqd)
+    {
+        axis2_msg_ctx_set_property(close_seq_msg_ctx, env, AXIS2_TRANSPORT_IN, NULL);
+    }
+
+    close_rm_msg = sandesha2_msg_init_init_msg(env, close_seq_msg_ctx);
+    if(!close_rm_msg)
+    {
+        AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_NULL_MSG_CTX, AXIS2_FAILURE);
+        return NULL;
+    }
+
+    temp_msg_id = axutil_uuid_gen(env);
+    axis2_msg_ctx_set_message_id(close_seq_msg_ctx, env, temp_msg_id);
+    AXIS2_FREE(env->allocator, temp_msg_id);
+    temp_envelope = sandesha2_msg_ctx_get_soap_envelope(ref_rm_msg, env);
+    soap_version = sandesha2_utils_get_soap_version(env, temp_envelope);
+
+    close_seq = sandesha2_close_seq_create(env, rm_ns_value);
+    identifier = sandesha2_identifier_create(env, rm_ns_value);
+    sandesha2_identifier_set_identifier(identifier, env, seq_id);
+    sandesha2_close_seq_set_identifier(close_seq, env, identifier);
+    sandesha2_msg_ctx_set_close_seq(close_rm_msg, env, close_seq);
+
+    if(is_seq_res_reqd)
+    {
+        last_out_msg_no_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, 
+            internal_seq_id, SANDESHA2_SEQ_PROP_LAST_OUT_MESSAGE_NUMBER);
+    }
+
+    if(last_out_msg_no_bean)
+    {
+        axis2_char_t *msg_no_str = NULL;
+        long last_msg_num = -1;
+
+        msg_no_str = sandesha2_seq_property_bean_get_value(last_out_msg_no_bean, env);
+        if(msg_no_str)
+        {
+            last_msg_num = atol(msg_no_str);
+        }
+
+        last_msg_number = sandesha2_last_msg_number_create(env, rm_ns_value);
+        if(last_msg_number)
+        {
+            sandesha2_last_msg_number_set_last_msg_number(last_msg_number, env, last_msg_num);
+            sandesha2_close_seq_set_last_msg_number(close_seq, env, last_msg_number);
+        }
+
+        sandesha2_seq_property_bean_free(last_out_msg_no_bean, env);
+    }
+
+    sandesha2_msg_creator_finalize_creation(env, ref_msg_ctx, close_seq_msg_ctx);
+    axis2_msg_ctx_set_property(close_seq_msg_ctx, env, AXIS2_TRANSPORT_IN, NULL);
+
+    return close_rm_msg;
+}
+
+
+/**
  * Create a new close_seq_response message.
  * @param close_seq_msg
  * @param out_msg

Modified: webservices/sandesha/trunk/c/src/util/msg_init.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/msg_init.c?rev=831290&r1=831289&r2=831290&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/msg_init.c (original)
+++ webservices/sandesha/trunk/c/src/util/msg_init.c Fri Oct 30 13:31:18 2009
@@ -217,7 +217,7 @@
     {
         sandesha2_msg_ctx_set_close_seq_res(rm_msg_ctx, env, close_seq_res);
         rm_ns = sandesha2_close_seq_res_get_namespace_value(close_seq_res, env);
-        /*add_op_if_null(env, msg_ctx);*/
+        add_op_if_null(env, msg_ctx);
     }
 
     make_conn = sandesha2_rm_elements_get_make_connection(rm_elements, env);
@@ -412,7 +412,7 @@
         sandesha2_seq_property_bean_t *internal_seq_id_bean = NULL;
 
         internal_seq_id_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, 
-                env, seq_id, SANDESHA2_SEQUENCE_PROPERTY_RMS_INTERNAL_SEQ_ID);
+                env, seq_id, SANDESHA2_SEQUENCE_PROPERTY_OUTGOING_INTERNAL_SEQUENCE_ID);
         if(internal_seq_id_bean)
         {
             prop_key = axutil_strdup(env, sandesha2_seq_property_bean_get_value(

Modified: webservices/sandesha/trunk/c/src/util/seq_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/seq_mgr.c?rev=831290&r1=831289&r2=831290&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/seq_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/seq_mgr.c Fri Oct 30 13:31:18 2009
@@ -47,7 +47,7 @@
     sandesha2_seq_property_mgr_t *seq_prop_mgr);
 
 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
-sandesha2_seq_mgr_setup_new_rmd_sequence(
+sandesha2_seq_mgr_setup_new_incoming_sequence(
     const axutil_env_t *env,
     sandesha2_msg_ctx_t *create_seq_msg, 
     sandesha2_seq_property_mgr_t *seq_prop_mgr,
@@ -77,7 +77,7 @@
     axis2_char_t *address = NULL;
     axis2_char_t *reply_to_addr = NULL;
 
-    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "[sandesha2]Entry:sandesha2_seq_mgr_setup_new_rmd_sequence");
+    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "[sandesha2]Entry:sandesha2_seq_mgr_setup_new_incoming_sequence");
 
     rmd_sequence_id = axutil_uuid_gen(env);
     to = sandesha2_msg_ctx_get_to(create_seq_msg, env);
@@ -238,7 +238,7 @@
 
     /* TODO Get the SOAP version from the creaet sequence message */
 
-    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "[sandesha2]Entry:sandesha2_seq_mgr_setup_new_rmd_sequence");
+    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "[sandesha2]Entry:sandesha2_seq_mgr_setup_new_incoming_sequence");
 
     return rmd_sequence_id;
 }
@@ -358,7 +358,7 @@
 }
 
 AXIS2_EXTERN axis2_status_t AXIS2_CALL
-sandesha2_seq_mgr_setup_new_rms_sequence(
+sandesha2_seq_mgr_setup_new_outgoing_sequence(
     const axutil_env_t *env,
     axis2_msg_ctx_t *first_app_msg,
     axis2_char_t *internal_sequence_id,
@@ -381,7 +381,7 @@
     axis2_endpoint_ref_t *reply_to_epr = NULL;
     axis2_bool_t is_svr_side = AXIS2_FALSE;
    
-    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Entry:sandesha2_seq_mgr_setup_new_rms_sequence");
+    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Entry:sandesha2_seq_mgr_setup_new_outgoing_sequence");
 
     AXIS2_PARAM_CHECK(env->error, first_app_msg, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, internal_sequence_id, AXIS2_FAILURE);
@@ -548,7 +548,7 @@
 
     sandesha2_seq_mgr_update_last_activated_time(env, internal_sequence_id, seq_prop_mgr);
 
-    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Exit:sandesha2_seq_mgr_setup_new_rms_sequence");
+    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Exit:sandesha2_seq_mgr_setup_new_outgoing_sequence");
 
     return AXIS2_SUCCESS;
 }

Modified: webservices/sandesha/trunk/c/src/util/terminate_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/terminate_mgr.c?rev=831290&r1=831289&r2=831290&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/terminate_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/terminate_mgr.c Fri Oct 30 13:31:18 2009
@@ -78,12 +78,6 @@
     const axutil_env_t *env,
     axis2_char_t *name);
 
-static axis2_status_t AXIS2_CALL
-sandesha2_terminate_mgr_process_terminate_msg_response(
-    const axutil_env_t *env, 
-    axis2_msg_ctx_t *msg_ctx,
-    sandesha2_storage_mgr_t *storage_mgr);
-
 AXIS2_EXTERN axis2_status_t AXIS2_CALL
 sandesha2_terminate_mgr_clean_recv_side_after_terminate_msg(
     const axutil_env_t *env,
@@ -553,7 +547,7 @@
         deletable = AXIS2_FALSE;
     }
 
-    if(0 == axutil_strcasecmp(name, SANDESHA2_SEQUENCE_PROPERTY_RMS_INTERNAL_SEQ_ID))
+    if(0 == axutil_strcasecmp(name, SANDESHA2_SEQUENCE_PROPERTY_OUTGOING_INTERNAL_SEQUENCE_ID))
     {
         deletable = AXIS2_FALSE;
     }
@@ -643,7 +637,7 @@
     AXIS2_PARAM_CHECK(env->error, sender_mgr, AXIS2_FAILURE);
      
     rms_sequence_id = sandesha2_utils_get_seq_property(env, internal_sequence_id, 
-        SANDESHA2_SEQUENCE_PROPERTY_RMS_SEQ_ID, seq_prop_mgr);
+        SANDESHA2_SEQUENCE_PROPERTY_OUTGOING_SEQUENCE_ID, seq_prop_mgr);
 
     /*if(!svr_side)
     {
@@ -740,7 +734,7 @@
     }
     
     /* Remove all sequence properties set using internal sequence id and stored in the database.
-     * This includes all properties set in sandesha2_seq_mgr_setup_new_rms_sequence() function.
+     * This includes all properties set in sandesha2_seq_mgr_setup_new_outgoing_sequence() function.
      */
     find_seq_prop_bean = sandesha2_seq_property_bean_create(env);
     sandesha2_seq_property_bean_set_seq_id(find_seq_prop_bean, env, internal_sequence_id);
@@ -818,7 +812,7 @@
 AXIS2_EXTERN axis2_status_t AXIS2_CALL
 sandesha2_terminate_mgr_send_terminate_seq_msg(
     const axutil_env_t *env,
-    sandesha2_msg_ctx_t *ack_rm_msg_ctx,
+    sandesha2_msg_ctx_t *rm_msg_ctx,
     axis2_char_t *rms_sequence_id,
     axis2_char_t *internal_sequence_id,
     sandesha2_storage_mgr_t *storage_mgr,
@@ -826,7 +820,7 @@
     sandesha2_create_seq_mgr_t *create_seq_mgr,
     sandesha2_sender_mgr_t *sender_mgr)
 {
-    axis2_msg_ctx_t *ack_msg_ctx = NULL;
+    axis2_msg_ctx_t *msg_ctx = NULL;
     axis2_msg_ctx_t *terminate_msg_ctx = NULL;
     axis2_conf_ctx_t *conf_ctx = NULL;
     sandesha2_msg_ctx_t *terminate_rm_msg_ctx = NULL;
@@ -857,7 +851,7 @@
     AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, 
         "[sandesha2] Entry:sandesha2_terminate_mgr_send_terminate_seq_msg");
 
-    AXIS2_PARAM_CHECK(env->error, ack_rm_msg_ctx, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error, rm_msg_ctx, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, rms_sequence_id, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, internal_sequence_id, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, storage_mgr, AXIS2_FAILURE);
@@ -865,10 +859,10 @@
     AXIS2_PARAM_CHECK(env->error, create_seq_mgr, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, sender_mgr, AXIS2_FAILURE);
     
-    ack_msg_ctx = sandesha2_msg_ctx_get_msg_ctx(ack_rm_msg_ctx, env);
-    conf_ctx = axis2_msg_ctx_get_conf_ctx(ack_msg_ctx, env);
+    msg_ctx = sandesha2_msg_ctx_get_msg_ctx(rm_msg_ctx, env);
+    conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
 
-    svc = axis2_msg_ctx_get_svc(ack_msg_ctx, env);
+    svc = axis2_msg_ctx_get_svc(msg_ctx, env);
     if(!svc)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] Service is NULL");
@@ -886,7 +880,7 @@
     retrans_delay = sandesha2_property_bean_get_retrans_interval(property_bean, env); 
     AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "retrans_delay:%ld", retrans_delay);
     
-    terminate_rm_msg_ctx = sandesha2_msg_creator_create_terminate_seq_msg(env, ack_rm_msg_ctx, 
+    terminate_rm_msg_ctx = sandesha2_msg_creator_create_terminate_seq_msg(env, rm_msg_ctx, 
             rms_sequence_id, internal_sequence_id, seq_prop_mgr);
 
     if(!terminate_rm_msg_ctx)
@@ -989,8 +983,8 @@
     {
         sandesha2_msg_ctx_add_soap_envelope(terminate_rm_msg_ctx, env);
         axis2_op_ctx_set_response_written(axis2_msg_ctx_get_op_ctx(terminate_msg_ctx, env), env, AXIS2_TRUE);
-        axis2_msg_ctx_set_paused(ack_msg_ctx, env, AXIS2_TRUE);
-        axis2_op_ctx_set_response_written(axis2_msg_ctx_get_op_ctx(ack_msg_ctx, env), env, AXIS2_TRUE);
+        axis2_msg_ctx_set_paused(msg_ctx, env, AXIS2_TRUE);
+        axis2_op_ctx_set_response_written(axis2_msg_ctx_get_op_ctx(msg_ctx, env), env, AXIS2_TRUE);
         engine = axis2_engine_create(env, conf_ctx);
 
         AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2] axis2_engine_send");
@@ -1036,19 +1030,14 @@
 
         return AXIS2_SUCCESS;
     }
-
-    if(rm_ver)
-    {
-        AXIS2_FREE(env->allocator, rm_ver);
-    }
-
-    sandesha2_msg_ctx_add_soap_envelope(terminate_rm_msg_ctx, env);
-
+ 
     if(!sandesha2_util_is_ack_already_piggybacked(env, terminate_rm_msg_ctx))
     {
         sandesha2_ack_mgr_piggyback_acks_if_present(env, rms_sequence_id, terminate_rm_msg_ctx, 
                 storage_mgr, seq_prop_mgr, sender_mgr);
     }
+    
+    sandesha2_msg_ctx_add_soap_envelope(terminate_rm_msg_ctx, env);
 
     key = axutil_uuid_gen(env);
     terminate_sender_bean = sandesha2_sender_bean_create(env);
@@ -1076,14 +1065,7 @@
     /*property = axutil_property_create_with_args(env, 0, 0, 0, AXIS2_VALUE_TRUE);
     axis2_msg_ctx_set_property(terminate_msg_ctx, env, SANDESHA2_SET_SEND_TO_TRUE, property);*/
                         
-    reply_to_epr = axis2_msg_ctx_get_to(ack_msg_ctx, env);
-    if(reply_to_epr)
-    {
-        axis2_msg_ctx_set_reply_to(terminate_msg_ctx, env, sandesha2_util_endpoint_ref_clone(
-                    env, reply_to_epr));
-    }
-
-    is_svr_side = sandesha2_msg_ctx_get_server_side(ack_rm_msg_ctx, env); /* Do we need this?:damitha */
+    is_svr_side = sandesha2_msg_ctx_get_server_side(rm_msg_ctx, env); /* Do we need this?:damitha */
     engine = axis2_engine_create(env, conf_ctx);
 
     /* Check whether this is replay mode. This value set when sending application message */
@@ -1102,80 +1084,45 @@
         axis2_engine_send(engine, env, terminate_msg_ctx);
         AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2] RM 1.1 replay");
     }
-    else if(AXIS2_SUCCESS == axis2_engine_send(engine, env, terminate_msg_ctx))
+    else
     {
-        /* We need to resend the terminate sequence message or process the response in the back 
-         * channel only in the replay mode.
-         */
-        if(replay_bean)
-        {
-            axiom_soap_envelope_t *res_envelope = NULL;
-            axis2_char_t *soap_ns_uri = NULL;
-            axis2_transport_out_desc_t *transport_out = NULL;
-            axis2_transport_sender_t *transport_sender = NULL;
-            
-            sandesha2_sender_bean_set_resend(terminate_sender_bean, env, AXIS2_TRUE);
-            soap_ns_uri = axis2_msg_ctx_get_is_soap_11(terminate_msg_ctx, env) ?
-                 AXIOM_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI:
-                 AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI;
+        sandesha2_seq_property_bean_t *reply_to_bean = NULL;
 
-            res_envelope = axis2_msg_ctx_get_response_soap_envelope(terminate_msg_ctx, env);
-            if(!res_envelope)
-            {
-                AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2] Response envelope not found");
+        reply_to_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, internal_sequence_id, 
+            SANDESHA2_SEQ_PROP_REPLY_TO_EPR);
+        if(reply_to_bean)
+        {
+            axis2_char_t *reply_to_addr = NULL;
+            axis2_endpoint_ref_t *reply_to_epr = NULL;
 
-                res_envelope = (axiom_soap_envelope_t *) axis2_http_transport_utils_create_soap_msg(env, 
-                        terminate_msg_ctx, soap_ns_uri);
-            }
+            reply_to_addr = axutil_strdup(env, sandesha2_seq_property_bean_get_value(reply_to_bean, env));
+            reply_to_epr = axis2_endpoint_ref_create(env, reply_to_addr);
+            sandesha2_msg_ctx_set_reply_to(terminate_rm_msg_ctx, env, reply_to_epr);
 
-            if(res_envelope)
-            {
-                status = sandesha2_terminate_mgr_process_terminate_msg_response(env, terminate_msg_ctx, storage_mgr);
-                if(AXIS2_SUCCESS != status)
-                {
-                    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
-                        "[sandesha2] Terminate message response process failed for sequence %s", 
-                        internal_sequence_id);
-                }
-            }
-            transport_out = axis2_msg_ctx_get_transport_out_desc(terminate_msg_ctx, env);
-            if(transport_out)
-            {
-                transport_sender = axis2_transport_out_desc_get_sender(transport_out, env);
-            }
+            sandesha2_seq_property_bean_free(reply_to_bean, env);
+        }
 
-            while(!res_envelope)
+        /*reply_to_epr = axis2_msg_ctx_get_to(msg_ctx, env);
+        if(reply_to_epr)
+        {
+            axis2_msg_ctx_set_reply_to(terminate_msg_ctx, env, sandesha2_util_endpoint_ref_clone(
+                    env, reply_to_epr));
+        }*/
+        if(AXIS2_SUCCESS == axis2_engine_send(engine, env, terminate_msg_ctx))
+        {
+            /* We need to resend the terminate sequence message or process the response in the back 
+             * channel only in the replay mode.
+             */
+            /*if(replay_bean && axutil_strcmp(SANDESHA2_SPEC_VERSION_1_0, rm_ver))
             {
-                axis2_bool_t continue_sending = AXIS2_FALSE;
-
-                AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
-                    "[sandesha2] Terminate Sequence response message not found. So continuing");
-
-                continue_sending = sandesha2_msg_retrans_adjuster_adjust_retrans(env, terminate_sender_bean, 
-                        conf_ctx, storage_mgr, seq_prop_mgr, create_seq_mgr, sender_mgr, svc);
-
-                sandesha2_sender_mgr_update(sender_mgr, env, terminate_sender_bean);
-
-                if(!continue_sending)
-                {
-                    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
-                            "[sandesha2] Do not continue sending the terminate sequence message");
-                    break;
-                }
-
-                AXIS2_SLEEP(retrans_delay);
-
-                if(transport_sender)
-                {
-                    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2] Resending the terminate message");
-                    /* This is neccessary to avoid a double free */
-                    axis2_msg_ctx_set_property(terminate_msg_ctx, env, AXIS2_TRANSPORT_IN, NULL);
-                    if(!AXIS2_TRANSPORT_SENDER_INVOKE(transport_sender, env, terminate_msg_ctx))
-                    {
-                        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
-                                "[sandesha2] Transport sender invoke failed in sending terminate sequence message");
-                    }
-                }
+                axiom_soap_envelope_t *res_envelope = NULL;
+                axis2_char_t *soap_ns_uri = NULL;
+                axis2_transport_out_desc_t *transport_out = NULL;
+                axis2_transport_sender_t *transport_sender = NULL;
+                sandesha2_sender_bean_set_resend(terminate_sender_bean, env, AXIS2_TRUE);
+                soap_ns_uri = axis2_msg_ctx_get_is_soap_11(terminate_msg_ctx, env) ?
+                     AXIOM_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI:
+                     AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI;
 
                 res_envelope = axis2_msg_ctx_get_response_soap_envelope(terminate_msg_ctx, env);
                 if(!res_envelope)
@@ -1185,28 +1132,92 @@
                     res_envelope = (axiom_soap_envelope_t *) axis2_http_transport_utils_create_soap_msg(env, 
                             terminate_msg_ctx, soap_ns_uri);
                 }
-                
+
                 if(res_envelope)
                 {
-                    status = sandesha2_terminate_mgr_process_terminate_msg_response(env, 
-                            terminate_msg_ctx, storage_mgr);
-
+                    status = sandesha2_terminate_mgr_process_response(env, terminate_msg_ctx, storage_mgr);
                     if(AXIS2_SUCCESS != status)
                     {
-                        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
+                        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
                             "[sandesha2] Terminate message response process failed for sequence %s", 
                             internal_sequence_id);
+                    }
+                }
+                transport_out = axis2_msg_ctx_get_transport_out_desc(terminate_msg_ctx, env);
+                if(transport_out)
+                {
+                    transport_sender = axis2_transport_out_desc_get_sender(transport_out, env);
+                }
+
+                while(!res_envelope)
+                {
+                    axis2_bool_t continue_sending = AXIS2_FALSE;
+
+                    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
+                        "[sandesha2] Terminate Sequence response message not found. So continuing");
+
+                    continue_sending = sandesha2_msg_retrans_adjuster_adjust_retrans(env, terminate_sender_bean, 
+                            conf_ctx, storage_mgr, seq_prop_mgr, create_seq_mgr, sender_mgr, svc);
 
-                        continue;
+                    sandesha2_sender_mgr_update(sender_mgr, env, terminate_sender_bean);
+
+                    if(!continue_sending)
+                    {
+                        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
+                                "[sandesha2] Do not continue sending the terminate sequence message");
+                        break;
+                    }
+
+                    AXIS2_SLEEP(retrans_delay);
+
+                    if(transport_sender)
+                    {
+                        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2] Resending the terminate message");
+                        // This is neccessary to avoid a double free
+                        axis2_msg_ctx_set_property(terminate_msg_ctx, env, AXIS2_TRANSPORT_IN, NULL);
+                        if(!AXIS2_TRANSPORT_SENDER_INVOKE(transport_sender, env, terminate_msg_ctx))
+                        {
+                            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
+                                    "[sandesha2] Transport sender invoke failed in sending terminate sequence message");
+                        }
+                    }
+
+                    res_envelope = axis2_msg_ctx_get_response_soap_envelope(terminate_msg_ctx, env);
+                    if(!res_envelope)
+                    {
+                        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2] Response envelope not found");
+
+                        res_envelope = (axiom_soap_envelope_t *) axis2_http_transport_utils_create_soap_msg(env, 
+                                terminate_msg_ctx, soap_ns_uri);
+                    }
+                    
+                    if(res_envelope)
+                    {
+                        status = sandesha2_terminate_mgr_process_response(env, 
+                                terminate_msg_ctx, storage_mgr);
+
+                        if(AXIS2_SUCCESS != status)
+                        {
+                            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
+                                "[sandesha2] Terminate message response process failed for sequence %s", 
+                                internal_sequence_id);
+
+                            continue;
+                        }
+                            
+                        break;
                     }
-                        
-                    break;
                 }
-            }
 
-            sandesha2_seq_property_bean_free(replay_bean, env);
+                sandesha2_seq_property_bean_free(replay_bean, env);
+            }*/
         }
     }
+    
+    if(rm_ver)
+    {
+        AXIS2_FREE(env->allocator, rm_ver);
+    }
 
     sandesha2_storage_mgr_store_msg_ctx(storage_mgr, env, key, terminate_msg_ctx, AXIS2_TRUE);
 
@@ -1258,8 +1269,8 @@
     return status;
 }
 
-static axis2_status_t AXIS2_CALL
-sandesha2_terminate_mgr_process_terminate_msg_response(
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+sandesha2_terminate_mgr_process_response(
     const axutil_env_t *env, 
     axis2_msg_ctx_t *msg_ctx,
     sandesha2_storage_mgr_t *storage_mgr)
@@ -1273,7 +1284,7 @@
     axis2_endpoint_ref_t *to = NULL;
    
     AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI,
-        "[sandesha2] Entry:sandesha2_terminate_mgr_process_terminate_msg_response");
+        "[sandesha2] Entry:sandesha2_terminate_mgr_process_response");
 
     AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
 
@@ -1338,7 +1349,7 @@
     axis2_msg_ctx_free(response_msg_ctx, env);
 
     AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI,
-        "[sandesha2] Exit:sandesha2_terminate_mgr_process_terminate_msg_response");
+        "[sandesha2] Exit:sandesha2_terminate_mgr_process_response");
 
     return AXIS2_SUCCESS;
 }