管理プログラムを開始するときには、 データベースに対して実行されるアプリケーションを管理するのに使用する規則を含んだ構成ファイルの名前を指定します。 管理プログラムは、これらの規則に基づいて処置を行います。
データベースの管理に関する要件が変更になった場合には、 管理プログラムを停止しないで構成ファイルを編集することができます。 各管理プログラム・デーモンは、構成ファイルが変更されたことを検出すると、 ファイルを再度読み取ります。
各ノード上の管理プログラム・デーモンは同一の構成ファイルを読み取りできなければならないため、 構成ファイルは、すべてのデータベース・ノードに取り付けられるディレクトリーに作成する必要があります。
構成ファイルは、規則と注釈から構成されています。 大部分の項目は、英大文字、英小文字、または英大文字小文字混合文字で指定することができます。 例外は applname で、 これは大文字小文字の区別をして指定する必要があります。
注釈は、中括弧 { } に入れて区切る必要があります。 規則には、以下のものが含まれます。
ファイル内の各規則の後ろには、セミコロン (;) を置く必要があります。
以下の規則によって、モニターするデータベースと、 デーモンが活動 (管理プログラム・デーモンで説明されています) のループを一回り処理した後ウェイクアップするまでの時間間隔が指定されます。 これらの規則はそれぞれ、ファイルに 1 回しか指定できません。
注: | このオプションは Windows NT または OS/2 上では使用できません。 |
短い接続セッションが全体的にアカウント・インターバル内で発生する場合、 ログ・レコードは作成されません。 ログ・レコードが作成される場合、 そこには前の接続に関するログ・レコード以来の CPU 使用量を反映する CPU 統計が含まれます。 管理プログラムが停止してから再始動された場合、 CPU 使用量は 2 つのログ・レコードで反映される場合があります。 これらはログ・レコードのアプリケーション ID を介して識別できます。 管理プログラムのログ・ファイルについての詳細は、 管理プログラム・ログ・ファイルを参照してください。
以下にあげる規則文節を組み合わせて、1 つの規則を作ります (すなわち、 完全規則とはセミコロンで終わるものであり、各独立の文節とは異なります)。 文節が指定するのは、規則が適用される時間帯、使用できるリソースの制限、 および任意指定ですが、特定のユーザーまたはアプリケーション、 規則に指定した制限を超えた場合に管理プログラムが行う処置です。 文節は 1 つの規則には 1 回ずつしか指定できませんが、 複数の規則に指定することができます。 文節は、以下に説明する順序で指定する必要があります。 以下の説明では、[ ] は任意指定の文節を示しています。
時間帯は、time hh:mm hh:mm (たとえば、 time 8:00 18:00) という形式で指定する必要があります。 この文節が指定されない場合は、規則は全日 (24 時間) 有効になります。
複数のアプリケーション名を指定する場合は、 たとえば applname db2bp, batch, geneprog のように、 コンマ (,) で区切る必要があります。 この文節が規則になかった場合には、 規則はすべてのアプリケーション名に適用されます。
注:
管理プログラム構成ファイルに指定されたアプリケーション名は 20 文字で切り捨てられて、 構成ファイルの内部表記に一致させられます。
注: | このオプションは Windows NT または OS/2 上では使用できません。 |
注: | sqlmon (データベース・システム・モニター スイッチ) API を使用して作業単位 (unit of work)スイッチを非活動化した場合には、 管理プログラムが作業単位 (unit of work)経過時間に基づいてアプリケーションを管理する機能に影響を与えます。 管理プログラムはモニターを使って、 システムについての情報を収集します。 データベース・マネージャー構成ファイルでスイッチをオフにすると、 インスタンス全体がオフになり、管理プログラムはそれ以上この情報を受け取りません。 |
注: | この制限値は、rowssel と同じものではありません。 異なるのは、rowsread が結果セットを戻すために読み取りする必要のあった行数のカウントである点です。 読み取りされた行数にはエンジンによるカタログ表の読み取りが含まれるので、 索引使用時には行数が少なくなる可能性があります。 |
注: | 制限を超えたときに action 文節が指定されていなかった場合には、管理プログラムは、 アプリケーションのために処理を行っているエージェントの優先順位を 10 倍低くします。 |
このパラメーターを有効に使用するには、以下に注意してください。
管理プログラムは、DB2 内部照会コンパイラーからの照会コスト見積もりを使用して、 アプリケーション上で処理を行うエージェントの優先順位を設定することによって、 スケジューリングを強制的に行います。 クラス・オプションが指定された場合は、規則によって選択されたアプリケーションはすべて、 それらの間同士でのみスケジュールされます。 このオプションが指定されなかった場合は、 管理プログラムは 1 つまたは複数のクラスを使用しますが、 スケジューリングは各クラス内で行います。
各クラス内では、アプリケーションの優先順位付けは以下に基づいて決められます。
どのスケジュールの対象にもなっていないアプリケーションは、 最高の権限で実行されます。
注: | sqlmon (データベース・システム・モニター スイッチ) API を使用してステートメント・スイッチを非活動化した場合には、 管理プログラムがステートメント経過時間に基づいてアプリケーションを管理する機能に影響を与えます。 管理プログラムはモニターを使って、 システムについての情報を収集します。 データベース・マネージャー構成ファイルでスイッチをオフにすると、 インスタンス全体がオフになり、管理プログラムはそれ以上この情報を受け取りません。 |
スケジュール処置には次のことが含まれます。
たとえば、12 のアプリケーション (短いアプリケーション 3 つ、 中程度 5 つ、長いアプリケーション 6 つ) が同時に実行している場合、 これらは CPU を分割しているので、応答時間があまりないかもしれません。 データベース管理者は、中程度の長さのアプリケーションと、 長いアプリケーションの 2 つのグループを設定できます。 優先順位を使用して、管理プログラムはすべてのアプリケーションの実行を許可し、 大部分を占める 3 つの中程度のアプリケーションと 3 つの長いアプリケーションを、 同時に確実に実行します。 これを行うために、管理プログラム構成ファイルには、 中程度のアプリケーションに 1 つの規則、長いアプリケーションに別の規則が入っています。 以下に、この点を例証する管理プログラム構成ファイルの一部を示します。
desc "Group together medium applications in 1 schedule class" applname medq1, medq2, medq3, medq4, medq5 setlimit cpu -1 action schedule class; desc "Group together long applications in 1 schedule class" applname longq1, longq2, longq3, longq4, longq5, longq6 setlimit cpu -1 action schedule class;
あるグループが多数のアプリケーションを実行している場合でも、 管理者は他のグループが自分のアプリケーション用に適度な応答時間を獲得できるようにすることができます。 たとえば、3 つの部門 (金融、在庫、企画) が関係している場合、 すべての金融ユーザーを 1 つのグループに、すべての在庫ユーザーを 2 つ目のグループに、 すべての企画ユーザーを 3 つ目のグループに入れることができます。 処理能力は 3 つの部門の間でより平均に、またはその逆に分割されます。 以下に、この点を例証する管理プログラム構成ファイルの一部を示します。
desc "Group together Finance department users" authid tom, dick, harry, mo, larry, curly setlimit cpu -1 action schedule class; desc "Group together Inventory department users" authid pat, chris, jack, jill setlimit cpu -1 action schedule class; desc "Group together Planning department users" authid tara, dianne, henrietta, maureen, linda, candy setlimit cpu -1 action schedule class;
クラス・オプションが処置に含まれていない場合、 管理プログラムはスケジュール処理の下に落とされるアプリケーションの数に基づいた、 独自のクラスを作成し、 アプリケーションが実行している照会に DB2 照会コンパイラーのコスト見積もりに基づいてアプリケーションを別のクラスに入れます。 管理者は、選択されるアプリケーションを限定しないことによって、 すべてのアプリケーションをスケジュールするように選択できます。 つまり、applname または authid 文節は提供されず、 setlimit 文節も制限を課しません。
注: | 制限を超えたときに action 文節が指定されていなかった場合には、管理プログラムは、 アプリケーションのために処理を行っているエージェントの優先順位を低くします。 |
複数の規則が 1 つのアプリケーションに適用される場合には、 構成ファイルの終わりに最も近い位置に置かれた規則がアプリケーションに適用されます。 例外なのは、規則の中の文節に -1 が指定された場合です。 この場合には、後続する規則の文節の値は、 それより前に同じ 文節に指定された値のみを指定変更します。 このとき、前に置かれた規則の他の文節は、有効なままになります。 たとえば、ある規則は、経過時間が 1 時間を超えるか、 選択された行数が 100 000 行を超えるかした場合 (すなわち、 rowssel 100000 uowtime 3600) には、 そのアプリケーションの優先順位を低くするよう指示しているとします。 また、後続する規則では、同じアプリケーションに無制限の経過時間を許している (すなわち、 uowtime -1) とします。 この場合、アプリケーションが 1 時間を超えて実行されたとしても、 優先順位は変更されません (uowtime -1 が uowtime 3600 を指定変更したからです) が、 選択された行数が 100 000 行を超えたときには、 優先順位は低くされます (rowssel 100000 が有効なままだからです)。
図 95 に、 構成ファイルの例を示します。
{ Wake up once a second, the database name is ibmsampl do accounting every 30 minutes. } interval 1; dbname ibmsampl; account 30; desc "CPU restrictions apply 24 hours a day to everyone" setlimit cpu 600 rowssel 1000000 rowsread 5000000; desc "Allow no UOW to run for more than an hour" setlimit uowtime 3600 action force; desc 'Slow down a subset of applications' applname jointA, jointB, jointC, quryA setlimit cpu 3 locks 1000 rowssel 500 rowsread 5000; desc "Have governor prioritize these 6 long apps in 1 class" applname longq1, longq2, longq3, longq4, longq5, longq6 setlimit cpu -1 action schedule class; desc "Schedule all applications run by the planning dept" authid planid1, planid2, planid3, planid4, planid5 setlimit cpu -1 action schedule; desc "Schedule all CPU hogs in one class which will control consumption" setlimit cpu 3600 action schedule class; desc "Slow down the use of db2 CLP by the novice user" authid novice applname db2bp.exe setlimit cpu 5 locks 100 rowssel 250; desc "During day hours do not let anyone run for more than 10 seconds" time 8:30 17:00 setlimit cpu 10 action force; desc "Allow users doing performance tuning to run some of their applications during lunch hour" time 12:00 13:00 authid ming, geoffrey, john, bill applname tpcc1, tpcc2, tpcA, tpvG setlimit cpu 600 rowssel 120000 action force; desc "Some people should not be limited -- database administrator and a few others. As this is the last specification in the file, it will override what came before." authid gene, hershel, janet setlimit cpu -1 locks -1 rowssel -1 uowtime -1; desc "Increase the priority of an important application so it always completes quickly" applname V1app setlimit cpu 1 locks 1 rowssel 1 action priority -20;