目次 前 次 PDF


Oracle Tuxedo Scripting Tool

Oracle Tuxedo Scripting Tool
この章では、Oracle Tuxedo Scripting Tool (TXST)について説明します。また、TXSTコマンド行スクリプト・インタフェースを使用して、Tuxedoの実行中インスタンスの構成、管理、およびこれらへの変更の永続化を行い、サーバー実行時イベントをモニターおよび管理する方法を説明します。
この章は次のように構成されます。
「Tuxedo Scripting Toolの使用」では、このスクリプト・ツールのしくみ、操作モード、およびこれを呼び出すための基本的な手順について説明します。
「MBeanのナビゲート」では、Tuxedoドメインの構成および実行時の情報を取得して、構成MBeanまたはカスタムMBeanを編集する方法について説明します。
「サーバーのライフサイクルの管理」では、TXSTを使用したTuxedoインスタンスの起動および停止と、サーバーのライフサイクルのモニターおよび管理について説明します。
Tuxedo Scripting Toolの使用
Tuxedo Scripting Toolとは
Tuxedo Scripting Tool (TXST)は、Tuxedoドメインの管理、およびモニターに使用できるコマンド行スクリプト環境です。TXSTスクリプト環境は、Javaのスクリプト・インタプリタであるJythonをベースとしています。TXSTでは、ローカル変数、条件変数、フロー制御文など、標準のJython機能に加え、Tuxedoに固有の一連のスクリプト機能(コマンド)を使用できます。http://www.jython.orgを参照してください。
TXSTの機能
スクリプト・ツールはオンラインで使用できます(実行中のTuxedoドメイン、またはtlistenプロセスに組み込まれたJMXエージェントに接続した状態で)。TXSTコマンドの詳細は、「TXSTコマンドおよび変数リファレンス」を参照してください。
オンラインのTXSTにより、マネージドBean (MBean)へのアクセスが簡単になります。Mbeanは、JMXによって管理できる基礎リソースの管理インタフェースを提供するJavaオブジェクトです。
TXSTがTuxedoドメインに接続されているときに、スクリプト・ツールを使用してMBeanのナビゲートと問合せを行い、インスタンスに構成データを提供できます。TXSTがJMXエージェントに接続されているとき、その機能はMBeansがサポートするコマンドのみに制限されます。
操作モード
TXSTはコマンド行インタプリタで、対話形式でコマンド・プロンプトから1つずつ入力されたコマンド、バッチ形式でファイル(スクリプト)に指定されたコマンド、またはJavaコードに組み込まれたコマンドを解釈します。操作モードは、TXSTコマンドを発行する方法を表します。
コマンド行で対話形式: 対話モード
テキスト・ファイルで: スクリプト・モード
Javaコードに組込み: 組込みモード
対話モード
コマンドを入力すると応答がコマンド行プロンプトに表示される対話モードは、スクリプトを構築する前にツールについて学習したり、コマンド構文を試作したり、構成オプションを確認したりするのに役立ちます。対話形式によるTXSTの使用は、特に構成に重要な変更を加えた後、即座にフィードバックを取得するために有用です。TXSTスクリプト・シェルは、Tuxedoドメインのインスタンスとの永続的な接続を維持します。ユーザー・セッション全体を通して永続的な接続が維持されるので、インスタンスに対して実行される複数のステップを取り込むことができます。詳細は、「ユーザー対話の記録」を参照してください。
スクリプト・モード
スクリプトは、シェル・スクリプトと同様に、ユーザーからの入力を必要とすることなくTXSTコマンドのシーケンスを呼び出します。スクリプトは、.pyファイル拡張子の付いたテキスト・ファイル(例: filename.py)にTXSTコマンドを格納します。スクリプト・ファイルは、3つのモードで使用します(スクリプトによるTXSTの呼出し、Jythonコマンドを使用したスクリプトの実行、およびAntビルド・ファイルを使用したスクリプトの呼出し)。「スクリプトの実行」を参照してください。
組込みモード
組込みモードでは、Javaコード内でTXSTインタプリタをインスタンス化し、それを使ってTXSTコマンドおよびスクリプトを実行します。startRecording()とstopRecording()を除いて、対話モードとスクリプト・モードで使用するすべてのTXSTコマンドと変数を組込みモードで実行できます。
コード・リスト1は、TXSTインタプリタのインスタンスをインスタンス化し、これを使用して実行中のドメインに接続し、サーバーを作成する方法を示しています。
リスト5-1 JavaクラスからのTXSTの実行
import java.util.*;
import oracle.tuxedo.jmx.tux.jyscript.TXSTInterpreter;
import org.python.util.InteractiveInterpreter;
 
public class EmbeddedTXST {
static InteractiveInterpreter interp = null;
EmbeddedTXST() {
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){
new EmbeddedTXST();
connect();
create_server();
}
}
 
TXSTを使用する場合の主な手順
次の項では、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を起動するには、コマンドtxst.shを入力します。
ウェルカム・メッセージとTXSTプロンプトが表示されます。
txst: /offline>
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
txst:/offline>
TXSTコマンドを入力するための要件
TXSTコマンドを入力する際には、次の規則に従ってください。「TXSTコマンドおよび変数リファレンス」も参照してください。
コマンド名および引数では、大文字と小文字を区別する。
引数は一重引用符または二重引用符で囲む。たとえば、'newServer'または"newServer"のようにします。
たとえばファイル・パス名を指定する場合など、バックスラッシュ文字(\)を文字列の中で指定する場合は、引用符で囲んだ文字列の前にrを付けて、文字列をそのraw形式で解釈するようにTXSTに指示し、バックスラッシュがリテラルに解釈されるようにする必要があります。この形式は、標準のJythonの構文を表しています。
コマンドのドキュメント文字列を出力することにより、TXSTのコマンドのヘルプ情報を表示します。「ヘルプの表示」を参照してください。
スクリプトの実行
TXSTは、3種類のスクリプト実行方法を備えています。このガイドに示すスクリプト例を実行するには、.pyファイル拡張子の付いたテキスト・ファイル(例: filename.py)にコマンドをコピーし、保存します。このテキスト・ファイルは、次に示すスクリプトを実行するためのコマンドとともに使用します。script.pyファイルを最初から作成する際にテンプレートとして使用できる、サンプル・スクリプトが用意されています。スクリプトにより、実行中のTuxedoドメインにTXSTが接続される場合は、スクリプトを実行する前にTuxedoドメインを開始してください。
スクリプトは、次の3つのモードで実行できます。
TXSTを呼び出してスクリプトを実行
java oracle.tuxedo.TXST myscript.py
TXSTからスクリプトを実行
execfile(‘myscript.py’)
リスト5-2 スクリプトmyscript.pyの実行
connect("//localhost:5037", "simpapp", "38075");
cd('simple/GROUP1')
ls('c')
disconnect()
exit()
 
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">
<script>
connect("//slce04cn03:5067","simpapp","38175")
ls()
print cmo.GetParameters()
</script>
</txst>
</target>
txst Antタスクを使用する場合は、fileName属性を使用してTXSTスクリプト(.py)内でTXSTコマンドを指定できます。また、ビルド・ファイル内にTXSTスクリプト・コマンドを<script>タグで囲んで組み込むこともできます。
c.
ステージング・ディレクトリでantと入力し、必要であればこのコマンドにターゲットの引数を渡して、build.xmlファイルで指定されたAntタスク(1つまたは複数)を実行します。
bash-3.2$ ant getParameters
txst Antタスクの構文は、次のとおりです。
<txst properties="propsFile" filename=”filename” arguments="arglist"
failOnError=”value” executeScriptBeforeFile="value” debug=”value” >
<script>
txst-commands
</script>
次の表に、txst Antタスクの一部として指定できるAntタスク属性の定義を示します。
 
属性
定義
properties="propsFile"
省略可能。スクリプト内で参照できる名前と値のペアを含むプロパティ・ファイルの名前と場所。
fileName="fileName"
省略可能。実行するTXSTスクリプト・ファイルの名前と場所。指定されたTXSTスクリプト・ファイルが存在しない場合、txst Antタスクは失敗します。
arguments="arglist"
省略可能。スクリプトに渡す引数のリスト。これらの引数には、sys.argv変数を使用してアクセス可能です。
failOnError="value"
省略可能。txst Antタスクが失敗した場合に、Antのビルド・スクリプトが失敗するかどうかを指定するブール値。この属性のデフォルト値はtrueです。
executeScriptBeforeFile="value"
省略可能。埋め込まれたスクリプトが、指定されたTXSTスクリプト・ファイルより前に実行されるかどうかを指定するブール値。この属性のデフォルトは、埋め込まれたスクリプトが先に実行されることを指定するtrueです。
debug="value"
省略可能。TXST Antタスクの実行時にデバッグ文を出力するかどうかを指定するブール値。この属性のデフォルト値はfalseです。
次の例では、test.pyはTXSTコマンドを格納しているファイルです。「script」ノード内にTXSTコマンドを追加することもできます。
<project default="all" basedir=".">
<taskdef name ="txst"
classname="oracle.tuxedo.jmx.tux.jyscript.TXSTTask" />
<target name="getParameters">
<txst debug="false" failOnError="false"
executeScriptBeforeFile="true" fileName="./test.py">
<script>
connect("//slce04cn03:5067","simpapp","38175")
cmo.GetParameters()
</script>
</txst>
</target>
</project>
このバージョンでは、TXSTはMavenをサポートしません。
TXSTの終了
TXSTを終了するには、次のようにします。
txst:simpapp_38075:/>exit()
c:\jython\bin>
ヘルプの参照
TXSTコマンドに関する情報を表示するには、コマンドのドキュメント文字列を出力します。
たとえば、disconnectコマンドの情報を表示するには、次のコマンドを入力します。
txst:/simpapp>help(���disconnect���)
このコマンドで次の結果が返されます。
This function is used to disconnect from tuxedo server instance.
Arguments list:
()
txst: /simpapp > disconnect()
ユーザー対話の記録
すべてのTXSTコマンド入力の記録を開始および停止するには、次のように入力します。
startRecording(outputFile)
stopRecording()
startRecordingコマンドを入力する際には、TXSTコマンドを格納するファイルのパス名を指定する必要があります。
たとえば、TXSTコマンドをrecord.pyファイルに記録するには、次のコマンドを入力します。
txst:/simpapp> startRecording('record.py')
詳細は、「startRecording」および「stopRecording」を参照してください。
ファイルへのTXST出力のリダイレクト
ファイルへのTXST出力のリダイレクトを開始および停止するには、次のように入力します。
redirect(outputFile,[toStdOut])
stopRedirect()
TXST出力をリダイレクトする先のファイルのパス名を指定する必要があります。オプションで、TXST出力を標準出力に送るかどうかを指定することもできます。toStdOut引数のデフォルトはTrueです。
たとえば、TXST出力を現行ディレクトリのlogs/txst.logファイルにリダイレクトし、出力が標準出力に送られないようにするには、次のコマンドを入力します。
txst:/simpapp> redirect('./logs/txst.log', False)
詳細は、「redirect」および「stopRedirect」を参照してください。
MBeanのナビゲート
MBeanのナビゲートと照会
オンラインの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インスタンス・ディレクトリの下のノード(ファイルと同様)です。
ドメインMBean
マシンMBean
ブリッジMBean
グループMBean
サーバーMBean
ARTBatchSystem Mbean
現在の管理オブジェクトの変更
TXSTがTuxedoドメインのインスタンスに最初に接続すると、cmo (現在の管理オブジェクト)がすべての構成管理オブジェクトのルート(DomainMBean)に初期化されます。MBeanタイプにナビゲートすると、cmoの値は親MBeanを反映します。MBeanインスタンスにナビゲートすると、リスト3に示すように、TXSTはcmoの値を現在のMBeanインスタンスに変更します。
TXST変数の詳細は、「TXSTコマンドおよび変数リファレンス」を参照してください。
リスト5-3 現在の管理オブジェクトの変更
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
 
構成MBeanサンプルのナビゲートと表示
リスト4のコマンドは、Tuxedoドメイン・インスタンスに接続し、ナビゲートして、DomainMBean内のMbeanを表示するようにTXSTに指示します。引数を指定しない場合は、lsコマンドによってすべての子MBeanと属性が表示されます。
リスト5-4 構成MBeanのナビゲートと表示
txst:/offline>connect("//slce04cn03:5035", "simpapp", "58103")
txst:simpapp_58103:/>ls()
attributes:
State ACTIVE
parameters:
TA_AUTHSVC
TA_AUTOTRAN N
TA_BBLQUERY 30
TA_BLOCKTIME 6
TA_CLASS T_DOMAIN
TA_CMTRET COMPLETE
TA_COMPONENTS
TA_CURDRT 0
TA_CURGROUPS 1
TA_CURINTERFACES 0
TA_CURMACHINES 0
TA_CURQUEUES 2
TA_CURRFT 0
TA_CURRTDATA 0
TA_CURSERVERS 2
TA_CURSERVICES 9
TA_CURSTYPE 1
TA_CURTYPE 12
TA_DBBLFAILOVER 0
TA_DBBLWAIT 2
TA_DOMAINID simpapp
TA_ENCRYPTION_REQUIRED N
TA_ERROR 0
TA_GID 8500
TA_HWDRT 0
TA_HWGROUPS 1
TA_HWINTERFACES 0
TA_HWMACHINES 1
TA_HWQUEUES 2
TA_HWRFT 0
TA_HWRTDATA 0
TA_HWSERVERS 2
TA_HWSERVICES 9
TA_INSTANCE_AFFINITY NONE
TA_IPCKEY 58103
TA_LDBAL N
TA_LICEXPIRE
TA_LICMAXUSERS 10000000
TA_LICSERIAL
TA_MASTER L1
TA_MAXACCESSERS 15
TA_MAXACLGROUPS 16384
TA_MAXBUFSTYPE 32
TA_MAXBUFTYPE 16
TA_MAXCONV 1
TA_MAXDRT 0
TA_MAXGROUPS 100
TA_MAXGTT 100
TA_MAXINTERFACES 150
TA_MAXMACHINES 256
TA_MAXNETGROUPS 8
TA_MAXOBJECTS 1000
TA_MAXQUEUES 20
TA_MAXRFT 0
TA_MAXRTDATA 8
TA_MAXSERVERS 20
TA_MAXSERVICES 50
TA_MAXSPDATA 18504
TA_MAXTRANTIME 0
TA_MIBMASK 0
TA_MODEL SHM
TA_MORE 0
TA_NOTIFY SIGNAL
TA_OCCURS 1
TA_OPTIONS
TA_PERM 384
TA_PREFERENCES
TA_SANITYSCAN 12
TA_SCANUNIT 10
TA_SCANUNIT_EXT 10
TA_SECURITY NONE
TA_SEC_PRINCIPAL_LOCATION
TA_SEC_PRINCIPAL_NAME
TA_SEC_PRINCIPAL_PASSVAR
TA_SGRPFAILOVER 0
TA_SIGNATURE_AHEAD 3600
TA_SIGNATURE_BEHIND 604800
TA_SIGNATURE_REQUIRED N
TA_SSL_RENEGOTIATION 0
TA_STATE ACTIVE
TA_SYSTEM_ACCESS FASTPATH
TA_TRANTIME 30
TA_UID 532
TA_USIGNAL SIGUSR2
childBean:
tuxedo_machine L1
additional info:
 
実行時MBeanの参照
現在のBeanの子Beanまたは属性(あるいはその両方)をすべて表示します。
必要に応じて引数を指定することにより、出力を制御できます。引数を指定しない場合は、ドメイン内のすべての子Beanと属性が表示されます。出力は文字列で返されます。
MBeanの検索
特定のMBeanを見つけるには、findコマンドを使用できます。TXSTは、指定されたMBeanのパス名を返します。パスで指定されたMBeanを戻すには、getMBeanコマンドを使用します。詳細は、「find」および「getMBean」を参照してください。
例:
txst:simpapp_58103:/>find('ser*')
/L1/GROUP1/server_1
txst:simpapp_58103:/>bean = getMBean('/L1/GROUP1/server_1')
txst:simpapp_58103:/>path = getPath(bean)
txst:simpapp_58103:/>print path
/L1/GROUP1/server_1
サーバーのライフサイクルの管理
有効期間中、実行されるインスタンスは停止、起動、一時停止、再開中、実行中など、複数の動作状態を遷移できます。start、suspend、resume、shutdownなどのTXSTコマンドにより、サーバー・インスタンスの状態に特定の変更が生じます。
TXSTを使用すると、次のことが可能です。
Tuxedoドメイン、マシン、グループまたはサーバーを起動および停止する。「起動と停止」を参照してください。
指定したスコープ内のサーバーを代替ロケーションに移行する。
指定したターゲットを一時停止および再開する。「一時停止および再開」を参照してください。
起動と停止
TXSTでは、いくつかの方法で指定したオブジェクトを起動および停止できます。選択する方法は、ターゲット・オブジェクトによって異なります。
ドメイン
Tuxedoドメインを起動するには、startDomain()コマンドを呼び出す必要があります。このコマンドは、tlistenプロセスに組み込まれたJMXエージェントにTXSTが接続しているときに使用する必要があります。呼出しが成功すると、Tuxedoドメインに接続できます。「startDomain」を参照してください。
Tuxedoドメインを停止するには、shutdownDomain()コマンドを呼び出す必要があります。ドメインが正常に停止すると、TXSTはドメインから切断し、JMXエージェントへの接続に戻ります。「shutdownDomain」を参照してください。
マシン、グループ、およびサーバー
マシン、グループおよびサーバーに対しては、start()またはshutdown()を直接呼び出すことができます。ターゲットがサーバーである場合は、2つの方法でこれらのコマンドを操作できます。「起動と停止」を参照してください。
一時停止および再開
一時停止および再開のサポート対象のMbeanは、マシン、サーバー、ブリッジ、WSH、JSHです。ただし、ターゲット・オブジェクトはこれらのMbeanとは異なります。ターゲットの詳細は、次の表を参照してください。
 
Mbean
ターゲット
マシン
クライアント
サーバー
サービス
ブリッジ
リモート・ブリッジ
WSH
WSH
JSH
JSH
 

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved