You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by da...@apache.org on 2007/02/16 11:09:31 UTC
svn commit: r508360 - in /webservices/sandesha/trunk/c:
samples/rm_echo_single_1_1/ src/msgprocessors/ src/util/ src/workers/
Author: damitha
Date: Fri Feb 16 02:09:30 2007
New Revision: 508360
URL: http://svn.apache.org/viewvc?view=rev&rev=508360
Log:
in RM 1.0 two-way single channel server does not clean the sending side data
after sending the terminate sequence message. Fixed this.
Modified:
webservices/sandesha/trunk/c/samples/rm_echo_single_1_1/rm_echo_single_1_1.c
webservices/sandesha/trunk/c/src/msgprocessors/make_connection_msg_processor.c
webservices/sandesha/trunk/c/src/msgprocessors/terminate_seq_msg_processor.c
webservices/sandesha/trunk/c/src/util/sandesha2_utils.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_single_1_1/rm_echo_single_1_1.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/samples/rm_echo_single_1_1/rm_echo_single_1_1.c?view=diff&rev=508360&r1=508359&r2=508360
==============================================================================
--- webservices/sandesha/trunk/c/samples/rm_echo_single_1_1/rm_echo_single_1_1.c (original)
+++ webservices/sandesha/trunk/c/samples/rm_echo_single_1_1/rm_echo_single_1_1.c Fri Feb 16 02:09:30 2007
@@ -181,7 +181,7 @@
property);
}
- payload = build_om_payload_for_echo_svc(env, "echo1", "sequence1");
+ /*payload = build_om_payload_for_echo_svc(env, "echo1", "sequence1");
status = AXIS2_SVC_CLIENT_SEND_ROBUST(svc_client, env, payload);
if(status)
printf("\necho client single channel invoke SUCCESSFUL!\n");
@@ -194,19 +194,19 @@
printf("\necho client single channel invoke SUCCESSFUL!\n");
payload = NULL;
AXIS2_SLEEP(SANDESHA2_MAX_COUNT);
-
+*/
payload = build_om_payload_for_echo_svc(env, "echo3", "sequence1");
status = AXIS2_SVC_CLIENT_SEND_ROBUST(svc_client, env, payload);
if(status)
printf("\necho client single channel invoke SUCCESSFUL!\n");
payload = NULL;
- AXIS2_SLEEP(SANDESHA2_MAX_COUNT);
+ AXIS2_SLEEP(2 * SANDESHA2_MAX_COUNT);
sandesha2_client_terminate_seq_with_svc_client_and_seq_key(env, svc_client,
"sequence1");
/*sandesha2_client_terminate_seq_with_svc_client(env, svc_client, callback4,
listener_manager);*/
- AXIS2_SLEEP(2 * SANDESHA2_MAX_COUNT);
+ AXIS2_SLEEP(4 * SANDESHA2_MAX_COUNT);
if (svc_client)
{
/*AXIS2_SVC_CLIENT_FREE(svc_client, env);*/
Modified: webservices/sandesha/trunk/c/src/msgprocessors/make_connection_msg_processor.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/msgprocessors/make_connection_msg_processor.c?view=diff&rev=508360&r1=508359&r2=508360
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/make_connection_msg_processor.c (original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/make_connection_msg_processor.c Fri Feb 16 02:09:30 2007
@@ -429,7 +429,7 @@
int_seq_id, AXIS2_MSG_CTX_GET_SERVER_SIDE(msg_ctx, env),
storage_mgr);
}
- else if(SANDESHA2_MSG_TYPE_TERMINATE_SEQ_RESPONSE == msg_type)
+ /*else if(SANDESHA2_MSG_TYPE_TERMINATE_SEQ_RESPONSE == msg_type)
{
sandesha2_terminate_seq_res_t *terminate_seq_res = NULL;
axis2_char_t *seq_id = NULL;
@@ -445,7 +445,7 @@
sandesha2_terminate_mgr_terminate_sending_side(env, conf_ctx,
seq_id, AXIS2_MSG_CTX_GET_SERVER_SIDE(msg_ctx, env),
storage_mgr);
- }
+ }*/
axis2_msg_ctx_set_paused(msg_ctx, env, AXIS2_TRUE);
AXIS2_LOG_INFO(env->log, "[sandesha2] EXIT sandesha2_make_connection_msg_" \
"processor_process_in_msg .........");
Modified: webservices/sandesha/trunk/c/src/msgprocessors/terminate_seq_msg_processor.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/msgprocessors/terminate_seq_msg_processor.c?view=diff&rev=508360&r1=508359&r2=508360
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/terminate_seq_msg_processor.c (original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/terminate_seq_msg_processor.c Fri Feb 16 02:09:30 2007
@@ -374,15 +374,18 @@
msg_ctx = sandesha2_msg_ctx_get_msg_ctx(rm_msg_ctx, env);
out_msg_ctx = axis2_core_utils_create_out_msg_ctx(env, msg_ctx);
out_rm_msg = sandesha2_msg_creator_create_terminate_seq_res_msg(env,
- rm_msg_ctx, out_msg_ctx, storage_mgr);
+ rm_msg_ctx, out_msg_ctx, storage_mgr);
ack_rm_msg = sandesha2_ack_mgr_generate_ack_msg(env, rm_msg_ctx, seq_id,
- storage_mgr);
- 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_part(out_rm_msg, env,
- SANDESHA2_MSG_PART_SEQ_ACKNOWLEDGEMENT,
- (sandesha2_iom_rm_part_t*)seq_ack);
+ storage_mgr);
+ if(ack_rm_msg)
+ {
+ 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_part(out_rm_msg, env,
+ SANDESHA2_MSG_PART_SEQ_ACKNOWLEDGEMENT,
+ (sandesha2_iom_rm_part_t*)seq_ack);
+ }
sandesha2_msg_ctx_add_soap_envelope(out_rm_msg, env);
sandesha2_msg_ctx_set_flow(out_rm_msg, env, AXIS2_OUT_FLOW);
@@ -401,11 +404,9 @@
trans_out = sandesha2_utils_get_transport_out(env);
AXIS2_MSG_CTX_SET_TRANSPORT_OUT_DESC(out_msg_ctx, env, trans_out);
-
key = axis2_uuid_gen(env);
term_res_bean = sandesha2_sender_bean_create(env);
sandesha2_sender_bean_set_msg_ctx_ref_key(term_res_bean, env, key);
- /*AXIS2_MSG_CTX_SET_KEEP_ALIVE(msg_ctx, env, AXIS2_TRUE);*/
property = axis2_property_create_with_args(env, 0, 0, 0, key);
axis2_msg_ctx_set_property(out_msg_ctx, env, SANDESHA2_MESSAGE_STORE_KEY,
property, AXIS2_FALSE);
@@ -413,10 +414,10 @@
/* TODO: refine the terminate delay */
sandesha2_sender_bean_set_time_to_send(term_res_bean, env,
- sandesha2_utils_get_current_time_in_millis(env) +
- SANDESHA2_TERMINATE_DELAY);
+ sandesha2_utils_get_current_time_in_millis(env) +
+ SANDESHA2_TERMINATE_DELAY);
sandesha2_sender_bean_set_msg_id(term_res_bean, env,
- (axis2_char_t *) AXIS2_MSG_CTX_GET_MSG_ID(out_msg_ctx, env));
+ (axis2_char_t *) AXIS2_MSG_CTX_GET_MSG_ID(out_msg_ctx, env));
sandesha2_sender_bean_set_send(term_res_bean, env, AXIS2_TRUE);
property = axis2_property_create_with_args(env, 0, 0, 0,
@@ -433,8 +434,7 @@
AXIS2_ENGINE_SEND(engine, env, out_msg_ctx);
addr_ns_uri = sandesha2_utils_get_seq_property(env, seq_id,
- SANDESHA2_SEQ_PROP_ADDRESSING_NAMESPACE_VALUE,
- storage_mgr);
+ SANDESHA2_SEQ_PROP_ADDRESSING_NAMESPACE_VALUE, storage_mgr);
anon_uri = sandesha2_spec_specific_consts_get_anon_uri(env, addr_ns_uri);
to_epr = AXIS2_MSG_CTX_GET_TO(msg_ctx, env);
@@ -450,7 +450,7 @@
}
AXIS2_CTX_SET_PROPERTY(ctx, env, AXIS2_RESPONSE_WRITTEN, property,
- AXIS2_FALSE);
+ AXIS2_FALSE);
return AXIS2_SUCCESS;
}
Modified: webservices/sandesha/trunk/c/src/util/sandesha2_utils.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/sandesha2_utils.c?view=diff&rev=508360&r1=508359&r2=508360
==============================================================================
--- webservices/sandesha/trunk/c/src/util/sandesha2_utils.c (original)
+++ webservices/sandesha/trunk/c/src/util/sandesha2_utils.c Fri Feb 16 02:09:30 2007
@@ -1200,7 +1200,7 @@
{
axis2_char_t str_msg_no[32];
sprintf(str_msg_no, "%ld", temp_msg_no);
- if(!AXIS2_ARRAY_LIST_CONTAINS(acked_msgs_list, env,
+ if(!sandesha2_utils_array_list_contains(env, acked_msgs_list,
str_msg_no))
{
return AXIS2_FALSE;
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=508360&r1=508359&r2=508360
==============================================================================
--- webservices/sandesha/trunk/c/src/util/terminate_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/terminate_mgr.c Fri Feb 16 02:09:30 2007
@@ -16,6 +16,7 @@
#include <sandesha2_utils.h>
#include <sandesha2_terminate_mgr.h>
+#include <sandesha2_terminate_seq.h>
#include <sandesha2_constants.h>
#include <sandesha2_property_bean.h>
#include <sandesha2_seq_property_bean.h>
@@ -689,6 +690,24 @@
AXIS2_FALSE);
engine = axis2_engine_create(env, conf_ctx);
AXIS2_ENGINE_SEND(engine, env, msg_ctx1);
+ /* Clean sending side data */
+ {
+ sandesha2_terminate_seq_t *terminate_seq = NULL;
+ axis2_char_t *seq_id = NULL;
+ axis2_char_t *internal_seq_id = NULL;
+
+ terminate_seq = (sandesha2_terminate_seq_t*)
+ sandesha2_msg_ctx_get_msg_part(terminate_rm_msg, env,
+ SANDESHA2_MSG_PART_TERMINATE_SEQ);
+ seq_id = sandesha2_identifier_get_identifier(
+ sandesha2_terminate_seq_get_identifier(terminate_seq,
+ env), env);
+ 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,
+ internal_seq_id, axis2_msg_ctx_get_server_side(msg_ctx1, env),
+ storage_mgr);
+ }
return AXIS2_SUCCESS;
}
key = axis2_uuid_gen(env);
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=508360&r1=508359&r2=508360
==============================================================================
--- webservices/sandesha/trunk/c/src/workers/sender_worker.c (original)
+++ webservices/sandesha/trunk/c/src/workers/sender_worker.c Fri Feb 16 02:09:30 2007
@@ -483,7 +483,7 @@
internal_seq_id, axis2_msg_ctx_get_server_side(msg_ctx, env),
storage_mgr);
}
- else if(SANDESHA2_MSG_TYPE_TERMINATE_SEQ_RESPONSE == msg_type)
+ /*else if(SANDESHA2_MSG_TYPE_TERMINATE_SEQ_RESPONSE == msg_type)
{
sandesha2_terminate_seq_res_t *terminate_seq_res = NULL;
axis2_char_t *seq_id = NULL;
@@ -499,7 +499,7 @@
sandesha2_terminate_mgr_terminate_sending_side(env, conf_ctx,
seq_id, axis2_msg_ctx_get_server_side(msg_ctx, env),
storage_mgr);
- }
+ }*/
property = axis2_msg_ctx_get_property(msg_ctx, env,
SANDESHA2_WITHIN_TRANSACTION, AXIS2_FALSE);
if(property)
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org