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/04/17 06:55:32 UTC
svn commit: r529486 [3/3] - in /webservices/sandesha/trunk/c: config/
include/ samples/rm_echo_1_0/ samples/rm_echo_1_1/
samples/rm_echo_single_1_0/ samples/rm_report/ src/client/ src/core/
src/handlers/ src/msgprocessors/ src/storage/permanent/ src/ut...
Modified: webservices/sandesha/trunk/c/src/storage/permanent/permanent_transaction.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/storage/permanent/permanent_transaction.c?view=diff&rev=529486&r1=529485&r2=529486
==============================================================================
--- webservices/sandesha/trunk/c/src/storage/permanent/permanent_transaction.c (original)
+++ webservices/sandesha/trunk/c/src/storage/permanent/permanent_transaction.c Mon Apr 16 21:55:30 2007
@@ -30,7 +30,7 @@
#include <axis2_module_desc.h>
#include <sandesha2_permanent_bean_mgr.h>
#include <platforms/axutil_platform_auto_sense.h>
-#include <sqlite3.h>
+#include <mysql.h>
typedef struct sandesha2_permanent_transaction_impl
sandesha2_permanent_transaction_impl_t;
@@ -45,7 +45,7 @@
sandesha2_storage_mgr_t *storage_mgr;
axutil_array_list_t *enlisted_beans;
axutil_thread_mutex_t *mutex;
- sqlite3 *dbconn;
+ MYSQL *dbconn;
axis2_bool_t is_active;
unsigned long int thread_id;
};
@@ -95,7 +95,9 @@
unsigned long int thread_id)
{
sandesha2_permanent_transaction_impl_t *trans_impl = NULL;
- axis2_char_t *error_msg = NULL;
+ char *server = "localhost";
+ char *user = "g";
+ char *password = "g";
axis2_char_t *path = NULL;
axis2_char_t *db_name = NULL;
int rc = -1;
@@ -110,7 +112,8 @@
trans_impl = (sandesha2_permanent_transaction_impl_t *)AXIS2_MALLOC
(env->allocator, sizeof(sandesha2_permanent_transaction_impl_t));
- trans_impl->mutex = sandesha2_permanent_storage_mgr_get_mutex(storage_mgr, env);
+ trans_impl->mutex = sandesha2_permanent_storage_mgr_get_mutex(storage_mgr,
+ env);
trans_impl->storage_mgr = storage_mgr;
trans_impl->thread_id = thread_id;
trans_impl->dbconn = NULL;
@@ -121,9 +124,7 @@
if(conf_ctx)
conf = axis2_conf_ctx_get_conf((const axis2_conf_ctx_t *) conf_ctx, env);
else
- {
return NULL;
- }
prop_bean = (sandesha2_property_bean_t *)sandesha2_utils_get_property_bean(
env, conf);
/*path = sandesha2_property_bean_get_db_path(prop_bean, env);*/
@@ -148,36 +149,35 @@
SANDESHA2_IS_SVR_SIDE);
if(!property)
{
- db_name = axutil_strcat(env, path, AXIS2_PATH_SEP_STR,
- "sandesha2_svr_db", NULL);
+ /*db_name = axutil_strcat(env, path, AXIS2_PATH_SEP_STR,
+ "sandesha2_svr_db", NULL);*/
+ db_name = "sandesha2_svr_db";
}
else
{
- db_name = axutil_strcat(env, path, AXIS2_PATH_SEP_STR,
- "sandesha2_client_db", NULL);
- }
- rc = sqlite3_open(db_name, &(trans_impl->dbconn));
- if(rc != SQLITE_OK)
+ /*db_name = axutil_strcat(env, path, AXIS2_PATH_SEP_STR,
+ "sandesha2_client_db", NULL);*/
+ db_name = "sandesha2_client_db";
+ }
+ trans_impl->dbconn = mysql_init(NULL);
+ if (!mysql_real_connect(trans_impl->dbconn, server,
+ user, password, db_name, 0, NULL, 0))
{
+ mysql_close(trans_impl->dbconn);
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Can't open database: %s\n",
- sqlite3_errmsg(trans_impl->dbconn));
+ mysql_error(trans_impl->dbconn));
AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_CANNOT_OPEN_DATABASE,
AXIS2_FAILURE);
- sqlite3_close(trans_impl->dbconn);
return NULL;
}
- rc = sqlite3_exec(trans_impl->dbconn, "BEGIN TRANSACTION;", 0, 0,
- &error_msg);
- if(rc == SQLITE_BUSY)
- rc = sandesha2_permanent_bean_mgr_busy_handler(trans_impl->dbconn,
- "BEGIN TRANSACTION", 0, 0, &error_msg, rc);
- if(rc != SQLITE_OK )
+ rc = mysql_query(trans_impl->dbconn, "begin;");
+ if(rc )
{
+ mysql_close(trans_impl->dbconn);
AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_SQL_ERROR, AXIS2_FAILURE);
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "SQL Error %s",
- error_msg);
- printf("transaction begin error_msg:%s\n", error_msg);
- sqlite3_free(error_msg);
+ mysql_error(trans_impl->dbconn));
+ printf("transaction begin error_msg:%s\n", mysql_error(trans_impl->dbconn));
sandesha2_transaction_free(&(trans_impl->trans), env);
return NULL;
}
@@ -208,7 +208,7 @@
return AXIS2_SUCCESS;
}
-sqlite3 *AXIS2_CALL
+MYSQL *AXIS2_CALL
sandesha2_permanent_transaction_get_dbconn(
sandesha2_transaction_t *trans,
const axutil_env_t *env)
@@ -244,30 +244,24 @@
sandesha2_transaction_t *trans,
const axutil_env_t *env)
{
- axis2_char_t *error_msg = NULL;
int rc = -1;
sandesha2_permanent_transaction_impl_t *trans_impl = NULL;
trans_impl = SANDESHA2_INTF_TO_IMPL(trans);
axutil_thread_mutex_lock(trans_impl->mutex);
- rc = sqlite3_exec(trans_impl->dbconn, "COMMIT TRANSACTION;", 0, 0, &error_msg);
- if(rc == SQLITE_BUSY)
- {
- rc = sandesha2_permanent_bean_mgr_busy_handler(trans_impl->dbconn,
- "COMMIT TRANSACTION", 0, 0, &error_msg, rc);
- }
- if(rc != SQLITE_OK )
+ rc = mysql_query(trans_impl->dbconn, "commit;");
+ if(rc )
{
+ mysql_close(trans_impl->dbconn);
axutil_thread_mutex_unlock(trans_impl->mutex);
AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_SQL_ERROR, AXIS2_FAILURE);
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "sql error %s",
- error_msg);
- printf("commit error_msg:%s\n", error_msg);
- sqlite3_free(error_msg);
+ mysql_error(trans_impl->dbconn));
+ printf("commit error_msg:%s\n", mysql_error(trans_impl->dbconn));
}
- sqlite3_close(trans_impl->dbconn);
trans_impl->is_active = AXIS2_FALSE;
sandesha2_permanent_transaction_release_locks(trans, env);
+ mysql_close(trans_impl->dbconn);
axutil_thread_mutex_unlock(trans_impl->mutex);
}
@@ -276,29 +270,24 @@
sandesha2_transaction_t *trans,
const axutil_env_t *env)
{
- axis2_char_t *error_msg = NULL;
int rc = -1;
sandesha2_permanent_transaction_impl_t *trans_impl = NULL;
trans_impl = SANDESHA2_INTF_TO_IMPL(trans);
axutil_thread_mutex_lock(trans_impl->mutex);
- rc = sqlite3_exec(trans_impl->dbconn, "ROLLBACK TRANSACTION;", 0, 0,
- &error_msg);
- if(rc == SQLITE_BUSY)
- rc = sandesha2_permanent_bean_mgr_busy_handler(trans_impl->dbconn,
- "ROLLBACK TRANSACTION", 0, 0, &error_msg, rc);
- if(rc != SQLITE_OK )
+ rc = mysql_query(trans_impl->dbconn, "rollback;");
+ if(rc )
{
+ mysql_close(trans_impl->dbconn);
axutil_thread_mutex_unlock(trans_impl->mutex);
AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_SQL_ERROR, AXIS2_FAILURE);
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "sql error %s",
- error_msg);
- printf("sql_stmt_rollback:%s\n", "ROLLBACK TRANSACTION;");
- printf("rollback error_msg:%s\n", error_msg);
- sqlite3_free(error_msg);
+ mysql_error(trans_impl->dbconn));
+ printf("sql_stmt_rollback:%s\n", "rollback;");
+ printf("rollback error_msg:%s\n", mysql_error(trans_impl->dbconn));
}
- sqlite3_close(trans_impl->dbconn);
trans_impl->is_active = AXIS2_FALSE;
sandesha2_permanent_transaction_release_locks(trans, env);
+ mysql_close(trans_impl->dbconn);
axutil_thread_mutex_unlock(trans_impl->mutex);
}
@@ -377,4 +366,31 @@
AXIS2_LOG_INFO(env->log,
"[sandesha2]Exit:sandesha2_permanent_transaction_enlist");
}
+
+/*int
+sandesha2_permanent_transaction_busy_handler(
+ MYSQL* dbconn,
+ char *sql_stmt,
+ int (*callback_func)(void *, int, char **, char **),
+ void *args,
+ char **error_msg,
+ int rc)
+{
+ int counter = 0;
+ printf("in busy handler3\n");
+ while(rc == SQLITE_BUSY && counter < 512)
+ {
+ printf("in busy handler33\n");
+ counter++;
+#ifdef WIN32
+ Sleep(100);
+#else
+ usleep(100000);
+#endif
+ rc = mysql_query(dbconn, sql_stmt, callback_func, args, error_msg);
+ }
+ printf("in busy handler4\n");
+ return rc;
+}
+*/
Modified: webservices/sandesha/trunk/c/src/util/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/Makefile.am?view=diff&rev=529486&r1=529485&r2=529486
==============================================================================
--- webservices/sandesha/trunk/c/src/util/Makefile.am (original)
+++ webservices/sandesha/trunk/c/src/util/Makefile.am Mon Apr 16 21:55:30 2007
@@ -17,4 +17,5 @@
INCLUDES = -I$(top_builddir)/include \
-I$(top_builddir)/include/sandesha2 \
+ -I/usr/include/mysql \
@AXIS2INC@
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=529486&r1=529485&r2=529486
==============================================================================
--- webservices/sandesha/trunk/c/src/util/ack_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/ack_mgr.c Mon Apr 16 21:55:30 2007
@@ -183,7 +183,7 @@
sandesha2_sender_bean_set_resend(ack_bean, env, AXIS2_FALSE);
sandesha2_sender_bean_set_seq_id(ack_bean, env, seq_id);
sandesha2_sender_bean_set_send(ack_bean, env, AXIS2_TRUE);
-
+ sandesha2_sender_bean_set_seq_id(ack_bean, env, seq_id);
property = axutil_property_create_with_args(env, AXIS2_SCOPE_REQUEST,
AXIS2_FALSE, 0, AXIS2_VALUE_FALSE);
axis2_msg_ctx_set_property(ack_msg_ctx, env,
Modified: webservices/sandesha/trunk/c/src/util/msg_creator.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/msg_creator.c?view=diff&rev=529486&r1=529485&r2=529486
==============================================================================
--- webservices/sandesha/trunk/c/src/util/msg_creator.c (original)
+++ webservices/sandesha/trunk/c/src/util/msg_creator.c Mon Apr 16 21:55:30 2007
@@ -329,17 +329,21 @@
sandesha2_create_seq_t *cs = NULL;
int soap_version = -1;
+ AXIS2_LOG_INFO(env->log,
+ "[sandesha2] Start:sandesha2_msg_creator_create_create_seq_res_msg");
temp_msg_ctx = sandesha2_msg_ctx_get_msg_ctx(create_seq_msg, env);
conf_ctx = axis2_msg_ctx_get_conf_ctx(temp_msg_ctx, env);
msg_part = (sandesha2_iom_rm_element_t *) sandesha2_msg_ctx_get_msg_part(
- create_seq_msg, env, SANDESHA2_MSG_PART_CREATE_SEQ);
+ create_seq_msg, env, SANDESHA2_MSG_PART_CREATE_SEQ);
cs = (sandesha2_create_seq_t *) msg_part;
rm_version = sandesha2_utils_get_rm_version(env, new_seq_id, storage_mgr);
if(!rm_version)
{
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "Cannot find rm version of given message");
AXIS2_ERROR_SET(env->error,
- SANDESHA2_ERROR_CANNOT_FIND_RM_VERSION_OF_GIVEN_MSG,
- AXIS2_FAILURE);
+ SANDESHA2_ERROR_CANNOT_FIND_RM_VERSION_OF_GIVEN_MSG,
+ AXIS2_FAILURE);
return NULL;
}
rm_ns_value = sandesha2_spec_specific_consts_get_rm_ns_val(env, rm_version);
@@ -413,6 +417,8 @@
temp_msg_ctx = sandesha2_msg_ctx_get_msg_ctx(create_seq_msg, env);
sandesha2_msg_creator_finalize_creation(env, temp_msg_ctx, out_msg);
axis2_msg_ctx_set_server_side(temp_msg_ctx, env, AXIS2_TRUE);
+ AXIS2_LOG_INFO(env->log,
+ "[sandesha2] Exit:sandesha2_msg_creator_create_create_seq_res_msg");
return create_seq_response;
}
Modified: webservices/sandesha/trunk/c/src/util/msg_init.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/msg_init.c?view=diff&rev=529486&r1=529485&r2=529486
==============================================================================
--- webservices/sandesha/trunk/c/src/util/msg_init.c (original)
+++ webservices/sandesha/trunk/c/src/util/msg_init.c Mon Apr 16 21:55:30 2007
@@ -443,7 +443,7 @@
{
axis2_char_t *spec_version = NULL;
axis2_char_t *seq_rm_ns = NULL;
- AXIS2_LOG_INFO(env->log, "prop_key:%s\n", prop_key);
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "prop_key:%s\n", prop_key);
spec_version = sandesha2_utils_get_rm_version(env, prop_key, storage_mgr);
if(spec_version)
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=529486&r1=529485&r2=529486
==============================================================================
--- webservices/sandesha/trunk/c/src/util/terminate_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/terminate_mgr.c Mon Apr 16 21:55:30 2007
@@ -638,9 +638,12 @@
axis2_engine_t *engine = NULL;
axis2_char_t *temp_action = NULL;
axutil_string_t *soap_action = NULL;
+ axis2_status_t status = AXIS2_FALSE;
const axis2_char_t *to_addr = NULL;
long send_time = -1;
+ AXIS2_LOG_INFO(env->log,
+ "[sandesha2] Start:sandesha2_terminate_mgr_add_terminate_seq_msg");
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK(env->error, rm_msg_ctx, AXIS2_FAILURE);
AXIS2_PARAM_CHECK(env->error, out_seq_id, AXIS2_FAILURE);
@@ -659,6 +662,10 @@
{
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2] Terminate was"
" added previously");
+ /* If we do not return at this, there will be two terminate messsages
+ * sent to the client
+ */
+ return AXIS2_SUCCESS;
}
terminate_rm_msg = sandesha2_msg_creator_create_terminate_seq_msg(env,
rm_msg_ctx, out_seq_id, int_seq_id, storage_mgr);
@@ -747,10 +754,29 @@
sandesha2_sender_bean_set_msg_id(terminate_bean, env,
sandesha2_msg_ctx_get_msg_id(terminate_rm_msg, env));
sandesha2_sender_bean_set_send(terminate_bean, env, AXIS2_TRUE);
-
+
+
+
+
+ sandesha2_terminate_seq_t *terminate_seq = NULL;
+ terminate_seq = (sandesha2_terminate_seq_t*)
+ sandesha2_msg_ctx_get_msg_part(terminate_rm_msg, env,
+ SANDESHA2_MSG_PART_TERMINATE_SEQ);
+ axis2_char_t *seq_id = sandesha2_identifier_get_identifier(
+ sandesha2_terminate_seq_get_identifier(terminate_seq,
+ env), env);
+ axis2_char_t *internal_seq_id = sandesha2_utils_get_seq_property(env, seq_id,
+ SANDESHA2_SEQ_PROP_INTERNAL_SEQ_ID, storage_mgr);
+ sandesha2_sender_bean_set_seq_id(terminate_bean, env, internal_seq_id);
+
+
+
+
property = axutil_property_create_with_args(env, 0, 0, 0, AXIS2_VALUE_FALSE);
sandesha2_msg_ctx_set_property(terminate_rm_msg, env,
SANDESHA2_QUALIFIED_FOR_SENDING, property);
+ sandesha2_sender_bean_set_msg_type(terminate_bean, env,
+ SANDESHA2_MSG_TYPE_TERMINATE_SEQ);
sandesha2_sender_bean_set_resend(terminate_bean, env, AXIS2_FALSE);
retrans_mgr = sandesha2_storage_mgr_get_retrans_mgr(storage_mgr, env);
@@ -792,6 +818,9 @@
axis2_msg_ctx_set_reply_to(msg_ctx1, env, reply_to_epr);
}
engine = axis2_engine_create(env, conf_ctx);
- return axis2_engine_send(engine, env, msg_ctx1);
+ status = axis2_engine_send(engine, env, msg_ctx1);
+ AXIS2_LOG_INFO(env->log,
+ "[sandesha2] Exit:sandesha2_terminate_mgr_add_terminate_seq_msg");
+ return status;
}
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=529486&r1=529485&r2=529486
==============================================================================
--- webservices/sandesha/trunk/c/src/workers/sender.c (original)
+++ webservices/sandesha/trunk/c/src/workers/sender.c Mon Apr 16 21:55:30 2007
@@ -267,7 +267,12 @@
sandesha2_sender_worker_t *sender_worker = NULL;
axis2_char_t *msg_id = NULL;
axis2_char_t *seq_id = NULL;
+ axis2_char_t *out_int_seq_id = NULL;
+ axis2_char_t *out_seq_id = NULL;
int no_of_seqs = 0;
+ axis2_bool_t seq_completed = AXIS2_FALSE;
+ sandesha2_seq_property_bean_t *terminated_bean = NULL;
+ axis2_char_t *terminated = NULL;
no_of_seqs = axutil_array_list_size(sender->working_seqs, env);
if(sender->seq_index >= no_of_seqs)
{
@@ -280,6 +285,7 @@
}
seq_id = axutil_array_list_get(sender->working_seqs, env,
sender->seq_index++);
+
transaction = sandesha2_storage_mgr_get_transaction(storage_mgr,
env);
if(!transaction)
@@ -287,14 +293,15 @@
AXIS2_SLEEP(SANDESHA2_SENDER_SLEEP_TIME);
continue;
}
- mgr = sandesha2_storage_mgr_get_retrans_mgr(storage_mgr, env);
seq_prop_mgr = sandesha2_storage_mgr_get_seq_property_mgr(
storage_mgr, env);
+ mgr = sandesha2_storage_mgr_get_retrans_mgr(storage_mgr, env);
sender_bean = sandesha2_sender_mgr_get_next_msg_to_send(mgr, env, seq_id);
if(!sender_bean)
{
sandesha2_transaction_commit(transaction, env);
- AXIS2_SLEEP(SANDESHA2_SENDER_SLEEP_TIME);
+ /*AXIS2_SLEEP(SANDESHA2_SENDER_SLEEP_TIME);*/
+ usleep(100000);
continue;
}
msg_id = sandesha2_sender_bean_get_msg_id((sandesha2_rm_bean_t *)
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=529486&r1=529485&r2=529486
==============================================================================
--- webservices/sandesha/trunk/c/src/workers/sender_worker.c (original)
+++ webservices/sandesha/trunk/c/src/workers/sender_worker.c Mon Apr 16 21:55:30 2007
@@ -510,6 +510,7 @@
sandesha2_terminate_mgr_terminate_sending_side(env, conf_ctx,
internal_seq_id, axis2_msg_ctx_get_server_side(msg_ctx, env),
storage_mgr);
+ sender_worker->status = AXIS2_FAILURE;
}
property = axis2_msg_ctx_get_property(msg_ctx, env,
SANDESHA2_WITHIN_TRANSACTION);
@@ -590,13 +591,13 @@
* Message Receiver (may be callback MR).
*/
axis2_msg_ctx_set_server_side(res_msg_ctx, env, AXIS2_TRUE);
- property = axis2_msg_ctx_get_property(msg_ctx, env, AXIS2_TRANSPORT_IN);
+ /*property = axis2_msg_ctx_get_property(msg_ctx, env, AXIS2_TRANSPORT_IN);
if(property)
{
axutil_property_t *temp_prop = axutil_property_clone(property, env);
axis2_msg_ctx_set_property(res_msg_ctx, env, AXIS2_TRANSPORT_IN,
temp_prop);
- }
+ }*/
axis2_msg_ctx_set_svc_ctx(res_msg_ctx, env, axis2_msg_ctx_get_svc_ctx(
msg_ctx, env));
axis2_msg_ctx_set_svc_grp_ctx(res_msg_ctx, env,
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org