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 2007/02/12 05:32:45 UTC
svn commit: r506275 - in /webservices/sandesha/trunk/c: samples/rm_echo_1_0/
samples/rm_echo_single_1_0/ src/msgprocessors/ src/util/ src/workers/
Author: damitha
Date: Sun Feb 11 20:32:44 2007
New Revision: 506275
URL: http://svn.apache.org/viewvc?view=rev&rev=506275
Log:
rm 1.0 single channel. Fixed some small bugs
Modified:
webservices/sandesha/trunk/c/samples/rm_echo_1_0/rm_echo.c
webservices/sandesha/trunk/c/samples/rm_echo_single_1_0/rm_echo_single.c
webservices/sandesha/trunk/c/src/msgprocessors/ack_msg_processor.c
webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c
webservices/sandesha/trunk/c/src/msgprocessors/create_seq_res_msg_processor.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_1_0/rm_echo.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/samples/rm_echo_1_0/rm_echo.c?view=diff&rev=506275&r1=506274&r2=506275
==============================================================================
--- webservices/sandesha/trunk/c/samples/rm_echo_1_0/rm_echo.c (original)
+++ webservices/sandesha/trunk/c/samples/rm_echo_1_0/rm_echo.c Sun Feb 11 20:32:44 2007
@@ -29,7 +29,7 @@
#include <sandesha2_client.h>
#include <platforms/axis2_platform_auto_sense.h>
-#define SANDESHA2_MAX_COUNT 20
+#define SANDESHA2_MAX_COUNT 40
/* on_complete callback function */
axis2_status_t AXIS2_CALL
@@ -195,7 +195,7 @@
sandesha2_client_send_non_blocking(env, svc_client, options, NULL, callback3,
payload, listener_manager);
wait_on_callback(env, callback3);
-
+ printf("came echo\n");
AXIS2_SLEEP(SANDESHA2_MAX_COUNT);
if (svc_client)
{
Modified: webservices/sandesha/trunk/c/samples/rm_echo_single_1_0/rm_echo_single.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/samples/rm_echo_single_1_0/rm_echo_single.c?view=diff&rev=506275&r1=506274&r2=506275
==============================================================================
--- webservices/sandesha/trunk/c/samples/rm_echo_single_1_0/rm_echo_single.c (original)
+++ webservices/sandesha/trunk/c/samples/rm_echo_single_1_0/rm_echo_single.c Sun Feb 11 20:32:44 2007
@@ -201,6 +201,7 @@
payload = NULL;
AXIS2_SLEEP(3 * SANDESHA2_MAX_COUNT);
+ sleep(30);
if (svc_client)
{
/*AXIS2_SVC_CLIENT_FREE(svc_client, env);*/
Modified: webservices/sandesha/trunk/c/src/msgprocessors/ack_msg_processor.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/msgprocessors/ack_msg_processor.c?view=diff&rev=506275&r1=506274&r2=506275
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/ack_msg_processor.c (original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/ack_msg_processor.c Sun Feb 11 20:32:44 2007
@@ -16,6 +16,8 @@
#include <sandesha2_ack_msg_processor.h>
#include <sandesha2_seq_property_mgr.h>
#include <sandesha2_seq_property_bean.h>
+#include <sandesha2_seq.h>
+#include <sandesha2_next_msg_mgr.h>
#include <sandesha2_storage_mgr.h>
#include <sandesha2_fault_mgr.h>
#include <sandesha2_constants.h>
@@ -173,7 +175,7 @@
"[sandesha2] Entry:sandesha2_ack_msg_processor_process_in_msg");
seq_ack = (sandesha2_seq_ack_t*)sandesha2_msg_ctx_get_msg_part(rm_msg_ctx,
- env, SANDESHA2_MSG_PART_SEQ_ACKNOWLEDGEMENT);
+ env, SANDESHA2_MSG_PART_SEQ_ACKNOWLEDGEMENT);
if(!seq_ack)
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] Sequence"
@@ -341,8 +343,31 @@
completed = sandesha2_ack_mgr_verify_seq_completion(env,
ack_range_list, highest_out_msg_no);
if(completed)
+ {
+ axis2_char_t *rm_version = NULL;
+ const axis2_char_t *to_addr = NULL;
+ axis2_endpoint_ref_t *to_epr = NULL;
+ /*sandesha2_seq_t *seq = NULL;
+ axis2_char_t *incoming_seq_id = NULL;
+ seq = (sandesha2_seq_t*)sandesha2_msg_ctx_get_msg_part(
+ rm_msg_ctx, env, SANDESHA2_MSG_PART_SEQ);
+ if(seq)
+ incoming_seq_id = sandesha2_identifier_get_identifier(
+ sandesha2_seq_get_identifier(seq, env), env);
+ rm_version = sandesha2_utils_get_rm_version(env, int_seq_id,
+ storage_mgr);
+ to_epr = axis2_msg_ctx_get_to(msg_ctx, env);
+ if(to_epr)
+ to_addr = axis2_endpoint_ref_get_address(to_epr, env);*/
sandesha2_terminate_mgr_add_terminate_seq_msg(env, rm_msg_ctx,
- out_seq_id, int_seq_id, storage_mgr);
+ out_seq_id, int_seq_id, storage_mgr);
+ /*if(sandesha2_utils_is_single_channel(env, rm_version, to_addr))
+ {
+
+ sandesha2_terminate_mgr_clean_recv_side_after_terminate_msg(
+ env, conf_ctx, incoming_seq_id, storage_mgr);
+ }*/
+ }
}
}
action = AXIS2_MSG_CTX_GET_WSA_ACTION(msg_ctx, env);
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?view=diff&rev=506275&r1=506274&r2=506275
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c (original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c Sun Feb 11 20:32:44 2007
@@ -205,9 +205,10 @@
axis2_char_t *highest_in_msg_key_str = NULL;
axis2_bool_t msg_no_present_in_list = AXIS2_FALSE;
axis2_endpoint_ref_t *reply_to_epr = NULL;
+ axis2_endpoint_ref_t *to_epr = NULL;
axis2_char_t *reply_to_addr = NULL;
+ axis2_char_t *to_addr = NULL;
axis2_char_t *rm_version = NULL;
- axis2_char_t *internal_seq_id = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK(env->error, rm_msg_ctx, AXIS2_FAILURE);
@@ -472,21 +473,94 @@
/* Start the invoker if stopped */
sandesha2_utils_start_invoker_for_seq(env, conf_ctx, str_seq_id);
}
- printf("came11\n");
rm_version = sandesha2_utils_get_rm_version(env, str_seq_id, storage_mgr);
if(!rm_version)
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Unable to find RM spec version");
return AXIS2_FAILURE;
}
- printf("rm_version:%s\n", rm_version);
reply_to_epr = axis2_msg_ctx_get_reply_to(msg_ctx, env);
+ to_epr = axis2_msg_ctx_get_to(msg_ctx, env);
if(reply_to_epr)
reply_to_addr = axis2_endpoint_ref_get_address(reply_to_epr, env);
- if(!axis2_msg_ctx_get_server_side(msg_ctx, env) ||
- !sandesha2_utils_is_single_channel(env, rm_version, reply_to_addr))
+ if(to_epr)
+ to_addr = axis2_endpoint_ref_get_address(to_epr, env);
+ printf("came16\n");
+ if(sandesha2_utils_is_single_channel(env, rm_version, reply_to_addr))
+ {
+ printf("came17\n");
+ /* Do nothing */
+ }
+ else if(sandesha2_utils_is_single_channel(env, rm_version, to_addr))
+ {
+ axis2_char_t *int_seq_id = NULL;
+ axis2_char_t *last_out_msg_no_str = NULL;
+ sandesha2_seq_ack_t *seq_ack = NULL;
+ axis2_char_t *out_seq_id = NULL;
+ seq_ack = (sandesha2_seq_ack_t*)sandesha2_msg_ctx_get_msg_part(
+ rm_msg_ctx, env, SANDESHA2_MSG_PART_SEQ_ACKNOWLEDGEMENT);
+ if(!seq_ack)
+ {
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] Sequence"
+ " acknowledgement part is null");
+ AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_REQD_MSG_PART_MISSING,
+ AXIS2_FAILURE);
+ return AXIS2_FAILURE;
+ }
+ out_seq_id = sandesha2_identifier_get_identifier(
+ sandesha2_seq_ack_get_identifier(seq_ack, env), env);
+ if(!out_seq_id || 0 == AXIS2_STRLEN(out_seq_id))
+ {
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] OutSequenceId is"
+ " null");
+ AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_NULL_SEQ, AXIS2_FAILURE);
+ return AXIS2_FAILURE;
+ }
+ int_seq_id = sandesha2_utils_get_seq_property(env, out_seq_id,
+ SANDESHA2_SEQ_PROP_INTERNAL_SEQ_ID, storage_mgr);
+ last_out_msg_no_str = sandesha2_utils_get_seq_property(env, int_seq_id,
+ SANDESHA2_SEQ_PROP_LAST_OUT_MESSAGE_NO, storage_mgr);
+ if(last_out_msg_no_str)
+ {
+ long highest_out_msg_no = 0;
+ highest_out_msg_no = atol(last_out_msg_no_str);
+ if(highest_out_msg_no > 0)
+ {
+ sandesha2_next_msg_mgr_t *next_mgr = NULL;
+ sandesha2_next_msg_bean_t *find_bean = NULL;
+ axis2_array_list_t *found_list = NULL;
+ int i = 0, size = 0;
+ next_mgr = sandesha2_storage_mgr_get_next_msg_mgr(storage_mgr, env);
+ find_bean = sandesha2_next_msg_bean_create(env);
+ sandesha2_next_msg_bean_set_seq_id(find_bean, env, str_seq_id);
+
+ found_list = sandesha2_next_msg_mgr_find(next_mgr, env, find_bean);
+ if(found_list)
+ size = AXIS2_ARRAY_LIST_SIZE(found_list, env);
+ for(i = 0; i < size; i++)
+ {
+ sandesha2_next_msg_bean_t *bean = AXIS2_ARRAY_LIST_GET(found_list,
+ env, i);
+ if(bean)
+ {
+ axis2_char_t *key = NULL;
+ axis2_char_t *seq_id = NULL;
+ key = sandesha2_next_msg_bean_get_ref_msg_key(bean, env);
+ if(key)
+ {
+ sandesha2_storage_mgr_remove_msg_ctx(storage_mgr, env, key);
+ }
+ seq_id = sandesha2_next_msg_bean_get_seq_id((sandesha2_rm_bean_t *)
+ bean, env);
+ if(seq_id)
+ sandesha2_next_msg_mgr_remove(next_mgr, env, seq_id);
+ }
+ }
+ }
+ }
+ }
+ else
{
- printf("came13\n");
sandesha2_app_msg_processor_send_ack_if_reqd(env, rm_msg_ctx, msgs_str,
storage_mgr);
}
Modified: webservices/sandesha/trunk/c/src/msgprocessors/create_seq_res_msg_processor.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/msgprocessors/create_seq_res_msg_processor.c?view=diff&rev=506275&r1=506274&r2=506275
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/create_seq_res_msg_processor.c (original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/create_seq_res_msg_processor.c Sun Feb 11 20:32:44 2007
@@ -324,7 +324,6 @@
next_bean = sandesha2_next_msg_bean_create(env);
sandesha2_next_msg_bean_set_seq_id(next_bean, env, offered_seq_id);
- /*sandesha2_next_msg_bean_set_seq_id(next_bean, env, int_seq_id);*/
sandesha2_next_msg_bean_set_next_msg_no_to_process(next_bean, env, 1);
rm_spec_ver = sandesha2_msg_ctx_get_rm_spec_ver(rm_msg_ctx, env);
@@ -344,8 +343,10 @@
ref_msg_store_key = sandesha2_create_seq_bean_get_ref_msg_store_key(
create_seq_bean, env);
if(ref_msg_store_key)
+ {
ref_msg_ctx = sandesha2_storage_mgr_retrieve_msg_ctx(storage_mgr,
env, ref_msg_store_key, conf_ctx);
+ }
new_msg_store_key = axis2_uuid_gen(env);
sandesha2_storage_mgr_store_msg_ctx(storage_mgr, env, new_msg_store_key,
ref_msg_ctx);
@@ -356,7 +357,7 @@
if(polling_mode)
sandesha2_utils_start_polling_mgr(env, conf_ctx);
next_bean_mgr = sandesha2_storage_mgr_get_next_msg_mgr(storage_mgr,
- env);
+ env);
sandesha2_next_msg_mgr_insert(next_bean_mgr, env, next_bean);
spec_ver_bean = sandesha2_seq_property_bean_create_with_data(env,
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=506275&r1=506274&r2=506275
==============================================================================
--- webservices/sandesha/trunk/c/src/util/terminate_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/terminate_mgr.c Sun Feb 11 20:32:44 2007
@@ -470,8 +470,8 @@
create_seq_mgr = sandesha2_storage_mgr_get_create_seq_mgr(storage_mgr, env);
out_seq_id = sandesha2_utils_get_seq_property(env, seq_id,
- SANDESHA2_SEQ_PROP_OUT_SEQ_ID, storage_mgr);
- if(AXIS2_TRUE == svr_side)
+ SANDESHA2_SEQ_PROP_OUT_SEQ_ID, storage_mgr);
+ if(!svr_side)
{
sandesha2_seq_property_bean_t *acks_to_bean = NULL;
axis2_char_t *addr_ns_uri = NULL;
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=506275&r1=506274&r2=506275
==============================================================================
--- webservices/sandesha/trunk/c/src/workers/sender_worker.c (original)
+++ webservices/sandesha/trunk/c/src/workers/sender_worker.c Sun Feb 11 20:32:44 2007
@@ -471,7 +471,7 @@
sandesha2_terminate_seq_t *terminate_seq = NULL;
axis2_char_t *seq_id = NULL;
axis2_conf_ctx_t *conf_ctx = NULL;
- axis2_char_t *int_seq_id = NULL;
+ axis2_char_t *internal_seq_id = NULL;
terminate_seq = (sandesha2_terminate_seq_t*)
sandesha2_msg_ctx_get_msg_part(rm_msg_ctx, env,
@@ -480,11 +480,11 @@
sandesha2_terminate_seq_get_identifier(terminate_seq,
env), env);
conf_ctx = AXIS2_MSG_CTX_GET_CONF_CTX(msg_ctx, env);
- int_seq_id = sandesha2_utils_get_seq_property(env, seq_id,
+ 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,
- int_seq_id, AXIS2_MSG_CTX_GET_SERVER_SIDE(msg_ctx, env),
- storage_mgr);
+ internal_seq_id, AXIS2_MSG_CTX_GET_SERVER_SIDE(msg_ctx, env),
+ storage_mgr);
}
else if(SANDESHA2_MSG_TYPE_TERMINATE_SEQ_RESPONSE == msg_type)
{
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org