Проблема

Котировки не появляются в Рынке Навигатора, не понятно какой адаптер не передал котировки. Как диагностировать проблему?

Решение

Необходимо понять, какой способ использовался для загрузки котировок. Есть два способа загрузки котировок, приведены ниже:

I. Первый способ используемый для онлайн котировок из Адаптеров торговых систем, которые доступны для подписки в StorageAPP:

АдаптерСхема БД адаптера

Назначение адаптера в рамках рассматриваемой задачи

Адаптеры торговых систем

не используется

Получение цен от Торгового сервера и передача цен в шину Markets

Описание ошибок и их решение представлено на странице Адаптеры торговых систем

Адаптер StorageApp

StorageAPPWEB (Адаптер Munloader)

kip

Записать котировки онлайн в таблицу exq_history

Хранилище KIPkip

Используется механизм описанный на странице Настройка загрузки из KIP в RESMAN

Описание ошибок и их решение представлено на странице Не загружаются котировки из Хранилища

Процедура регистрации ценresmanЗаписать котировки из схемы KIP в таблицу MARKET (Рынок).


II.
Второй способ используемый для котировок из SWLoader:

АдаптерСхема БД адаптера

Назначение адаптера в рамках рассматриваемой задачи
Загрузчик файлов SWLoaderkip

Записать котировки из файла в таблицу exq_history

Описание ошибок и их решение представлено на странице SWLoader

Хранилище KIPkip

Используется механизм описанный на странице Настройка загрузки из KIP в RESMAN

Описание ошибок и их решение представлено на странице Не загружаются котировки из Хранилища

Процедура регистрации ценresmanЗаписать котировки из схемы KIP в таблицу MARKET (Рынок).

Разумеется, при диагностике на любом этапе следует обращаться к текстовым логам адаптеров описанных в таблицах выше в них при использовании отладки можно увидеть дополнительные сообщения или ошибки при загрузке котировок.

Необходимо проверить:

  1. Наличие цен в Рынке. Убедитесь что цен нет в Справочнике Рынок
  2. Наличие котировок в Хранилище (схема KIP), которые должны были добавиться при использовании первого способа (StorageApp) или второго способа (SWLoader) описанного выше:

    Проверка котировок с выводом результата в одну строку
    SELECT listagg('Площадка ='||EM.MARKET_SHORT||' дата ='||to_char(EH.C$DATE,'dd.mm.yyyy')||' кол-во котировок =>'||COUNT(*),' =+= ') within group (order by MARKET_SHORT) as Name
    FROM KIP.EXQ_HISTORY eh,
      KIP.EXQ_INSTRUMENTS ei,
      KIP.EXQ_TRAIDING_PLACES tp,
      KIP.EXQ_MARKETS em
    WHERE ei.INSTRUMENT_ID = eh.C$INSTRUMENT and
    ei.trading_place_id = tp.traiding_place_id and
    tp.MARKET_PLACE_ID = em.MARKET_PLACE_ID
    and trunc(eh.C$DATE)=resman. td --to_date(:DATE_OF_QUATATION,'DD.MM.YY')--укажите необходимую дату, при необходимости
    group by em.MARKET_SHORT,eh.c$date
    order by em.market_short;
    Более подробный запрос с выводом результатов по секциям и биржам
    SELECT EM.MARKET_SHORT, tp.trading_place_short, to_char(EH.C$DATE,'dd.mm.yyyy') "C$DATE", COUNT(*)
    FROM KIP.EXQ_HISTORY eh,
      KIP.EXQ_INSTRUMENTS ei,
      KIP.EXQ_TRAIDING_PLACES tp,
      KIP.EXQ_MARKETS em
    WHERE ei.INSTRUMENT_ID = eh.C$INSTRUMENT and
    ei.trading_place_id = tp.traiding_place_id and
    tp.MARKET_PLACE_ID = em.MARKET_PLACE_ID
    and trunc(eh.C$DATE)=to_date(:DATE_OF_QUATATION,'DD.MM.YY')--укажите необходимую дату
    group by em.MARKET_SHORT,eh.c$date, tp.trading_place_short
    order by market_short, tp.trading_place_short;
    --and em.MARKET_SHORT = 'MICEX'
    --and ei.instrument_short = 'LKOH'
  3. Если для загрузки используется первый способ (StorageApp) и котировки не обнаружены, убедится в наличие job`а выполнив под SYS запрос:

    Проверка наличия job`а
    SELECT
        DECODE(cnt,1,' Job для перемещения котировок создан',0,' Создайте job для перемещения котировок. Подробности на странице Адаптера StoregeApp '
    ,'Существует несколько экземпляров Joba') AS output
    FROM
        (
            SELECT
                COUNT(1) AS cnt
            FROM
                sys.dba_jobs
            WHERE
                what LIKE '%begin%KIP.SP_MOVE_QT;%end;%'
        ) d
    UNION ALL
    SELECT
        'Job # '|| job
        || DECODE(broken,'N','. Работает успешно.','Y','Job сломан. Необходимо проверить его работоспособность. Обратитесь к DBA') AS output
    FROM
        sys.dba_jobs
    WHERE
        what LIKE '%begin%KIP.SP_MOVE_QT;%end;%';
  4. Если котировки попали есть в схеме KIP, но их нет в Рынке, необходимо использовать статью KB: Не загружаются котировки из Хранилища. PKG_KIP
  5. Если цен нет в KIP, необходимо анализировать логи StorageAPPWEB (Адаптер Munloader) или Адаптера торговой системы на наличие ошибок

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