You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by da...@apache.org on 2007/02/12 05:32:45 UTC

svn commit: r506275 - in /webservices/sandesha/trunk/c: samples/rm_echo_1_0/ samples/rm_echo_single_1_0/ src/msgprocessors/ src/util/ src/workers/

Author: damitha
Date: Sun Feb 11 20:32:44 2007
New Revision: 506275

URL: http://svn.apache.org/viewvc?view=rev&rev=506275
Log:
rm 1.0 single channel. Fixed some small bugs

Modified:
    webservices/sandesha/trunk/c/samples/rm_echo_1_0/rm_echo.c
    webservices/sandesha/trunk/c/samples/rm_echo_single_1_0/rm_echo_single.c
    webservices/sandesha/trunk/c/src/msgprocessors/ack_msg_processor.c
    webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c
    webservices/sandesha/trunk/c/src/msgprocessors/create_seq_res_msg_processor.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_1_0/rm_echo.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/samples/rm_echo_1_0/rm_echo.c?view=diff&rev=506275&r1=506274&r2=506275
==============================================================================
--- webservices/sandesha/trunk/c/samples/rm_echo_1_0/rm_echo.c (original)
+++ webservices/sandesha/trunk/c/samples/rm_echo_1_0/rm_echo.c Sun Feb 11 20:32:44 2007
@@ -29,7 +29,7 @@
 #include <sandesha2_client.h>
 #include <platforms/axis2_platform_auto_sense.h>
 
-#define SANDESHA2_MAX_COUNT 20
+#define SANDESHA2_MAX_COUNT 40
 
 /* on_complete callback function */
 axis2_status_t AXIS2_CALL
@@ -195,7 +195,7 @@
     sandesha2_client_send_non_blocking(env, svc_client, options, NULL, callback3, 
         payload, listener_manager);
     wait_on_callback(env, callback3);
-
+    printf("came echo\n");
     AXIS2_SLEEP(SANDESHA2_MAX_COUNT);
     if (svc_client)
     {

Modified: webservices/sandesha/trunk/c/samples/rm_echo_single_1_0/rm_echo_single.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/samples/rm_echo_single_1_0/rm_echo_single.c?view=diff&rev=506275&r1=506274&r2=506275
==============================================================================
--- webservices/sandesha/trunk/c/samples/rm_echo_single_1_0/rm_echo_single.c (original)
+++ webservices/sandesha/trunk/c/samples/rm_echo_single_1_0/rm_echo_single.c Sun Feb 11 20:32:44 2007
@@ -201,6 +201,7 @@
     payload = NULL;
 
     AXIS2_SLEEP(3 * SANDESHA2_MAX_COUNT);
+    sleep(30);
     if (svc_client)
     {
         /*AXIS2_SVC_CLIENT_FREE(svc_client, env);*/

Modified: webservices/sandesha/trunk/c/src/msgprocessors/ack_msg_processor.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/msgprocessors/ack_msg_processor.c?view=diff&rev=506275&r1=506274&r2=506275
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/ack_msg_processor.c (original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/ack_msg_processor.c Sun Feb 11 20:32:44 2007
@@ -16,6 +16,8 @@
 #include <sandesha2_ack_msg_processor.h>
 #include <sandesha2_seq_property_mgr.h>
 #include <sandesha2_seq_property_bean.h>
+#include <sandesha2_seq.h>
+#include <sandesha2_next_msg_mgr.h>
 #include <sandesha2_storage_mgr.h>
 #include <sandesha2_fault_mgr.h>
 #include <sandesha2_constants.h>
@@ -173,7 +175,7 @@
             "[sandesha2] Entry:sandesha2_ack_msg_processor_process_in_msg");
 
     seq_ack = (sandesha2_seq_ack_t*)sandesha2_msg_ctx_get_msg_part(rm_msg_ctx, 
-                        env, SANDESHA2_MSG_PART_SEQ_ACKNOWLEDGEMENT);
+        env, SANDESHA2_MSG_PART_SEQ_ACKNOWLEDGEMENT);
     if(!seq_ack)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] Sequence"
@@ -341,8 +343,31 @@
             completed = sandesha2_ack_mgr_verify_seq_completion(env, 
                         ack_range_list, highest_out_msg_no);
             if(completed)
+            {
+                axis2_char_t *rm_version = NULL;
+                const axis2_char_t *to_addr = NULL;
+                axis2_endpoint_ref_t *to_epr = NULL;
+                /*sandesha2_seq_t *seq = NULL;
+                axis2_char_t *incoming_seq_id = NULL;
+                seq = (sandesha2_seq_t*)sandesha2_msg_ctx_get_msg_part(
+                    rm_msg_ctx, env, SANDESHA2_MSG_PART_SEQ);
+                if(seq)
+                    incoming_seq_id = sandesha2_identifier_get_identifier(
+                        sandesha2_seq_get_identifier(seq, env), env);
+                rm_version = sandesha2_utils_get_rm_version(env, int_seq_id, 
+                    storage_mgr);
+                to_epr = axis2_msg_ctx_get_to(msg_ctx, env);
+                if(to_epr)
+                    to_addr = axis2_endpoint_ref_get_address(to_epr, env);*/
                 sandesha2_terminate_mgr_add_terminate_seq_msg(env, rm_msg_ctx,
-                        out_seq_id, int_seq_id, storage_mgr);
+                    out_seq_id, int_seq_id, storage_mgr);
+                /*if(sandesha2_utils_is_single_channel(env, rm_version, to_addr))
+                {
+                    
+                    sandesha2_terminate_mgr_clean_recv_side_after_terminate_msg(
+                        env, conf_ctx, incoming_seq_id, storage_mgr);
+                }*/
+            }
         }
     }
     action = AXIS2_MSG_CTX_GET_WSA_ACTION(msg_ctx, env);

Modified: webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c?view=diff&rev=506275&r1=506274&r2=506275
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c (original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c Sun Feb 11 20:32:44 2007
@@ -205,9 +205,10 @@
     axis2_char_t *highest_in_msg_key_str = NULL;
     axis2_bool_t msg_no_present_in_list = AXIS2_FALSE;
     axis2_endpoint_ref_t *reply_to_epr = NULL;
+    axis2_endpoint_ref_t *to_epr = NULL;
     axis2_char_t *reply_to_addr = NULL;
+    axis2_char_t *to_addr = NULL;
     axis2_char_t *rm_version = NULL;
-    axis2_char_t *internal_seq_id = NULL;
     
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, rm_msg_ctx, AXIS2_FAILURE);
@@ -472,21 +473,94 @@
         /* Start the invoker if stopped */
         sandesha2_utils_start_invoker_for_seq(env, conf_ctx, str_seq_id);
     }
-    printf("came11\n");
     rm_version = sandesha2_utils_get_rm_version(env, str_seq_id, storage_mgr);
     if(!rm_version)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Unable to find RM spec version");
         return AXIS2_FAILURE;
     }
-    printf("rm_version:%s\n", rm_version);
     reply_to_epr = axis2_msg_ctx_get_reply_to(msg_ctx, env);
+    to_epr = axis2_msg_ctx_get_to(msg_ctx, env);
     if(reply_to_epr)
         reply_to_addr = axis2_endpoint_ref_get_address(reply_to_epr, env);
-    if(!axis2_msg_ctx_get_server_side(msg_ctx, env) ||
-       !sandesha2_utils_is_single_channel(env, rm_version, reply_to_addr))
+    if(to_epr)
+        to_addr = axis2_endpoint_ref_get_address(to_epr, env);
+    printf("came16\n");
+    if(sandesha2_utils_is_single_channel(env, rm_version, reply_to_addr))
+    {
+        printf("came17\n");
+        /* Do nothing */
+    }
+    else if(sandesha2_utils_is_single_channel(env, rm_version, to_addr))
+    {
+        axis2_char_t *int_seq_id = NULL;
+        axis2_char_t *last_out_msg_no_str = NULL;
+        sandesha2_seq_ack_t *seq_ack = NULL;
+        axis2_char_t *out_seq_id = NULL;
+        seq_ack = (sandesha2_seq_ack_t*)sandesha2_msg_ctx_get_msg_part(
+            rm_msg_ctx, env, SANDESHA2_MSG_PART_SEQ_ACKNOWLEDGEMENT);
+        if(!seq_ack)
+        {
+            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] Sequence"
+                " acknowledgement part is null");
+            AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_REQD_MSG_PART_MISSING,
+                AXIS2_FAILURE);
+            return AXIS2_FAILURE;        
+        }
+        out_seq_id = sandesha2_identifier_get_identifier(
+            sandesha2_seq_ack_get_identifier(seq_ack, env), env);
+        if(!out_seq_id || 0 == AXIS2_STRLEN(out_seq_id))
+        {
+            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] OutSequenceId is"
+                " null");
+            AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_NULL_SEQ, AXIS2_FAILURE);
+            return AXIS2_FAILURE;        
+        }
+        int_seq_id = sandesha2_utils_get_seq_property(env, out_seq_id, 
+            SANDESHA2_SEQ_PROP_INTERNAL_SEQ_ID, storage_mgr);
+        last_out_msg_no_str = sandesha2_utils_get_seq_property(env, int_seq_id,
+            SANDESHA2_SEQ_PROP_LAST_OUT_MESSAGE_NO, storage_mgr);
+        if(last_out_msg_no_str)
+        {
+            long highest_out_msg_no = 0;
+            highest_out_msg_no = atol(last_out_msg_no_str);
+            if(highest_out_msg_no > 0)
+            {
+                sandesha2_next_msg_mgr_t *next_mgr = NULL;
+                sandesha2_next_msg_bean_t *find_bean = NULL;
+                axis2_array_list_t *found_list = NULL;
+                int i = 0, size = 0;
+                next_mgr = sandesha2_storage_mgr_get_next_msg_mgr(storage_mgr, env);
+                find_bean = sandesha2_next_msg_bean_create(env);
+                sandesha2_next_msg_bean_set_seq_id(find_bean, env, str_seq_id);
+                
+                found_list = sandesha2_next_msg_mgr_find(next_mgr, env, find_bean);
+                if(found_list)
+                    size = AXIS2_ARRAY_LIST_SIZE(found_list, env);
+                for(i = 0; i < size; i++)
+                {
+                    sandesha2_next_msg_bean_t *bean = AXIS2_ARRAY_LIST_GET(found_list, 
+                        env, i);
+                    if(bean)
+                    {
+                        axis2_char_t *key = NULL;
+                        axis2_char_t *seq_id = NULL;
+                        key = sandesha2_next_msg_bean_get_ref_msg_key(bean, env);
+                        if(key)
+                        {
+                            sandesha2_storage_mgr_remove_msg_ctx(storage_mgr, env, key);
+                        }
+                        seq_id = sandesha2_next_msg_bean_get_seq_id((sandesha2_rm_bean_t *) 
+                            bean, env);
+                        if(seq_id)
+                            sandesha2_next_msg_mgr_remove(next_mgr, env, seq_id);
+                    }
+                }
+            }
+        }
+    }
+    else
     {
-        printf("came13\n");
         sandesha2_app_msg_processor_send_ack_if_reqd(env, rm_msg_ctx, msgs_str, 
             storage_mgr);
     }

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?view=diff&rev=506275&r1=506274&r2=506275
==============================================================================
--- 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 Sun Feb 11 20:32:44 2007
@@ -324,7 +324,6 @@
         
         next_bean = sandesha2_next_msg_bean_create(env);
         sandesha2_next_msg_bean_set_seq_id(next_bean, env, offered_seq_id);
-        /*sandesha2_next_msg_bean_set_seq_id(next_bean, env, int_seq_id);*/
         sandesha2_next_msg_bean_set_next_msg_no_to_process(next_bean, env, 1);
         
         rm_spec_ver = sandesha2_msg_ctx_get_rm_spec_ver(rm_msg_ctx, env);
@@ -344,8 +343,10 @@
         ref_msg_store_key = sandesha2_create_seq_bean_get_ref_msg_store_key(
             create_seq_bean, env);
         if(ref_msg_store_key)
+        {
             ref_msg_ctx = sandesha2_storage_mgr_retrieve_msg_ctx(storage_mgr, 
                 env, ref_msg_store_key, conf_ctx);
+        }
         new_msg_store_key = axis2_uuid_gen(env);
         sandesha2_storage_mgr_store_msg_ctx(storage_mgr, env, new_msg_store_key, 
             ref_msg_ctx);
@@ -356,7 +357,7 @@
         if(polling_mode)
             sandesha2_utils_start_polling_mgr(env, conf_ctx);
         next_bean_mgr = sandesha2_storage_mgr_get_next_msg_mgr(storage_mgr,
-                        env);
+            env);
         sandesha2_next_msg_mgr_insert(next_bean_mgr, env, next_bean);
         
         spec_ver_bean = sandesha2_seq_property_bean_create_with_data(env, 

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=506275&r1=506274&r2=506275
==============================================================================
--- webservices/sandesha/trunk/c/src/util/terminate_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/terminate_mgr.c Sun Feb 11 20:32:44 2007
@@ -470,8 +470,8 @@
     create_seq_mgr = sandesha2_storage_mgr_get_create_seq_mgr(storage_mgr, env);
     
     out_seq_id = sandesha2_utils_get_seq_property(env, seq_id, 
-                        SANDESHA2_SEQ_PROP_OUT_SEQ_ID, storage_mgr);
-    if(AXIS2_TRUE == svr_side)
+        SANDESHA2_SEQ_PROP_OUT_SEQ_ID, storage_mgr);
+    if(!svr_side)
     {
         sandesha2_seq_property_bean_t *acks_to_bean = NULL;
         axis2_char_t *addr_ns_uri = NULL;

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=506275&r1=506274&r2=506275
==============================================================================
--- webservices/sandesha/trunk/c/src/workers/sender_worker.c (original)
+++ webservices/sandesha/trunk/c/src/workers/sender_worker.c Sun Feb 11 20:32:44 2007
@@ -471,7 +471,7 @@
         sandesha2_terminate_seq_t *terminate_seq = NULL;
         axis2_char_t *seq_id = NULL;
         axis2_conf_ctx_t *conf_ctx = NULL;
-        axis2_char_t *int_seq_id = NULL;
+        axis2_char_t *internal_seq_id = NULL;
         
         terminate_seq = (sandesha2_terminate_seq_t*)
                     sandesha2_msg_ctx_get_msg_part(rm_msg_ctx, env, 
@@ -480,11 +480,11 @@
                     sandesha2_terminate_seq_get_identifier(terminate_seq, 
                     env), env);
         conf_ctx = AXIS2_MSG_CTX_GET_CONF_CTX(msg_ctx, env);
-        int_seq_id = sandesha2_utils_get_seq_property(env, seq_id, 
+        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,
-                    int_seq_id, AXIS2_MSG_CTX_GET_SERVER_SIDE(msg_ctx, env), 
-                    storage_mgr);
+            internal_seq_id, AXIS2_MSG_CTX_GET_SERVER_SIDE(msg_ctx, env), 
+                storage_mgr);
     }
     else if(SANDESHA2_MSG_TYPE_TERMINATE_SEQ_RESPONSE == msg_type)
     {



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