SCF_CLEAR_SQL = (1 << 17),
SCF_THREADED_SYSTEM_EXEC = (1 << 18),
SCF_SYNC_CLOCK_REQUESTED = (1 << 19),
- SCF_CORE_ODBC_REQ = (1 << 20)
+ SCF_CORE_ODBC_REQ = (1 << 20),
+ SCF_DEBUG_SQL = (1 << 21)
} switch_core_flag_enum_t;
typedef uint32_t switch_core_flag_t;
SCSC_PAUSE_CHECK,
SCSC_READY_CHECK,
SCSC_THREADED_SYSTEM_EXEC,
- SCSC_SYNC_CLOCK_WHEN_IDLE
+ SCSC_SYNC_CLOCK_WHEN_IDLE,
+ SCSC_DEBUG_SQL,
} switch_session_ctl_t;
typedef enum {
}
switch_core_session_ctl(command, &arg);
stream->write_function(stream, "+OK\n");
+
+ } else if (!strcasecmp(argv[0], "debug_sql")) {
+ int x = 0;
+ switch_core_session_ctl(SCSC_DEBUG_SQL, &x);
+ stream->write_function(stream, "+OK SQL DEBUG [%s]\n", x ? "on" : "off");
+
} else if (!strcasecmp(argv[0], "reclaim_mem")) {
switch_core_session_ctl(SCSC_RECLAIM, &arg);
stream->write_function(stream, "+OK\n");
switch_console_set_complete("add complete del");
switch_console_set_complete("add db_cache status");
switch_console_set_complete("add fsctl debug_level");
+ switch_console_set_complete("add fsctl debug_sql");
switch_console_set_complete("add fsctl last_sps");
switch_console_set_complete("add fsctl default_dtmf_duration");
switch_console_set_complete("add fsctl hupall");
#include <switch.h>
#include "private/switch_core_pvt.h"
-//#define DEBUG_SQL 1
+
#define SWITCH_SQL_QUEUE_LEN 100000
#define SWITCH_SQL_QUEUE_PAUSE_LEN 90000
if (new_mlen < runtime.max_sql_buffer_len) {
sql_len = new_mlen;
-#ifdef DEBUG_SQL
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT,
- "REALLOC %ld %d %d\n", (long int)sql_len, switch_queue_size(sql_manager.sql_queue[0]),
- switch_queue_size(sql_manager.sql_queue[1]));
-#endif
+ if (switch_test_flag((&runtime), SCF_DEBUG_SQL)) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT,
+ "REALLOC %ld %d %d\n", (long int)sql_len, switch_queue_size(sql_manager.sql_queue[0]),
+ switch_queue_size(sql_manager.sql_queue[1]));
+ }
if (!(tmp = realloc(sqlbuf, sql_len))) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "SQL thread ending on mem err\n");
abort();
}
sqlbuf = tmp;
} else {
-#ifdef DEBUG_SQL
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT,
- "SAVE %d %d\n", switch_queue_size(sql_manager.sql_queue[0]), switch_queue_size(sql_manager.sql_queue[1]));
-#endif
+ if (switch_test_flag((&runtime), SCF_DEBUG_SQL)) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT,
+ "SAVE %d %d\n", switch_queue_size(sql_manager.sql_queue[0]), switch_queue_size(sql_manager.sql_queue[1]));
+ }
save_sql = sql;
sql = NULL;
lc = 0;
wrote = 0;
if (trans && iterations && (iterations > target || !lc)) {
-#ifdef DEBUG_SQL
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT,
- "RUN %d %d %d\n", switch_queue_size(sql_manager.sql_queue[0]), switch_queue_size(sql_manager.sql_queue[1]), iterations);
-#endif
+ if (switch_test_flag((&runtime), SCF_DEBUG_SQL)) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT,
+ "RUN %d %d %d\n", switch_queue_size(sql_manager.sql_queue[0]), switch_queue_size(sql_manager.sql_queue[1]), iterations);
+ }
if (switch_cache_db_persistant_execute_trans(sql_manager.event_db, sqlbuf, 1) != SWITCH_STATUS_SUCCESS) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "SQL thread unable to commit transaction, records lost!\n");
}
-#ifdef DEBUG_SQL
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "DONE\n");
-#endif
+ if (switch_test_flag((&runtime), SCF_DEBUG_SQL)) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "DONE\n");
+ }
iterations = 0;