ストレージ・ストレスの削減

ストレージ・ストレスは、いずれかの動的ストレージ域でフリー・スペースが不足しているときに発生します。

ストレージ・ストレスは、以下の状態の徴候である可能性があります。
  • CICS® タスクが通常より長くストレージを占有する原因となるその他のリソース制約
  • 突然に多数のタスクが生じて、使用可能なフリー・ストレージでは対応できなくなる
  • アプリケーションの設計が悪く、必要なストレージ容量が極端に多い
CICS は、ストレージ・ストレスを次のように処理します。
  • フリー・ストレージの可用性が低下すると、 CICS が適切と判断したために、非常駐で使用されていないプログラムが、最低使用頻度ベースで段階的に削除される可能性があります。 新規タスクのディスパッチも、フリー・ストレージが危険なほど小さな量に近づくと、次第に速度が低下していきます。 この自己調整アクティビティーは、ストレージの管理コストを分散する傾向があります。 全体としてのプログラムのロードはさらに多いかもしれませんが、プログラムの完全圧縮という重いオーバーヘッドは、重要な時間帯には発生しません。
  • プログラムのロードまたは再ロードは、 CICS によって処理され、 MVS サブタスクが実行される。 このように、 MVS イメージのプロセッサが利用可能であれば、プログラムロードの一環としてページインが必要であっても、他のユーザータスクは進行できる。
  • ユーザーによるストレージ使用の実行時制御は、最大タスク仕様 (MXT) およびトランザクション・クラス制限を適切に使用することにより実現されます。 ストレージに対する制限のない要求から生じるストレージ不足の状態を回避するには、これが必要です。

ストレージ不足の状態

CICS は、使用されていないすべての非常駐プログラムが削除された後でも、無条件 GETMAIN 要求を満たすのに十分なフリー・ストレージがない場合にのみ使用するために、最小数のフリー・ストレージ・ページを予約します。

ストレージ要求によって、動的ストレージ域の 1 つにおける連続した空きページの数がそれぞれのクッション・サイズよりも小さくなった場合、またはストレージ・クッションでも満足されない場合はいつも、クッション・ストレス状態が発生しています。 詳細は、ストレージ・マネージャー統計 (「Times request suspended」、「 Times cushion released」) に記載されています。 CICS は、いくつかのアクションを実行することによって、ストレージ・ストレス状態を軽減しようとします。 これらのアクションが状態を軽減できない場合、またはストレス状態の原因が SOS のために中断しているタスクによるものである場合は、ストレージ不足状態が通知されます。 これには、メッセージ DFHSM0131DFHSM0133、または DFHSMSM0606 が伴います。

不要データ・セット名ブロックの除去
拡張 CICS 動的ストレージ域 (ECDSA) は、データ・セット名 (DSN) ブロックにも使用されます。 CICS ファイル制御がオープンするデータ・セットごとに 1 つの DSN ブロックが作成され、ウォーム・リスタートまたは緊急時再始動時にリカバリーされます。 アプリケーションが、多数の一時データ・セット (すべて固有名を持つ) を作成した場合、DSN ブロックの数が、ストレージ不足の状態を引き起こす範囲まで増えることがあります。

作成されたすべてのデータ・セットが異なる名前を持つ、複数の一時データ・セットをアプリケーション・プログラムが使用する場合、これらの一時データ・セットは使用後にアプリケーション・プログラムによって削除されることが重要です。 このコマンドを使用して CICS 領域から不要な一時データ・セットを削除する方法については、 SET DSNAME を参照してください。

Language Environment® AMODE(24)プログラムの実行時オプション
CICS のデフォルトの Language Environment ランタイムオプションのうち、2つは ALL31(ON とSTACK(ANY)です。 これは、 Language Environment を必要とするすべてのプログラムが31ビットストレージをアドレス指定できる必要があることを意味します。すなわち、 Language Environment が有効な場合、AMODE(31)でなければならないということです。 AMODE(24)プログラムを Language Environment 環境で実行するには、 ALL31(OFF )およびSTACK(BELOW)を指定できます。 ただし、すべてのプログラムがこれらのオプションを使用できるようにするために、これらのオプションをグローバルに変更した場合、大量のストレージが 16 MB 境界よりも下に配置され、これによりストレージ不足の状態が起こることがあります。

詳しくは、 動的ストレージ域のストレージ不足状態を参照してください。

タスクのパージ

CICS タスクがその DTIMOUT 値よりも長く中断されている場合、RDO トランザクション定義で SPURGE=YES が指定されていると、そのタスクはパージされる可能性があります。 すなわち、このタスクは異常終了して、そのリソースは解放されます。これにより、他のタスクでそれらのリソースを使用できるようになります。 このようにして、 CICS は、ストレージ上の事実上のデッドロックを解決しようとします。

パージ・タスクが不可能な場合、または問題が解決しない場合、 CICS は処理を停止します。 その後、 CICS 領域を取り消して再始動する必要があります。