MGRB.INI

MGRB.INIは、MRB用の環境設定ファイルです。MGRB.INIファイルは、MRBの初期設定処理中に読み込まれます。MGRB.INIファイルが見つからない場合、MRBはデフォルト値で初期設定を行います。

以下のパラメータが定義されています。

ActivityLog

ContextsUsage

PasswordQuery

AllowReserve

ContextsUsageLog

PasswordSupervisor

[APPLICATION_CLIENTS_MAP]

DelayThresholdTraps

QueueMaxSize

[APPLICATIONS_LIST]

EnableFilters

ReLoad

AverageProcessTime

EnginesPriority

[REMOTE_APPLICATIONS_LIST]

AverageWaitTime

Filters

ReqHistorySize

BrokerPort

FloatingLicense

ServerTimeout

CommTimeout

LoadBalancing

ShutdownTimeout

 

Log

TerminateEnginesDuringShutdown

 

キーワード

意味

BrokerPort

MRBのポート番号を指定します。このポートにリクエストが送られてきていないか、MRBにより常時チェックされます。MRBは、指定されたポート番号で始まる5つの連続したポートを開くことができます。

構文:BrokerPort =ポート番号

ポート番号のデフォルトは、Magic xpaのレビジョンによって変わります。

EnginesPriority

サーバエンジンとして使用することのできる最大9つまでのホスト名のリストを定義します。このリストは、MRBがどのMagicエンジンにクライアントのリクエストを送るかを指定する順番が定義されます。

この設定が有効な場合、最初のコンピュータ上のMagicエンジンがクライアントのコマンドを実行し、次に2番目のコンピュータというように順番に処理されます。

ServerTimeout

タイムアウト(単位:秒)で、非同期コールの実行中、この時間が経過するとエンジンからMRB に対してI-AM-ALIVE メッセージが送出されます。

この値を0 にした場合、エンジンからMRB にはI-AM-ALIVE メッセージは送られなくなります。このため、タスクの実行中、エンジンが何らかの原因でクラッシュしたり異常終了した時でも、エンジンからI-AM-ALIVE メッセージが送られることがなくなるため、その状態はMRB には認識不可能になります。

構文:ServerTimeout = n

CommTimeout

TCP/IP操作(接続/送信/受信)が、失敗する前にリトライする最大時間(単位:秒)です。

MRBによって送信されたメッセージに対してMGRB.INIファイル内のこの設定はMGREQ.INIファイル内の設定を上書きします。「通信タイムアウト」のトピックを参照してください。

汎用のリクエスタレイヤーの低レベルのメッセージは、MGREQ.INIファイルの設定が使用されます。

デフォルトは10秒です。最小値は1秒です。

PasswordSupervisor

このキーワードを使用して、ユーザからのMRB に対するアクセスを制限できます。

パスワードを指定した場合、MRB の次の処理でセキュリティチェックが実行されます。

  • 新しいエンジンのロード

  • MRB またはエンジンの終了

  • キューにあるリクエストの削除または優先順位の変更

指定を省略した場合には、MRB の処理ではセキュリティチェックは行われないため、ユーザ名とパスワードはチェックされません。

注意:

Supervisor Passwordと同じパスワードを[サーバ特性]の[パスワード]特性に設定する必要があります。この内容は、Magic xpaのインストール時に自動的に行われます。

PasswordQuery

オプションで省略できます。このキーワードを使用して、ユーザからのMRB に対するアクセスを制限できます。

パスワードを指定した場合、あるユーザから別のユーザのリクエストの照会が実行された時、そのユーザのユーザ名とパスワードがチェックされます。リクエストは提出時に使用されたユーザ名とパスワードを使用して行なわれるため、自分のリクエストを照会する場合には、制限はありません。

リクエストの提出時に使用されるユーザ名とパスワードとして、[設定/サービス]のユーザ名とパスワード、Magic xpaのアプリケーションのログオンに使用されたユーザ名とパスワード、MGREQ.INI ファイルに保存されているユーザ名とパスワードは全てMRB により受け入れられます。

この指定を省略した場合、ユーザ名とパスワードはチェックされません。そのためリクエストは、どのユーザからも照会が可能となり、ユーザは別のユーザのリクエストを確認できます。

注意:

このパスワードは、インストール処理では設定されません。これは、ユーザがエンジンスのテータスや実行アプリケーションを問い合わせる時にのみ利用するだけです。

ReLoad

Magicアプリケーションサーバのインスタンスが異常終了した場合、MRBが自動的にMagicアプリケーションサーバを再ロードするかどうかを指定します。

構文:Reload=YまたはN

Log

上位レベルのMRBの動作(初期化、リクエストの受信、アプリケーションサーバの割当、アプリケーションサーバ情報の送信など)を記録するログファイルを指定します。このログにより、特定のリクエストの処理を確認できます。

構文:LOG=ファイル名 同期 レベル

ファイル名……ログファイル名を指定します。ファイル名に空白を含むことはできません。

同期

  • Y …… ログファイルは、行ごとに開閉されます。これにより、コンポーネントがメモリ内にロードされている時にも、ファイルを削除できます。複数のモジュールでログファイルを共有することも可能です。  

  • N …… ログファイルは、コンポーネントの初期化と終了の時のみに開閉されます。

  • F …… 印刷用に書式化された各行がログファイルに送られます。ログファイルは、コンポーネントの初期設定と終了操作の間でのみ開閉されます。

レベル

  • B …… HTTPリクエストの受信と送信についてのみ記録されます。このレベルは、製造(そして、テストの)システム、特に通信範囲とコンポーネントのハンドシェークのトラブルシューティングで使用されるはずです。(サポートバージョン:2.4)

  • C …… ユーザレベル(概要ログ)

  • S …… サポートレベル(中間ログ)

  • R …… MSJ社の開発者デバッグ用のレベル(詳細ログ)

低レベルのMRBの動作(接続、送信、受信など)を記録できるようにするには、MRBのカレントディレクトリにあるMGREQ.INIファイルでのログ設定を行います。

ReqHistorySize

MRBは、処理した各リクエストについての履歴ログを持っています。(Magic xpaのRQ関数やコマンドラインリクエスタのQUERY=LOGパラメータでアクセス可能です。)

このキーワードは、MRBが履歴ログに保持するリクエストの数を制御します。

構文:ReqHistorySize = 数値

デフォルトは、20,000、最小値は5,000、最大価値は100,000です。

ActivityLog

MRB の動作イベント内容を記録するログファイルのファイル名を指定します。

構文:ActivityLog= パス名\ ファイル名

指定されない場合、「mrb_event.log」という名前で作成されます。

LoadBalancing

MRBのロードバランシング機能を制御します。

構文:LoadBalancing= Y(デフォルト)/N/T

  • Y ……  要因となる長期のパフォーマンスを分散するためにサーバ間で負荷を分散します。

  • 平均リクエスト時間に基づいて最も低い負荷のサーバが選択されます。
    要因となる平均リクエスト時間(MRBモニタで表示される)は、そのサーバによって提供されるすべてのリクエストの平均実行時間です。そして、サーバから送られるLoadBalancingPriority値によって分けられます。
    ロードバランスが有効な場合、プライオリティーが高いほど要因となる平均的リクエスト時間は低くなります。

  • 同一の要素における平均リクエスト時間の場合:動作中のコンテキストの最少数によるサーバが選択されます。

  • T …… MRBは、エンジンのコンテキスト数(最大スレッド数) に対する実行中のコンテキスト数(スレッド数) の割合に応じて、均等にリクエストを割り振ります。

  • 最も低い割合のエンジンが選択されます。

  • 割合が同じ場合は、より高い最大スレッド数が定義されたエンジンが選択されます。

  • N …… ロードバランシングを実行しません。MRBは、最初に利用できるサーバにすべてのリクエストを送信します。

注意:

一般にMRBのロードバランシング機能は、各リッチクライアントセッションの最初のリクエストだけに適用されます。

この処理中に、バランシング処理は他のどの非クライアントリクエストとも異なりません。各セッションの2番目のリクエストから開始され、MRBはそれらが開始されたものと同じサーバに全てのセッションの送ることになります。

ShutdownTimeout

この値は、全てのアプリケーションサーバに対し、指定された期間内に段階的にシャットダウンするように指示するための数秒です。

構文:ShutdownTimeout = 数値

デフォルト(=1)では、全てのアプリケーションに対して、直ちにシャットダウンするように指示し、MRB自身をも直ちにシャットダウンされます。

DelayServiceStart

MRBをサービスで起動した場合、起動を指定した秒数分遅らせるように指定できます。

EnableFilters

「Filters」パラメータで指定されたフィルタ処理を有効にするかどうかを指定します。

構文:EnableFilters = Y またはN

この指定が「N」の場合、「Filters」や「AllowReserve」の指定は意味がありません。

デフォルトは、「N」です。

Filters

リクエストのフィルタ機能を利用すると、複数の異なるリクエストに対してMRB やMagicエンジンが利用できるスレッド数に応じて処理が案分されます。

設定方法

フィルタ機能を有効にするには、MGRB.INIの[MRB_ENV]セクションにて以下のパラメータを指定します。

  • EnableFilters = Y

  • Filters = フィルタ用キーワード

  • AllowReserve=Y

フィルタ用キーワードの指定

コールリモートの場合

  • 呼出側 …… MAGIC.INIの[サービス]特性(MAGIC.INI の[MAGIC_SERVICES]セクション)にフィルタキーワードを指定します。

例: Default Service = Default Broker,,,,RMC

  • 受信側……… MGRB.INIの[MRB_ENV]セクションとMAGIC.INI の[MAGIC_ENV]セクションに以下のように指定します。

Filters = HTTP:10% | SOAP:30% | RMC:20%

この場合、20 スレッドのライセンスを持つアプリケーションサーバが、異なる種類のリクエストを処理する際に、以下のような割合を指定することになります。

  • HTTP …… 2 スレッド

  • SOAP …… 6 スレッド

  • RMC …… 4 スレッド

  • フィルタを指定しないリクエスト …… 8 スレッド

注意:

  • キーワードの名前自体に意味はありません。呼出側で指定したキーワードと合っているかどうかで判断されます。上記の例の場合、呼出側では、キーワードは「RMC」になっているため、アプリケーションサーバは、4スレッド分の処理しか実行されません。

  • MAGIC.INIの[MAGIC_ENV]セクションの設定が優先されます。MAGIC.INI にフィルタが指定されていない場合、MGRB.INI側が有効になります。

  • 累計されたパーセンテージが100%より大きい場合、最後のフィルタ指定が100%になるように調整されます。またて、すべての二次フィルタは廃棄されます。

インターネントリクエスタ/ コマンドラインリクエスタの場合

  • 呼出側 …… MGREQ.INIの[REQUESTER_ENV]

Filters = HTTP

  • 受信側 …… コールリモートの時と同じです。

AllowReserve

Filterキーワードの割合の合計が100% に満たない場合、残りの割合を他のフィルタ用に利用できるようにするかどうかを指定します。

構文:AllowReserve = Y(デフォルト)またはN

QueueMaxSize

デフォルトは、1,000リクエストです。

MRBがすでにそのキュー内にQueueMaxSizeリクエストを持っている場合、直ちに送信できない以降のリクエスト(同期または非同期)は、キューに入らず、リクエスタは、エラー-198(キューの上限に達した)を受け取ります。

TerminateEnginesDuringShutdown

このキーワードは、[ShutdownTimeout]キーワードに0より大きな値が設定された場合のみ有効です。

「Y」が設定された場合、MRBによって起動された全ての実行エンジンを終了させます。段階的に終了できなかった場合でも、MRBが記録した実行エンジンのプロセスIDに基づいて、指定されたタイムアウト値を越えた時点でシャットダウンさせます。

構文:TerminateEnginesDuringShutdown= Y(デフォルト)またはN

ContextsUsage

MRBがファイルにコンテキストの使用内容を保存するかどうかを指定します。コンテキストが閉じた時点で、データが保存されます。実行時エンジンの実行モードでバックグラウンドに設定される場合のみ有効です。この場合、コンテキストは常にメイン/単一コンテキストになります。

  • Y …… コンテキスト内容が保存されます。

  • N(デフォルト) …… 保存されません。

構文:ContextsUsage= N(デフォルト)またはY

ContextsUsageLog

Contexts Usageで出力するファイル名を指定します。値は相対/絶対パスで指定できます。

デフォルト値は、ContextsUsage_YYYY_MM_DD.Logです。

FloatingLicense

これがYに設定されると、フローティングライセンス環境モードにないサーバは、フローティングライセンス環境モードにあるサーバとライセンスを共有できるようになります。

デフォルトは、N です。

フローティングライセンスのサポートも参照してください。

[APPLICATIONS_LIST]

オプションのセクションで省略できます。このセクションには、コマンドライン実行ファイルまたはシェルコマンドを記述します。

OSのユーザー名やパスワードを指定した場合、コマンドはこのOSアカウントを使用します。

<MRB の初期化時に実行される回数>が「1」に設定された場合、定義されたアプリケーションの1つのインスタンスを読み込みます。

<起動されるエンジンの最大数>は、サーバに送られたリクエストが利用できるアプリケーションサーバを見つけることができない場合、MRBが追加で読み込むアプリケーションサーバ・エンジンを指定するために使用されます。

構文:エントリ名=<コマンド>,[<作業フォルダ>],[<ユーザ名>], [<パスワード>],[<MRB の初期化時に実行される回数>],[<起動されるエンジンの最大数>]

注意:

リクエスタでのパラメータ値(例えば-APPNAME=)は[APPLICATIONS_LIST]で定義されるたAPPNAMEと合っていなければなりません。

[REMOTE_APPLICATIONS_LIST]

オプションのセクションで省略できます。マルチコンピュータ環境で、各コンピュータでエンジンがMRB とは別個に機能している時に、このセクションを記述します。

MRBのインスタンスはローダとして機能しますが、インスタンスは、エンジンが機能しているコンピュータ全てに対して有効でなければなりません。マルチコンピュータ環境の場合、このセクションに実行可能ファイルを一覧で指定しておきます。これで、ローカルのMRB からリモートのMRB に対して自動的に接続が実行されるとともに、このセクションに指定した実行可能ファイルがロードされます。なお、リモートMRB にパスワードが設定されている場合、PasswordSupervisor を指定しなければなりません。指定しない場合、パスワードとしてはローカルのMRB のパスワードが使用されます。

構文:エントリ名=<リモートMRB のホスト名/ポート番号>,[<リモートMRB のPasswordSupervisor>],[<リモートMRB に定義されているエントリ名>],[<MRB の初期化時に実行される回数>],[<起動されるエンジンの最大数>]

<MRB の初期化時に実行される回数>の値が1に設定されている場合、定義されたアプリケーションの1つのインスタンスを起動します。

[APPLICATION_CLIENTS_MAP]

オプションのセクションで省略できます。開発者に対して、リクエストの受信先のエンジンを制御できます。

例えば、同一のプロジェクトファイルに対して複数の開発者で開発を行っている場合、ある開発者が、オブジェクトをチェックアウトし、MRBに自分のエンジンを割当てるといった作業が可能です。

このセクションはソース管理された環境で使用されます。この場合、開発者はそれらのマシンから送信されるリクエストが他の実行エンジンではなく指定されたPCで実行されたいるエンジンに送られるようになります。これはワークグループ開発時に役に立ちます。明示的に指示することなくリクエストが1人の開発者からアプリケーションの自身のコピーに送られるため、変更内容を確認するために、開発者は毎回その変更内容をチェックインする必要があります。たとえば、開発者がそのWebブラウザからリクエストを起動させる場合、開発者はアプリケーションの(中央にあるコピーではなく)修正されたコピーで起動させたいでしょう。

構文:

<サーバ名1>:<クライアント名 または IP a1>,<クライアント名 または IP a2>...,<クライアント名 または IP ax>

<サーバ名1>:<クライアント名 または IP b1>,<クライアント名 または IP b2>...,<クライアント名 または IP bx>

<サーバー名1>は<クライアント名またはIP a1>,<クライアント名またはIP a2>…<クライアント名前またはIP aN>からのみリクエストを受け付けます。

<サーバー名2>は<クライアント名またはIP b1>,<クライアント名またはIP b2>…<クライアント名前またはIP bN>からのみリクエストを受け付けます。

注意:

リモートコールの実行中(このセクションでエンジンがマッピングされている場合)、リクエストゲートウェイでは、リクエストとともに送られてきたユーザ名とパスワードを使用して処理が行われます。

したがって、開発者がまだエンジンにログオンしていない時には、ログオンの際、ユーザ名とパスワードを指定しなければなりません。これで、その開発者が使用できるプロジェクトファイルであるかを確認できます。

なお、ユーザ名とパスワードは、インターネットとコマンドラインではMGREQ.INI ファイル、Magicクライアントでは[サービス]テーブルにおいて定義できます。

[SNMP]

 

AverageWaitTime

リクエストが利用可能なアプリケーションサーバを待つ平均時間を秒数で指定します。平均待ち時間がこの指定値を超えた場合、SNMP トラップメッセージがNMSに送られます。

構文:AverageWaitTime = N (秒) (デフォルト値:3)

AverageProcessTime

リクエストがアプリケーションサーバで処理される平均時間を秒数で指定します。リクエストが送られるたびに、この値は登録された全アプリケーションサーバに対してチェックされます。平均処理時間がこの指定値を超える場合は、SNMP トラップメッセージがNMSに送られます。

構文:AverageProcessTime = N (秒) (デフォルト値:30)

DelayThresholdTraps

指定されたタイプのリクエストがしきい値の間に待たなければならない時間を分数で指定します。これはNMS 側がオーバフローすることを回避するためです。デフォルト値は1分です。

構文:DelayThresholdTraps = N (分)