技術情報に関して更新します。(月1更新予定)

2017年10月1日日曜日

~APPC通信セッションとAPPC通信会話~
IBM i のSNA通信 (APPCプログラミング編)

0 件のコメント :
2台のIBM i でAPPC通信構成が完了してAPPC通信リンクを活動化させると、物理的な接続の上にそれぞれのシステムのAPPC通信装置同士に論理的な接続が開始されます。これをAPPC通信セッションと言い、その数はお互いのシステムで定義されている「モード」を突き合わせる(交渉する)ことによって決定されます。
IBM i の場合、「モード」はモード記述(*MODD)と言うオブジェクトで定義されています。ユーザー作成のモード記述を利用することもできますが、「モード」の突き合わせは名前で行われるので、通信対象となる各システムに同じ名前で存在していなければならないために、一般的にシステム提供のモード記述を使用します。デフォルトのモード記述はネットワーク属性で定義されている「BLANK」が使用されます。モード記述には、最大セッション数と会話の最大数が定義されていて、お互いのシステムのモード記述を突き合わせたうえで、活動化したAPPC通信リンクでの最大数が決定されます。IBM i 同士の場合、最大数は512セッション/512会話となります。APPC通信構成で、APPN(*YES)とした通信構成では、モードは自動的に追加されて活動化されますが、APPN(*NO)として作成されたAPPC通信装置では、APPC通信装置作成時点で指定したモードのみを使用することができます。(最大数は14)

APPC通信プログラムは、起動側/受動側でそれぞれ、このAPPC通信装置間のAPPC通信セッションのうちの1つを使用することで会話を行います。起動側APPC通信プログラムが開始されると、プログラムはまずAPPC通信セッションの獲得操作を行います。獲得が成功すると、獲得したAPPC通信セッションを通して、相手システムに「遠隔プログラム開始要求」を送って、通信相手システム内で受動側APPC通信プログラムを起動します。受信側APPC通信プログラムは、開始されると、起動側APPC通信プログラムが遠隔プログラム開始要求を送ってきたAPPC通信セッションの獲得操作を行って、起動側APPC通信プログラムとの会話を開始します。会話の終了は、起動側/受動側APPC通信プログラムのどちらからでも行うことができます。起動側APPCプログラムは、会話が終了した後、まだ獲得しているAPPC通信セッションを通して、別の受動側APPC通信プログラムを開始するか、APPC通信セッションを解放して、ローカル処理を続行するか、終了することができます。受動側APPC通信プログラムは、会話終了後、ローカル処理を続けるか終了します。

APPC通信セッションを獲得する場合、RPGLEプログラムでは「ACQ」(獲得)命令を使用します。終了する時は「REL」(解放)命令を使用して、取得していたAPPC通信セッションを解放します。獲得操作は、通信したい遠隔ロケーション、またはその遠隔ロケーション名を持つAPPC通信装置に対して行います。APPNネットワーク環境では、APPC通信装置が無ければ自動で作成されますので、一般的には遠隔ロケーション名を使用します。RPGLEプログラムでは、遠隔ロケーション名を明示的に指定するのではなく、ICFファイルに追加された、遠隔ロケーション名を含む「プログラム装置」を獲得することで、APPC通信セッションを獲得します。起動側のプログラムは、獲得したAPPC通信セッションを通して、遠隔プログラム開始要求を通信相手システムに送りますので、通信相手システム内の通信窓口名を示す遠隔ロケーション名が指定されているプログラム装置を獲得します。受動側のプログラムは、起動側のAPPC通信プログラムが遠隔プログラム開始要求を送ってきたAPPC通信セッションを獲得しなければならないために、遠隔ロケーション名として予約語「*REQUESTER」を指定したプログラム装置を獲得することで、起動側プログラムとの会話を始めます。

0 件のコメント :

コメントを投稿