Delphi/400のシステムを動かしていると、
『APPC ~~~』というエラーが発生する場合があるかと思います。
本記事では、代表的なものの原因と対処方法をご案内します。
APPCとは?
APPCとはAdvanced Program-to-Program Communicationの頭文字で、
拡張プログラム間通信機能の略称となっています。
コンピュータネットワーク間の通信において、
プログラム同士が対等なコミュニケーションができる通信プロトコルの1つです。
そのため、弊社サポートに「APPCエラーが出ます」というお問い合わせを
頂くことがありますが、これだけでは何のエラーかの判別が難しいです。
(古いDelphi/400の製品マニュアルを見ると、APPCで始まるエラーが50種類以上ありました。)
しかし、直近でお問い合わせを頂く『APPC ~~~』エラーは、
ほとんどが以下の3種類のいずれかとなっています。それぞれ解説していきます。
APPC パートナーの LU 名が無効か、見つかりません
- 英語の場合のエラーメッセージ:
APPC PARTNER LU NAME INVALID OR NOT FOUND - エラーコード:28
- 原因:接続先のIBM i が見つからない場合に発生します。
「LU」はLogical Unitの頭文字で、
アプリケーション・プログラム間通信を処理するように特別に設計された論理装置のことです。
- 対処法①:
他のクライアントPCからも同じエラーになる場合は、IBM i 側で対象のCO4XXサブシステムが起動していない可能性があります。
『STRSBS CO4XX/CO4XXTCP』コマンドでサブシステムを起動して下さい。
- 対処法②:
Configurationのライブラリやポートが正しく設定されていることをご確認ください。
- 対処法③:
PCからConfigurationで設定しているエリアスの『AS/400 ADDRESS』に対してPINGが通るかどうかご確認ください。
ここでPINGが通らない場合、そのIPアドレスに接続する権限があるか、ファイアウォール等でブロックされていないかご確認ください。
- 対処法④:
PCからConfigurationで設定しているエリアスの『AS/400 NAME』に対してPINGが通るかどうかご確認ください。
ここではPINGが正しいIPアドレスに対して送信されているか確認します。
PINGが通らない場合は、上記①②③のいずれかで改善すると考えられます。
しかしDNSの名前解決やhostsファイルの設定に同名が存在すると、そちらが優先されてしまい、想定とは異なるIPアドレスに対して接続を試行し、このエラーになることがあります。
また同一ネットワーク上に別のIBM i が存在し、かつAS/400 NAMEがそのローカル名と同名になっている場合は、そちらが優先されてしまいます。
これらの場合は『AS/400 NAME』を任意の別名に変更して頂き、再度接続テストを行ってください。
APPC 割り当てエラー: セキュリティが無効です
- 英語の場合のエラーメッセージ:
APPC ALLOCATE ERROR SECURITY NOT VALID - エラーコード:55
- 原因:サインオン時のユーザー名またはパスワードに誤りがあります。
- 対処法:
サインオン時のユーザー名またはパスワードをご確認ください。
なお、ユーザー名やパスワードを誤った場合は
IBM i の物理ファイル『CO4XX/TRACES』の最下行にもログが記録されます。
APPC 未定義のエラーです
- 英語の場合のエラーメッセージ:
APPC ERROR UNDEFINED - エラーコード:98
- 原因:
IBM i との接続が切断された(されている)際に発生します。
また、IBM i 側のジョブが強制終了した等で接続できなくなった場合にも発生します。
- 対処法①:
PING等で、対象のクライアントPCがIBM i とネットワーク接続されているかご確認ください。
- 対処法②:
通信環境をご確認ください。
ワイヤレス等で通信環境が良くない状況での使用や、PCのスリープ~復帰等によってPCとIBM i とのネットワーク接続が切断された場合にも発生します。
(この場合、切断後もIBM i 側にジョブが残存しますが、同じEXE内では再接続できません。)
- 対処法③:
毎回決まった処理でこのエラーが発生する場合は、その処理においてジョブが落ちるほどの深刻な例外が発生している可能性があります。
当該部分のプログラムをご確認ください。
上記以外の「APPC ~~~」エラーが発生した場合は、
弊社でも原因の調査が必要となりますのでお問い合わせください。