Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagesql
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
languagesql
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
languagesql
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
languagesql
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-аккаунтига.

Контроль выполнения событий

...