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 2008/10/10 19:29:31 UTC

svn commit: r703526 - /webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c

Author: damitha
Date: Fri Oct 10 10:29:31 2008
New Revision: 703526

URL: http://svn.apache.org/viewvc?rev=703526&view=rev
Log:
Add code comments

Modified:
    webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c

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?rev=703526&r1=703525&r2=703526&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c (original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c Fri Oct 10 10:29:31 2008
@@ -2108,7 +2108,8 @@
     }
 
     /* If this is a one way message and if use_separate_listener property is set to true we need to 
-     * start a listener manager so that create sequence response could be listened at
+     * start a listener manager so that create sequence response could be listened at. Note that
+     * this mechanism need to be improved later as currently there is no way to stop the listner.
      */
     temp_op_ctx = axis2_msg_ctx_get_op_ctx(msg_ctx, env);
     if(temp_op_ctx)
@@ -2254,6 +2255,9 @@
         axis2_msg_ctx_set_reply_to(create_seq_msg_ctx, env, cs_epr);
     }
 
+    /* Create and store create sequence sender bean. This will be used later to find and retrieve
+     * create sequence message context stored in the storage.
+     */
     create_sequence_sender_bean = sandesha2_sender_bean_create(env);
     sandesha2_sender_bean_set_msg_ctx_ref_key(create_sequence_sender_bean, env, create_sequence_msg_store_key);
     millisecs = sandesha2_utils_get_current_time_in_millis(env);
@@ -2264,6 +2268,8 @@
     sandesha2_sender_bean_set_send(create_sequence_sender_bean, env, AXIS2_TRUE);
     sandesha2_sender_bean_set_msg_type(create_sequence_sender_bean, env, SANDESHA2_MSG_TYPE_CREATE_SEQ);
     sandesha2_sender_mgr_insert(sender_mgr, env, create_sequence_sender_bean);
+
+    /* Store the create sequence message context in the storage */
     sandesha2_storage_mgr_store_msg_ctx(storage_mgr, env, create_sequence_msg_store_key, create_seq_msg_ctx, AXIS2_TRUE);
     AXIS2_FREE(env->allocator, create_sequence_msg_store_key);
 
@@ -2275,8 +2281,6 @@
         sandesha2_msg_ctx_free(create_seq_rm_msg_ctx, env);
     }
 
-
-    /*property_bean = sandesha2_utils_get_property_bean(env, axis2_conf_ctx_get_conf(conf_ctx, env));*/
     retrans_interval = sandesha2_property_bean_get_retrans_interval(property_bean, env); 
 
     create_seq_op = axis2_msg_ctx_get_op(create_seq_msg_ctx, env);
@@ -2399,7 +2403,7 @@
             axis2_msg_ctx_free(create_seq_msg_ctx, env);
         }
     }
-    else
+    else /* Dual channel */
     {
         /* This is actually a trick that get the msg_ctx traversed through all the out phases.
          * Once all the phases are passed it will get hit into the false sandesha2 transport
@@ -2427,9 +2431,13 @@
             axis2_engine_free(engine, env);
         }
 
-        rms_sequence_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, 
-                internal_sequence_id, SANDESHA2_SEQUENCE_PROPERTY_RMS_SEQ_ID);
-        /* Dual channel */
+        /*rms_sequence_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, 
+                internal_sequence_id, SANDESHA2_SEQUENCE_PROPERTY_RMS_SEQ_ID);*/
+
+        /* In dual channel create sequence message is sent in a separate thread. This thread will
+         * run until create sequence response message is received or timeout or re-sends
+         * exceed the maximum number of re-sends as specified in Policy.
+         */
         status = sandesha2_app_msg_processor_start_create_seq_msg_resender(env, conf_ctx, 
                 internal_sequence_id, msg_id, is_svr_side, retrans_interval, 
                 create_sequence_sender_bean, create_seq_msg_ctx);
@@ -3539,6 +3547,7 @@
         AXIS2_TRUE);
     svc = axis2_msg_ctx_get_svc(app_msg_ctx, env);
 
+    /* Loop until create sequence response arrive */
     while(!rms_sequence_bean)
     {
         axis2_bool_t continue_sending = AXIS2_TRUE;
@@ -3575,7 +3584,7 @@
         sandesha2_seq_property_bean_free(rms_sequence_bean, env);
     }
 
-    /* Store the outgoing sequence id using the message id of the applicatoin message. This is
+    /* Store the outgoing sequence id using the message id of the application message. This is
      * used in send_ack_if_reqd() function to determine the outgoing sequence id. Note that 
      * this is useful only in the application client side.
      */
@@ -3604,17 +3613,22 @@
     identifier = sandesha2_identifier_create(env, rm_ns_val);
     sandesha2_identifier_set_identifier(identifier, env, rms_sequence_id);
     sandesha2_seq_set_identifier(sequence, env, identifier);
+    /* Add the sequence element into the soap envelope */
     sandesha2_msg_ctx_set_sequence(rm_msg_ctx, env, sequence);
     sandesha2_msg_ctx_add_soap_envelope(rm_msg_ctx, env);
         
     /* TODO add_ack_requested */
 
+    /* Add the acknowledgement element into soap envelope */
     if(!sandesha2_util_is_ack_already_piggybacked(env, rm_msg_ctx))
     {
         sandesha2_ack_mgr_piggyback_acks_if_present(env, rms_sequence_id, rm_msg_ctx, storage_mgr, 
                 seq_prop_mgr, sender_mgr);
     }
 
+    /* Resend the application message until timeout or exceed the maximum number of re-sends as
+     * specified by Policy.
+     */
     while(AXIS2_TRUE)
     {
         sender_bean = sandesha2_sender_mgr_get_application_msg_to_send(sender_mgr, env, 
@@ -3804,15 +3818,6 @@
     if(successfully_sent)
     {
         AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2] Application message successfully sent");
-
-        if(!axis2_msg_ctx_get_server_side(app_msg_ctx, env))
-        {
-            /*status = sandesha2_app_msg_processor_process_app_msg_response(env, app_msg_ctx, storage_mgr);
-            if(AXIS2_SUCCESS != status)
-            {
-                return status;
-            }*/
-        }
     }
 
     if(bean1)



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