![]() |
![]() |
|
|
BEA Tuxedo /Q 機能の保守
ここでは、効率的にキュー・スペースを操作できるように、キューの管理者が行うべき作業について説明します。
キュー・スペースのエクステントの追加
キュー・スペースのディスク領域を増やす必要がある場合は、qmadmin(1) の qaddext コマンドを使用します。APPQ_MIB(5) の T_APPQSPACE クラスの TA_MAXPAGES 属性を使用して、エクステントを追加することもできます。qmadmin コマンドは、キュー・スペース名およびページ数を引数として取ります。ページは、QMCONFIG 変数に指定されたデバイスに対して、UDL で定義されているエクステントから割り当てられます。キュー・スペースは、アクティブでないことが条件です。感嘆符を使用すると、qmadmin 外のコマンドを実行できるので、対応付けられたサーバ・グループをシャットダウンできます。次に例を示します。
> !tmshutdown -g TMQUEUEGRP1
次のコードが続きます。
> qclose
> qaddext myqueue 100
キュー・スペースは、クローズしていなければなりません。オープンしているキュー・スペースにエクステントの追加を試みると、qmadmin によってそのキューがクローズします。現在キュー・スペースにある永続的ではないメッセージは、qaddext コマンドが発行されて正常終了すると、すべて失われます。
キュー・スペースのバックアップの作成および移動
キュー・スペースのバックアップを作成する場合は、UNIX コマンドの dd(1) を使用すると便利です。まず、対応付けられたサーバ・グループをシャットダウンします。次のようにコマンドを入力します。
tmshutdown -g TMQUEUEGRP1
dd if=<qspace_device_file> of=<output_device_filename>
そのほかのオプションについては、UNIX システムの dd リファレンス・ページを参照してください。
キュー・スペースをアーキテクチャが同じである別のマシンに移動する場合も、同じコマンドを使用できます。ただし、現在のデバイス名が移動先のマシンに存在しない場合は、qmadmin の chdl コマンドで開始して、新しいデバイス名を指定する必要があります。
dd コマンドを持たないサーバ・プラットフォームでも、同じようなアーカイブ方法を使用できます。まず、バックアップを作成するキュー・スペース、または移動するキュー・スペースを含むグループをシャットダウンします。次に、アーカイブ・ツールを使用して、バックアップとして使用できるファイルなどの媒体、またはキュー・スペースを別のサーバに移動する際に使用されるファイルなどの媒体に、キュー・スペースのデバイスを保存します。
キュー・スペースの異種マシンへの移動
異なるアーキテクチャ (主にバイトの並び順) を持つマシンにキュー・スペースを移動する場合、その手順は複雑になります。まず、キュー・スペースにあるすべてのキューからすべてのメッセージを取り出すアプリケーション・プログラムを作成して実行します。次に、それらのメッセージをマシンに依存しない形式で書き出します。最後に、メッセージを新しいキュー・スペースに登録します。
TMQFORWARD および非グローバルのトランザクション
TMQFORWARD を使用してキューから取り出されて転送されるメッセージは、グループの境界を越えて処理されるので、グローバル・トランザクション内で実行されます。リソース・マネージに対応付けられていないサーバ、またはグローバル・トランザクション内で実行していないサーバによってメッセージが実行される場合は、TMSNAME=TMS (NULL XA インターフェイスの場合) であるサーバ・グループが必要です。
TMQFORWARD およびコミット制御
メッセージが実行のためにキューから取り出された際に TMQFORWARD で開始されたグローバル・トランザクションは、tpcommit() によって終了します。管理者は、コンフィギュレーション・ファイルに CMTRET パラメータを設定して、トランザクションのログへの記録時または完了時にトランザクションのコミットを設定できます。UBBCONFIG(5) の RESOURCES セクションの CMTRET の説明を参照してください。
トランザクション・タイムアウトの処理
トランザクション・タイムアウトを処理するには、キューの管理者と、メッセージをキューから取り出すクライアント・プログラムを開発するプログラマが協力することが必要です。tpdequeue(3c) が呼び出され、その flags 引数に TPQWAIT が設定されている場合、TMQUEUE サーバはメッセージがキューに到着するまで待機します。タイムアウトになるまでの時間 (秒単位) は、次の条件によって決定されます。
TPQWAIT が設定されている場合にメッセージがすぐに利用できないときは、TMQUEUE にはほかのサービス要求を処理するためのアクション・リソースが必要になります。キュー・スペースが同時に処理できるアクション数を増やすこともできます。その場合、qspacecreate または qspacechange コマンドに、 -A actions オプションを使用します。このオプションは、同時に処理できる追加のアクション数を指定します。処理の待機中にほかのアクションを実行できる場合、条件が満たされるまでブロッキング操作は中断されます。実行できるアクションがない場合は、tpdequeue の呼び出しは失敗します。
TMQFORWARD および利用できないサービスに対する再試行
TMQFORWARD サーバがサービスにメッセージを転送したときにそのサービスが利用できなかった場合、キューに対する再試行回数の上限に達することがあります。メッセージは、エラー・キューが存在する場合はそこに移されます。このような状態を避けるには、管理者が TMQFORWARD サーバをシャットダウンするか、または再試行回数の上限値を増やします。
メッセージはエラー・キューに移動されると、元のキューとは関連がなくなります。サービスが利用可能になったときに、管理者がメッセージをサービス・キューに戻してエラーを修復すると、キュー名が TPQCTL 構造体の corrid に格納されて、キュー名がメッセージと対応付けられます。
![]() |
![]() |
![]() |
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|