You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by da...@apache.org on 2007/02/16 11:09:31 UTC

svn commit: r508360 - in /webservices/sandesha/trunk/c: samples/rm_echo_single_1_1/ src/msgprocessors/ src/util/ src/workers/

Author: damitha
Date: Fri Feb 16 02:09:30 2007
New Revision: 508360

URL: http://svn.apache.org/viewvc?view=rev&rev=508360
Log:
in RM 1.0 two-way single channel server does not clean the sending side data
after sending the terminate sequence message. Fixed this.

Modified:
    webservices/sandesha/trunk/c/samples/rm_echo_single_1_1/rm_echo_single_1_1.c
    webservices/sandesha/trunk/c/src/msgprocessors/make_connection_msg_processor.c
    webservices/sandesha/trunk/c/src/msgprocessors/terminate_seq_msg_processor.c
    webservices/sandesha/trunk/c/src/util/sandesha2_utils.c
    webservices/sandesha/trunk/c/src/util/terminate_mgr.c
    webservices/sandesha/trunk/c/src/workers/sender_worker.c

Modified: webservices/sandesha/trunk/c/samples/rm_echo_single_1_1/rm_echo_single_1_1.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/samples/rm_echo_single_1_1/rm_echo_single_1_1.c?view=diff&rev=508360&r1=508359&r2=508360
==============================================================================
--- webservices/sandesha/trunk/c/samples/rm_echo_single_1_1/rm_echo_single_1_1.c (original)
+++ webservices/sandesha/trunk/c/samples/rm_echo_single_1_1/rm_echo_single_1_1.c Fri Feb 16 02:09:30 2007
@@ -181,7 +181,7 @@
             property);
     }
     
-    payload = build_om_payload_for_echo_svc(env, "echo1", "sequence1");
+    /*payload = build_om_payload_for_echo_svc(env, "echo1", "sequence1");
     status = AXIS2_SVC_CLIENT_SEND_ROBUST(svc_client, env, payload);
     if(status)
         printf("\necho client single channel invoke SUCCESSFUL!\n");
@@ -194,19 +194,19 @@
         printf("\necho client single channel invoke SUCCESSFUL!\n");
     payload = NULL;
     AXIS2_SLEEP(SANDESHA2_MAX_COUNT); 
-
+*/
     payload = build_om_payload_for_echo_svc(env, "echo3", "sequence1");
     status = AXIS2_SVC_CLIENT_SEND_ROBUST(svc_client, env, payload);
     if(status)
         printf("\necho client single channel invoke SUCCESSFUL!\n");
     payload = NULL;
-    AXIS2_SLEEP(SANDESHA2_MAX_COUNT);
+    AXIS2_SLEEP(2 * SANDESHA2_MAX_COUNT);
 
     sandesha2_client_terminate_seq_with_svc_client_and_seq_key(env, svc_client, 
         "sequence1");
     /*sandesha2_client_terminate_seq_with_svc_client(env, svc_client, callback4, 
         listener_manager);*/
-    AXIS2_SLEEP(2 * SANDESHA2_MAX_COUNT);
+    AXIS2_SLEEP(4 * SANDESHA2_MAX_COUNT);
     if (svc_client)
     {
         /*AXIS2_SVC_CLIENT_FREE(svc_client, 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?view=diff&rev=508360&r1=508359&r2=508360
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/make_connection_msg_processor.c (original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/make_connection_msg_processor.c Fri Feb 16 02:09:30 2007
@@ -429,7 +429,7 @@
             int_seq_id, AXIS2_MSG_CTX_GET_SERVER_SIDE(msg_ctx, env), 
                 storage_mgr);
     }
-    else if(SANDESHA2_MSG_TYPE_TERMINATE_SEQ_RESPONSE == msg_type)
+    /*else if(SANDESHA2_MSG_TYPE_TERMINATE_SEQ_RESPONSE == msg_type)
     {
         sandesha2_terminate_seq_res_t *terminate_seq_res = NULL;
         axis2_char_t *seq_id = NULL;
@@ -445,7 +445,7 @@
         sandesha2_terminate_mgr_terminate_sending_side(env, conf_ctx,
             seq_id, AXIS2_MSG_CTX_GET_SERVER_SIDE(msg_ctx, env), 
             storage_mgr);
-    }
+    }*/
     axis2_msg_ctx_set_paused(msg_ctx, env, AXIS2_TRUE);
     AXIS2_LOG_INFO(env->log, "[sandesha2] EXIT sandesha2_make_connection_msg_" \
             "processor_process_in_msg .........");

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?view=diff&rev=508360&r1=508359&r2=508360
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/terminate_seq_msg_processor.c (original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/terminate_seq_msg_processor.c Fri Feb 16 02:09:30 2007
@@ -374,15 +374,18 @@
     msg_ctx = sandesha2_msg_ctx_get_msg_ctx(rm_msg_ctx, env);
     out_msg_ctx = axis2_core_utils_create_out_msg_ctx(env, msg_ctx);
     out_rm_msg = sandesha2_msg_creator_create_terminate_seq_res_msg(env, 
-                        rm_msg_ctx, out_msg_ctx, storage_mgr);
+        rm_msg_ctx, out_msg_ctx, storage_mgr);
    
     ack_rm_msg = sandesha2_ack_mgr_generate_ack_msg(env, rm_msg_ctx, seq_id,
-                        storage_mgr);
-    seq_ack = (sandesha2_seq_ack_t*)sandesha2_msg_ctx_get_msg_part(ack_rm_msg, 
-                        env, SANDESHA2_MSG_PART_SEQ_ACKNOWLEDGEMENT);
-    sandesha2_msg_ctx_set_msg_part(out_rm_msg, env, 
-                        SANDESHA2_MSG_PART_SEQ_ACKNOWLEDGEMENT,
-                        (sandesha2_iom_rm_part_t*)seq_ack);
+        storage_mgr);
+    if(ack_rm_msg)
+    {
+        seq_ack = (sandesha2_seq_ack_t*)sandesha2_msg_ctx_get_msg_part(ack_rm_msg, 
+            env, SANDESHA2_MSG_PART_SEQ_ACKNOWLEDGEMENT);
+        sandesha2_msg_ctx_set_msg_part(out_rm_msg, env, 
+            SANDESHA2_MSG_PART_SEQ_ACKNOWLEDGEMENT,
+            (sandesha2_iom_rm_part_t*)seq_ack);
+    }
     sandesha2_msg_ctx_add_soap_envelope(out_rm_msg, env);
     sandesha2_msg_ctx_set_flow(out_rm_msg, env, AXIS2_OUT_FLOW);
     
@@ -401,11 +404,9 @@
     trans_out = sandesha2_utils_get_transport_out(env);
     AXIS2_MSG_CTX_SET_TRANSPORT_OUT_DESC(out_msg_ctx, env, trans_out);
 
-
     key = axis2_uuid_gen(env);
     term_res_bean = sandesha2_sender_bean_create(env);
     sandesha2_sender_bean_set_msg_ctx_ref_key(term_res_bean, env, key);
-    /*AXIS2_MSG_CTX_SET_KEEP_ALIVE(msg_ctx, env, AXIS2_TRUE);*/
     property = axis2_property_create_with_args(env, 0, 0, 0, key);
     axis2_msg_ctx_set_property(out_msg_ctx, env, SANDESHA2_MESSAGE_STORE_KEY, 
         property, AXIS2_FALSE);
@@ -413,10 +414,10 @@
 
     /* TODO: refine the terminate delay */
     sandesha2_sender_bean_set_time_to_send(term_res_bean, env,
-                        sandesha2_utils_get_current_time_in_millis(env) +
-                        SANDESHA2_TERMINATE_DELAY);
+        sandesha2_utils_get_current_time_in_millis(env) +
+        SANDESHA2_TERMINATE_DELAY);
     sandesha2_sender_bean_set_msg_id(term_res_bean, env,
-            (axis2_char_t *) AXIS2_MSG_CTX_GET_MSG_ID(out_msg_ctx, env));
+        (axis2_char_t *) AXIS2_MSG_CTX_GET_MSG_ID(out_msg_ctx, env));
     sandesha2_sender_bean_set_send(term_res_bean, env, AXIS2_TRUE);
 
     property = axis2_property_create_with_args(env, 0, 0, 0, 
@@ -433,8 +434,7 @@
     AXIS2_ENGINE_SEND(engine, env, out_msg_ctx);
     
     addr_ns_uri = sandesha2_utils_get_seq_property(env, seq_id,
-                        SANDESHA2_SEQ_PROP_ADDRESSING_NAMESPACE_VALUE,
-                        storage_mgr);
+        SANDESHA2_SEQ_PROP_ADDRESSING_NAMESPACE_VALUE, storage_mgr);
     anon_uri = sandesha2_spec_specific_consts_get_anon_uri(env, addr_ns_uri);
     to_epr = AXIS2_MSG_CTX_GET_TO(msg_ctx, env);
     
@@ -450,7 +450,7 @@
     }
         
     AXIS2_CTX_SET_PROPERTY(ctx, env, AXIS2_RESPONSE_WRITTEN, property,
-                        AXIS2_FALSE);
+        AXIS2_FALSE);
     return AXIS2_SUCCESS;
 }
     

Modified: webservices/sandesha/trunk/c/src/util/sandesha2_utils.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/sandesha2_utils.c?view=diff&rev=508360&r1=508359&r2=508360
==============================================================================
--- webservices/sandesha/trunk/c/src/util/sandesha2_utils.c (original)
+++ webservices/sandesha/trunk/c/src/util/sandesha2_utils.c Fri Feb 16 02:09:30 2007
@@ -1200,7 +1200,7 @@
     {
         axis2_char_t str_msg_no[32];
         sprintf(str_msg_no, "%ld", temp_msg_no);
-        if(!AXIS2_ARRAY_LIST_CONTAINS(acked_msgs_list, env, 
+        if(!sandesha2_utils_array_list_contains(env, acked_msgs_list, 
             str_msg_no))
         {
             return AXIS2_FALSE;

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?view=diff&rev=508360&r1=508359&r2=508360
==============================================================================
--- webservices/sandesha/trunk/c/src/util/terminate_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/terminate_mgr.c Fri Feb 16 02:09:30 2007
@@ -16,6 +16,7 @@
  
 #include <sandesha2_utils.h>
 #include <sandesha2_terminate_mgr.h>
+#include <sandesha2_terminate_seq.h>
 #include <sandesha2_constants.h>
 #include <sandesha2_property_bean.h>
 #include <sandesha2_seq_property_bean.h>
@@ -689,6 +690,24 @@
             AXIS2_FALSE);
         engine = axis2_engine_create(env, conf_ctx);
         AXIS2_ENGINE_SEND(engine, env, msg_ctx1);
+        /* Clean sending side data */
+        {
+            sandesha2_terminate_seq_t *terminate_seq = NULL;
+            axis2_char_t *seq_id = NULL;
+            axis2_char_t *internal_seq_id = NULL;
+            
+            terminate_seq = (sandesha2_terminate_seq_t*)
+                sandesha2_msg_ctx_get_msg_part(terminate_rm_msg, env, 
+                SANDESHA2_MSG_PART_TERMINATE_SEQ);
+            seq_id = sandesha2_identifier_get_identifier(
+                sandesha2_terminate_seq_get_identifier(terminate_seq, 
+                env), env);
+            internal_seq_id = sandesha2_utils_get_seq_property(env, seq_id, 
+                SANDESHA2_SEQ_PROP_INTERNAL_SEQ_ID, storage_mgr);
+            sandesha2_terminate_mgr_terminate_sending_side(env, conf_ctx,
+                internal_seq_id, axis2_msg_ctx_get_server_side(msg_ctx1, env), 
+                    storage_mgr);
+        }
         return AXIS2_SUCCESS;
     }
     key = axis2_uuid_gen(env);

Modified: webservices/sandesha/trunk/c/src/workers/sender_worker.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/workers/sender_worker.c?view=diff&rev=508360&r1=508359&r2=508360
==============================================================================
--- webservices/sandesha/trunk/c/src/workers/sender_worker.c (original)
+++ webservices/sandesha/trunk/c/src/workers/sender_worker.c Fri Feb 16 02:09:30 2007
@@ -483,7 +483,7 @@
             internal_seq_id, axis2_msg_ctx_get_server_side(msg_ctx, env), 
                 storage_mgr);
     }
-    else if(SANDESHA2_MSG_TYPE_TERMINATE_SEQ_RESPONSE == msg_type)
+    /*else if(SANDESHA2_MSG_TYPE_TERMINATE_SEQ_RESPONSE == msg_type)
     {
         sandesha2_terminate_seq_res_t *terminate_seq_res = NULL;
         axis2_char_t *seq_id = NULL;
@@ -499,7 +499,7 @@
         sandesha2_terminate_mgr_terminate_sending_side(env, conf_ctx,
             seq_id, axis2_msg_ctx_get_server_side(msg_ctx, env), 
             storage_mgr);
-    }
+    }*/
     property = axis2_msg_ctx_get_property(msg_ctx, env, 
         SANDESHA2_WITHIN_TRANSACTION, AXIS2_FALSE);
     if(property)



---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org