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 sa...@apache.org on 2006/07/21 08:00:43 UTC
svn commit: r424193 - in /webservices/sandesha/trunk/c:
include/sandesha2/sandesha2_spec_specific_consts.h
include/sandesha2_ack_mgr.h src/util/ack_mgr.c src/util/fault_mgr.c
src/util/terminate_mgr.c src/util/utils.c
Author: sahan
Date: Thu Jul 20 23:00:42 2006
New Revision: 424193
URL: http://svn.apache.org/viewvc?rev=424193&view=rev
Log:
Adding piggyback func to ack_mgr
Modified:
webservices/sandesha/trunk/c/include/sandesha2/sandesha2_spec_specific_consts.h
webservices/sandesha/trunk/c/include/sandesha2_ack_mgr.h
webservices/sandesha/trunk/c/src/util/ack_mgr.c
webservices/sandesha/trunk/c/src/util/fault_mgr.c
webservices/sandesha/trunk/c/src/util/terminate_mgr.c
webservices/sandesha/trunk/c/src/util/utils.c
Modified: webservices/sandesha/trunk/c/include/sandesha2/sandesha2_spec_specific_consts.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2/sandesha2_spec_specific_consts.h?rev=424193&r1=424192&r2=424193&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2/sandesha2_spec_specific_consts.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2/sandesha2_spec_specific_consts.h Thu Jul 20 23:00:42 2006
@@ -114,7 +114,7 @@
const axis2_env_t *env,
axis2_char_t *addr_ns_val);
-AXIS2_EXTERN axis2_bool_t AXIS2_CALL
+AXIS2_EXTERN axis2_bool_t AXIS2_CALL
sandesha2_spec_specific_consts_is_term_seq_res_reqd(
const axis2_env_t *env,
axis2_char_t *spec_version);
Modified: webservices/sandesha/trunk/c/include/sandesha2_ack_mgr.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_ack_mgr.h?rev=424193&r1=424192&r2=424193&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_ack_mgr.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_ack_mgr.h Thu Jul 20 23:00:42 2006
@@ -67,6 +67,11 @@
axis2_array_list_t *ack_ranges,
long last_msg_no);
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+sandesha2_ack_mgr_piggyback_acks_if_present(const axis2_env_t *env,
+ sandesha2_msg_ctx_t *rm_msg_ctx,
+ sandesha2_storage_mgr_t *storage_mgr);
+
/** @} */
#ifdef __cplusplus
}
Modified: webservices/sandesha/trunk/c/src/util/ack_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/ack_mgr.c?rev=424193&r1=424192&r2=424193&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/ack_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/ack_mgr.c Thu Jul 20 23:00:42 2006
@@ -26,6 +26,8 @@
#include <axis2_addr.h>
#include <axis2_property.h>
#include <axis2_array_list.h>
+#include <sandesha2_msg_init.h>
+#include <sandesha2/sandesha2_seq_ack.h>
AXIS2_EXTERN sandesha2_msg_ctx_t *AXIS2_CALL
sandesha2_ack_mgr_generate_ack_msg(const axis2_env_t *env,
@@ -101,7 +103,7 @@
AXIS2_MSG_CTX_SET_PROPERTY(ack_msg_ctx, env,
SANDESHA2_APPLICATION_PROCESSING_DONE, property,
AXIS2_FALSE);
- ack_rm_msg = sandesha2_msg_initilizer_init_msg(env, ack_msg_ctx);
+ ack_rm_msg = sandesha2_msg_init_init_msg(env, ack_msg_ctx);
SANDESHA2_MSG_CTX_SET_RM_NS_VAL(ack_rm_msg, env,
SANDESHA2_MSG_CTX_GET_RM_NS_VAL(ref_rm_msg, env));
AXIS2_MSG_CTX_SET_WSA_MESSAGE_ID(ack_msg_ctx, env, axis2_uuid_gen(env));
@@ -231,7 +233,7 @@
trans_out = sandesha2_utils_get_transport_out(env);
AXIS2_MSG_CTX_SET_TRANSPORT_OUT_DESC(ack_msg_ctx, env, trans_out);
- ret_rm_msg = sandesha2_msg_initilizer_init_msg(env, ack_msg_ctx);
+ ret_rm_msg = sandesha2_msg_init_init_msg(env, ack_msg_ctx);
sandesha2_utils_start_invoker_for_seq(env, conf_ctx, seq_id);
AXIS2_MSG_CTX_PAUSE(ref_msg, env);
return ret_rm_msg;
@@ -299,8 +301,6 @@
axis2_char_t *seq_id,
sandesha2_seq_property_mgr_t *seq_prop_mgr)
{
- sandesha2_seq_property_bean_t *internal_seq_bean = NULL;
- axis2_char_t *internal_seq_id = NULL;
sandesha2_seq_property_bean_t *completed_msgs_bean = NULL;
axis2_array_list_t *completed_msg_list = NULL;
@@ -359,4 +359,83 @@
start = SANDESHA2_ACK_RANGE_GET_UPPER_VALUE(ack_range, env) + 1;
}
return AXIS2_FALSE;
+}
+
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+sandesha2_ack_mgr_piggyback_acks_if_present(const axis2_env_t *env,
+ sandesha2_msg_ctx_t *rm_msg_ctx,
+ sandesha2_storage_mgr_t *storage_mgr)
+{
+ axis2_conf_ctx_t *conf_ctx = NULL;
+ sandesha2_sender_mgr_t *retrans_mgr = NULL;
+ sandesha2_seq_property_mgr_t *seq_prop_mgr = NULL;
+ sandesha2_sender_bean_t *find_bean = NULL;
+ axis2_char_t *to_str = NULL;
+ axis2_msg_ctx_t *msg_ctx = NULL;
+ axis2_array_list_t *found_list = NULL;
+ int i = 0;
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error, rm_msg_ctx, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK(env->error, storage_mgr, AXIS2_FAILURE);
+
+ msg_ctx = SANDESHA2_MSG_CTX_GET_MSG_CTX(rm_msg_ctx, env);
+ conf_ctx = AXIS2_MSG_CTX_GET_CONF_CTX(msg_ctx, env);
+ retrans_mgr = SANDESHA2_STORAGE_MGR_GET_RETRANS_MGR(storage_mgr, env);
+ seq_prop_mgr = SANDESHA2_STORAGE_MGR_GET_SEQ_PROPERTY_MGR(storage_mgr, env);
+
+ find_bean = sandesha2_sender_bean_create(env);
+ SANDESHA2_SENDER_BEAN_SET_MSG_TYPE(find_bean, env, SANDESHA2_MSG_TYPE_ACK);
+ SANDESHA2_SENDER_BEAN_SET_SEND(find_bean, env, AXIS2_TRUE);
+ SANDESHA2_SENDER_BEAN_SET_RESEND(find_bean, env, AXIS2_FALSE);
+
+ to_str = AXIS2_ENDPOINT_REF_GET_ADDRESS(SANDESHA2_MSG_CTX_GET_TO(rm_msg_ctx,
+ env), env);
+
+ found_list = SANDESHA2_SENDER_MGR_FIND_BY_SENDER_BEAN(retrans_mgr, env,
+ find_bean);
+ for(i = 0; i < AXIS2_ARRAY_LIST_SIZE(found_list, env); i++)
+ {
+ sandesha2_sender_bean_t *sender_bean = NULL;
+ long timenow = 0;
+
+
+ timenow = sandesha2_utils_get_current_time_in_millis(env);
+ sender_bean = AXIS2_ARRAY_LIST_GET(found_list, env, i);
+
+ if(SANDESHA2_SENDER_BEAN_GET_TIME_TO_SEND(sender_bean, env) > timenow)
+ {
+ axis2_msg_ctx_t *msg_ctx1 = NULL;
+ axis2_char_t *to = NULL;
+ sandesha2_msg_ctx_t *ack_rm_msg = NULL;
+ sandesha2_seq_ack_t *seq_ack = NULL;
+
+ msg_ctx1 = SANDESHA2_STORAGE_MGR_RETRIEVE_MSG_CTX(storage_mgr, env,
+ SANDESHA2_SENDER_BEAN_GET_MSG_CONTEXT_REF_KEY(
+ sender_bean, env), conf_ctx);
+ to = AXIS2_ENDPOINT_REF_GET_ADDRESS(AXIS2_MSG_CTX_GET_TO(msg_ctx1,
+ env), env);
+ if(0 == AXIS2_STRCMP(to, to_str))
+ continue;
+ SANDESHA2_SENDER_MGR_REMOVE(retrans_mgr, env,
+ SANDESHA2_SENDER_BEAN_GET_MSG_ID(sender_bean, env));
+ ack_rm_msg = sandesha2_msg_init_init_msg(env, msg_ctx1);
+ if(SANDESHA2_MSG_TYPE_ACK != SANDESHA2_MSG_CTX_GET_TYPE(ack_rm_msg,
+ env))
+ {
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] Invalid"
+ " ack message entry");
+ return AXIS2_FAILURE;
+ }
+ 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_PARM(rm_msg_ctx, env,
+ SANDESHA2_MSG_PART_SEQ_ACKNOWLEDGEMENT, seq_ack);
+ SANDESHA2_MSG_CTX_ADD_SOAP_ENVELOPE(rm_msg_ctx, env);
+ break;
+ }
+
+ }
+ return AXIS2_SUCCESS;
}
Modified: webservices/sandesha/trunk/c/src/util/fault_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/fault_mgr.c?rev=424193&r1=424192&r2=424193&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/fault_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/fault_mgr.c Thu Jul 20 23:00:42 2006
@@ -25,6 +25,8 @@
#include <sandesha2/sandesha2_identifier.h>
#include <sandesha2/sandesha2_msg_number.h>
#include <sandesha2/sandesha2_utils.h>
+#include <sandesha2/sandesha2_spec_specific_consts.h>
+#include <sandesha2_msg_init.h>
#include <stdio.h>
@@ -177,7 +179,7 @@
AXIS2_PARAM_CHECK(env->error, create_seq_msg, NULL);
AXIS2_PARAM_CHECK(env->error, storage_man, NULL);
- rm_msg_ctx = sandesha2_msg_initilizer_init_msg(env, create_seq_msg);
+ rm_msg_ctx = sandesha2_msg_init_init_msg(env, create_seq_msg);
create_seq = (sandesha2_create_seq_t*)SANDESHA2_MSG_CTX_GET_MSG_PART(
rm_msg_ctx, env, SANDESHA2_MSG_PART_CREATE_SEQ);
@@ -597,7 +599,7 @@
acks_to_str = SANDESHA2_SEQ_PROPERTY_BEAN_GET_VALUE(acks_to_bean,
env);
}
- anon_uri = sandesha2_spec_specific_consts_get_addr_anon_uri(env, addr_ns_uri);
+ anon_uri = sandesha2_spec_specific_consts_get_anon_uri(env, addr_ns_uri);
if(NULL!= acks_to_str && 0 != AXIS2_STRCMP(acks_to_str, anon_uri))
AXIS2_MSG_CTX_SET_TO(fault_msg_ctx, env, axis2_endpoint_ref_create(env,
acks_to_str));
@@ -606,6 +608,6 @@
sandesha2_soap_env_creator_add_soap_env(env, fault_msg_ctx, soap_ver,
fault_data, SANDESHA2_MSG_CTX_GET_RM_NS_VAL(rm_msg_ctx,
env));
- fault_rm_msg = sandesha2_msg_initilizer_init_msg(env, fault_msg_ctx);
+ fault_rm_msg = sandesha2_msg_init_init_msg(env, fault_msg_ctx);
return fault_rm_msg;
}
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=424193&r1=424192&r2=424193&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/terminate_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/terminate_mgr.c Thu Jul 20 23:00:42 2006
@@ -27,6 +27,7 @@
#include <axis2_property.h>
#include <axis2_array_list.h>
#include <axis2_engine.h>
+#include <sandesha2_msg_creator.h>
axis2_hash_t *sandesha2_terminate_mgr_rcv_side_clean_map = NULL;
Modified: webservices/sandesha/trunk/c/src/util/utils.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/utils.c?rev=424193&r1=424192&r2=424193&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/utils.c (original)
+++ webservices/sandesha/trunk/c/src/util/utils.c Thu Jul 20 23:00:42 2006
@@ -459,7 +459,8 @@
}
else
{
- ret = axis2_strcat(SANDESHA2_INTERNAL_SEQ_PREFIX, ":", to, ":", seq_key, NULL);
+ ret = axis2_strcat(env, SANDESHA2_INTERNAL_SEQ_PREFIX, ":", to, ":",
+ seq_key, NULL);
return ret;
}
return NULL;
@@ -670,7 +671,7 @@
while(' ' == *tmp)
tmp++;
- tmp2 = orig_string[AXIS2_STRLEN(orig_string)];
+ tmp2 = orig_string + AXIS2_STRLEN(orig_string);
while(' ' == *tmp2 && tmp2 != orig_string)
tmp2--;
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org