TranClass 定義 (TCD)

TXSeries for Multiplatforms V9.1 では、トランザクション・タイプ (TCLASS) の最大数が 10 に制限されなくなりました。 この制限は、TRANCLASS 定義 (TCD) スタンザを使用する TRANCLASS サポートによって解消されました。

このタスクについて

トランザクション・クラス (TRANCLASS) に属するトランザクションは、実行前にスケジューリング制約の対象となります。 アクティブ・トランザクション・クラスに属するトランザクションが実行中の場合、新規トランザクションはキューに入れられます。 MAXACTIVE 属性を使用して、実行が必要なトランザクションの最大数を指定できます。 キューのサイズを制限するには、PURGETHRESH 属性を使用します。

トランザクションをトランザクション・クラスにグループ分けすることにより、優先順位に基づいて TXSeries タスクのディスパッチを制御できます。 例えば、リソースのヘビー・ユーザー であるものと、重要性の低いもの (Good morning ブロードキャスト・メッセージ など) にトランザクションを分けることができます。 こうすれば、TRANCLASS 定義の属性を使用して、 各トランザクション・クラスのアクティブ・タスクの許容数を制御できます。

この機能は、トランザクションの優先順位に応じてグループ分けを行うことにより、各トランザクション・クラスに基づいてタスクの数を制御します。 TCLASS 機能は有効であり、TCLASS インターフェースを使用するアプリケーションは引き続き機能します。 ただし、TD 項目は、対応する TRANCLASS 定義を参照する必要があります。 以下は TCD 属性です。
TRANCLASS(name)
TRANCLASS の名前を指定します。トランザクション・クラスに属するトランザクションは、実行が許可される前にスケジューリング制約の対象となります。 トランザクションがどのトランザクション・クラスにも属さないことを示すために、予約された TRANCLASSDFHTCL00 が使用されます。

TCLASS 属性をサポートするリリースとの互換性のために、TXSeries は TRANCLASS に相当するものを提供しています。 使用できる ASCII 文字は A から Z、0 から 9、ドル記号 ($)、および単価記号 (@) です。 ユーザー TranClass タイプの DFHTCLxx (xx は 00 から 10 まで) が存在しないことを確認してください。DFHTCL00 から DFHTCL10 までのデフォルト TranClass 定義を手動で削除しないでください。

TranClass 定義 (TCD)を参照してください。
表 1. TCLASS 属性と同等の TRANCLASS
TCLASS TRANCLASS
0 DFHTCL00
1 DFHTCL01
2 DFHTCL02
3 DFHTCL03
4 DFHTCL04
5 DFHTCL05
6 DFHTCL06
7 DFHTCL07
8 DFHTCL08
9 DFHTCL09
10 DFHTCL10

TRANCLASS の長さは最大 8 文字まで指定できます。

MAXACTIVE (数値)
このトランザクション・クラス内で、アクティブになることを許可されるトランザクションの最大数を指定します。 トランザクション・クラスを定義する際には、MAXACTIVE 値 (0 から 999 までの範囲) を指定する必要があります。 デフォルト値は 999 です。

アクティブ・トランザクションの数が MAXACTIVE 制限に達すると、新しいトランザクションはキューに入れられます。 ただし、キューイングは PURGETHRESH の制限を受けます。

トランザクション・クラスの定義で MAXACTIVE 値にゼロを指定すると、すべてのタスクがキューに入れられます。

PURGETHRESH(number)
これは、トランザクション・クラスに関するオプションのパージしきい値です。 トランザクション・クラスのメンバーシップを得るためにキューに入っているトランザクションがパージされるしきい値を定義します。 このトランザクション・クラスでキューイングされるトランザクションの数を制限する場合、これを指定します。 返される値は次のとおりです。
  • ゼロ (0): キューのサイズは無制限です。
  • 数値: 0 から 1000000 までの範囲のパージしきい値数。 1 を指定した場合、トランザクションはまったくキューに入れられません。 その他の任意の数値 (n) を指定した場合、キューのサイズは n-1 に制限されます。

    デフォルト値は 0 です。n - 1 の制限に達した後に接続された新規トランザクションはパージされます。

    例えば、アクティブ・タスクの最大数 (MAXACTIVE) が 50 に設定され、トランザクション・キューイングを制限するパージしきい値 (PURGETHRESH) が 10 に設定されているトランザクション・クラスの場合、以下の時点で TXSeries はそのクラスの新しいトランザクションを異常終了させ始めます。
    • アクティブ・トランザクションの数が 50 に達した。
    • トランザクション・クラスのメンバーシップを得るためにキューに入っているトランザクションの数が 9 に達した。
    TXSeries は、キューに入れられた数がキューの最大サイズ (この例では 9) より小さくなったときにのみ、このトランザクション・クラスのキューに新しいトランザクションを受け入れます。
以下の API がサポートされています。
旧 TXSeries バージョンから TXSeries for Multiplatforms V9.1 に移行する場合、TranClass 機能に関する以下の点を検討してください。
  • TCLASS を使用している API は、何も変更しなくても機能し続けます。 新規 TRANCLASS API もサポートされます。
  • 領域が旧リリースから TXSeries V8.1 に移行されると、スタンザ属性が必要に応じて変更されます。 手動で明示的に構成を行う必要はありません。
  • TClass 属性が含まれるリソース定義コマンドは、代わりに TranClass 属性が含まれるよう変更する必要があります。 TClass の値を、対応する TranClass の値に変更する必要があります。 Transaction Definitions (TD)を参照してください。
  • TXSeries for Multiplatforms V9.1 では、ClassMaxTasks および ClassMaxTaskLim を含むリソース定義コマンドはサポートされていません。 新規コマンドを使用して、対応する TCD リソース定義を更新する必要があります。
以下の例は、RD の ClassMaxTasks 属性および ClassMaxTaskLim 属性と、対応する TCD 表記の間のマッピングを示しています。
RD:
ClassMaxTasks=1,2,3,4,5,6,7,8,9,10
ClassMaxTaskLim=11,12,13,14,15,16,17,18,19,20
表 2. TXSeries で使用される TCD 項目
TRANCLASS
DFHTCL01 MaxActive=1
PurgeThresh=11
DFHTCL02 MaxActive=2
PurgeThresh=12
DFHTCL03 MaxActive=3
PurgeThresh=13
DFHTCL04 MaxActive=4
PurgeThresh=14
DFHTCL05 MaxActive=5
PurgeThresh=15
DFHTCL06 MaxActive=6
PurgeThresh=16
DFHTCL07 MaxActive=7
PurgeThresh=17
DFHTCL08 MaxActive=8
PurgeThresh=18
DFHTCL09 MaxActive=9
PurgeThresh=19
DFHTCL10 MaxActive=10
PurgeThresh=20