z/OS
z/OS®は、アプリケーションプログラムが参照できるアプリケーションサーバーのアドレス空間を制限するサブスペースを提供します。 CICS®は、サブスペースを使用してトランザクション間のストレージを保護します (トランザクション分離 )。 サブスペースとは、アドレス空間のプライベート領域における特定のストレージ範囲であり、プログラムが参照できるストレージを制限するように設計されています。 サブスペースに関連付けられたプログラムは、サブスペースのストレージ範囲外にあるプライベートエリアのストレージの一部を参照できません。ストレージはプログラムから保護されています。 アドレス空間は多くの部分空間を持つことができます。 部分空間を所有するアドレス空間は、 ベース空間と呼ばれます。 各サブスペースは、基本スペース内のストレージの異なるサブセットを示します。
詳細については 、「部分空間とは?」 を参照してください z/OSのドキュメントに記載されています。
トランザクションのサブスペースとベーススペース
- ユーザー動的ストレージ領域の1つから割り当てられる、各自のタスクのユーザーキー・タスクライフタイムストレージへの読み取りおよび書き込みアクセス。
- 共有ストレージへの読み取りおよび書き込みアクセス、すなわち、 GETMAIN コマンドのSHAREDオプションで取得したストレージ。
- CICSのライフタイム・ストレージへの読み取りアクセス。
- CICSの読み取りアクセス。
- CICS からアクセス可能な CICS内のフィールドの内容の読み取りアクセス。
他のタスクのユーザー・キー存続時間ストレージへのアクセスは持っていません。
新しいトランザクション・リソース定義属性のデフォルトは、既存のアプリケーション・プログラムがトランザクション分離と共に動作するように指定します (ISOLATE オプションのデフォルトは YES)。 既存のアプリケーションは、トランザクション分離要件に適合し ている場合には、修 正をしないで実行しなければなりません。
- z/OS マクロを直接発行する。
- CICS 制御ブロックを修正する。
- あるタスクが別のタスクのストレージにアクセスしたり、共有したりする必要がある場合、正当な理由がある。
既存のトランザクションにはさまざまな方法でタスク存続時間ストレージを共用するものがあります。そしてこの共用によって、トランザクションが相互に分離して実行されることを防ぎます。 このようなトランザクションが継続して実行できるように、すべてのこのようなトランザクションが実行可能な 単一の共通サブスペースが提供されます。 これらは自分のサブスペースで実行中の、システムの他のトランザクションから分離していますが、共通サブスペース内では相互のデータを共用することができ ます。
CICS キー・プログラムは、基本スペースで実行するので、すべての CICS キー・ストレージおよびユーザー・キー・ストレージへの読み取り / 書き込みのアクセス権を持っています。
共通サブスペースおよび共用ストレージ
トランザクションの中には、アプリケーション・プログラムが有効な方法でお互いのストレージにアクセスするものがあります。 そのようなケースの1つは、1つ以上のイベント制御ブロック(ECB)でタスクが待機している場合で、そのECBは、 z/OSの POST または別のタスクによる手動ポストによって、後にポストされる。
例えば、タスクは、別のタスクに (一時記憶域キューまたはその他のいくつかの方法で) 自分のストレージの一部のアドレスを渡すことができます。そして、ストレージを更新したことを他方のタスクが ECB に通知するのを WAIT します。 明らかに、元のタスクが固有のサブスペースで実行されている場合、更新を試みてECBをポストする際に、ポストタスクCICS で実行されていない限り、ポストタスクは失敗します。
- すべての関連したトランザクションを共通サブスペースで実行するように指定することができる。 共通サブスペースは、ストレージを共用する必要があるタスクが共存できるようにします。一方で、タスクをシステム内の他のトランザクションから分離させます。 共通サブスペースに割り当てられたトランザクションには、以下の特性があります。
- お互いのタスク存続時間ストレージへの読み取りおよび書き込みアクセスがある。
- 固有なサブスペースで実行されるトランザクションのどのような種類のストレージへのアクセスもない。
- CICSへの読み取りアクセス権のみを持っています。
以前のリリースの CICS でユーザー キーで機能する関連トランザクションのグループは、共通サブスペースで実行されるように ISOLATE(NO) で定義されている場合、上位リリースの CICS でも機能するはずです。 これにより、アップグレードのサポートが提供され、 CICS および関連サポートをインストールした後に、トランザクションを独自のサブスペースに分離して段階的にステージングすることが可能になります。
- SHARED オプションを使ってストレージを取得することによって、必ず SHARED ストレージの中に共用ストレージがあるようにできます。
- ストレージを共有しているトランザクションのアプリケーションプログラムがすべて CICS で定義されていることを確認できます。 このことによって、確実に、基本スペースでプログラムを実行し、すべてのストレージへの読み取り / 書き込みアクセスをプログラムが持つようにします。 ただし、この方式は、ストレージ保護がないので、推奨されていません。
CICS Interdependency Analyzerを使用すると、WAIT EVENT、WAITCICS、WAIT EXTERNAL、 z/OS などのコマンドを含むトランザクションを特定するのに役立ちます。 詳細は、 CICS Interdependency Analyzer for z/OSの概要 をご覧ください。