От чего зависит появление или не появление Dump-а


Главная Форумы IBM i (OS/400) От чего зависит появление или не появление Dump-а

В этой теме 5 ответов, 2 участника, последнее обновление  Jevgeni Astanovski 6 года/лет, 9 мес. назад.

  • Автор
    Сообщения
  • #11602

    Jevgeni Astanovski
    Участник

    Вот такой, собственно вопрос. Может кто знает?
    Вызываю прогу, она выдает и Decimal Error и Pointer not Set to Location Referenced — а дампа (который в QEZDEBUG) почему-то нету — только JobLog. Причем в других ситуациях — не с этой программой, но при аналогичных ошибках — дамп появляется. А в нем обычно довольно легко находить эти decimal errors.

    Может какая настройка? :dry:

  • #11617

    Oldnick
    Участник

    такая ошибка MCH3601 Pointer not Set to Location Referenced может быть вызвана различными причинами. в основном это ошибки в LIC, по ним привычные для EQ дампы не формируются. надо смотреть глубже. VLog
    вообще говоря надо искать первую ошибку в joblog. у вас она первая или она следствие другой ошибки, например, Decimal Error?

    сама по себе ошибка Pointer not Set to Location Referenced ни о чем не говорит, по ней нельзя понять причину. она указывает на то что LIC не может правильно обработать эту ситуацию. надо искать причину ошибки по другим признакам.
    привычные вам дампы формирует программа верхнего уровня от EQ.
    в данном случае дамп не сформировался по каким-то причинам. Вполне возможно что EQ-программа и не собиралась этот дамп создавать. 🙂

  • #11619

    Jevgeni Astanovski
    Участник

    Вообще-то вопрос не в том, что вызывает ошибку 3601, так как первичной там все-таки является 1202 Decimal Data error. Эта ошибка возникает в программе при первой операциец с пременной decimal, которой кто-то присвоил значение (как правило при передаче параметров) не могущее быть интерпретировано как decimal.
    Я не очень хорошо понимаю, что означает «программа верхнего уровня EQ». В этом смысле, судя по логу, ошибка возникла именно в такой программе — это мы с BankFusion экспериментируем:)
    У меня все-таки подозрение, что появлением или не появлением Dump можно управлять, хотя можнт быть я ошибаюсь…

  • #11620

    Oldnick
    Участник

    просто так дамп на событие Decimal Data error не образуется. его образует программа которая обрабатывает эту ошибку. то есть, программа CL из которой вызывается программа RPG, которая глючит.
    в этой программе CL должно быть указано что если ошибка, тогда автоматом формируется dump.
    второй вариант — программа спрашивает что делать, надо ответить чтобы сделала dump.
    в вашем случае наверно не указано.
    либо вы его найти не можете. стоит еще раз поискать или попробовать еще повторить эту ситуацию.

  • #11621

    Oldnick
    Участник

    на системном уровне созданием дампом на критические ошибки в программах отвечает функционал WRKRPYLE
    обычно там указано что автоматом система отвечает «D» на вопрос о создании или не создании дампа. но это только в том случае если другая программа не обрабатывает это событие раньше чем сама OS.

  • #11622

    Jevgeni Astanovski
    Участник

    либо вы его найти не можете. стоит еще раз поискать.

    Пожилого человека обидеть может каждый :laugh:
    Не очень понятно, о каком CL может речь идти — есть моя программа на ILE/C и их программа на ILE/RPG.
    Есть конечно вариант, что они маскируют все ошибки типа MCH в своей программе, хотя против этого как минимум 2 соображения:
    1. Непонятно зачем это делать.
    2. Все эти ошибки MCH1202 и MCH3601, ессно заканчиваются ошибкой RPG0000. А вот для нее в таблице Default Reply (RPYLE) таки стоит «DUMP», но дампа нет.

    А выходит вмеcто него JobLog и DSPJOB.

    Обидно….
    :blush:

Для ответа в этой теме необходимо авторизоваться.