06.3タスクの生成(ATTACH/DETACHとIDENTIFY)-2

By 神居 - Posted: 2010/09/07 Last updated: 2010/09/07 - Leave a Comment
印刷用ページの表示 印刷用ページの表示

ATTACHマクロのEPまたはEPLOCキーワードで指定できるのはロードモジュール・メンバーの名前です。したがってこの点だけで考えるとATTACHできるのはLINKやXCTLのように独立したロードモジュールになっているプログラムになってしまいます。しかしながらタスクを分けるが故にプログラムも分割しなければならないのは不便です。タスク構造とプログラム構造が一対一になっていなければならない決まりはありません。自由度はもっと高いのです。
では静的リンクされた単純構造プログラム(06.1プログラムのローディングと実行(LOAD,LINKとXCTL)を参照)内の別CSECTのプログラムをサブタスクとしてATTACHしたい場合はどうすればいいのでしょうか?
そのためには2つの方法があります。

ATTACHしたいプログラムがCSECTで定義されていれば、バインダーのモジュールをリンクする際にCSECT名メンバーの別名として追加することができます。割り当てた別名をEPあるいはEPLOCキーワードで指定すればATTACHすることができます。

もう1つはIDENTIFYマクロを使い、メインプログラム内で動的に入口点を追加する方法です。LOADマクロなどによって既にメモリー内にローディングされたモジュール内(EXEC文のPGMパラメーターで指定されたメインプログラムも含む)であれば任意のアドレスを入口点として追加できます。


入口点の追加(IDENTIFY)


バッチ・ユーティリティーの呼び出しにATTACHを使う

Posted in 中級編 • • Top Of Page