...
Code Block | ||
---|---|---|
| ||
SELECT DECODE(MAX(D_LOG_CREATE), NULL, 'Never',
TO_CHAR(MAX(D_LOG_CREATE), 'DD.MM.YYYY HH24:MI:SS')) VC_LAST_LOAD_DATE
FROM EX_V_CDR
WHERE N_CDR_TYPE_ID = SYS_CONTEXT('CONST', 'CDR_TYPE_PhoneCall'); |
В результате выполнения запроса может быть либо точная дата в следующем виде:
...
В следующем запросе в качестве результата выводится либо время, когда была произведена последняя загрузка CDR (в секундах от даты загрузки до текущего момента времени), либо «-1», если в БД нет CDR. Данный запрос удобно применять для обработки в системах мониторинга:
Code Block | ||
---|---|---|
| ||
WITH last_cdr AS ( SELECT N_CDR_ID FROM ( SELECT N_CDR_ID FROM EX_V_CDR ORDER BY N_CDR_ID DESC) WHERE ROWNUM = 1) SELECT DECODE(MAX(D_LOG_CREATE), NULL, -1, TO_CHAR((SYSDATE-MAX(D_LOG_CREATE))*(8640060*60*24), 'FM99999999999999990')) N_LAST_LOAD_SEC FROM EX_V_CDR CDR, last_cdr WHERE CDR.N_CDR_TYPE_ID = last_cdr.N_CDR_IDSYS_CONTEXT('CONST', 'CDR_TYPE_PhoneCall'); |
Триггер для мониторинга следует настраивать в зависимости от интервала загрузки CDR или RADIUS-аккаунтинга.
Мониторинг даты последнего обновления
...
сессий по передаче данных
Данный Следующий запрос показывает в какое время была произведена последнее обновление интернет-сессий дату последнего обновления сессий по передаче данных абонентов в АСР , (его удобно использовать для анализа человеком):
Code Block | ||
---|---|---|
| ||
SELECT DECODE(MAX(D_END), NULL, 'Never', TO_CHAR(MAX(D_END), 'DD.MM.YYYY HH24:MI:SS')) LastVC_DateLAST_LoadUPDATE FROM EX_V_CDR WHERE N_CDR_TYPE_ID =IN (SELECT MAX(N_CDR_ID) FROM EX_V_CDR); |
...
SYS_CONTEXT('CONST', 'CDR_TYPE_PPP_WithCharging'), SYS_CONTEXT('CONST', 'CDR_TYPE_PPP_WOCharging')); |
В результате выполнения запроса может быть либо точная дата в следующем виде:
Code Block |
---|
LAST_DATE_LOAD ------------------- 2926.0111.2013 1110:0501:5438 |
либо строка «Never», если в БД нет интернет-сессий:
Code Block |
---|
LAST_DATE_LOAD ------------------- Never |
если CDR в базе не было.
В следующем примере запросе в качестве результата выводится либо время, когда была последняя загрузка CDR (сколько секунд назад от было произведено последнее обновление сессий (в секундах от даты последнего обновления до текущего момента времени), либо «-1», если загрузки CDR не было.
Его удобнее в БД нет сессий. Данный запрос удобно применять для обработки в системах мониторинга. :
Code Block | ||
---|---|---|
| ||
WITH last_cdr AS ( SELECT N_CDR_ID FROM ( SELECT N_CDR_ID FROM EX_V_CDR ORDER BY N_CDR_ID DESC) WHERE ROWNUM = 1) SELECT DECODE(MAX(D_LOG_CREATEEND), NULL, -1, TO_CHAR((SYSDATE-MAX(D_LOG_CREATEEND))*(8640060*60*24), 'FM99999999999999990')) N_LAST_UPDATE_SEC FROM EX_V_CDR WHERE CDR, last_cdr WHERE CDR.N_CDR_ID = last_cdr.N_CDR_ID; |
...
N_CDR_TYPE_ID IN (SYS_CONTEXT('CONST', 'CDR_TYPE_PPP_WithCharging'), SYS_CONTEXT('CONST', 'CDR_TYPE_PPP_WOCharging')); |
Триггер для мониторинга следует настраивать в зависимости от интервала загрузки RADIUS-аккаунтига.
Контроль выполнения событий
...