Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 4 Следующий »

Проблема

Сделки не отправляются во внешние системы.

Решение

В данном разделе обсуждается ситуация с не отправленными сделками из системы NavXL. Необходимо проверить следующие данные:

  1. Заполнено поле IDPOCKET в таблице TBL_FORD32 по сделке. Запросом ниже можно это проверить.

    SELECT * FROM tbl_ford32 WHERE ticket='<<номер_сделки>>';

  2. Если поле IDPOCKET заполнено, необходимо искать причину в FAQ, раздел "Не приходят сделки" принимающего адаптера, предварительно записав номер пакета, в котором ушла сделка.

  3. Поле IDPOCKET пустое, необходимо проверить:Выполнить скрипт:

    • Адаптер Навигатора работает корректно.
    • Сервис адаптера RN5NewDSrvc.exe работает корректно.
    • Сделка не является частью сделки (SWOP,REPO, межпортфельная сделка).
    • Существует ли подписка у адаптера внешней системы на данный объект.
    • Корректно ли создаются алерты на базе.
    • Проходит фильтры данная сделка.
  4. Выполнить скрипт:
BEGIN
prc_alert_over_job('TBLFORD32UPDATED','vw_FX');
end;

После выполнения проверить отправились сделки, или нет.
5. Возможно расхождение времени БД с временем сервера приложений. Удостоверьтесь, что время сервера приложений идентично времени БД.
6. Собрав данные, попробуйте их проанализировать, может быть, ответ лежит на поверхности. Ну если нет, берем всё, что удалось собрать и заводим задачу. Вам помогут. К задаче, прикрепите результаты следующих запросов:

select * from DBA_JOBS_RUNNING;
select * from DBA_JOBS;
select * from USER_JOBS;

7. Если выполненные действия не привели к выгрузке сделок необходимо провести глубокий анализ формирования пакетов для отправки.
Адаптер Навигатора для наполнения xml файла вызывает пакет PKG_GET_OUTDOCUMENT, процедура SP_GET_DOCUMENT_DS, которая вызывает функцию, возвращающую табличный тип в курсор - источник для заполнения XML-файла. В зависимости от типа объекта выполняются следующие команды:
Для объекта 'vw_FX':

open vDS for SELECT /*+ CHOOSE */ * from table(cast(F_GET_FX_OUT_BY_POCKET(aIDPOCKET, aSENDERSYSTEM) as TBL_GET_FX_OUT))  order by eventid;

Для объекта 'vw_DP':

open vDS for SELECT /*+ CHOOSE */ * from table(cast(F_GET_DP_OUT_BY_POCKET(aIDPOCKET, aSENDERSYSTEM) as TBL_GET_DP_OUT)) order by eventid;

Для объекта 'vw_T_TRANSACTIONS':

open vDS for SELECT /*+ CHOOSE */ * from table(cast(F_GET_TRNS_OUT_BY_POCKET(aIDPOCKET, aSENDERSYSTEM) as TBL_GET_TRNS_OUT)) order by eventid;

Для объекта 'vw_MRG_FX':

open vDS for SELECT /*+ CHOOSE */ * from table(cast(F_GET_FXMRG_OUT_BY_POCKET(aIDPOCKET, aSENDERSYSTEM) as TBL_GET_FXMRG_OUT)) order by eventid;

Для объекта 'vw_MRG_DP':

open vDS for SELECT /*+ CHOOSE */ * from table(cast(F_GET_DPMRG_OUT_BY_POCKET(aIDPOCKET, aSENDERSYSTEM) as TBL_GET_DPMRG_OUT)) order by eventid;

Для объекта 'vw_MRG_ORDERS':

open vDS for SELECT /*+ CHOOSE */ * from table(cast(F_GET_ORDERMRG_OUT_BY_POCKET(aIDPOCKET, aSENDERSYSTEM) as TBL_GET_ORDERMRG_OUT)) order by eventid;

Для объекта 'vw_MRG_CUSTOMER':

open vDS for SELECT /*+ CHOOSE */ * from table(cast(F_GET_CUSTMRG_OUT_BY_POCKET(aIDPOCKET, aSENDERSYSTEM) as TBL_GET_CUSTOMERMRG_OUT)) order by eventid;

Для объекта 'vw_SEC_DEAL':

open vDS for SELECT /*+ CHOOSE */ * from table(cast(F_GET_SEC_OUT_BY_POCKET(aIDPOCKET, aSENDERSYSTEM) as TBL_GET_SEC_OUT)) order by eventid;

Для объекта 'vw_INET_CLIENTS':

open vDS for SELECT /*+ CHOOSE */ v.*, t.EVENTID, t.ACTTYPE from vw_INET_CLIENTS_2 v, TBL_FORD32 t where t.TICKET = v.PEOPLE_ID
                             and t.IDPOCKET = aIDPOCKET;

Для объекта 'vw_SEC_MARKET':

open vDS for SELECT /*+ CHOOSE */ * from table(cast(F_GET_SEC_MARKET_OUT_BY_POCKET(aIDPOCKET, aSENDERSYSTEM) as TBL_GET_SEC_MARKET_OUT)) order by eventid;

Для объекта 'vw_PAYMENTS':

open vDS for SELECT /*+ CHOOSE */ * from table(cast(F_GET_PAYMENTS_OUT_BY_POCKET(aIDPOCKET, aSENDERSYSTEM) as TBL_GET_PAYMENTS_OUT)) order by eventid;

Для объекта 'vw_SEC_COUPON':

open vDS for SELECT /*+ CHOOSE */ * from table(cast(F_GET_SEC_COUPON_OUT_BY_POCKET(aIDPOCKET, aSENDERSYSTEM) as TBL_GET_COUPON_OUT)) order by eventid;

Для объекта 'vw_INSTRUMENT':

open vDS for SELECT /*+ CHOOSE */ * from table(cast(F_GET_INSTRUMENT_OUT_BY_POCKET(aIDPOCKET, aSENDERSYSTEM) as TBL_GET_INSTRUMENT_OUT)) order by eventid;

Для объекта 'vw_CONTRACT':

open vDS for SELECT /*+ CHOOSE */ * from table(cast(F_GET_CONTRACT_OUT_BY_POCKET(aIDPOCKET, aSENDERSYSTEM) as TBL_GET_CONTRACT_OUT)) order by eventid;

Для объекта 'vw_CUSTOMER':

open vDS for SELECT /*+ CHOOSE */ * from table(cast(F_GET_CUSTOMER_OUT_BY_POCKET(aIDPOCKET, aSENDERSYSTEM) as TBL_GET_CUSTOMER_OUT)) order by eventid;

Для объекта 'vw_USER':

open vDS for SELECT /*+ CHOOSE */ * from table(cast(F_GET_USER_OUT_BY_POCKET(aIDPOCKET, aSENDERSYSTEM) as TBL_GET_USER_OUT)) order by eventid;

Для проверки формирования курсора требуется:

1. Произвести изменения записи в транспортной таблице, заполнить IDPOCKET и SENDERSYSRTEM. Например IDPOCKET = 888, SENDERSYSTEM = 'NavXLv5'

2. Выполнить SELECT формирующий курсор с требуемым типом объекта, указав в качестве параметров значения из пункта 1.Например:

SELECT /*+ CHOOSE */ * from table(cast(F_GET_FX_OUT_BY_POCKET(888, 'NavXLv5') as TBL_GET_FX_OUT)) order by eventid;

Если этот запрос возвращает данные, то необходимо понять сколько времени уходит на его работу. Для формирования курсора с одной сделкой в пакете, удовлетворительное время работы от 0,0001 сек до 0,001 сек. Время работы запроса превышающие указанные значения является не удовлетворительным. Необходимо выяснить причину неудовлетворительной работы курсора. Если запрос возвращает ошибки, то прикладывайте результаты анализа в задачу, мы вам обязательно поможем. Заводите задачу, прикрепляйте результаты исследований.

Похожие статьи

 

 

Related issues

 

 

 

 

 

  • Нет меток