実行環境

74. オブジェクト xxxx を分析解決することができない ?

MCH3401:オブジェクト xxxx を分析解決することができない

というエラー・メッセージを見たことはないだろうか ?
このわかりにくいメッセージの真意は単純であり、意味は、

オブジェクト xxxx が見つからない。

という意味である。

例えば CALL 命令によって、あるプログラムを呼び出そうとしたが、
実際にはそのプログラムが見つからなかった、という場合である。
日本語として「分析解決」という抽象的な表現が使われているので
意味不明なメッセージとなってしまうのだが、これは OS400 が C言語によって
記述されているために起こるメッセージであると推測される。
内部ではオブジェクト xxxx の登されているポインターを探して、
そのオブジェクトが保管されている番地(ポインター)からオブジェクトを
メモリー内にロードして、指定されているタイプ(プログラムやファイル等) に
解釈し直す。この作業のことを具体化または解決という。
具体化や解決というのは番地(ポインター)だけの抽象的な情報を、実際の
オブジェクトとして認識し直すことであり、MI (マシン・インターフェース)表現である。
MI ではポインターから具体化する作業が頻繁に行なわれるので
分析解決することができない」という MI としてのエラー・メッセージが
そのまま表示されてしまっているのである。
「分析解決することができない」とは

番地からオブジェクトをロードすることができなかった。

という意味になる。
つまりオブジェクトが見つからなかったということが実際のエラーの内容である。
このように System i では残念ながらエラー・メッセージの内容だけでは
意味が読み取れないメッセージがあることも確かである。