[prev in list] [next in list] [prev in thread] [next in thread] 

List:       sandesha-dev
Subject:    [jira] Created: (SANDESHA2C-51) When sequence timed out sandesha2/C
From:       "Damitha Kumarage (JIRA)" <jira () apache ! org>
Date:       2008-05-21 17:55:55
Message-ID: 684398443.1211392555856.JavaMail.jira () brutus
[Download RAW message or body]

When sequence timed out sandesha2/C try to send a create sequence message.
--------------------------------------------------------------------------

                 Key: SANDESHA2C-51
                 URL: https://issues.apache.org/jira/browse/SANDESHA2C-51
             Project: Sandesha2/C
          Issue Type: Bug
            Reporter: Damitha Kumarage


The reason is because when sequence is timed out then \
SANDESHA2_SEQ_PROP_NEXT_MESSAGE_NUMBER property is also removed from database as part \
of sending side data cleaning, which result in system_msg_number = -1 in \
app_msg_process_process_out_msg() function. Which in tern make msg_number = 1 which \
prompt sending a create sequence message.

To prevent this I added following code in app_msg_process_process_out_msg() function.

    seq_timeout_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, \
internal_seq_id,  SANDESHA2_SEQ_PROP_SEQ_TIMED_OUT);
    if(seq_timeout_bean && sandesha2_seq_property_bean_get_value(seq_timeout_bean, \
                env)
        && 0 == axutil_strcmp(AXIS2_VALUE_TRUE, \
sandesha2_seq_property_bean_get_value(seq_timeout_bean,  env)))
    {
        axis2_char_t *temp_int_seq_id = \
                sandesha2_seq_property_bean_get_seq_id(seq_timeout_bean, env);
        axis2_char_t *temp_name = \
sandesha2_seq_property_bean_get_name(seq_timeout_bean, env);  \
                AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
                "[sandesha2] Removing the sequence property named %s in the sequence \
%s", temp_name,  temp_int_seq_id);
        sandesha2_seq_property_mgr_remove(seq_prop_mgr, env, temp_int_seq_id, \
temp_name);

        if(internal_seq_id)
                AXIS2_FREE(env->allocator, internal_seq_id);
        if(seq_prop_mgr)
            sandesha2_seq_property_mgr_free(seq_prop_mgr, env);
        if(create_seq_mgr)
            sandesha2_create_seq_mgr_free(create_seq_mgr, env);
        if(sender_mgr)
            sandesha2_sender_mgr_free(sender_mgr, env);
        if(storage_mgr)
            sandesha2_storage_mgr_free(storage_mgr, env);
        /* We should halt the system here. Otherwise application client keep on \
sending messages. */  exit(AXIS2_FAILURE);
    }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic