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/12/07 02:05:20 UTC
svn commit: r601948 -
/webservices/sandesha/trunk/c/src/storage/sqlite/permanent_bean_mgr.c
Author: damitha
Date: Thu Dec 6 17:05:18 2007
New Revision: 601948
URL: http://svn.apache.org/viewvc?rev=601948&view=rev
Log:
Cleaning the code in sqlite bean_mgr
Modified:
webservices/sandesha/trunk/c/src/storage/sqlite/permanent_bean_mgr.c
Modified: webservices/sandesha/trunk/c/src/storage/sqlite/permanent_bean_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/storage/sqlite/permanent_bean_mgr.c?rev=601948&r1=601947&r2=601948&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/storage/sqlite/permanent_bean_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/storage/sqlite/permanent_bean_mgr.c Thu Dec 6 17:05:18 2007
@@ -48,23 +48,6 @@
#define SANDESHA2_INTF_TO_IMPL(bean_mgr) \
((sandesha2_permanent_bean_mgr_impl_t *) bean_mgr)
-static sqlite3 *
-sandesha2_permanent_bean_mgr_get_dbconn(
- sandesha2_permanent_bean_mgr_t *bean_mgr,
- const axutil_env_t *env);
-
-static int
-sandesha2_permanent_bean_mgr_count_callback(
- void *not_used,
- int argc,
- char **argv,
- char **col_name)
-{
- int *count = (int *) not_used;
- *count = AXIS2_ATOI(argv[0]);
- return 0;
-}
-
static int
sandesha2_permanent_bean_mgr_response_retrieve_callback(
void *not_used,
@@ -266,7 +249,7 @@
}
rc = sqlite3_exec(bean_mgr_impl->dbconn, sql_stmt_insert, 0, 0, &error_msg);
if(rc == SQLITE_BUSY)
- rc = sandesha2_permanent_bean_mgr_busy_handler(bean_mgr_impl->dbconn,
+ rc = sandesha2_permanent_bean_mgr_busy_handler(env, bean_mgr_impl->dbconn,
sql_stmt_insert, 0, 0, &error_msg, rc, bean_mgr_impl->mutex);
if( rc != SQLITE_OK )
{
@@ -304,8 +287,9 @@
args->env = env;
rc = sqlite3_exec(bean_mgr_impl->dbconn, sql_stmt_remove, 0, 0, &error_msg);
if(rc == SQLITE_BUSY)
- rc = sandesha2_permanent_bean_mgr_busy_handler(bean_mgr_impl->dbconn, sql_stmt_remove,
- 0, 0, &error_msg, rc, bean_mgr_impl->mutex);
+ rc = sandesha2_permanent_bean_mgr_busy_handler(env,
+ bean_mgr_impl->dbconn, sql_stmt_remove, 0, 0, &error_msg, rc,
+ bean_mgr_impl->mutex);
if(rc != SQLITE_OK )
{
axutil_thread_mutex_unlock(bean_mgr_impl->mutex);
@@ -351,8 +335,9 @@
&error_msg);
if(rc == SQLITE_BUSY)
{
- rc = sandesha2_permanent_bean_mgr_busy_handler(bean_mgr_impl->dbconn, sql_stmt_retrieve,
- retrieve_func, args, &error_msg, rc, bean_mgr_impl->mutex);
+ rc = sandesha2_permanent_bean_mgr_busy_handler(env,
+ bean_mgr_impl->dbconn, sql_stmt_retrieve, retrieve_func, args,
+ &error_msg, rc, bean_mgr_impl->mutex);
}
if(rc != SQLITE_OK )
{
@@ -394,8 +379,9 @@
rc = sqlite3_exec(bean_mgr_impl->dbconn, sql_stmt_update, 0, 0, &error_msg);
if(rc == SQLITE_BUSY)
- rc = sandesha2_permanent_bean_mgr_busy_handler(bean_mgr_impl->dbconn, sql_stmt_update,
- 0, 0, &error_msg, rc, bean_mgr_impl->mutex);
+ rc = sandesha2_permanent_bean_mgr_busy_handler(env,
+ bean_mgr_impl->dbconn, sql_stmt_update, 0, 0, &error_msg, rc,
+ bean_mgr_impl->mutex);
if(rc != SQLITE_OK )
{
axutil_thread_mutex_unlock(bean_mgr_impl->mutex);
@@ -444,8 +430,9 @@
rc = sqlite3_exec(bean_mgr_impl->dbconn, sql_stmt_find, find_func, args,
&error_msg);
if(rc == SQLITE_BUSY)
- rc = sandesha2_permanent_bean_mgr_busy_handler(bean_mgr_impl->dbconn, sql_stmt_find,
- find_func, args, &error_msg, rc, bean_mgr_impl->mutex);
+ rc = sandesha2_permanent_bean_mgr_busy_handler(env,
+ bean_mgr_impl->dbconn, sql_stmt_find, find_func, args, &error_msg,
+ rc, bean_mgr_impl->mutex);
if(args->data)
data_array = (axutil_array_list_t *) args->data;
if(rc != SQLITE_OK )
@@ -548,8 +535,10 @@
rc = sqlite3_exec(bean_mgr_impl->dbconn, sql_stmt_retrieve,
sandesha2_msg_store_bean_retrieve_callback, args, &error_msg);
if(rc == SQLITE_BUSY)
- rc = sandesha2_permanent_bean_mgr_busy_handler(bean_mgr_impl->dbconn, sql_stmt_retrieve,
- sandesha2_msg_store_bean_retrieve_callback, args, &error_msg, rc, bean_mgr_impl->mutex);
+ rc = sandesha2_permanent_bean_mgr_busy_handler(env,
+ bean_mgr_impl->dbconn, sql_stmt_retrieve,
+ sandesha2_msg_store_bean_retrieve_callback, args, &error_msg, rc,
+ bean_mgr_impl->mutex);
if(rc != SQLITE_OK )
{
axutil_thread_mutex_unlock(bean_mgr_impl->mutex);
@@ -574,14 +563,10 @@
axis2_char_t *key,
sandesha2_msg_store_bean_t *bean)
{
- axis2_char_t sql_stmt_retrieve[512];
- axis2_char_t *sql_stmt_update = NULL;
axis2_char_t *sql_stmt_insert = NULL;
axis2_char_t *error_msg = NULL;
int rc = -1;
int sql_size = -1;
- sandesha2_bean_mgr_args_t *args = NULL;
- sandesha2_msg_store_bean_t *msg_store_bean = NULL;
axis2_char_t *msg_id = NULL;
axis2_char_t *stored_key = NULL;
axis2_char_t *soap_env_str = NULL;
@@ -604,6 +589,9 @@
axis2_char_t *action = NULL;
bean_mgr_impl = SANDESHA2_INTF_TO_IMPL(bean_mgr);
+
+ AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI,
+ "[sandesha2]Entry:sandesha2_permanent_bean_mgr_insert_msg_store_bean");
msg_id = sandesha2_msg_store_bean_get_msg_id(bean, env);
stored_key = sandesha2_msg_store_bean_get_stored_key(bean, env);
soap_env_str = sandesha2_msg_store_bean_get_soap_envelope_str(bean, env);
@@ -624,8 +612,6 @@
prop_str = sandesha2_msg_store_bean_get_persistent_property_str(bean, env);
action = sandesha2_msg_store_bean_get_action(bean, env);
- AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI,
- "[sandesha2]Entry:sandesha2_permanent_bean_mgr_insert_msg_store_bean");
sql_size = axutil_strlen(msg_id) + axutil_strlen(stored_key) +
axutil_strlen(soap_env_str) + sizeof(int) + sizeof(int) +
axutil_strlen(op) + axutil_strlen(svc) + axutil_strlen(svc_grp) +
@@ -643,63 +629,6 @@
return AXIS2_FALSE;
}
- args = AXIS2_MALLOC(env->allocator, sizeof(sandesha2_bean_mgr_args_t));
- args->env = env;
- args->data = NULL;
- sprintf(sql_stmt_retrieve, "select stored_key, msg_id, soap_env_str,"\
- "soap_version, transport_out, op, svc, svc_grp, op_mep, to_url, reply_to, "\
- "transport_to, execution_chain_str, flow, msg_recv_str, svr_side, "\
- "in_msg_store_key, prop_str, action from msg where stored_key = '%s'",
- key);
- rc = sqlite3_exec(bean_mgr_impl->dbconn, sql_stmt_retrieve,
- sandesha2_msg_store_bean_retrieve_callback, args, &error_msg);
- if(rc == SQLITE_BUSY)
- rc = sandesha2_permanent_bean_mgr_busy_handler(bean_mgr_impl->dbconn, sql_stmt_retrieve,
- sandesha2_msg_store_bean_retrieve_callback, args, &error_msg, rc, bean_mgr_impl->mutex);
- if(rc != SQLITE_OK )
- {
- axutil_thread_mutex_unlock(bean_mgr_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);
- sqlite3_free(error_msg);
- return AXIS2_FALSE;
- }
- if(args->data)
- msg_store_bean = (sandesha2_msg_store_bean_t *) args->data;
- if(args)
- AXIS2_FREE(env->allocator, args);
- if(msg_store_bean)
- {
- sql_stmt_update = AXIS2_MALLOC(env->allocator, sql_size);
- sprintf(sql_stmt_update, "update msg set msg_id='%s',"\
- "soap_env_str='%s', soap_version=%d, transport_out='%d', op='%s',"\
- "svc='%s', svc_grp='%s', op_mep='%s', to_url='%s',"\
- "transport_to='%s', reply_to='%s', execution_chain_str='%s',"\
- "flow=%d, msg_recv_str='%s', svr_side='%d', in_msg_store_key='%s',"\
- "prop_str='%s', action='%s' where stored_key='%s'", msg_id,
- soap_env_str, soap_version, transport_out, op, svc, svc_grp, op_mep,
- to_url, transport_to, reply_to, execution_chain_str, flow,
- msg_recv_str, svr_side, in_msg_store_key, prop_str, action, key);
- rc = sqlite3_exec(bean_mgr_impl->dbconn, sql_stmt_update, 0, 0, &error_msg);
- if(rc == SQLITE_BUSY)
- rc = sandesha2_permanent_bean_mgr_busy_handler(bean_mgr_impl->dbconn, sql_stmt_update,
- 0, 0, &error_msg, rc, bean_mgr_impl->mutex);
- if( rc != SQLITE_OK )
- {
- axutil_thread_mutex_unlock(bean_mgr_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);
- AXIS2_FREE(env->allocator, sql_stmt_update);
- sqlite3_free(error_msg);
- return AXIS2_FALSE;
- }
- AXIS2_FREE(env->allocator, sql_stmt_update);
- axutil_thread_mutex_unlock(bean_mgr_impl->mutex);
- return AXIS2_TRUE;
- }
sql_stmt_insert = AXIS2_MALLOC(env->allocator, sql_size);
sprintf(sql_stmt_insert, "insert into msg(stored_key, msg_id, "\
"soap_env_str, soap_version, transport_out, op, svc, svc_grp, op_mep,"\
@@ -712,8 +641,9 @@
svr_side, in_msg_store_key, prop_str, action);
rc = sqlite3_exec(bean_mgr_impl->dbconn, sql_stmt_insert, 0, 0, &error_msg);
if(rc == SQLITE_BUSY)
- rc = sandesha2_permanent_bean_mgr_busy_handler(bean_mgr_impl->dbconn, sql_stmt_insert,
- 0, 0, &error_msg, rc, bean_mgr_impl->mutex);
+ rc = sandesha2_permanent_bean_mgr_busy_handler(env,
+ bean_mgr_impl->dbconn, sql_stmt_insert, 0, 0, &error_msg, rc,
+ bean_mgr_impl->mutex);
if( rc != SQLITE_OK )
{
axutil_thread_mutex_unlock(bean_mgr_impl->mutex);
@@ -754,8 +684,9 @@
sprintf(sql_stmt_remove, "delete from msg where stored_key='%s'", key);
rc = sqlite3_exec(bean_mgr_impl->dbconn, sql_stmt_remove, 0, 0, &error_msg);
if(rc == SQLITE_BUSY)
- rc = sandesha2_permanent_bean_mgr_busy_handler(bean_mgr_impl->dbconn, sql_stmt_remove,
- 0, 0, &error_msg, rc, bean_mgr_impl->mutex);
+ rc = sandesha2_permanent_bean_mgr_busy_handler(env,
+ bean_mgr_impl->dbconn, sql_stmt_remove, 0, 0, &error_msg, rc,
+ bean_mgr_impl->mutex);
if(rc != SQLITE_OK )
{
axutil_thread_mutex_unlock(bean_mgr_impl->mutex);
@@ -780,22 +711,17 @@
int msg_no,
int soap_version)
{
- axis2_char_t sql_stmt_count[512];
- axis2_char_t *sql_stmt_update;
axis2_char_t *sql_stmt_insert;
axis2_char_t *error_msg = NULL;
int rc = -1;
int sql_size = -1;
sandesha2_permanent_bean_mgr_impl_t *bean_mgr_impl = NULL;
- int count = -1;
bean_mgr_impl = SANDESHA2_INTF_TO_IMPL(bean_mgr);
AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI,
"[sandesha2]Entry:sandesha2_permanent_bean_mgr_store_response");
sql_size = axutil_strlen(seq_id) + axutil_strlen(response) +
sizeof(int) + sizeof(int) + 512;
- sprintf(sql_stmt_count, "select count(seq_id)"\
- " from response where seq_id = '%s' and msg_no=%d", seq_id, msg_no);
axutil_thread_mutex_lock(bean_mgr_impl->mutex);
if(!bean_mgr_impl->dbconn)
@@ -805,67 +731,26 @@
axutil_thread_mutex_unlock(bean_mgr_impl->mutex);
return AXIS2_FALSE;
}
- rc = sqlite3_exec(bean_mgr_impl->dbconn, sql_stmt_count,
- sandesha2_permanent_bean_mgr_count_callback, &count, &error_msg);
+ sql_stmt_insert = AXIS2_MALLOC(env->allocator, sql_size);
+ sprintf(sql_stmt_insert, "insert into response(seq_id, response_str,"\
+ "msg_no, soap_version) values('%s', '%s', %d, %d)", seq_id,
+ response, msg_no, soap_version);
+ rc = sqlite3_exec(bean_mgr_impl->dbconn, sql_stmt_insert, 0, 0, &error_msg);
if(rc == SQLITE_BUSY)
- rc = sandesha2_permanent_bean_mgr_busy_handler(bean_mgr_impl->dbconn, sql_stmt_count,
- sandesha2_permanent_bean_mgr_count_callback, &count, &error_msg, rc, bean_mgr_impl->mutex);
- if(rc != SQLITE_OK )
+ rc = sandesha2_permanent_bean_mgr_busy_handler(env,
+ bean_mgr_impl->dbconn, sql_stmt_insert, 0, 0, &error_msg, rc,
+ bean_mgr_impl->mutex);
+ if( rc != SQLITE_OK )
{
axutil_thread_mutex_unlock(bean_mgr_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);
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "sql error %s", error_msg);
+ AXIS2_FREE(env->allocator, sql_stmt_insert);
sqlite3_free(error_msg);
return AXIS2_FALSE;
}
- if(count > 0)
- {
- sql_stmt_update = AXIS2_MALLOC(env->allocator, sql_size);
- sprintf(sql_stmt_update, "update response set response_str='%s',"\
- "soap_version=%d where seq_id='%s' and msg_no=%d", response,
- soap_version, seq_id, msg_no);
- rc = sqlite3_exec(bean_mgr_impl->dbconn, sql_stmt_update, 0, 0, &error_msg);
- if(rc == SQLITE_BUSY)
- rc = sandesha2_permanent_bean_mgr_busy_handler(bean_mgr_impl->dbconn, sql_stmt_update,
- 0, 0, &error_msg, rc, bean_mgr_impl->mutex);
- if( rc != SQLITE_OK )
- {
- axutil_thread_mutex_unlock(bean_mgr_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);
- AXIS2_FREE(env->allocator, sql_stmt_update);
- sqlite3_free(error_msg);
- return AXIS2_FALSE;
- }
- AXIS2_FREE(env->allocator, sql_stmt_update);
- axutil_thread_mutex_unlock(bean_mgr_impl->mutex);
- return AXIS2_TRUE;
- }
- else
- {
- sql_stmt_insert = AXIS2_MALLOC(env->allocator, sql_size);
- sprintf(sql_stmt_insert, "insert into response(seq_id, response_str,"\
- "msg_no, soap_version) values('%s', '%s', %d, %d)", seq_id,
- response, msg_no, soap_version);
- rc = sqlite3_exec(bean_mgr_impl->dbconn, sql_stmt_insert, 0, 0, &error_msg);
- if(rc == SQLITE_BUSY)
- rc = sandesha2_permanent_bean_mgr_busy_handler(bean_mgr_impl->dbconn, sql_stmt_insert,
- 0, 0, &error_msg, rc, bean_mgr_impl->mutex);
- if( rc != SQLITE_OK )
- {
- axutil_thread_mutex_unlock(bean_mgr_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);
- AXIS2_FREE(env->allocator, sql_stmt_insert);
- sqlite3_free(error_msg);
- return AXIS2_FALSE;
- }
- AXIS2_FREE(env->allocator, sql_stmt_insert);
- axutil_thread_mutex_unlock(bean_mgr_impl->mutex);
- }
+ AXIS2_FREE(env->allocator, sql_stmt_insert);
+ axutil_thread_mutex_unlock(bean_mgr_impl->mutex);
AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI,
"[sandesha2]Exit:sandesha2_permanent_bean_mgr_store_response");
return AXIS2_TRUE;
@@ -897,8 +782,9 @@
"delete from response where seq_id='%s' and msg_no=%d", seq_id, msg_no);
rc = sqlite3_exec(bean_mgr_impl->dbconn, sql_stmt_remove, 0, 0, &error_msg);
if(rc == SQLITE_BUSY)
- rc = sandesha2_permanent_bean_mgr_busy_handler(bean_mgr_impl->dbconn, sql_stmt_remove,
- 0, 0, &error_msg, rc, bean_mgr_impl->mutex);
+ rc = sandesha2_permanent_bean_mgr_busy_handler(env,
+ bean_mgr_impl->dbconn, sql_stmt_remove, 0, 0, &error_msg, rc,
+ bean_mgr_impl->mutex);
if(rc != SQLITE_OK )
{
axutil_thread_mutex_unlock(bean_mgr_impl->mutex);
@@ -943,7 +829,8 @@
rc = sqlite3_exec(bean_mgr_impl->dbconn, sql_stmt_retrieve,
sandesha2_permanent_bean_mgr_response_retrieve_callback, args, &error_msg);
if(rc == SQLITE_BUSY)
- rc = sandesha2_permanent_bean_mgr_busy_handler(bean_mgr_impl->dbconn, sql_stmt_retrieve,
+ rc = sandesha2_permanent_bean_mgr_busy_handler(env,
+ bean_mgr_impl->dbconn, sql_stmt_retrieve,
sandesha2_permanent_bean_mgr_response_retrieve_callback, args,
&error_msg, rc, bean_mgr_impl->mutex);
if(rc != SQLITE_OK )
@@ -961,6 +848,7 @@
int
sandesha2_permanent_bean_mgr_busy_handler(
+ const axutil_env_t *env,
sqlite3* dbconn,
char *sql_stmt,
int (*callback_func)(void *, int, char **, char **),
@@ -975,6 +863,7 @@
if(*error_msg)
sqlite3_free(*error_msg);
counter++;
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2]In busy hander");
/* When this method is invoked, the mutex must have been locked,
so unlock before going to sleep */
axutil_thread_mutex_unlock(mutex);
@@ -986,7 +875,7 @@
return rc;
}
-static sqlite3 *
+sqlite3 *
sandesha2_permanent_bean_mgr_get_dbconn(
sandesha2_permanent_bean_mgr_t *bean_mgr,
const axutil_env_t *env)
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org