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);
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.