このトピックでは、以下の作業について説明します。
IMS バッチ・プログラムを対話式にデバッグしたい場合、専用端末を使用するフルスクリーン・モード または リモート・デバッグ モードを使用できます。このトピックでは、以下のステップを実行して、TSO フォアグラウンドで BTS を実行するための 3 つ目のオプションを説明します。
BTS が TSO のフォアグラウンドで開始された場合、FSS がデフォルト・オプションであり、BTS を TSO のフォアグラウンドで実行しているときのみ使用可能です。FSS をオフにする方法は、./O コマンドで TSO=NO を指定する方法のみです。TSO フォアグラウンドで実行する場合、すべての呼び出しトレースを TSO 端末に表示するのが、デフォルトになっています。./O あるいは ./T のいずれかのコマンドのパラメーターによってオフにすることができます。
Debug Tool を使用すると、IMS プログラムをバッチ・モードでデバッグできます。デバッグ・コマンドは、事前に定義して Debug Tool コマンド・ファイルか、あるいはコマンド・ストリングに組み入れておくことが必要です。コマンド・ストリングは、TEST ランタイム・オプションで、あるいは CALL CEETEST か __ctest が使用されるときに、パラメーターとして指定できます。バッチ・モードではシステム・リソースの消費が少なくて済みますが、どのデバッグ・コマンドを発行するかは、前もって決めておく必要があります。BTS をバッチ・ジョブとして実行する場合、Debug Tool のバッチ・モードだけが使用できます。
例えば、BTS で IMS トランザクションに対するテスト入力データの個々のメンバーに、データ・セット userid.CODE.BTSINPUT を割り振ることができます。
言語環境プログラムで実行しない IMS メッセージ処理プログラム (MPP) をデバッグするには、以下の手順を行います。
プログラムのデバッグ完了後、以下のいずれかを行うことができます。
言語環境プログラムで稼働しない IMS MPP をデバッグする前に、以下のステップを行ってください。
上記ステップ完了後に、非言語環境プログラム IMS MPP のインターフェースの選択と情報の収集に記載されたデバッグ・インターフェースを選択します。
以下のデバッグ・インターフェースのいずれかを選択して、指定された情報を収集します。
デバッグ・インターフェースの選択完了後、非言語環境プログラム IMS MPP の EQASET トランザクションの実行に記載されたように EQASET トランザクションを実行します。
EQASET トランザクションの実行により、以下のいずれかの機能を実行することを EQANIAFE アプリケーション・フロントエンド・ルーチンに通知します。
デバッグ・セッションを使用可能にするには、以下のいずれかのオプションを選択します。
EQASET コマンド入力後、そのコマンドを入力したのと同じ端末上で、デバッグ対象のアプリケーション・プログラムに関連付けられたトランザクションを開始します。
既存の設定に関する情報を要求するには、EQASET STATUS コマンドを入力します。
デバッグ・セッションを使用不可にするには、EQASET OFF コマンドを入力します。
EQASET OFF を使用した後にデバッグ・セッションを再度使用可能にするには、EQASET ON コマンドを入力します。
次の図では、言語環境プログラム以外の MPP の EQASET トランザクションの構文を示します。
>>-EQASET--+-MFI=--+------------------------------------------+-+->< | '-+---------------------+-terminal_LU_name-' | | '-network_identifier.-' | +-VTAM=--+---------+---------------------------------+ | '-user_ID-' | +-TCP=--+----------------------------+---------------+ | '-IP_address--%--port_number-' | +-VTCP=--+----------------------------+--------------+ | '-IP_address--%--port_number-' | +-ON-------------------------------------------------+ +-OFF------------------------------------------------+ '-STATUS---------------------------------------------'
EQASET トランザクションを使って、そのトランザクションを実行する各ユーザーごとに独立したデバッグ設定を管理します。各設定はユーザー ID により識別されます。このユーザー ID を使用して EQASET トランザクションを実行する場所となる端末にログオンします。どのユーザー ID の場合も、入力された最後のデバッグ用プリファレンス (MFI、TCP、VTCP、または VTAM) だけが保存されます。 STATUS オプションを使用して、現行のデバッグ用プリファレンスを表示できます。
このデバッグ用プリファレンスを使用して、以下の TEST ランタイム・オプション・ストリングが作成されます。
TEST(ALL,INSPIN,,debuggingPreference:*)
お客様は、他のランタイム・オプションをカスタマイズすることはできません。
IMS (EQADICXT) の言語環境プログラムのユーザー出口は、言語環境プログラム・ランタイム・オプション (TEST ランタイム・オプションなど) が含まれている MVS データ・セットの名前を構成します。 EQADICXT は、データ・セット名の各修飾子を表すトークンに値を割り当てることにより MVS データ・セットの名前を構成します。すなわち、&USERID トークンの値として IMS ユーザー ID を割り当てます。ただし、IMS に (/SIGN ON を使用して) サインオンしていない場合、IMS ユーザー ID は IMS LTERM ID と同じになるか、定義されません。いずれの場合も、EQADICXT は MVS データ・セットを特定できません。EQADICXT が &USERID トークンの値として TSO ユーザー ID を割り当てるように指定するには、TSOID オプションを指定して EQASET トランザクションを実行します。 TSOID オプションを指定した EQASET トランザクションの説明については、言語環境プログラム MPP の EQASET トランザクションの構文 を参照してください。
次の図では、言語環境プログラムの MPP の EQASET トランザクションの構文を示します。
>>-EQASET--+-TSOID=--+-------------+-+------------------------->< | '-tso_user_ID-' | '-STATUS------------------'
言語環境プログラム MPP に EQASET トランザクションを使用する場合、指定された TSO ユーザー ID に現在の IMS LTERM ID を関連付けます。EQADICXT は &USERID トークンの TSO ユーザー ID を使用して MVS データ・セットの有効な名前を構成できます。
このオプションでは、言語環境プログラム以外の MPP のデバッグ設定に関する情報も表示される場合があります。
IMS バッチ・メッセージ処理プログラム (BMP) 用にセットアップ・ファイルを作成することができます。このセットアップ・ファイルには、カスタム領域の作成方法、および IMS プログラムのロード・モジュールと Debug Tool ロード・モジュールのデータ・セットを 参照する STEPLIB 連結ステートメントの定義方法が記述されます。また、IMS メッセージ処理プログラム (MPP) のテストに使用でき専用メッセージ領域を作るための、セットアップ・ファイルを作成してカスタマイズすることも可能です。クラス X でプライベート・メッセージ領域を作成すると、 トランザクション X により実行される IMS プログラムをテストして、 他の IMS プログラムにより使用される他の領域と干渉するリスクを減らせます。
Debug Tool Utilities を使用して IMS プログラム用セットアップ・ファイルを作成するには、以下のステップを行います。
専用メッセージ領域を作成し、アプリケーションのデバッグ時 のアプリケーション・ライブラリーまたは Debug Tool ライブラリーをカスタマイズして、 他のユーザーのアクティビティーに影響を与えないようにします。専用メッセージ領域の作成に関する許可および規則については、 システム管理者に相談してください。
IMS プログラムの実行に必要なセットアップ情報を指定した後に、IMS プログラムのテストに使用できるプライベート・メッセージ領域の作成に必要な情報を指定するか、BMP プログラムの実行方法を指定できます。このセットアップ情報を指定するには、以下のステップを行います。
必要に応じてその他のパラメーターを入力します。パラメーターの情報を表示するには、PF1 を押してください。
IMS アプリケーション・プログラムをデバッグする際、IMS がリソースを管理する方法によって Debug Tool が無反応になる現象が発生する場合があります。この状態を回避するには、デバッグする必要がある位置にできるだけ近いところ、または GetUnique (GU) 呼び出しステートメントにブレークポイントを設定してください。このトピックの情報により、どのように IMS のリソースの管理によって Debug Tool が無反応になるかを理解し、この状態を回避するためにブレークポイントを設定するおおよその位置を判別できます。
IMS トランザクションを開始した後、IMS はそのトランザクションに関連付けられたアプリケーション・プログラムをロードし、実行します。IMS はそのアプリケーション・プログラムによって要求され、戻されたすべてのメッセージを管理し、さらに、同時に実行されているその他のアプリケーション・プログラムによって要求され、戻されたすべてのメッセージも管理します。IMS は処理限界数 (PLCT) と他のツールを使用して、確実にアプリケーション・プログラムが適切なリソースのシェアを取得するようにします。IMS アプリケーション・プログラムが PLCT を超えない限り8、メッセージの実行と処理または次のメッセージの待機が続行されます。ただし、そのアプリケーション・プログラムをデバッグしようとすると、続行されたメッセージの処理または待機によって Debug Tool が無反応になる現象が発生する可能性があります。この状態を回避するには、(例えば、GO コマンドを入力して) アプリケーション・プログラムの実行を開始する前に、デバッグ・セッションの始めに以下のいずれかのオプションを試行します。
関連する参照