Oracle Tuxedo Scripting Tool
この章では、Oracle Tuxedo Scripting Tool (TXST)について説明します。また、TXSTコマンド行スクリプト・インタフェースを使用して、Tuxedoの実行中インスタンスの構成、管理、およびこれらへの変更の永続化を行い、サーバー実行時イベントをモニターおよび管理する方法を説明します。
•
|
「MBeanのナビゲート」では、Tuxedoドメインの構成および実行時の情報を取得して、構成MBeanまたはカスタムMBeanを編集する方法について説明します。
|
Tuxedo Scripting Tool (TXST)は、Tuxedoドメインの管理、およびモニターに使用できるコマンド行スクリプト環境です。TXSTスクリプト環境は、Javaのスクリプト・インタプリタであるJythonをベースとしています。TXSTでは、ローカル変数、条件変数、フロー制御文など、標準のJython機能に加え、Tuxedoに固有の一連のスクリプト機能(コマンド)を使用できます。http://www.jython.orgを参照してください。
スクリプト・ツールはオンラインで使用できます(実行中のTuxedoドメイン、またはtlistenプロセスに組み込まれたJMXエージェントに接続した状態で)。TXSTコマンドの詳細は、
「TXSTコマンドおよび変数リファレンス」を参照してください。
オンラインのTXSTにより、マネージドBean (MBean)へのアクセスが簡単になります。Mbeanは、JMXによって管理できる基礎リソースの管理インタフェースを提供するJavaオブジェクトです。
TXSTがTuxedoドメインに接続されているときに、スクリプト・ツールを使用してMBeanのナビゲートと問合せを行い、インスタンスに構成データを提供できます。TXSTがJMXエージェントに接続されているとき、その機能はMBeansがサポートするコマンドのみに制限されます。
TXSTはコマンド行インタプリタで、対話形式でコマンド・プロンプトから1つずつ入力されたコマンド、バッチ形式でファイル(スクリプト)に指定されたコマンド、またはJavaコードに組み込まれたコマンドを解釈します。操作モードは、TXSTコマンドを発行する方法を表します。
コマンドを入力すると応答がコマンド行プロンプトに表示される対話モードは、スクリプトを構築する前にツールについて学習したり、コマンド構文を試作したり、構成オプションを確認したりするのに役立ちます。対話形式によるTXSTの使用は、特に構成に重要な変更を加えた後、即座にフィードバックを取得するために有用です。TXSTスクリプト・シェルは、Tuxedoドメインのインスタンスとの永続的な接続を維持します。ユーザー・セッション全体を通して永続的な接続が維持されるので、インスタンスに対して実行される複数のステップを取り込むことができます。詳細は、
「ユーザー対話の記録」を参照してください。
スクリプトは、シェル・スクリプトと同様に、ユーザーからの入力を必要とすることなくTXSTコマンドのシーケンスを呼び出します。スクリプトは、.pyファイル拡張子の付いたテキスト・ファイル(例: filename.py)にTXSTコマンドを格納します。スクリプト・ファイルは、3つのモードで使用します(スクリプトによるTXSTの呼出し、Jythonコマンドを使用したスクリプトの実行、およびAntビルド・ファイルを使用したスクリプトの呼出し)。
「スクリプトの実行」を参照してください。
組込みモードでは、Javaコード内でTXSTインタプリタをインスタンス化し、それを使ってTXSTコマンドおよびスクリプトを実行します。startRecording()とstopRecording()を除いて、対話モードとスクリプト・モードで使用するすべてのTXSTコマンドと変数を組込みモードで実行できます。
コード・リスト1は、TXSTインタプリタのインスタンスをインスタンス化し、これを使用して実行中のドメインに接続し、サーバーを作成する方法を示しています。
import oracle.tuxedo.jmx.tux.jyscript.TXSTInterpreter;
import org.python.util.InteractiveInterpreter;
public class EmbeddedTXST {
static InteractiveInterpreter interp = null;
interp = new TXSTInterpreter();
private static void connect() {
interp.exec("connect('//localhost:5037', 'simpapp', ���38075���)");
private static void create_server() {
StringBuffer buffer = new StringBuffer();
buffer.append("cd('simple/GROUP1')\n");
buffer.append("srv1= create(���simpserv���, ���SERVER���, srvID=40)\n");
buffer.append("print 'Script ran successfully...'\n");
interp.exec(buffer.toString());
public static void main(String[] args){
次の項では、TXSTを設定および使用するための手順の概要を示します。
TXSTの環境を設定するには、次の手順に従います。
1.
|
TSAMエージェントをインストールし、構成します。
|
2.
|
TUXDIR環境変数をTuxedoインストール・ディレクトリと同じ値に設定し、PATH環境変数に $TUXDIR/binを設定します。
|
3.
|
CLASSPATHに $TUXDIR/jmx/jython-standalone.jar:$TUXDIR/jmx/tmjmx_tux.jar:$TUXDIR/jmx/tmjmx_metadata.jarを組み込みます。または、用意されている txst.shまたは txst.cmdを使用するだけでTXSTを起動できます。
|
TXSTを起動するには、コマンド
txst.shを入力します。
ウェルカム・メッセージとTXSTプロンプトが表示されます。
txst.shは、
$TUXDIR/bin内にあります。
txst.shを使用してTXSTを起動する場合は、
CLASSPATHを設定する必要はありません。
前述のように
CLASSPATHに関連したjarファイルを追加した場合は、コマンド
java oracle.tuxedo.TXSTを入力できます。次に例を示します。
#export CLASSPATH=$CLASSPATH:$TUXDIR/jmx/jython-standalone.jar:$TUXDIR/jmx/tmjmx_tux.jar:$TUXDIR/jmx/tmjmx_metadata.jar
# java oracle.tuxedo.TXST
Initializing Tuxedo Scripting Tool (TXST) ...
注意:
|
dmib関連のコマンドを使用する場合は、パッケージ $TUXDIR/udataobj/tuxj/com.bea.core.jatmi_2.0.0.0.jarを使用する必要があります。
|
Jythonは、初回の起動時に検出できたすべてのjarファイルをスキャンします。システムによっては、この処理の完了に数分かかる場合があり、TXSTがプロンプトをすぐには返さないことがあります。
Welcome to Tuxedo Administration Scripting Tool
Type help() for help on available commands
•
|
コマンド名および引数では、大文字と小文字を区別する。
|
•
|
引数は一重引用符または二重引用符で囲む。たとえば、'newServer'または"newServer"のようにします。
|
•
|
たとえばファイル・パス名を指定する場合など、バックスラッシュ文字(\)を文字列の中で指定する場合は、引用符で囲んだ文字列の前にrを付けて、文字列をそのraw形式で解釈するようにTXSTに指示し、バックスラッシュがリテラルに解釈されるようにする必要があります。この形式は、標準のJythonの構文を表しています。
|
•
|
コマンドのドキュメント文字列を出力することにより、TXSTのコマンドのヘルプ情報を表示します。「ヘルプの表示」を参照してください。
|
TXSTは、3種類のスクリプト実行方法を備えています。このガイドに示すスクリプト例を実行するには、.pyファイル拡張子の付いたテキスト・ファイル(例: filename.py)にコマンドをコピーし、保存します。このテキスト・ファイルは、次に示すスクリプトを実行するためのコマンドとともに使用します。script.pyファイルを最初から作成する際にテンプレートとして使用できる、サンプル・スクリプトが用意されています。スクリプトにより、実行中のTuxedoドメインにTXSTが接続される場合は、スクリプトを実行する前にTuxedoドメインを開始してください。
java oracle.tuxedo.TXST myscript.py
リスト5-2
スクリプトmyscript.pyの実行
connect("//localhost:5037", "simpapp", "38075");
•
|
Antビルド・ファイルからのTXSTスクリプトの呼出し
|
スクリプトは、シェル・スクリプトと同様に、ユーザーからの入力を必要とすることなくTXSTコマンドのシーケンスを呼び出します。スクリプトは、.pyファイル拡張子の付いたテキスト・ファイルにTXSTコマンドを格納します。
TXSTは、Antビルド・ファイルからTXSTスクリプトを呼び出すカスタムantタスクを提供します。独自にインストールしたAntでこのタスクを使用する場合は、ビルド・ファイルに次のタスク定義を追加します。
<taskdef name ="txst" classname="oracle.tuxedo.jmx.tux.jyscript.TXSTTask" />
AntスクリプトからTXSTを実行する手順は、次のとおりです。
a.
|
コマンド・シェルで環境を設定します( TUXDIR、CLASSPATH、JAVA_HOME、ANT_HOMEなど)。
|
b.
|
TXSTコマンドを実行するための呼出しをtxst Antタスクに追加します。例:
|
<target name="GetParameters">
<txst debug="false" failOnError="false"
executeScriptBeforeFile="true" fileName="./test.py">
connect("//slce04cn03:5067","simpapp","38175")
print cmo.GetParameters()
txst Antタスクを使用する場合は、fileName属性を使用してTXSTスクリプト(.py)内でTXSTコマンドを指定できます。また、ビルド・ファイル内にTXSTスクリプト・コマンドを<script>タグで囲んで組み込むこともできます。
c.
|
ステージング・ディレクトリでantと入力し、必要であればこのコマンドにターゲットの引数を渡して、build.xmlファイルで指定されたAntタスク(1つまたは複数)を実行します。
|
bash-3.2$ ant getParameters
<txst properties="propsFile" filename=”filename” arguments="arglist"
failOnError=”value” executeScriptBeforeFile="value” debug=”value” >
次の表に、txst Antタスクの一部として指定できるAntタスク属性の定義を示します。
|
|
|
省略可能。スクリプト内で参照できる名前と値のペアを含むプロパティ・ファイルの名前と場所。
|
|
省略可能。実行するTXSTスクリプト・ファイルの名前と場所。指定されたTXSTスクリプト・ファイルが存在しない場合、txst Antタスクは失敗します。
|
|
省略可能。スクリプトに渡す引数のリスト。これらの引数には、sys.argv変数を使用してアクセス可能です。
|
|
省略可能。txst Antタスクが失敗した場合に、Antのビルド・スクリプトが失敗するかどうかを指定するブール値。この属性のデフォルト値はtrueです。
|
executeScriptBeforeFile="value"
|
省略可能。埋め込まれたスクリプトが、指定されたTXSTスクリプト・ファイルより前に実行されるかどうかを指定するブール値。この属性のデフォルトは、埋め込まれたスクリプトが先に実行されることを指定するtrueです。
|
|
省略可能。TXST Antタスクの実行時にデバッグ文を出力するかどうかを指定するブール値。この属性のデフォルト値はfalseです。
|
次の例では、test.pyはTXSTコマンドを格納しているファイルです。「script」ノード内にTXSTコマンドを追加することもできます。
<project default="all" basedir=".">
classname="oracle.tuxedo.jmx.tux.jyscript.TXSTTask" />
<target name="getParameters">
<txst debug="false" failOnError="false"
executeScriptBeforeFile="true" fileName="./test.py">
connect("//slce04cn03:5067","simpapp","38175")
このバージョンでは、TXSTはMavenをサポートしません。
txst:simpapp_38075:/>exit()
TXSTコマンドに関する情報を表示するには、コマンドのドキュメント文字列を出力します。
たとえば、disconnectコマンドの情報を表示するには、次のコマンドを入力します。
txst:/simpapp>help(���disconnect���)
This function is used to disconnect from tuxedo server instance.
txst: /simpapp > disconnect()
すべてのTXSTコマンド入力の記録を開始および停止するには、次のように入力します。
startRecording(outputFile)
startRecordingコマンドを入力する際には、TXSTコマンドを格納するファイルのパス名を指定する必要があります。
たとえば、TXSTコマンドをrecord.pyファイルに記録するには、次のコマンドを入力します。
txst:/simpapp> startRecording('record.py')
詳細は、「startRecording」および「stopRecording」を参照してください。
ファイルへのTXST出力のリダイレクトを開始および停止するには、次のように入力します。
redirect(outputFile,[toStdOut])
TXST出力をリダイレクトする先のファイルのパス名を指定する必要があります。オプションで、TXST出力を標準出力に送るかどうかを指定することもできます。toStdOut引数のデフォルトはTrueです。
たとえば、TXST出力を現行ディレクトリのlogs/txst.logファイルにリダイレクトし、出力が標準出力に送られないようにするには、次のコマンドを入力します。
txst:/simpapp> redirect('./logs/txst.log', False)
詳細は、「redirect」および「stopRedirect」を参照してください。
オンラインのTXSTでは、MBeanに簡単にアクセスできます。JMX APIでは、MBeanに対して照会を行うためにJMXオブジェクト名を使用する必要がありますが、TXSTでは、ファイル・システム内のファイルの階層をナビゲートするのと同様なやり方で、MBeanの階層を移動できます。
Tuxedoは、MBeanを階層データ・モデルにまとめます。TXSTファイル・システムでは、MBean階層はドライブに、MBeanインスタンスはディレクトリに、MBean属性とオペレーションはファイルに相当します。UNIXまたはWindowsコマンド・シェルでファイル・システムをナビゲートするときと同じように、TXSTはcd、ls、pwdなどのコマンドを使用して、MBeanの階層構造を移動します。MBeanインスタンスにナビゲートしたら、TXSTコマンドを使用してMBeanと対話します。
階層内で、ルート・ディレクトリはDomainMBeanです。MBeanタイプの各インスタンスはサブディレクトリ、MBean属性とパラメータはMBeanインスタンス・ディレクトリの下のノード(ファイルと同様)です。
TXSTがTuxedoドメインのインスタンスに最初に接続すると、cmo (現在の管理オブジェクト)がすべての構成管理オブジェクトのルート(DomainMBean)に初期化されます。MBeanタイプにナビゲートすると、cmoの値は親MBeanを反映します。MBeanインスタンスにナビゲートすると、リスト3に示すように、TXSTはcmoの値を現在のMBeanインスタンスに変更します。
txst:/offline>connect("//slce04cn03:5035", "simpapp", "58103")
txst:simpapp_58103:/>cmo.getMbeanName()
simpapp_58103:type=tuxedo_domain
txst:simpapp_58103:/>cd('L1')
txst:simpapp_58103:/L1>cmo.getMbeanName()
simpapp_58103:type=tuxedo_machine,LMID=L1
リスト4のコマンドは、Tuxedoドメイン・インスタンスに接続し、ナビゲートして、DomainMBean内のMbeanを表示するようにTXSTに指示します。引数を指定しない場合は、lsコマンドによってすべての子MBeanと属性が表示されます。
txst:/offline>connect("//slce04cn03:5035", "simpapp", "58103")
txst:simpapp_58103:/>ls()
TA_INSTANCE_AFFINITY NONE
TA_SEC_PRINCIPAL_LOCATION
TA_SIGNATURE_BEHIND 604800
TA_SYSTEM_ACCESS FASTPATH
現在のBeanの子Beanまたは属性(あるいはその両方)をすべて表示します。
必要に応じて引数を指定することにより、出力を制御できます。引数を指定しない場合は、ドメイン内のすべての子Beanと属性が表示されます。出力は文字列で返されます。
特定のMBeanを見つけるには、findコマンドを使用できます。TXSTは、指定されたMBeanのパス名を返します。パスで指定されたMBeanを戻すには、getMBeanコマンドを使用します。詳細は、「find」および「getMBean」を参照してください。
txst:simpapp_58103:/>find('ser*')
txst:simpapp_58103:/>bean = getMBean('/L1/GROUP1/server_1')
txst:simpapp_58103:/>path = getPath(bean)
txst:simpapp_58103:/>print path
有効期間中、実行されるインスタンスは停止、起動、一時停止、再開中、実行中など、複数の動作状態を遷移できます。start、suspend、resume、shutdownなどのTXSTコマンドにより、サーバー・インスタンスの状態に特定の変更が生じます。
•
|
Tuxedoドメイン、マシン、グループまたはサーバーを起動および停止する。「起動と停止」を参照してください。
|
•
|
指定したスコープ内のサーバーを代替ロケーションに移行する。
|
•
|
指定したターゲットを一時停止および再開する。「一時停止および再開」を参照してください。
|
TXSTでは、いくつかの方法で指定したオブジェクトを起動および停止できます。選択する方法は、ターゲット・オブジェクトによって異なります。
Tuxedoドメインを起動するには、startDomain()コマンドを呼び出す必要があります。このコマンドは、tlistenプロセスに組み込まれたJMXエージェントにTXSTが接続しているときに使用する必要があります。呼出しが成功すると、Tuxedoドメインに接続できます。「startDomain」を参照してください。
Tuxedoドメインを停止するには、
shutdownDomain()コマンドを呼び出す必要があります。ドメインが正常に停止すると、TXSTはドメインから切断し、JMXエージェントへの接続に戻ります。「shutdownDomain」を参照してください。
マシン、グループおよびサーバーに対しては、start()またはshutdown()を直接呼び出すことができます。ターゲットがサーバーである場合は、2つの方法でこれらのコマンドを操作できます。「起動と停止」を参照してください。
一時停止および再開のサポート対象のMbeanは、マシン、サーバー、ブリッジ、WSH、JSHです。ただし、ターゲット・オブジェクトはこれらのMbeanとは異なります。ターゲットの詳細は、次の表を参照してください。