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