Return-Path: Delivered-To: apmail-ws-sandesha-dev-archive@www.apache.org Received: (qmail 35002 invoked from network); 10 Oct 2008 10:26:18 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 10 Oct 2008 10:26:18 -0000 Received: (qmail 3655 invoked by uid 500); 10 Oct 2008 10:26:17 -0000 Delivered-To: apmail-ws-sandesha-dev-archive@ws.apache.org Received: (qmail 3471 invoked by uid 500); 10 Oct 2008 10:26:16 -0000 Mailing-List: contact sandesha-dev-help@ws.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list sandesha-dev@ws.apache.org Received: (qmail 3460 invoked by uid 500); 10 Oct 2008 10:26:16 -0000 Delivered-To: apmail-ws-sandesha-cvs@ws.apache.org Received: (qmail 3457 invoked by uid 99); 10 Oct 2008 10:26:16 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 10 Oct 2008 03:26:16 -0700 X-ASF-Spam-Status: No, hits=-1999.9 required=10.0 tests=ALL_TRUSTED,DNS_FROM_SECURITYSAGE X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 10 Oct 2008 10:25:19 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 2473D23888AF; Fri, 10 Oct 2008 03:25:55 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r703384 - in /webservices/sandesha/trunk/c: include/sandesha2_constants.h src/msgprocessors/app_msg_processor.c src/util/terminate_mgr.c Date: Fri, 10 Oct 2008 10:25:54 -0000 To: sandesha-cvs@ws.apache.org From: damitha@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20081010102555.2473D23888AF@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: damitha Date: Fri Oct 10 03:25:54 2008 New Revision: 703384 URL: http://svn.apache.org/viewvc?rev=703384&view=rev Log: Add code comments. Modified: webservices/sandesha/trunk/c/include/sandesha2_constants.h webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c webservices/sandesha/trunk/c/src/util/terminate_mgr.c Modified: webservices/sandesha/trunk/c/include/sandesha2_constants.h URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_constants.h?rev=703384&r1=703383&r2=703384&view=diff ============================================================================== --- webservices/sandesha/trunk/c/include/sandesha2_constants.h (original) +++ webservices/sandesha/trunk/c/include/sandesha2_constants.h Fri Oct 10 03:25:54 2008 @@ -326,7 +326,7 @@ #define SANDESHA2_SEQ_PROP_HIGHEST_IN_MSG_ID "HighestInMsgId" - #define SANDESHA2_SEQ_PROP_1_0_REPLAY "Replay1_0" + #define SANDESHA2_SEQ_PROP_REPLAY "Replay" #define SANDESHA2_SEQ_PROP_RELATED_MSG_ID "related_msg_id" 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=703384&r1=703383&r2=703384&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 03:25:54 2008 @@ -3212,12 +3212,15 @@ sandesha2_seq_property_bean_free(relates_to_bean, env); } + /* If mep is out-in we need to mark that this is replay mode. This is used in terminate + * manager. + */ if(!axutil_strcmp(mep, AXIS2_MEP_URI_OUT_IN)) { sandesha2_seq_property_bean_t *replay_bean = NULL; replay_bean = sandesha2_seq_property_bean_create_with_data(env, rms_sequence_id, - SANDESHA2_SEQ_PROP_1_0_REPLAY, NULL); + SANDESHA2_SEQ_PROP_REPLAY, NULL); sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, replay_bean); if(replay_bean) { @@ -3285,6 +3288,7 @@ status = AXIS2_FAILURE; } + /* Loop until timeout or exceed specified number of resends */ while(AXIS2_TRUE && transport_sender) { continue_sending = sandesha2_msg_retrans_adjuster_adjust_retrans(env, sender_bean, @@ -3360,7 +3364,7 @@ return status; } - else /* Not client side or twoway client side*/ + else /* Sending in twoway. This could be in client or server. Sending always happen within a thread.*/ { /* 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 @@ -3389,12 +3393,18 @@ { axis2_engine_free(engine, env); } - + + /* Store the application message context. This ensures that message context is stored before + * trying to write it into the wire at transport. When the sender thread start it retrieve + * the message context from the storage and send it. + */ sandesha2_storage_mgr_store_msg_ctx(storage_mgr, env, storage_key, app_msg_ctx, AXIS2_TRUE); - /* If not (single channel) spawn a thread and see whether acknowledgment has arrived through the - * sandesha2_sender_mgr_get_application_msg_to_send() function. If it has arrived exit from - * the thread.*/ + /* Start the application message sender. Here we spawn a thread and see whether acknowledgment + * has arrived through the sandesha2_sender_mgr_get_application_msg_to_send() function. If it + * has arrived exit from the thread. Otherwise retry until timeout or number of re-sends + * exceed the value specified in Policy. + */ status = sandesha2_app_msg_processor_start_application_msg_resender(env, conf_ctx, internal_sequence_id, msg_id, is_svr_side, retrans_interval, app_msg_ctx, seq); } 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=703384&r1=703383&r2=703384&view=diff ============================================================================== --- webservices/sandesha/trunk/c/src/util/terminate_mgr.c (original) +++ webservices/sandesha/trunk/c/src/util/terminate_mgr.c Fri Oct 10 03:25:54 2008 @@ -1082,8 +1082,9 @@ is_svr_side = sandesha2_msg_ctx_get_server_side(ack_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 */ replay_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, - rms_sequence_id, SANDESHA2_SEQ_PROP_1_0_REPLAY); + rms_sequence_id, SANDESHA2_SEQ_PROP_REPLAY); if(replay_bean) { AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2] replay on"); @@ -1099,6 +1100,9 @@ } else 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) { axiom_soap_envelope_t *res_envelope = NULL; @@ -1308,8 +1312,6 @@ axis2_msg_ctx_set_soap_envelope(response_msg_ctx, env, response_envelope); - /*axis2_msg_ctx_set_server_side(response_msg_ctx, env, AXIS2_TRUE);*/ - axis2_msg_ctx_set_op_ctx(response_msg_ctx, env, axis2_msg_ctx_get_op_ctx(msg_ctx, env)); axis2_msg_ctx_set_svc_ctx(response_msg_ctx, env, axis2_msg_ctx_get_svc_ctx(msg_ctx, env)); axis2_msg_ctx_set_svc_grp_ctx(response_msg_ctx, env, axis2_msg_ctx_get_svc_grp_ctx(msg_ctx, env)); @@ -1330,6 +1332,7 @@ axis2_engine_free(engine, env); } + /* We are not interested about the message context after now. So pause it. */ axis2_msg_ctx_set_paused(response_msg_ctx, env, AXIS2_FALSE); axis2_msg_ctx_free(response_msg_ctx, env); --------------------------------------------------------------------- To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org For additional commands, e-mail: sandesha-dev-help@ws.apache.org