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/03/13 05:52:13 UTC

svn commit: r517527 - in /webservices/sandesha/trunk/c: config/ include/ samples/rm_echo_1_0/ samples/rm_echo_1_1/ samples/rm_mtom_1_0/ src/handlers/ src/msgprocessors/ src/storage/permanent/ src/util/ src/workers/

Author: damitha
Date: Mon Mar 12 21:52:11 2007
New Revision: 517527

URL: http://svn.apache.org/viewvc?view=rev&rev=517527
Log:
Fixed Sandesha2c-30. Also updated rm_echo_1_0 and rm_echo_1_1 samples.

Modified:
    webservices/sandesha/trunk/c/config/module.xml
    webservices/sandesha/trunk/c/include/sandesha2_constants.h
    webservices/sandesha/trunk/c/samples/rm_echo_1_0/rm_echo.c
    webservices/sandesha/trunk/c/samples/rm_echo_1_1/rm_echo_1_1.c
    webservices/sandesha/trunk/c/samples/rm_mtom_1_0/rm_mtom_1_0.c
    webservices/sandesha/trunk/c/src/handlers/sandesha2_in_handler.c
    webservices/sandesha/trunk/c/src/msgprocessors/ack_msg_processor.c
    webservices/sandesha/trunk/c/src/storage/permanent/permanent_bean_mgr.c
    webservices/sandesha/trunk/c/src/storage/permanent/permanent_storage_mgr.c
    webservices/sandesha/trunk/c/src/storage/permanent/permanent_transaction.c
    webservices/sandesha/trunk/c/src/util/ack_mgr.c
    webservices/sandesha/trunk/c/src/util/sandesha2_utils.c
    webservices/sandesha/trunk/c/src/util/terminate_mgr.c
    webservices/sandesha/trunk/c/src/workers/sender.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=517527&r1=517526&r2=517527
==============================================================================
--- webservices/sandesha/trunk/c/config/module.xml (original)
+++ webservices/sandesha/trunk/c/config/module.xml Mon Mar 12 21:52:11 2007
@@ -72,7 +72,7 @@
    <!-- General parameters -->
     <parameter name="ExponentialBackoff" locked="false">AXIS2_TRUE</parameter>
     <parameter name="RetransmissionInterval" locked="false">4000</parameter>
-    <parameter name="AcknowledgementInterval" locked="false">4000</parameter>
+    <parameter name="AcknowledgementInterval" locked="false">2</parameter><!-- in seconds-->
     <parameter name="InactivityTimeout" locked="false">60000</parameter>
     <parameter name="StorageManager" locked="false">persistent</parameter>
     <parameter name="InvokeInOrder" locked="false">AXIS2_FALSE</parameter>

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=517527&r1=517526&r2=517527
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_constants.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_constants.h Mon Mar 12 21:52:11 2007
@@ -423,7 +423,7 @@
 
 	#define SANDESHA2_CLIENT_SLEEP_TIME  4 /* 32 16 */
 
-	#define SANDESHA2_TERMINATE_DELAY  4 /* 100 32 */
+	#define SANDESHA2_TERMINATE_DELAY  4 /* In seconds */
 
 	#define SANDESHA2_TEMP_SEQ_ID  "uuid:tempID"
 
@@ -497,7 +497,7 @@
 
     #define SANDESHA2_IN_MESSAGE_STORAGE_KEY "InMsgStoreKey"
     #define SANDESHA2_PERSISTANT_PROPERTY_SEPERATOR ",,,"
-    #define SANDESHA2_BUSY_WAIT_TIME 8
+    #define SANDESHA2_BUSY_WAIT_TIME 1
     #define SANDESHA2_IS_SVR_SIDE "is_svr_side" 
     #define SANDESHA2_DB "sandesha2_db"
 /** @} */

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=517527&r1=517526&r2=517527
==============================================================================
--- 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 Mon Mar 12 21:52:11 2007
@@ -65,7 +65,7 @@
     const axis2_char_t *client_home = NULL;
     axis2_svc_client_t* svc_client = NULL;
     axiom_node_t *payload = NULL;
-    axis2_callback_t *callback = NULL;
+    axis2_callback_t *callback1 = NULL;
     axis2_callback_t *callback2 = NULL;
     axis2_callback_t *callback3 = NULL;
     axis2_property_t *property = NULL;
@@ -79,8 +79,6 @@
             AXIS2_LOG_LEVEL_CRITICAL);
 
     /* Set end point reference of echo service */
-    /*address = "http://127.0.0.1:8888/axis2/services/RMSampleService";*/
-    /*address = "http://127.0.0.1:5555/axis2/services/RMSampleService";*/
     to = "http://127.0.0.1:5555/axis2/services/RMSampleService";
     while ((c = AXIS2_GETOPT(argc, argv, ":a:")) != -1)
     {
@@ -126,9 +124,10 @@
     }
     AXIS2_OPTIONS_SET_USE_SEPARATE_LISTENER(options, env, AXIS2_TRUE);
     
-    /* Seperate listner needs addressing, hence addressing stuff in options */
+    /* Separate listner needs addressing, hence addressing stuff in options */
     /*AXIS2_OPTIONS_SET_ACTION(options, env,
         "http://127.0.0.1:5555/axis2/services/RMSampleService/anonOutInOp");*/
+    /*AXIS2_OPTIONS_SET_ACTION(options, env, "urn:wsrm:EchoString");*/
     reply_to = axis2_endpoint_ref_create(env, 
         "http://localhost:7777/axis2/services/__ANONYMOUS_SERVICE__/"\
             "__OPERATION_OUT_IN__");
@@ -144,7 +143,6 @@
      * the client uses
      */
     client_home = AXIS2_GETENV("AXIS2C_HOME");
-    /*client_home = "/home/damitha/workspace/sandeshaya/c/deploy";*/
     if (!client_home)
         client_home = "../../deploy";
 
@@ -158,7 +156,15 @@
             AXIS2_ERROR_GET_MESSAGE(env->error));
         return -1;
     }
-
+    AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, AXIOM_SOAP11);
+    /* RM Version 1.0 */
+    property = axis2_property_create_with_args(env, 3, 0, 0, 
+        SANDESHA2_SPEC_VERSION_1_0);
+    if(property)
+    {
+        AXIS2_OPTIONS_SET_PROPERTY(options, env, 
+            SANDESHA2_CLIENT_RM_SPEC_VERSION, property);
+    }
     /* Set service client options */
     AXIS2_SVC_CLIENT_SET_OPTIONS(svc_client, env, options);    
     
@@ -170,21 +176,19 @@
     {
         return AXIS2_FAILURE;
     }
-    payload = build_om_payload_for_echo_svc(env, "echo1", "sequence1");
-    callback = axis2_callback_create(env);
-    AXIS2_CALLBACK_SET_ON_COMPLETE(callback, rm_echo_callback_on_complete);
-    AXIS2_CALLBACK_SET_ON_ERROR(callback, rm_echo_callback_on_error);
-    sandesha2_client_send_non_blocking(env, svc_client, options, NULL, callback, 
-        payload, listener_manager);
-    wait_on_callback(env, callback);
+    /*payload = build_om_payload_for_echo_svc(env, "echo1", "sequence1");
+    callback1 = axis2_callback_create(env);
+    AXIS2_CALLBACK_SET_ON_COMPLETE(callback1, rm_echo_callback_on_complete);
+    AXIS2_CALLBACK_SET_ON_ERROR(callback1, rm_echo_callback_on_error);
+    AXIS2_SVC_CLIENT_SEND_RECEIVE_NON_BLOCKING(svc_client, env, payload, callback1);
+    wait_on_callback(env, callback1);
 
     payload = build_om_payload_for_echo_svc(env, "echo2", "sequence1");
     callback2 = axis2_callback_create(env);
     AXIS2_CALLBACK_SET_ON_COMPLETE(callback2, rm_echo_callback_on_complete);
     AXIS2_CALLBACK_SET_ON_ERROR(callback2, rm_echo_callback_on_error);
-    sandesha2_client_send_non_blocking(env, svc_client, options, NULL, callback2, 
-        payload, listener_manager);
-    wait_on_callback(env, callback2);
+    AXIS2_SVC_CLIENT_SEND_RECEIVE_NON_BLOCKING(svc_client, env, payload, callback2);
+    wait_on_callback(env, callback2);*/
 
     property = axis2_property_create_with_args(env, 0, 0, 0, AXIS2_VALUE_TRUE);
     AXIS2_OPTIONS_SET_PROPERTY(options, env, "Sandesha2LastMessage", property);
@@ -192,10 +196,9 @@
     callback3 = axis2_callback_create(env);
     AXIS2_CALLBACK_SET_ON_COMPLETE(callback3, rm_echo_callback_on_complete);
     AXIS2_CALLBACK_SET_ON_ERROR(callback3, rm_echo_callback_on_error);
-    sandesha2_client_send_non_blocking(env, svc_client, options, NULL, callback3, 
-        payload, listener_manager);
+    AXIS2_SVC_CLIENT_SEND_RECEIVE_NON_BLOCKING(svc_client, env, payload, callback3);
     wait_on_callback(env, callback3);
-    AXIS2_SLEEP(SANDESHA2_MAX_COUNT);
+    AXIS2_SLEEP(2 * SANDESHA2_MAX_COUNT);
     if (svc_client)
     {
         /*AXIS2_SVC_CLIENT_FREE(svc_client, env);*/

Modified: webservices/sandesha/trunk/c/samples/rm_echo_1_1/rm_echo_1_1.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/samples/rm_echo_1_1/rm_echo_1_1.c?view=diff&rev=517527&r1=517526&r2=517527
==============================================================================
--- webservices/sandesha/trunk/c/samples/rm_echo_1_1/rm_echo_1_1.c (original)
+++ webservices/sandesha/trunk/c/samples/rm_echo_1_1/rm_echo_1_1.c Mon Mar 12 21:52:11 2007
@@ -121,8 +121,9 @@
     AXIS2_OPTIONS_SET_USE_SEPARATE_LISTENER(options, env, AXIS2_TRUE);
     
     /* Seperate listner needs addressing, hence addressing stuff in options */
-    AXIS2_OPTIONS_SET_ACTION(options, env,
-        "http://127.0.0.1:8080/axis2/services/RMSampleService/anonOutInOp");
+    /*AXIS2_OPTIONS_SET_ACTION(options, env,
+        "http://127.0.0.1:8080/axis2/services/RMSampleService/anonOutInOp");*/
+    AXIS2_OPTIONS_SET_ACTION(options, env, "urn:wsrm:EchoString");
     reply_to = axis2_endpoint_ref_create(env, 
             "http://localhost:7777/axis2/services/__ANONYMOUS_SERVICE__/"\
                 "__OPERATION_OUT_IN__");

Modified: webservices/sandesha/trunk/c/samples/rm_mtom_1_0/rm_mtom_1_0.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/samples/rm_mtom_1_0/rm_mtom_1_0.c?view=diff&rev=517527&r1=517526&r2=517527
==============================================================================
--- webservices/sandesha/trunk/c/samples/rm_mtom_1_0/rm_mtom_1_0.c (original)
+++ webservices/sandesha/trunk/c/samples/rm_mtom_1_0/rm_mtom_1_0.c Mon Mar 12 21:52:11 2007
@@ -25,6 +25,7 @@
 #include <axis2_callback_recv.h>
 #include <axis2_svc_client.h>
 #include <sandesha2_client.h>
+#include <sandesha2_constants.h>
 #include <sandesha2_client_constants.h>
 #include <ctype.h>
 
@@ -131,6 +132,13 @@
     if(property)
         AXIS2_OPTIONS_SET_PROPERTY(options, env, SANDESHA2_CLIENT_OFFERED_SEQ_ID,
             property);
+    property = axis2_property_create_with_args(env, 3, 0, 0, 
+        SANDESHA2_SPEC_VERSION_1_0);
+    if(property)
+    {
+        AXIS2_OPTIONS_SET_PROPERTY(options, env, 
+            SANDESHA2_CLIENT_RM_SPEC_VERSION, property);
+    }
     svc_ctx = AXIS2_SVC_CLIENT_GET_SVC_CTX(svc_client, env);
     conf_ctx = axis2_svc_ctx_get_conf_ctx(svc_ctx, env);
     property = axis2_property_create_with_args(env, 0, 0, 0, "4");
@@ -140,9 +148,8 @@
         AXIS2_OPTIONS_SET_PROPERTY(options, env, AXIS2_TIMEOUT_IN_SECONDS, 
             property);
     }
-    payload = build_om_payload_for_mtom(env, image_name, "test1.jpg");
+    /*payload = build_om_payload_for_mtom(env, image_name, "test1.jpg");
     result = AXIS2_SVC_CLIENT_SEND_RECEIVE(svc_client, env, payload);
-    /*result = sandesha2_client_get_response_envelope(env, conf_ctx, svc_client, 1);*/
     if(result)
     {
         axis2_char_t *om_str = NULL;
@@ -167,7 +174,6 @@
     }
     payload = build_om_payload_for_mtom(env, image_name, "test2.jpg");
     result = AXIS2_SVC_CLIENT_SEND_RECEIVE(svc_client, env, payload);
-    /*result = sandesha2_client_get_response_envelope(env, conf_ctx, svc_client, 1);*/
     if(result)
     {
         axis2_char_t *om_str = NULL;
@@ -182,7 +188,7 @@
     else
     {
         printf("\necho client two way single channel invoke FAILED!\n");
-    }
+    }*/
 
     property = axis2_property_create_with_args(env, 0, 0, 0, "4");
     if(property)
@@ -195,7 +201,6 @@
     AXIS2_OPTIONS_SET_PROPERTY(options, env, "Sandesha2LastMessage", 
         property);
     result = AXIS2_SVC_CLIENT_SEND_RECEIVE(svc_client, env, payload);
-    /*result = sandesha2_client_get_response_envelope(env, conf_ctx, svc_client, 1);*/
     if(result)
     {
         axis2_char_t *om_str = NULL;

Modified: webservices/sandesha/trunk/c/src/handlers/sandesha2_in_handler.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/handlers/sandesha2_in_handler.c?view=diff&rev=517527&r1=517526&r2=517527
==============================================================================
--- webservices/sandesha/trunk/c/src/handlers/sandesha2_in_handler.c (original)
+++ webservices/sandesha/trunk/c/src/handlers/sandesha2_in_handler.c Mon Mar 12 21:52:11 2007
@@ -241,7 +241,7 @@
             prop, AXIS2_FALSE);
     }
     AXIS2_LOG_INFO(env->log, "[sandesha2] Exit: sandesha2_in_handler::invoke");
-    
+   
     return AXIS2_SUCCESS;
 }
 

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=517527&r1=517526&r2=517527
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/ack_msg_processor.c (original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/ack_msg_processor.c Mon Mar 12 21:52:11 2007
@@ -168,7 +168,6 @@
     axis2_bool_t added = AXIS2_FALSE;
     const axis2_char_t *action = NULL;
     sandesha2_msg_ctx_t *fault_msg_ctx = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, rm_msg_ctx, AXIS2_FAILURE);
     AXIS2_LOG_INFO(env->log, 

Modified: webservices/sandesha/trunk/c/src/storage/permanent/permanent_bean_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/storage/permanent/permanent_bean_mgr.c?view=diff&rev=517527&r1=517526&r2=517527
==============================================================================
--- webservices/sandesha/trunk/c/src/storage/permanent/permanent_bean_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/storage/permanent/permanent_bean_mgr.c Mon Mar 12 21:52:11 2007
@@ -1176,7 +1176,7 @@
 {
     int counter = 0;
     printf("in busy handler1\n");
-    while(rc == SQLITE_BUSY && counter < 8)
+    while(rc == SQLITE_BUSY && counter < 32)
     {
         printf("in busy handler2\n");
         if(*error_msg)

Modified: webservices/sandesha/trunk/c/src/storage/permanent/permanent_storage_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/storage/permanent/permanent_storage_mgr.c?view=diff&rev=517527&r1=517526&r2=517527
==============================================================================
--- webservices/sandesha/trunk/c/src/storage/permanent/permanent_storage_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/storage/permanent/permanent_storage_mgr.c Mon Mar 12 21:52:11 2007
@@ -381,7 +381,7 @@
 
     axis2_thread_mutex_lock(storage_mgr_impl->mutex);
     axis2_allocator_switch_to_global_pool(env->allocator);
-    for (index = axis2_hash_first(storage_mgr_impl->transactions , env); index; 
+    /*for (index = axis2_hash_first(storage_mgr_impl->transactions , env); index; 
         index = axis2_hash_next(env, index))
     {
         void *v = NULL;
@@ -393,11 +393,16 @@
             AXIS2_SLEEP(1);
         }
 
-    }
+    }*/
     thread_id_key = AXIS2_MALLOC(env->allocator, sizeof(char)*128);
     sprintf(thread_id_key, "%lu", thread_id); 
     transaction = (sandesha2_transaction_t *) axis2_hash_get(
         storage_mgr_impl->transactions, thread_id_key, AXIS2_HASH_KEY_STRING);
+    while(transaction && sandesha2_permanent_transaction_is_active(transaction, env))
+    {
+        AXIS2_SLEEP(1);
+    }
+    
     if(!transaction)
     {
         transaction = 

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=517527&r1=517526&r2=517527
==============================================================================
--- webservices/sandesha/trunk/c/src/storage/permanent/permanent_transaction.c (original)
+++ webservices/sandesha/trunk/c/src/storage/permanent/permanent_transaction.c Mon Mar 12 21:52:11 2007
@@ -167,6 +167,9 @@
     }
     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);
     /*printf("came1:thread_id:%ld\n", thread_id);*/
     if(rc != SQLITE_OK )
     {
@@ -261,20 +264,16 @@
     rc = sqlite3_exec(trans_impl->dbconn, "COMMIT TRANSACTION;", 0, 0, &error_msg);
     /*unsigned long int thread_id = (unsigned long int) axis2_os_thread_current();
     printf("came2:thread_id:%ld\n", thread_id);*/
-    /*if(rc == SQLITE_BUSY)
+    if(rc == SQLITE_BUSY)
         rc = sandesha2_permanent_bean_mgr_busy_handler(trans_impl->dbconn, 
-            "COMMIT TRANSACTION;", 0, 0, &error_msg, rc);*/
-    while(rc != SQLITE_OK )
+            "COMMIT TRANSACTION", 0, 0, &error_msg, rc);
+    if(rc != SQLITE_OK )
     {
         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);
-        AXIS2_SLEEP(1);
-        sqlite3_close(trans_impl->dbconn);
-        sandesha2_permanent_transaction_release_locks(trans, env);
-        rc = sqlite3_exec(trans_impl->dbconn, "COMMIT TRANSACTION;", 0, 0, &error_msg);
     }
     sqlite3_close(trans_impl->dbconn);
     trans_impl->is_active = AXIS2_FALSE;
@@ -294,6 +293,9 @@
         &error_msg);
     /*unsigned long int thread_id = (unsigned long int) axis2_os_thread_current();
     printf("came3:thread_id:%ld\n", thread_id);*/
+    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 )
     {
         AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_SQL_ERROR, AXIS2_FAILURE);

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=517527&r1=517526&r2=517527
==============================================================================
--- webservices/sandesha/trunk/c/src/util/ack_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/ack_mgr.c Mon Mar 12 21:52:11 2007
@@ -219,7 +219,6 @@
             old_ack_bean = axis2_array_list_get(bean_list, env, i);
             time_to_send = sandesha2_sender_bean_get_time_to_send(old_ack_bean,
                 env);
-            /*axis2_char_t *msg_id = sandesha2_sender_bean_get_msg_id((const sandesha2_sender_bean_t *)old_ack_bean, env);*/
             sandesha2_sender_mgr_remove(retrans_mgr, env, 
                 sandesha2_sender_bean_get_msg_id((sandesha2_rm_bean_t *) 
                     old_ack_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=517527&r1=517526&r2=517527
==============================================================================
--- webservices/sandesha/trunk/c/src/util/sandesha2_utils.c (original)
+++ webservices/sandesha/trunk/c/src/util/sandesha2_utils.c Mon Mar 12 21:52:11 2007
@@ -99,9 +99,9 @@
 sandesha2_utils_get_current_time_in_millis(
     const axis2_env_t *env)
 {
-    const long fixed_time = 1153918446;
+    /*const long fixed_time = 1153918446;
+    long millis = -1;*/
     long seconds = -1;
-    long millis = -1;
     struct timeb *tp = AXIS2_MALLOC(env->allocator, sizeof(struct timeb));
     ftime(tp);
     /* To prevent an overflow we substract a contstant from seconds value
@@ -109,12 +109,13 @@
      *
      */
     seconds = tp->time;
-    seconds -= fixed_time;
+    /*seconds -= fixed_time;
     seconds *= 1000;
     millis = tp->millitm;
     millis = millis + seconds;
 
-    return millis;
+    return millis;*/
+    return seconds;
 }
 
 AXIS2_EXTERN axis2_char_t* AXIS2_CALL

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=517527&r1=517526&r2=517527
==============================================================================
--- webservices/sandesha/trunk/c/src/util/terminate_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/terminate_mgr.c Mon Mar 12 21:52:11 2007
@@ -640,6 +640,7 @@
     axis2_char_t *temp_action = NULL;
     axis2_string_t *soap_action = NULL;
     const axis2_char_t *to_addr = NULL;
+    long send_time = -1;
     
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, rm_msg_ctx, AXIS2_FAILURE);
@@ -741,9 +742,9 @@
     terminate_msg_ctx = sandesha2_msg_ctx_get_msg_ctx(terminate_rm_msg, env);
     sandesha2_storage_mgr_store_msg_ctx(storage_mgr, env, key, 
         terminate_msg_ctx);
-    sandesha2_sender_bean_set_time_to_send(terminate_bean, env,
-        sandesha2_utils_get_current_time_in_millis(env) +
-        SANDESHA2_TERMINATE_DELAY);
+    send_time = sandesha2_utils_get_current_time_in_millis(env) +
+        SANDESHA2_TERMINATE_DELAY;
+    sandesha2_sender_bean_set_time_to_send(terminate_bean, env, send_time);
     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);

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=517527&r1=517526&r2=517527
==============================================================================
--- webservices/sandesha/trunk/c/src/workers/sender.c (original)
+++ webservices/sandesha/trunk/c/src/workers/sender.c Mon Mar 12 21:52:11 2007
@@ -282,6 +282,11 @@
             sender->seq_index++);
         transaction = sandesha2_storage_mgr_get_transaction(storage_mgr,
             env);
+        if(!transaction)
+        {
+            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);
@@ -289,6 +294,7 @@
         if(!sender_bean)
         {
             sandesha2_transaction_commit(transaction, env);
+            AXIS2_SLEEP(SANDESHA2_SENDER_SLEEP_TIME); 
             continue;
         }
         msg_id = sandesha2_sender_bean_get_msg_id((sandesha2_rm_bean_t *) 



---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org