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/05/05 11:38:53 UTC
svn commit: r535486 - in /webservices/sandesha/trunk/c: config/ include/
src/msgprocessors/ src/polling/ src/storage/ src/storage/beans/
src/storage/inmemory/ src/storage/mysql/ src/storage/sqlite/ src/util/
src/workers/
Author: damitha
Date: Sat May 5 02:38:52 2007
New Revision: 535486
URL: http://svn.apache.org/viewvc?view=rev&rev=535486
Log:
The single channel two-way invocation in RM 1.1 was not working. I tested this after a long
time. Corrected it.
Modified:
webservices/sandesha/trunk/c/config/module.xml
webservices/sandesha/trunk/c/include/sandesha2_constants.h
webservices/sandesha/trunk/c/include/sandesha2_next_msg_bean.h
webservices/sandesha/trunk/c/include/sandesha2_permanent_storage_mgr.h
webservices/sandesha/trunk/c/include/sandesha2_polling_mgr.h
webservices/sandesha/trunk/c/include/sandesha2_storage_mgr.h
webservices/sandesha/trunk/c/include/sandesha2_utils.h
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/msgprocessors/make_connection_msg_processor.c
webservices/sandesha/trunk/c/src/polling/polling_mgr.c
webservices/sandesha/trunk/c/src/storage/beans/next_msg_bean.c
webservices/sandesha/trunk/c/src/storage/inmemory/inmemory_storage_mgr.c
webservices/sandesha/trunk/c/src/storage/mysql/permanent_invoker_mgr.c
webservices/sandesha/trunk/c/src/storage/mysql/permanent_next_msg_mgr.c
webservices/sandesha/trunk/c/src/storage/mysql/permanent_sender_mgr.c
webservices/sandesha/trunk/c/src/storage/mysql/permanent_storage_mgr.c
webservices/sandesha/trunk/c/src/storage/sqlite/permanent_storage_mgr.c
webservices/sandesha/trunk/c/src/storage/storage_mgr.c
webservices/sandesha/trunk/c/src/util/ack_mgr.c
webservices/sandesha/trunk/c/src/util/msg_retrans_adjuster.c
webservices/sandesha/trunk/c/src/util/sandesha2_utils.c
webservices/sandesha/trunk/c/src/util/seq_mgr.c
webservices/sandesha/trunk/c/src/workers/in_order_invoker.c
webservices/sandesha/trunk/c/src/workers/sender.c
webservices/sandesha/trunk/c/src/workers/sender_worker.c
Modified: webservices/sandesha/trunk/c/config/module.xml
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/config/module.xml?view=diff&rev=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/config/module.xml (original)
+++ webservices/sandesha/trunk/c/config/module.xml Sat May 5 02:38:52 2007
@@ -81,5 +81,8 @@
<parameter name="InvokeInOrder" locked="false">AXIS2_FALSE</parameter>
<parameter name="MessageTypesToDrop" locked="false">none</parameter>
<parameter name="MaxRetransCount" locked="false">10</parameter>
+ <parameter name="SenderSleepTime" locked="false">1</parameter>
+ <parameter name="InvokerSleepTime" locked="false">1</parameter>
+ <parameter name="PollingWaitTime" locked="false">3</parameter>
</module>
Modified: webservices/sandesha/trunk/c/include/sandesha2_constants.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_constants.h?view=diff&rev=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_constants.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_constants.h Sat May 5 02:38:52 2007
@@ -509,6 +509,9 @@
#define SANDESHA2_DB_SERVER "sandesha2_server"
#define SANDESHA2_DB_USER "db_user"
#define SANDESHA2_DB_PASSWORD "db_password"
+ #define SANDESHA2_SENDER_SLEEP "SenderSleepTime"
+ #define SANDESHA2_INVOKER_SLEEP "InvokerSleepTime"
+ #define SANDESHA2_POLLING_WAIT "PollingWaitTime"
/** @} */
#ifdef __cplusplus
}
Modified: webservices/sandesha/trunk/c/include/sandesha2_next_msg_bean.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_next_msg_bean.h?view=diff&rev=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_next_msg_bean.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_next_msg_bean.h Sat May 5 02:38:52 2007
@@ -72,7 +72,19 @@
void AXIS2_CALL
sandesha2_next_msg_bean_set_seq_id(
sandesha2_next_msg_bean_t *next_msg_bean,
- const axutil_env_t *env, axis2_char_t *seq_id);
+ const axutil_env_t *env,
+ axis2_char_t *seq_id);
+
+axis2_char_t* AXIS2_CALL
+sandesha2_next_msg_bean_get_internal_seq_id(
+ sandesha2_rm_bean_t *next_msg_bean,
+ const axutil_env_t *env);
+
+void AXIS2_CALL
+sandesha2_next_msg_bean_set_internal_seq_id(
+ sandesha2_next_msg_bean_t *next_msg_bean,
+ const axutil_env_t *env,
+ axis2_char_t *internal_seq_id);
long AXIS2_CALL
sandesha2_next_msg_bean_get_next_msg_no_to_process(
Modified: webservices/sandesha/trunk/c/include/sandesha2_permanent_storage_mgr.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_permanent_storage_mgr.h?view=diff&rev=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_permanent_storage_mgr.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_permanent_storage_mgr.h Sat May 5 02:38:52 2007
@@ -89,7 +89,8 @@
sandesha2_storage_mgr_t *storage_mgr,
const axutil_env_t *env,
axis2_char_t *key,
- axis2_conf_ctx_t *conf_ctx);
+ axis2_conf_ctx_t *conf_ctx,
+ const axis2_bool_t persistent);
/** @} */
#ifdef __cplusplus
Modified: webservices/sandesha/trunk/c/include/sandesha2_polling_mgr.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_polling_mgr.h?view=diff&rev=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_polling_mgr.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_polling_mgr.h Sat May 5 02:38:52 2007
@@ -69,7 +69,8 @@
sandesha2_polling_mgr_start (
sandesha2_polling_mgr_t *polling_mgr,
const axutil_env_t *env,
- axis2_conf_ctx_t *conf_ctx);
+ axis2_conf_ctx_t *conf_ctx,
+ const axis2_char_t *internal_seq_id);
void AXIS2_CALL
sandesha2_polling_mgr_set_poll(
@@ -86,7 +87,7 @@
sandesha2_polling_mgr_schedule_polling_request(
sandesha2_polling_mgr_t *polling_mgr,
const axutil_env_t *env,
- axis2_char_t *internal_seq_id);
+ const axis2_char_t *internal_seq_id);
/** @} */
#ifdef __cplusplus
Modified: webservices/sandesha/trunk/c/include/sandesha2_storage_mgr.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_storage_mgr.h?view=diff&rev=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_storage_mgr.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_storage_mgr.h Sat May 5 02:38:52 2007
@@ -122,7 +122,8 @@
sandesha2_storage_mgr_t *storage_mgr,
const axutil_env_t *env,
axis2_char_t *key,
- axis2_conf_ctx_t *conf_ctx);
+ axis2_conf_ctx_t *conf_ctx,
+ const axis2_bool_t persistent);
axis2_status_t (AXIS2_CALL *
store_msg_ctx)(
@@ -287,7 +288,8 @@
sandesha2_storage_mgr_t *storage_mgr,
const axutil_env_t *env,
axis2_char_t *key,
- axis2_conf_ctx_t *conf_ctx);
+ axis2_conf_ctx_t *conf_ctx,
+ const axis2_bool_t persistent);
/**
* Store the application message context. When Sandesha2 handlers
Modified: webservices/sandesha/trunk/c/include/sandesha2_utils.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_utils.h?view=diff&rev=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_utils.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_utils.h Sat May 5 02:38:52 2007
@@ -119,7 +119,8 @@
AXIS2_EXTERN axis2_status_t AXIS2_CALL
sandesha2_utils_start_polling_mgr(
const axutil_env_t *env,
- axis2_conf_ctx_t *conf_ctx);
+ axis2_conf_ctx_t *conf_ctx,
+ const axis2_char_t *internal_seq_id);
AXIS2_EXTERN axis2_char_t* AXIS2_CALL
sandesha2_utils_get_outgoing_internal_seq_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?view=diff&rev=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c (original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c Sat May 5 02:38:52 2007
@@ -696,7 +696,6 @@
if(!axis2_msg_ctx_get_msg_id(msg_ctx, env))
axis2_msg_ctx_set_message_id(msg_ctx, env, axutil_uuid_gen(env));
storage_key = axutil_uuid_gen(env);
-
if(is_svr_side)
{
sandesha2_seq_t *req_seq = NULL;
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=535486&r1=535485&r2=535486
==============================================================================
--- 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 Sat May 5 02:38:52 2007
@@ -323,6 +323,7 @@
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_internal_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,7 +345,7 @@
if(ref_msg_store_key)
{
ref_msg_ctx = sandesha2_storage_mgr_retrieve_msg_ctx(storage_mgr,
- env, ref_msg_store_key, conf_ctx);
+ env, ref_msg_store_key, conf_ctx, AXIS2_FALSE);
}
new_msg_store_key = axutil_uuid_gen(env);
sandesha2_storage_mgr_store_msg_ctx(storage_mgr, env, new_msg_store_key,
@@ -354,7 +355,9 @@
sandesha2_next_msg_bean_set_polling_mode(next_bean, env, polling_mode);
/* If polling_mode is true, starting the polling manager */
if(polling_mode)
- sandesha2_utils_start_polling_mgr(env, conf_ctx);
+ {
+ sandesha2_utils_start_polling_mgr(env, conf_ctx, int_seq_id);
+ }
next_bean_mgr = sandesha2_storage_mgr_get_next_msg_mgr(storage_mgr,
env);
sandesha2_next_msg_mgr_insert(next_bean_mgr, env, next_bean);
@@ -403,7 +406,7 @@
tmp_bean = axutil_array_list_get(found_list, env, i);
key = sandesha2_sender_bean_get_msg_ctx_ref_key(tmp_bean, env);
app_msg_ctx = sandesha2_storage_mgr_retrieve_msg_ctx(storage_mgr, env,
- key, conf_ctx);
+ key, conf_ctx, AXIS2_FALSE);
if(!app_msg_ctx)
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] Unavailable"
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=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/make_connection_msg_processor.c (original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/make_connection_msg_processor.c Sat May 5 02:38:52 2007
@@ -157,6 +157,7 @@
sandesha2_make_connection_t *make_conn = NULL;
sandesha2_storage_mgr_t *storage_mgr = NULL;
sandesha2_sender_mgr_t *sender_mgr = NULL;
+ sandesha2_seq_property_mgr_t *seq_prop_mgr = NULL;
sandesha2_sender_bean_t *find_sender_bean = NULL;
sandesha2_sender_bean_t *sender_bean = NULL;
sandesha2_sender_bean_t *bean1 = NULL;
@@ -172,6 +173,7 @@
axis2_transport_out_desc_t *transport_out = NULL;
axis2_char_t *msg_storage_key = NULL;
axis2_char_t *seq_id = NULL;
+ axis2_char_t *internal_seq_id = NULL;
axis2_op_ctx_t *op_ctx = NULL;
axis2_char_t *msg_id = NULL;
axis2_transport_sender_t *transport_sender = NULL;
@@ -180,6 +182,7 @@
axis2_bool_t continue_sending = AXIS2_TRUE;
axis2_char_t *qualified_for_sending = NULL;
sandesha2_property_bean_t *prop_bean = NULL;
+ sandesha2_seq_property_bean_t *int_seq_bean = NULL;
axutil_array_list_t *msgs_not_to_send = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
@@ -209,7 +212,15 @@
storage_mgr = sandesha2_utils_get_storage_mgr(env, conf_ctx,
axis2_conf_ctx_get_conf(conf_ctx, env));
if(storage_mgr)
+ {
sender_mgr = sandesha2_storage_mgr_get_retrans_mgr(storage_mgr, env);
+ seq_prop_mgr = sandesha2_storage_mgr_get_seq_property_mgr(storage_mgr,
+ env);
+ }
+ int_seq_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env,
+ seq_id, SANDESHA2_SEQ_PROP_INTERNAL_SEQ_ID);
+ if(int_seq_bean)
+ internal_seq_id = sandesha2_seq_property_bean_get_value(int_seq_bean, env);
/* Selecting the set of sender beans that suit the given criteria */
find_sender_bean = sandesha2_sender_bean_create(env);
if(find_sender_bean)
@@ -226,8 +237,8 @@
sandesha2_sender_bean_set_wsrm_anon_uri(find_sender_bean, env,
epr_address);
}
- if(seq_id)
- sandesha2_sender_bean_set_seq_id(find_sender_bean, env, seq_id);
+ if(internal_seq_id)
+ sandesha2_sender_bean_set_seq_id(find_sender_bean, env, internal_seq_id);
/* Find the beans that go with the criteria of the passed sender bean */
if(find_sender_bean)
{
@@ -240,6 +251,7 @@
/* Selecting a bean to send randomly. TODO - Should use a better mechanism */
if(retrans_list)
size = axutil_array_list_size(retrans_list, env);
+ printf("size:%d\n", size);
if(size > 0)
{
unsigned int rand_var = axutil_rand_get_seed_value_based_on_time(env);
@@ -260,6 +272,8 @@
}
if(!sender_bean)
{
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
+ "[sandesha2]sender_bean is NULL. So returning");
return AXIS2_SUCCESS;
}
transport_out = axis2_msg_ctx_get_transport_out_desc(msg_ctx, env);
@@ -274,7 +288,7 @@
msg_storage_key = sandesha2_sender_bean_get_msg_ctx_ref_key(sender_bean,
env);
return_msg_ctx = sandesha2_storage_mgr_retrieve_msg_ctx(storage_mgr, env,
- msg_storage_key, conf_ctx);
+ msg_storage_key, conf_ctx, AXIS2_TRUE);
return_rm_msg_ctx = sandesha2_msg_init_init_msg(env, return_msg_ctx);
add_msg_pending_header(env, return_rm_msg_ctx, pending);
set_transport_properties(env, return_msg_ctx, rm_msg_ctx);
@@ -305,7 +319,6 @@
sender_bean, conf_ctx, storage_mgr);
if(!continue_sending)
{
- printf("do not continue\n");
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
"[sandesha2] Do not continue sending the message as response to"\
"MakeConnection message");
@@ -319,7 +332,6 @@
if(qualified_for_sending && 0 != axutil_strcmp(
qualified_for_sending, AXIS2_VALUE_TRUE))
{
- printf("not qualified for sending as reply ot MakeConnection\n");
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
"[sandesha2] Message is not qualified for sending as reply to "\
"MakeConnection message");
@@ -353,7 +365,6 @@
}
if(continue_sending)
{
- printf("continue sending is true\n");
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2] Continue "\
"Sending is true. So returning from make_connection_msg_processor");
return AXIS2_SUCCESS;
@@ -463,17 +474,18 @@
if(make_conn_msg_ctx && return_msg_ctx)
{
axis2_http_out_transport_info_t *out_info = NULL;
- /*property = sandesha2_msg_ctx_get_property(make_conn_msg_ctx, env,
- AXIS2_TRANSPORT_OUT);
- axutil_property_set_own_value(property, env, AXIS2_FALSE);
- axis2_msg_ctx_set_property(return_msg_ctx, env, AXIS2_TRANSPORT_OUT,
- axutil_property_clone(property, env), AXIS2_FALSE);*/
+ axis2_http_out_transport_info_t *temp_out_info = NULL;
out_stream = sandesha2_msg_ctx_get_transport_out_stream(make_conn_msg_ctx,
env);
axis2_msg_ctx_set_transport_out_stream(return_msg_ctx, env, out_stream);
- out_info = (axis2_http_out_transport_info_t *)
- sandesha2_msg_ctx_get_http_out_transport_info(make_conn_msg_ctx, env);
- axis2_msg_ctx_set_http_out_transport_info(return_msg_ctx, env, out_info);
+ temp_out_info = (axis2_http_out_transport_info_t *)
+ axis2_msg_ctx_get_http_out_transport_info(return_msg_ctx, env);
+ if(!temp_out_info)
+ {
+ out_info = (axis2_http_out_transport_info_t *)
+ sandesha2_msg_ctx_get_http_out_transport_info(make_conn_msg_ctx, env);
+ axis2_msg_ctx_set_http_out_transport_info(return_msg_ctx, env, out_info);
+ }
}
}
Modified: webservices/sandesha/trunk/c/src/polling/polling_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/polling/polling_mgr.c?view=diff&rev=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/src/polling/polling_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/polling/polling_mgr.c Sat May 5 02:38:52 2007
@@ -34,6 +34,7 @@
#include <axutil_rand.h>
#include <stdio.h>
#include <platforms/axutil_platform_auto_sense.h>
+#include <axutil_types.h>
/**
@@ -149,7 +150,8 @@
sandesha2_polling_mgr_start (
sandesha2_polling_mgr_t *polling_mgr,
const axutil_env_t *env,
- axis2_conf_ctx_t *conf_ctx)
+ axis2_conf_ctx_t *conf_ctx,
+ const axis2_char_t *internal_seq_id)
{
sandesha2_storage_mgr_t *storage_mgr = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
@@ -163,12 +165,15 @@
if(!polling_mgr->conf_ctx)
{
axutil_thread_mutex_unlock(polling_mgr->mutex);
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "conf_ctx is NULL");
return AXIS2_FAILURE;
}
storage_mgr = sandesha2_utils_get_storage_mgr(env,
polling_mgr->conf_ctx,
axis2_conf_ctx_get_conf(polling_mgr->conf_ctx, env));
sandesha2_polling_mgr_set_poll(polling_mgr, env, AXIS2_TRUE);
+ sandesha2_polling_mgr_schedule_polling_request(polling_mgr, env,
+ internal_seq_id);
sandesha2_polling_mgr_run(polling_mgr, env, storage_mgr);
axutil_thread_mutex_unlock(polling_mgr->mutex);
return AXIS2_SUCCESS;
@@ -230,6 +235,7 @@
sandesha2_sender_mgr_t *sender_bean_mgr = NULL;
int size = 0;
axis2_char_t *seq_id = NULL;
+ axis2_char_t *make_conn_seq_id = NULL;
axis2_char_t *ref_msg_key = NULL;
axis2_char_t *seq_prop_key = NULL;
axis2_char_t *reply_to = NULL;
@@ -240,8 +246,25 @@
axis2_msg_ctx_t *make_conn_msg_ctx = NULL;
axis2_endpoint_ref_t *to = NULL;
axutil_property_t *property = NULL;
+ axutil_qname_t *qname = NULL;
+ axutil_param_t *wait_time_param = NULL;
+ int wait_time = 0;
+ axis2_conf_t *conf = NULL;
+ axis2_module_desc_t *module_desc = NULL;
sandesha2_transaction_t *transaction = NULL;
- AXIS2_SLEEP(SANDESHA2_POLLING_MANAGER_WAIT_TIME);
+ axis2_status_t status = AXIS2_FAILURE;
+
+ conf = axis2_conf_ctx_get_conf(polling_mgr->conf_ctx, env);
+ qname = axutil_qname_create(env, "sandesha2", NULL, NULL);
+ module_desc = axis2_conf_get_module(conf, env, qname);
+ wait_time_param = axis2_module_desc_get_param(module_desc, env,
+ SANDESHA2_POLLING_WAIT);
+ if(wait_time_param)
+ {
+ wait_time = AXIS2_ATOI(axutil_param_get_value(wait_time_param, env));
+ }
+ axutil_qname_free(qname, env);
+ AXIS2_SLEEP(wait_time);
transaction = sandesha2_storage_mgr_get_transaction(storage_mgr, env);
next_msg_mgr = sandesha2_storage_mgr_get_next_msg_mgr(
storage_mgr, env);
@@ -255,7 +278,7 @@
{
seq_id = axutil_array_list_get(polling_mgr->scheduled_polling_reqs,
env, 0);
- axutil_array_list_remove(polling_mgr->scheduled_polling_reqs, env, 0);
+ /*axutil_array_list_remove(polling_mgr->scheduled_polling_reqs, env, 0);*/
}
if(!seq_id)
{
@@ -291,7 +314,7 @@
{
sandesha2_next_msg_bean_set_polling_mode(find_bean, env,
AXIS2_TRUE);
- sandesha2_next_msg_bean_set_seq_id(find_bean, env, seq_id);
+ sandesha2_next_msg_bean_set_internal_seq_id(find_bean, env, seq_id);
next_msg_bean = sandesha2_next_msg_mgr_find_unique(next_msg_mgr,
env, find_bean);
}
@@ -299,28 +322,31 @@
/* If no valid entry is found, try again later */
if(!next_msg_bean)
{
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
+ "No valid MakeConnection entry is found.");
sandesha2_transaction_rollback(transaction, env);
continue;
}
- seq_id = sandesha2_next_msg_bean_get_seq_id((sandesha2_rm_bean_t *)
+ make_conn_seq_id = sandesha2_next_msg_bean_get_seq_id((sandesha2_rm_bean_t *)
next_msg_bean, env);
/* Create a MakeConnection message */
ref_msg_key = sandesha2_next_msg_bean_get_ref_msg_key(next_msg_bean, env);
- seq_prop_key = seq_id;
+ seq_prop_key = make_conn_seq_id;
reply_to = sandesha2_utils_get_seq_property(env, seq_prop_key,
SANDESHA2_SEQ_PROP_REPLY_TO_EPR, storage_mgr);
if(sandesha2_utils_is_wsrm_anon_reply_to(env, reply_to))
wsrm_anon_reply_to_uri = reply_to;
ref_msg_ctx = sandesha2_storage_mgr_retrieve_msg_ctx(storage_mgr, env,
- ref_msg_key, polling_mgr->conf_ctx);
+ ref_msg_key, polling_mgr->conf_ctx, AXIS2_FALSE);
if(ref_msg_ctx)
ref_rm_msg_ctx = sandesha2_msg_init_init_msg(env, ref_msg_ctx);
make_conn_rm_msg_ctx =
sandesha2_msg_creator_create_make_connection_msg(env,
- ref_rm_msg_ctx, seq_id, wsrm_anon_reply_to_uri, storage_mgr);
+ ref_rm_msg_ctx, make_conn_seq_id, wsrm_anon_reply_to_uri, storage_mgr);
if(!make_conn_rm_msg_ctx)
{
sandesha2_transaction_rollback(transaction, env);
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "No memory");
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
@@ -378,8 +404,15 @@
sandesha2_sender_mgr_insert(sender_bean_mgr, env,
make_conn_sender_bean);
}
- sandesha2_utils_execute_and_store(env, make_conn_rm_msg_ctx,
+ status = sandesha2_utils_execute_and_store(env, make_conn_rm_msg_ctx,
make_conn_msg_store_key);
+ if(!status)
+ {
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[sandesha2]make_connection sending failed");
+ sandesha2_transaction_rollback(transaction, env);
+ return NULL;
+ }
if(transaction)
{
sandesha2_transaction_commit(transaction, env);
@@ -409,10 +442,10 @@
sandesha2_polling_mgr_schedule_polling_request(
sandesha2_polling_mgr_t *polling_mgr,
const axutil_env_t *env,
- axis2_char_t *internal_seq_id)
+ const axis2_char_t *internal_seq_id)
{
if(!axutil_array_list_contains(polling_mgr->scheduled_polling_reqs, env,
- internal_seq_id))
+ (axis2_char_t *)internal_seq_id))
{
axutil_array_list_add(polling_mgr->scheduled_polling_reqs, env,
internal_seq_id);
Modified: webservices/sandesha/trunk/c/src/storage/beans/next_msg_bean.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/storage/beans/next_msg_bean.c?view=diff&rev=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/src/storage/beans/next_msg_bean.c (original)
+++ webservices/sandesha/trunk/c/src/storage/beans/next_msg_bean.c Sat May 5 02:38:52 2007
@@ -27,6 +27,7 @@
sandesha2_next_msg_bean_t next_msg_bean;
sandesha2_rm_bean_t *rm_bean_impl;
axis2_char_t *seq_id;
+ axis2_char_t *internal_seq_id;
axis2_char_t *ref_msg_key;
axis2_bool_t polling_mode;
long msg_no;
@@ -61,6 +62,7 @@
}
/* init the properties. */
next_msg_bean_impl->seq_id = NULL;
+ next_msg_bean_impl->internal_seq_id = NULL;
next_msg_bean_impl->ref_msg_key = NULL;
next_msg_bean_impl->msg_no = -1;
next_msg_bean_impl->polling_mode = AXIS2_FALSE;
@@ -87,6 +89,7 @@
}
/* init the properties. */
next_msg_bean_impl->seq_id = (axis2_char_t*)axutil_strdup(env, seq_id);
+ next_msg_bean_impl->internal_seq_id = NULL;
next_msg_bean_impl->ref_msg_key = NULL;
next_msg_bean_impl->msg_no = msg_no;
next_msg_bean_impl->polling_mode = AXIS2_FALSE;
@@ -112,6 +115,11 @@
AXIS2_FREE(env->allocator, next_msg_bean_impl->seq_id);
next_msg_bean_impl->seq_id= NULL;
}
+ if(next_msg_bean_impl->internal_seq_id)
+ {
+ AXIS2_FREE(env->allocator, next_msg_bean_impl->internal_seq_id);
+ next_msg_bean_impl->internal_seq_id= NULL;
+ }
if(next_msg_bean_impl->ref_msg_key)
{
AXIS2_FREE(env->allocator, next_msg_bean_impl->ref_msg_key);
@@ -174,6 +182,34 @@
next_msg_bean_impl->seq_id = (axis2_char_t*) axutil_strdup(env, seq_id);
}
+axis2_char_t* AXIS2_CALL
+sandesha2_next_msg_bean_get_internal_seq_id(
+ sandesha2_rm_bean_t *next_msg_bean,
+ const axutil_env_t *env)
+{
+ sandesha2_next_msg_bean_impl_t *next_msg_bean_impl = NULL;
+ next_msg_bean_impl = SANDESHA2_INTF_TO_IMPL(next_msg_bean);
+ return next_msg_bean_impl->internal_seq_id;
+}
+
+
+void AXIS2_CALL
+sandesha2_next_msg_bean_set_internal_seq_id(
+ sandesha2_next_msg_bean_t *next_msg_bean,
+ const axutil_env_t *env,
+ axis2_char_t *internal_seq_id)
+{
+ sandesha2_next_msg_bean_impl_t *next_msg_bean_impl = NULL;
+ next_msg_bean_impl = SANDESHA2_INTF_TO_IMPL(next_msg_bean);
+ if(next_msg_bean_impl->internal_seq_id)
+ {
+ AXIS2_FREE(env->allocator, next_msg_bean_impl->internal_seq_id);
+ next_msg_bean_impl->internal_seq_id = NULL;
+ }
+
+ next_msg_bean_impl->internal_seq_id = (axis2_char_t*) axutil_strdup(env,
+ internal_seq_id);
+}
long AXIS2_CALL
sandesha2_next_msg_bean_get_next_msg_no_to_process(
Modified: webservices/sandesha/trunk/c/src/storage/inmemory/inmemory_storage_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/storage/inmemory/inmemory_storage_mgr.c?view=diff&rev=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/src/storage/inmemory/inmemory_storage_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/storage/inmemory/inmemory_storage_mgr.c Sat May 5 02:38:52 2007
@@ -126,7 +126,8 @@
sandesha2_storage_mgr_t *storage,
const axutil_env_t *env,
axis2_char_t *key,
- axis2_conf_ctx_t *conf_ctx);
+ axis2_conf_ctx_t *conf_ctx,
+ const axis2_bool_t persistent);
axis2_status_t AXIS2_CALL
sandesha2_inmemory_storage_mgr_store_msg_ctx(
@@ -390,7 +391,8 @@
sandesha2_storage_mgr_t *storage_mgr,
const axutil_env_t *env,
axis2_char_t *key,
- axis2_conf_ctx_t *conf_ctx)
+ axis2_conf_ctx_t *conf_ctx,
+ const axis2_bool_t persistent)
{
axutil_hash_t *storage_map = NULL;
axutil_property_t *property = NULL;
Modified: webservices/sandesha/trunk/c/src/storage/mysql/permanent_invoker_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/storage/mysql/permanent_invoker_mgr.c?view=diff&rev=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/src/storage/mysql/permanent_invoker_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/storage/mysql/permanent_invoker_mgr.c Sat May 5 02:38:52 2007
@@ -45,37 +45,42 @@
void *data)
{
MYSQL_ROW row;
+ int num_rows, i = 0;
sandesha2_invoker_bean_t *bean = NULL;
sandesha2_bean_mgr_args_t *args = (sandesha2_bean_mgr_args_t *) data;
const axutil_env_t *env = args->env;
axutil_array_list_t *data_list = (axutil_array_list_t *) args->data;
- if((row = mysql_fetch_row(res)) != NULL)
+ num_rows = mysql_num_rows(res);
+ if(num_rows > 0)
{
if(!data_list)
{
data_list = axutil_array_list_create(env, 0);
args->data = data_list;
}
- bean = sandesha2_invoker_bean_create(env);
- sandesha2_invoker_bean_set_msg_ctx_ref_key(bean, env, row[0]);
- sandesha2_invoker_bean_set_msg_no(bean, env, atol(row[1]));
- sandesha2_invoker_bean_set_seq_id(bean, env, row[2]);
- sandesha2_invoker_bean_set_invoked(bean, env, AXIS2_ATOI(row[3]));
- axutil_array_list_add(data_list, env, bean);
}
else
{
args->data = NULL;
return 0;
}
- while((row = mysql_fetch_row(res)) != NULL)
+ for(i = 0; i < num_rows; i++)
{
- bean = sandesha2_invoker_bean_create(env);
- sandesha2_invoker_bean_set_msg_ctx_ref_key(bean, env, row[0]);
- sandesha2_invoker_bean_set_msg_no(bean, env, atol(row[1]));
- sandesha2_invoker_bean_set_seq_id(bean, env, row[2]);
- sandesha2_invoker_bean_set_invoked(bean, env, AXIS2_ATOI(row[3]));
- axutil_array_list_add(data_list, env, bean);
+ if((row = mysql_fetch_row(res)) != NULL)
+ {
+ unsigned long *lengths = NULL;
+ lengths = mysql_fetch_lengths(res);
+ bean = sandesha2_invoker_bean_create(env);
+ if(0 < (int) lengths[0])
+ sandesha2_invoker_bean_set_msg_ctx_ref_key(bean, env, row[0]);
+ if(0 < (int) lengths[1])
+ sandesha2_invoker_bean_set_msg_no(bean, env, atol(row[1]));
+ if(0 < (int) lengths[2])
+ sandesha2_invoker_bean_set_seq_id(bean, env, row[2]);
+ if(0 < (int) lengths[3])
+ sandesha2_invoker_bean_set_invoked(bean, env, AXIS2_ATOI(row[3]));
+ axutil_array_list_add(data_list, env, bean);
+ }
}
return 0;
}
@@ -91,15 +96,21 @@
sandesha2_invoker_bean_t *bean = (sandesha2_invoker_bean_t *) args->data;
if((row = mysql_fetch_row(res)) != NULL)
{
+ unsigned long *lengths = NULL;
+ lengths = mysql_fetch_lengths(res);
if(!bean)
{
bean = sandesha2_invoker_bean_create(env);
args->data = bean;
}
- sandesha2_invoker_bean_set_msg_ctx_ref_key(bean, env, row[0]);
- sandesha2_invoker_bean_set_msg_no(bean, env, atol(row[1]));
- sandesha2_invoker_bean_set_seq_id(bean, env, row[2]);
- sandesha2_invoker_bean_set_invoked(bean, env, AXIS2_ATOI(row[3]));
+ if(0 < (int) lengths[0])
+ sandesha2_invoker_bean_set_msg_ctx_ref_key(bean, env, row[0]);
+ if(0 < (int) lengths[1])
+ sandesha2_invoker_bean_set_msg_no(bean, env, atol(row[1]));
+ if(0 < (int) lengths[2])
+ sandesha2_invoker_bean_set_seq_id(bean, env, row[2]);
+ if(0 < (int) lengths[3])
+ sandesha2_invoker_bean_set_invoked(bean, env, AXIS2_ATOI(row[3]));
}
else
{
Modified: webservices/sandesha/trunk/c/src/storage/mysql/permanent_next_msg_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/storage/mysql/permanent_next_msg_mgr.c?view=diff&rev=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/src/storage/mysql/permanent_next_msg_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/storage/mysql/permanent_next_msg_mgr.c Sat May 5 02:38:52 2007
@@ -70,15 +70,18 @@
{
if((row = mysql_fetch_row(res)) != NULL)
{
+ unsigned long *lengths = NULL;
+ lengths = mysql_fetch_lengths(res);
bean = sandesha2_next_msg_bean_create(env);
- sandesha2_next_msg_bean_set_seq_id(bean, env, row[0]);
- if(row[1] && 0 != axutil_strcmp("(null)", row[1]))
- {
+ if(0 < (int) lengths[0])
+ sandesha2_next_msg_bean_set_seq_id(bean, env, row[0]);
+ if(0 < (int) lengths[1])
sandesha2_next_msg_bean_set_ref_msg_key(bean, env, row[1]);
- }
- sandesha2_next_msg_bean_set_polling_mode(bean, env, AXIS2_ATOI(row[2]));
- sandesha2_next_msg_bean_set_next_msg_no_to_process(bean, env,
- atol(row[3]));
+ if(0 < (int) lengths[2])
+ sandesha2_next_msg_bean_set_polling_mode(bean, env, AXIS2_ATOI(row[2]));
+ if(0 < (int) lengths[3])
+ sandesha2_next_msg_bean_set_next_msg_no_to_process(bean, env,
+ atol(row[3]));
axutil_array_list_add(data_list, env, bean);
}
}
@@ -435,6 +438,8 @@
long temp_next_msg_no = 0;
axis2_char_t *seq_id = NULL;
axis2_char_t *temp_seq_id = NULL;
+ axis2_char_t *internal_seq_id = NULL;
+ axis2_char_t *temp_internal_seq_id = NULL;
sandesha2_permanent_next_msg_mgr_t *next_msg_mgr_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FALSE);
next_msg_mgr_impl = SANDESHA2_INTF_TO_IMPL(next_msg_mgr);
@@ -449,6 +454,14 @@
seq_id = sandesha2_next_msg_bean_get_seq_id(bean, env);
temp_seq_id = sandesha2_next_msg_bean_get_seq_id(candidate, env);
if(seq_id && temp_seq_id && 0 != axutil_strcmp(seq_id, temp_seq_id))
+ {
+ equal = AXIS2_FALSE;
+ }
+ internal_seq_id = sandesha2_next_msg_bean_get_internal_seq_id(bean, env);
+ temp_internal_seq_id = sandesha2_next_msg_bean_get_internal_seq_id(
+ candidate, env);
+ if(internal_seq_id && temp_internal_seq_id && 0 != axutil_strcmp(
+ internal_seq_id, temp_internal_seq_id))
{
equal = AXIS2_FALSE;
}
Modified: webservices/sandesha/trunk/c/src/storage/mysql/permanent_sender_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/storage/mysql/permanent_sender_mgr.c?view=diff&rev=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/src/storage/mysql/permanent_sender_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/storage/mysql/permanent_sender_mgr.c Sat May 5 02:38:52 2007
@@ -114,23 +114,37 @@
sandesha2_sender_bean_t *bean = (sandesha2_sender_bean_t *) args->data;
if((row = mysql_fetch_row(res)) != NULL)
{
+ unsigned long *lengths = NULL;
+ lengths = mysql_fetch_lengths(res);
if(!bean)
{
bean = sandesha2_sender_bean_create(env);
args->data = bean;
}
- sandesha2_sender_bean_set_msg_id(bean, env, row[0]);
- sandesha2_sender_bean_set_msg_ctx_ref_key(bean, env, row[1]);
- sandesha2_sender_bean_set_internal_seq_id(bean, env, row[2]);
- sandesha2_sender_bean_set_sent_count(bean, env, AXIS2_ATOI(row[3]));
- sandesha2_sender_bean_set_msg_no(bean, env, atol(row[4]));
- sandesha2_sender_bean_set_send(bean, env, AXIS2_ATOI(row[5]));
- sandesha2_sender_bean_set_resend(bean, env, AXIS2_ATOI(row[6]));
- sandesha2_sender_bean_set_time_to_send(bean, env, atol(row[7]));
- sandesha2_sender_bean_set_msg_type(bean, env, AXIS2_ATOI(row[8]));
- sandesha2_sender_bean_set_seq_id(bean, env, row[9]);
- sandesha2_sender_bean_set_wsrm_anon_uri(bean, env, row[10]);
- sandesha2_sender_bean_set_to_address(bean, env, row[11]);
+ if(0 < (int) lengths[0])
+ sandesha2_sender_bean_set_msg_id(bean, env, row[0]);
+ if(0 < (int) lengths[1])
+ sandesha2_sender_bean_set_msg_ctx_ref_key(bean, env, row[1]);
+ if(0 < (int) lengths[2])
+ sandesha2_sender_bean_set_internal_seq_id(bean, env, row[2]);
+ if(0 < (int) lengths[3])
+ sandesha2_sender_bean_set_sent_count(bean, env, AXIS2_ATOI(row[3]));
+ if(0 < (int) lengths[4])
+ sandesha2_sender_bean_set_msg_no(bean, env, atol(row[4]));
+ if(0 < (int) lengths[5])
+ sandesha2_sender_bean_set_send(bean, env, AXIS2_ATOI(row[5]));
+ if(0 < (int) lengths[6])
+ sandesha2_sender_bean_set_resend(bean, env, AXIS2_ATOI(row[6]));
+ if(0 < (int) lengths[7])
+ sandesha2_sender_bean_set_time_to_send(bean, env, atol(row[7]));
+ if(0 < (int) lengths[8])
+ sandesha2_sender_bean_set_msg_type(bean, env, AXIS2_ATOI(row[8]));
+ if(0 < (int) lengths[9])
+ sandesha2_sender_bean_set_seq_id(bean, env, row[9]);
+ if(0 < (int) lengths[10])
+ sandesha2_sender_bean_set_wsrm_anon_uri(bean, env, row[10]);
+ if(0 < (int) lengths[11])
+ sandesha2_sender_bean_set_to_address(bean, env, row[11]);
}
else
@@ -597,14 +611,6 @@
}
/* Do not use the is_resend flag to match messages, as it can stop us from
* detecting RM messages during 'get_next_msg_to_send'*/
- /*is_resend = sandesha2_sender_bean_is_resend(
- (sandesha2_sender_bean_t *) bean, env);
- temp_is_resend = sandesha2_sender_bean_is_resend(
- (sandesha2_sender_bean_t *) candidate, env);
- if(is_resend != temp_is_resend)
- {
- add = AXIS2_FALSE;
- }*/
return add;
}
Modified: webservices/sandesha/trunk/c/src/storage/mysql/permanent_storage_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/storage/mysql/permanent_storage_mgr.c?view=diff&rev=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/src/storage/mysql/permanent_storage_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/storage/mysql/permanent_storage_mgr.c Sat May 5 02:38:52 2007
@@ -147,7 +147,8 @@
sandesha2_storage_mgr_t *storage,
const axutil_env_t *env,
axis2_char_t *key,
- axis2_conf_ctx_t *conf_ctx);
+ axis2_conf_ctx_t *conf_ctx,
+ const axis2_bool_t persistent);
axis2_status_t AXIS2_CALL
sandesha2_permanent_storage_mgr_store_msg_ctx(
@@ -778,7 +779,8 @@
sandesha2_storage_mgr_t *storage_mgr,
const axutil_env_t *env,
axis2_char_t *key,
- axis2_conf_ctx_t *conf_ctx)
+ axis2_conf_ctx_t *conf_ctx,
+ const axis2_bool_t persistent)
{
sandesha2_permanent_storage_mgr_t *storage_mgr_impl = NULL;
axis2_msg_ctx_t *msg_ctx = NULL;
@@ -807,8 +809,9 @@
sandesha2_msg_store_bean_t *msg_store_bean = NULL;
storage_mgr_impl = SANDESHA2_INTF_TO_IMPL(storage_mgr);
- msg_ctx = (axis2_msg_ctx_t *) axutil_hash_get(storage_mgr_impl->msg_ctx_map,
- key, AXIS2_HASH_KEY_STRING);
+ if(!persistent)
+ msg_ctx = (axis2_msg_ctx_t *) axutil_hash_get(
+ storage_mgr_impl->msg_ctx_map, key, AXIS2_HASH_KEY_STRING);
if(msg_ctx)
return msg_ctx;
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "retrieving msg_ctx from database");
Modified: webservices/sandesha/trunk/c/src/storage/sqlite/permanent_storage_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/storage/sqlite/permanent_storage_mgr.c?view=diff&rev=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/src/storage/sqlite/permanent_storage_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/storage/sqlite/permanent_storage_mgr.c Sat May 5 02:38:52 2007
@@ -147,7 +147,8 @@
sandesha2_storage_mgr_t *storage,
const axutil_env_t *env,
axis2_char_t *key,
- axis2_conf_ctx_t *conf_ctx);
+ axis2_conf_ctx_t *conf_ctx,
+ const axis2_bool_t persistent);
axis2_status_t AXIS2_CALL
sandesha2_permanent_storage_mgr_store_msg_ctx(
Modified: webservices/sandesha/trunk/c/src/storage/storage_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/storage/storage_mgr.c?view=diff&rev=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/src/storage/storage_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/storage/storage_mgr.c Sat May 5 02:38:52 2007
@@ -138,9 +138,11 @@
sandesha2_storage_mgr_t *storage_mgr,
const axutil_env_t *env,
axis2_char_t *key,
- axis2_conf_ctx_t *conf_ctx)
+ axis2_conf_ctx_t *conf_ctx,
+ const axis2_bool_t persistent)
{
- return storage_mgr->ops->retrieve_msg_ctx(storage_mgr, env, key, conf_ctx);
+ return storage_mgr->ops->retrieve_msg_ctx(storage_mgr, env, key, conf_ctx,
+ persistent);
}
axis2_status_t AXIS2_CALL
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?view=diff&rev=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/src/util/ack_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/ack_mgr.c Sat May 5 02:38:52 2007
@@ -434,7 +434,7 @@
msg_ctx_ref_key = sandesha2_sender_bean_get_msg_ctx_ref_key(
sender_bean, env);
msg_ctx1 = sandesha2_storage_mgr_retrieve_msg_ctx(storage_mgr, env,
- msg_ctx_ref_key, conf_ctx);
+ msg_ctx_ref_key, conf_ctx, AXIS2_FALSE);
to = (axis2_char_t*)axis2_endpoint_ref_get_address(
axis2_msg_ctx_get_to(msg_ctx1, env), env);
if(0 == axutil_strcmp(to, to_str))
Modified: webservices/sandesha/trunk/c/src/util/msg_retrans_adjuster.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/msg_retrans_adjuster.c?view=diff&rev=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/src/util/msg_retrans_adjuster.c (original)
+++ webservices/sandesha/trunk/c/src/util/msg_retrans_adjuster.c Sat May 5 02:38:52 2007
@@ -79,7 +79,7 @@
return AXIS2_FALSE;
}
msg_ctx = sandesha2_storage_mgr_retrieve_msg_ctx(storage_mgr, env,
- stored_key, conf_ctx);
+ stored_key, conf_ctx, AXIS2_FALSE);
if(msg_ctx)
rm_msg_ctx = sandesha2_msg_init_init_msg(env, msg_ctx);
int_seq_id = sandesha2_sender_bean_get_internal_seq_id(retrans_bean, env);
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=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/src/util/sandesha2_utils.c (original)
+++ webservices/sandesha/trunk/c/src/util/sandesha2_utils.c Sat May 5 02:38:52 2007
@@ -423,7 +423,8 @@
AXIS2_EXTERN axis2_status_t AXIS2_CALL
sandesha2_utils_start_polling_mgr(
const axutil_env_t *env,
- axis2_conf_ctx_t *conf_ctx)
+ axis2_conf_ctx_t *conf_ctx,
+ const axis2_char_t *internal_seq_id)
{
sandesha2_polling_mgr_t *polling_mgr = NULL;
axutil_property_t *property = NULL;
@@ -432,8 +433,9 @@
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK(env->error, conf_ctx, AXIS2_FAILURE);
+ axutil_allocator_switch_to_global_pool(env->allocator);
property = axis2_ctx_get_property(axis2_conf_ctx_get_base(conf_ctx, env),
- env, SANDESHA2_POLLING_MGR);
+ env, SANDESHA2_POLLING_MGR);
if(property)
polling_mgr = axutil_property_get_value(property, env);
@@ -442,13 +444,17 @@
*/
if(!polling_mgr)
{
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
+ "[sandesha2] Starting the polling manager");
polling_mgr = sandesha2_polling_mgr_create(env);
- property = axutil_property_create_with_args(env, 3, AXIS2_FALSE,
+ property = axutil_property_create_with_args(env, 0, AXIS2_FALSE,
(void *)sandesha2_polling_mgr_free_void_arg, polling_mgr);
axis2_ctx_set_property(axis2_conf_ctx_get_base(conf_ctx, env),
- env, SANDESHA2_POLLING_MGR, property);
+ env, SANDESHA2_POLLING_MGR, property);
}
- status = sandesha2_polling_mgr_start(polling_mgr, env, conf_ctx);
+ status = sandesha2_polling_mgr_start(polling_mgr, env, conf_ctx,
+ internal_seq_id);
+ axutil_allocator_switch_to_local_pool(env->allocator);
return status;
}
@@ -1223,6 +1229,7 @@
axis2_transport_out_desc_t *sandesha2_transport_out = NULL;
axutil_property_t *property = NULL;
axis2_engine_t *engine = NULL;
+ axis2_status_t status = AXIS2_FAILURE;
msg_ctx = sandesha2_msg_ctx_get_msg_ctx(rm_msg_ctx, env);
if(msg_ctx)
@@ -1241,8 +1248,7 @@
axis2_msg_ctx_set_property(msg_ctx, env,
SANDESHA2_ORIGINAL_TRANSPORT_OUT_DESC, property);
- property = axutil_property_create_with_args(env, AXIS2_SCOPE_REQUEST,
- AXIS2_FALSE, 0, AXIS2_VALUE_TRUE);
+ property = axutil_property_create_with_args(env, 0, 0, 0, AXIS2_VALUE_TRUE);
axis2_msg_ctx_set_property(msg_ctx, env, SANDESHA2_SET_SEND_TO_TRUE,
property);
sandesha2_transport_out = sandesha2_utils_get_transport_out(env);
@@ -1253,13 +1259,13 @@
{
axis2_msg_ctx_set_current_handler_index(msg_ctx, env,
axis2_msg_ctx_get_current_handler_index(msg_ctx, env) + 1);
- axis2_engine_resume_send(engine, env, msg_ctx);
+ status = axis2_engine_resume_send(engine, env, msg_ctx);
}
else
{
- axis2_engine_send(engine, env, msg_ctx);
+ status = axis2_engine_send(engine, env, msg_ctx);
}
- return AXIS2_SUCCESS;
+ return status;
}
axis2_bool_t AXIS2_CALL
Modified: webservices/sandesha/trunk/c/src/util/seq_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/seq_mgr.c?view=diff&rev=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/src/util/seq_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/seq_mgr.c Sat May 5 02:38:52 2007
@@ -158,9 +158,9 @@
sandesha2_next_msg_mgr_insert(next_msg_mgr, env, next_msg_bean);
/* Message to invoke. This will apply for only in-order invocations */
- if(!axis2_msg_ctx_get_server_side(msg_ctx, env) ||
+ /*if(!axis2_msg_ctx_get_server_side(msg_ctx, env) ||
!sandesha2_utils_is_anon_uri(env, reply_to_addr))
- sandesha2_utils_start_sender_for_seq(env, conf_ctx, seq_id);
+ sandesha2_utils_start_sender_for_seq(env, conf_ctx, seq_id);*/
/* Setting the RM Spec version for this sequence */
create_seq_msg_action = sandesha2_msg_ctx_get_wsa_action(create_seq_msg,
env);
Modified: webservices/sandesha/trunk/c/src/workers/in_order_invoker.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/workers/in_order_invoker.c?view=diff&rev=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/src/workers/in_order_invoker.c (original)
+++ webservices/sandesha/trunk/c/src/workers/in_order_invoker.c Sat May 5 02:38:52 2007
@@ -352,7 +352,7 @@
(sandesha2_rm_bean_t *) st_map_bean, env);
printf("msg_ref_key:%s\n", key);
msg_to_invoke = sandesha2_storage_mgr_retrieve_msg_ctx(
- storage_mgr, env, key, invoker->conf_ctx);
+ storage_mgr, env, key, invoker->conf_ctx, AXIS2_FALSE);
if(msg_to_invoke)
rm_msg_ctx = sandesha2_msg_init_init_msg(env,
msg_to_invoke);
@@ -393,7 +393,7 @@
storage_mgr, env);
sandesha2_storage_mgr_remove_msg_ctx(storage_mgr, env, key);
msg_ctx = sandesha2_storage_mgr_retrieve_msg_ctx(
- storage_mgr, env, key, invoker->conf_ctx);
+ storage_mgr, env, key, invoker->conf_ctx, AXIS2_FALSE);
if(msg_ctx)
sandesha2_storage_mgr_remove_msg_ctx(storage_mgr,
env, key);
Modified: webservices/sandesha/trunk/c/src/workers/sender.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/workers/sender.c?view=diff&rev=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/src/workers/sender.c (original)
+++ webservices/sandesha/trunk/c/src/workers/sender.c Sat May 5 02:38:52 2007
@@ -39,6 +39,7 @@
#include <axiom_soap_fault.h>
#include <axiom_soap_body.h>
#include <platforms/axutil_platform_auto_sense.h>
+#include <axutil_types.h>
/**
* @brief Sender struct impl
@@ -247,15 +248,16 @@
sandesha2_storage_mgr_t *storage_mgr = NULL;
sandesha2_seq_property_mgr_t *seq_prop_mgr = NULL;
axis2_bool_t do_sleep = AXIS2_FALSE;
+ axis2_conf_t *conf = NULL;
args = (sandesha2_sender_args_t*)data;
env = axutil_init_thread_env(args->env);
sender = args->impl;
sender = (sandesha2_sender_t*)sender;
-
AXIS2_LOG_INFO(env->log, "Start:sandesha2_sender_worker_func");
+ conf = axis2_conf_ctx_get_conf(sender->conf_ctx, env);
storage_mgr = sandesha2_utils_get_storage_mgr(env, sender->conf_ctx,
- axis2_conf_ctx_get_conf(sender->conf_ctx, env));
+ conf);
while(sender->run_sender)
{
@@ -267,7 +269,10 @@
sandesha2_sender_worker_t *sender_worker = NULL;
axis2_char_t *msg_id = NULL;
axis2_char_t *seq_id = NULL;
- int no_of_seqs = 0;
+ axis2_module_desc_t *module_desc = NULL;
+ axutil_qname_t *qname = NULL;
+ axutil_param_t *sleep_time_param = NULL;
+ int no_of_seqs = 0, sleep_time = 0;
no_of_seqs = axutil_array_list_size(sender->working_seqs, env);
if(sender->seq_index >= no_of_seqs)
{
@@ -283,9 +288,18 @@
transaction = sandesha2_storage_mgr_get_transaction(storage_mgr,
env);
+ qname = axutil_qname_create(env, "sandesha2", NULL, NULL);
+ module_desc = axis2_conf_get_module(conf, env, qname);
+ sleep_time_param = axis2_module_desc_get_param(module_desc, env,
+ SANDESHA2_SENDER_SLEEP);
+ if(sleep_time_param)
+ {
+ sleep_time = AXIS2_ATOI(axutil_param_get_value(sleep_time_param, env));
+ }
+ axutil_qname_free(qname, env);
if(!transaction)
{
- AXIS2_SLEEP(SANDESHA2_SENDER_SLEEP_TIME);
+ AXIS2_SLEEP(sleep_time);
continue;
}
seq_prop_mgr = sandesha2_storage_mgr_get_seq_property_mgr(
@@ -308,7 +322,7 @@
sender_worker = sandesha2_sender_worker_create(env, sender->conf_ctx,
msg_id);
sandesha2_sender_worker_run(sender_worker, env);
- AXIS2_SLEEP(SANDESHA2_SENDER_SLEEP_TIME * 2);
+ AXIS2_SLEEP(sleep_time * 2);
status = sandesha2_sender_worker_get_status(
sender_worker, env);
if(!status)
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=535486&r1=535485&r2=535486
==============================================================================
--- webservices/sandesha/trunk/c/src/workers/sender_worker.c (original)
+++ webservices/sandesha/trunk/c/src/workers/sender_worker.c Sat May 5 02:38:52 2007
@@ -293,7 +293,7 @@
{
axutil_allocator_switch_to_global_pool(env->allocator);
msg_ctx = sandesha2_storage_mgr_retrieve_msg_ctx(storage_mgr, env, key,
- sender_worker->conf_ctx);
+ sender_worker->conf_ctx, AXIS2_FALSE);
axutil_allocator_switch_to_local_pool(env->allocator);
}
if(!msg_ctx)
@@ -434,15 +434,12 @@
/* This is neccessary to avoid a double free */
axis2_msg_ctx_set_property(msg_ctx, env, AXIS2_TRANSPORT_IN, NULL);
/* Consider building soap envelope */
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2]came100###############################");
if(AXIS2_TRANSPORT_SENDER_INVOKE(transport_sender, env, msg_ctx))
{
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2]came101###############################");
successfully_sent = AXIS2_TRUE;
sender_worker->counter++;
}else
{
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2]came102###############################");
successfully_sent = AXIS2_FALSE;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org