目次 前 次 PDF


ユーザー・ペイロード収集

ユーザー・ペイロード収集
この章には次のトピックが含まれます:
概要
Oracle Tuxedoアプリケーションは、型付きバッファ内のデータを送受信します。Tuxedoバッファ・タイプには、Tuxedoサービスの入力メッセージと出力メッセージが記述されます。TSAM Plusは、Tuxedoサービスの入出力バッファにカプセル化されているユーザー・ペイロードを収集したり、収集したペイロードをOracle Database、Hadoopまたはローカル・ファイルに保存したり、ペイロードをさらに集計および分析するためにエクスポートする一連のAPIやツールを提供できます。
 
サポートされているユーザー・ペイロード・バッファ・タイプ
表7-1に、ユーザー・ペイロードでサポートされるOracle Tuxedoバッファ・タイプを示します。
 
表7-1 ユーザー・ペイロードでサポートされるOracle Tuxedoバッファ・タイプ
タイプ名
説明
CARRAY
送信時にエンコードもデコードも行われない文字配列(多くの場合NULL文字を含む)。
X_OCTET
CARRAYに相当するもので、XATMIとの互換性のために提供されています。
STRING
NULLで終了する文字配列。
FML
FMLフィールド化バッファ。
VIEW
C構造体またはFML VIEW。
X_C_TYPE
VIEWに相当するもので、XATMIとの互換性のために提供されています。
X_COMMON
VIEWに相当するもので、XATMIとの互換性のために提供されています。
FML32
32ビット識別子またはオフセットを使用した、FML32フィールド化バッファ。
VIEW32
32ビット識別子、カウンタ変数、およびサイズ変数を使用した、C構造体またはFML32 VIEW。
XML
XMLドキュメント用のバッファ。
ユーザー・ペイロード記憶域の決定
TSAM Plusでは、収集されたユーザー・ペイロードについて、Oracle Database、Hadoop、ローカル・ファイルなどの様々な種類の記憶域がサポートされています。
Oracle Database内のユーザー・ペイロード・レコード
表7-2に示すように、ユーザー・ペイロード・データはTSAM Plusデータベース内の表MON_PAYLOADに格納されます。
 
表7-2 MON_PAYLOAD内のユーザー・ペイロード・データ
タイプ
NULL可能
制約
このバージョン以上で対応
説明
ID
NUMBER
いいえ
 
12.2.2
自動生成されたID
DOMAINID
VARCHAR2(30)
はい
 
12.2.2
ドメインID。DOMAINIDUBBCONFIGで設定されていない場合はnullです。
LMID
VARCHAR2(30)
はい
 
12.2.2
マシンLMID
GROUPID
SMALLINT
はい
 
12.2.2
Tuxedoグループ番号
SERVERID
SMALLINT
はい
 
12.2.2
サーバーID
SVCNAME
VARCHAR2(127)
はい
 
12.2.2
サービス名
CORRELATIONID
VARCHAR2(255)
はい
 
12.2.2
呼出しパスCORRELATIONID
ECID
VARCHAR2(1024)
はい
 
12.2.2
Tuxedo呼出しECID
TPERRNO
SMALLINT
はい
 
12.2.2
tperrno
VALUETYPEINDEX
SMALLINT
はい
 
12.2.2
Tuxedoバッファ・タイプ・インデックス。weblogic.wtc.jatmi.StandardTypesで定義されています。
CARRAY : 16
STRING : 17
FML : 18
VIEW : 19
X_OCTET : 20
X_C_TYPE : 21
X_COMMON : 22
FML32 : 23
VIEW32 : 24
XML : 25
VALUESUBTYPE
VARCHAR2(127)
はい
 
12.2.2
Tuxedoサブ・バッファ・タイプ。viewまたはview32名です。
PAYLOADTYPE
SMALLINT
はい
 
12.2.2
1はリクエスト、2は応答
VALUE
BLOB
はい
12.2.2
ユーザー・ペイロード値
LOGTIME
TIMESTAMP
はい
 
12.2.2
このレコードがTSAM Plusエージェントから報告されたときにタイムスタンプ。
Hadoop内のユーザー・ペイロード・レコード
ユーザー・ペイロード・データは、HDFSに格納できます。JRE 1.7以上が必要です。
ペイロードをHadoopファイル・システムに格納するには、LMSを起動する前に環境JAVA_HOMEとライブラリ・パスを設定する必要があります。さらに、LMS -Tオプションを設定しないか、1に設定する必要があります。
Linuxシステムの場合は、ライブラリ・パスLD_LIBRARY_PATHlibjvm.soに含める必要があります。
次に、Linuxの例を示します。
export JAVA_HOME=/home/user1/jdk1.7.0_21
export HADOOP_HOME=/home/user1/hadoop-2.6.0
export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64/server/:$LD_LIBRARY_PATH
AIXシステムの場合は、LD_LIBRARY_PATHではなくLIBPATHを設定します。
例:
export LIBPATH=/usr/$JAVA_HOME/jre/lib/ppc64/classic:$JAVA_HOME/jre/libppc64:$JAVA_HOME/jre/lib/ppc64/j9vm
ファイルの命名
ペイロード・データをHadoopファイル・システムに出力する場合は、TSAM Plusによってペイロード・キーとデータを格納するためのペイロード・ファイルが生成されます。各マシンは毎日異なるファイルを作成します。
その形式は、<domain>_<machine>_<yyyymmdd>.payloadです。新しいhadoopファイルが毎日生成され、ファイル・サイズに制限はありません。
コンテンツ・フォーマット
TSAM Plusでは、Hadoop SequenceFileフォーマット(Hadoop 2.6 ver=6)を使用してペイロードをHDFSに格納します。各ペイロード・レコードには、キーと値データが含まれます。レコード(org.apache.hadoop.io.BytesWritable)は、Javaクラスcom.oracle.tsam.payload.PayloadRecordを使用して解析できます。
レコードのキー・クラスはorg.apache.hadoop.io.LongWritableで、値クラスはorg.apache.hadoop.io.BytesWritableです。両方ともレコードとして格納されます。
次に、ペイロードのSequenceFileフォーマットを示します。
ヘッダー
version - 3バイトのマジック・ヘッダーSEQとその後に1バイトの実際のバージョン番号(SEQ4、SEQ6など)
keyClassName - キー・クラス
valueClassName - 値クラス
compression - このファイル内のキー/値に対して圧縮をオンにするかどうかを指定するブール。ペイロード・ファイルには0が使用されます。
blockCompression - このファイル内のキー/値に対してブロック圧縮をオンにするかどうかを指定するブール。ペイロード・ファイルには0が使用されます。
metadata - このファイルのSequenceFile.Metadata0x0,0x0,0x0,0x0
sync - ヘッダーの終わりを示す同期マーカー。
レコード
レコード長
キー長
キー
値の長さ
Value - キーと値が含まれるペイロード・レコード
sync-marker
ローカル・ファイル内のユーザー・ペイロード・レコード
ローカル・ファイル内のユーザー・ペイロード・レコードの命名およびコンテンツ・フォーマットは、Hadoopのルールと同じです。
UBBCONFIGのLMSサーバーCLOPTパラメータを使用して、ペイロード・データの格納先ローカル・ファイル・ディレクトリを指定できます。たとえば、ペイロード・データを/u01/common/patches/oracle/payloadにあるファイルに格納するには、UBBCONFIGファイルで次を構成します。
LMS SRVGRP=LMSGRP SRVID=2 CLOPT="-A -- -l <tsam_manager_host>:7001/tsam -p /u01/common/patches/oracle/payload"
詳細は、Oracle TSAM Plusリファレンス・ガイドのローカル・モニター・サーバーに関する項を参照してください。
TSAM Plusコンソールからのユーザー・ペイロード記憶域の指定
ユーザー・ペイロード・データの保管方式を指定するには、次の手順に従います。
1.
TSAM Plusコンソールの最上部のメニュー・バーで、「管理」→「グローバル・パラメータ」をクリックします。
2.
「TSAM Plusグローバル・プロパティ」タブで、記憶域として「データベース」、「Hadoop」、「ローカル・ファイル」のいずれかを選択します。
3.
「Hadoop」を選択した場合は、引き続き次のフィールドを指定します。
Hadoop URL:
ユーザー・ペイロード・データを格納するHadoop URLを指定します。Hadoop URLには、ホスト名、ポートおよびペイロード・ファイル・ディレクトリを含める必要があります。例: hdfs://localhost:8080/tmp/tuxPayload/
4.
「変更」をクリックします。
ユーザー・ペイロード収集の構成
サービスまたは呼出しパスのユーザー・ペイロード・データ収集ポリシーを定義できます。たとえば、呼出しパスの場合、収集ポリシーを構成するには、次の手順に従います。
1.
TSAM Plusコンソールの最上部のメニュー・バーで、「ポリシー」→「Tuxedoモニタリング・ポリシー」をクリックします。
2.
「モニタリング・ポリシー・リスト」ページで、「追加」をクリックして「ポリシーの編集」ページにアクセスします。
3.
左側の「Tuxedoコンポーネント」フィルタ領域で、モニターするTuxedoドメインを選択します。
4.
「コール・パス」タブで、「有効化」を選択して呼出しパス・メトリックの収集を有効にします。
5.
「ペイロード収集の定義」ボタンをクリックして、ペイロード収集ルールを構成します。
6.
「ペイロード収集の定義」ページで対応するチェック・ボックスを選択して、リクエスト・ペイロードまたはレスポンス・ペイロード(あるいはその両方)の収集を有効にすることができます。リクエスト・ペイロードの収集を有効にした場合は、「初期コールされたサービスのみ」を選択または選択を解除して、初期コールされたサービスのペイロードのみを収集するかどうかを決定できます。
7.
「OK」をクリックします。次に、ポリシーを有効にします。
注意:
呼出しパスのユーザー・ペイロード・データ収集ポリシーは、他のドメインには伝播できません。
これで、最も一般的なユーザー・ペイロード収集ポリシーの定義が完了しました。定義したスコープに属するすべてのペイロードが収集され、指定したペイロード記憶域に保存されます。
収集データ基準または結果フィルタを定義して、ペイロード・データ収集スコープを狭めることもできます。詳細は、「ペイロード収集データ基準の定義」および「ペイロード収集結果フィルタの定義」を参照してください。
ペイロード収集データ基準の定義
データ基準を定義すると、型付きバッファの値が基準を満たす場合にのみTSAM Plusによってペイロードが収集されます。たとえば、STRINGタイプ・バッファがHelloという語で始まる場合、またはFML32タイプ・バッファのACCOUNT_IDフィールドの値が1000を超える場合にペイロードが収集されます。
データ基準を定義するには、次の手順に従います。
1.
「ペイロード収集の定義」ダイアログで「データ基準」タブに移動します。サポートされているすべてのバッファ・タイプがドロップダウン・リストに表示されます。
2.
基準を定義するバッファ・タイプを選択し、「追加」をクリックします。
「1つまたは複数のデータ基準エントリの追加」というタイトルの表が表示されます。
 
表7-3 データ基準表
列名
表示されるバッファ・タイプ
説明
フィールド名
FML/FM32
VIEW/VIEW32
X_COMMON/X_C_TYPE
単一選択ドロップダウン・リスト。
FML/FML32の場合は、FMLフィールド表定義ファイル内のフィールド名です。サポートされているフィールド・タイプは、short、long、float、double、charおよびstringです。他のタイプのフィールドは、ドロップダウン・リストに表示されません。
VIEWが付くすべてのバッファ・タイプの場合は、VIEW表定義ファイルでVIEWキーワードの後に定義されているVIEW名です。
サブ・フィールド名
VIEW/VIEW32
X_COMMON/X_C_TYPE
単一選択ドロップダウン・リスト。
値は、VIEW表定義ファイル内のVIEWフィールド名(CNAME)です。サポートされているフィールド・タイプは、FMLフィールドと同じです。
出現
FML/FML32
FMLフィールドの特定の出現。
演算子
すべてのバッファ・タイプ
単一選択ドロップダウン・リスト。
数値フィールドの場合、オプションは>、>=、<、<=、==、!=です。
英字フィールドの場合、オプションは==、!=、%%、!%です。
XMLを除くすべてのバッファ・タイプ
テキスト入力ボックス。
FMLブール式の値部分(演算子の後)です。ここでは演算子は許可されません。
FMLブール式で定義されているすべての構文に適合している必要があります。FMLブール式の詳細は、オンラインのOracle Tuxedoドキュメントを参照してください。
値の例を示します。
'Hello.*' (単一引用符に注意)
1000
XML
テキスト入力ボックス。
ここでは有効なXPath式が必要です。
方向
すべてのバッファ・タイプ
この領域は、3つの相互に排他的なラジオ・ボタンで構成されています。
「一般」タブでリクエスト・ペイロードとレスポンス・ペイロードの両方の収集が有効になっている場合は、3つのすべてのボタン(「入出力」、「入力」および「出力」)が有効になります。そうでない場合は、対応するラジオ・ボタンのみが有効になります。
「入出力」を選択した場合、リクエスト・バッファとレスポンス・バッファの両方に対して現在の基準式が有効になります。
「入力」または「出力」を選択した場合は、現在の基準に対してリクエスト・バッファまたはレスポンス・バッファのみが評価されます。
アクション
すべてのバッファ・タイプ
この列には、1つの追加ボタンと1つの削除ボタンが含まれます。
複数のデータ基準式エントリを表に追加できます。ポリシーの保存時に、エントリごとにFMLブール式が形成され、同じ表内の様々なエントリは論理的AND関係を持ちます。
3.
すべての基準式エントリを定義したら、「発行」をクリックして構成を保存します。
データ基準リスト・ページに戻ったら、新しく作成したデータ基準をリスト表で検索できます。
注意:
同じバッファ・タイプに対して複数のデータ基準を追加できます。これらは論理的OR関係を持ちます。つまり、ペイロードが収集されると、どのデータ基準も満たされます。
バッファ・タイプがFML32/FML/VIEW32/VIEW/X_C_TYPE/X_COMMONの場合は、データ基準を定義する前に、「データ管理」→「フィールド表管理」タブ・ページでフィールド表定義ファイルをアップロードする必要があります。
ペイロード収集結果フィルタの定義
結果フィルタでは、バッファ・タイプごとに、ランタイム・ペイロード・データ値に関係なく収集するフィールドや文字シーケンスの範囲などを定義します。データ基準とは対照的に、不要なフィールドを除外するための相対的な静的定義です。
結果フィルタの定義は、データ基準を定義する操作によく似ています。違いは次のとおりです。
結果フィルタ・リスト・ページでは、各バッファ・タイプを1つの結果フィルタでのみ定義できます。
結果フィルタ・エントリ定義ページでは、様々なフィルタ・エントリは論理的OR関係を持ちます。つまり、実行時には、TSAM Plusは結果フィルタのすべての定義済エントリを収集しようとします。
注意:
Tuxedoサービス呼出しに対して呼出しパスとサービスの両方の結果フィルタを有効にした場合は、呼出しパスに対するフィルタが有効になります。
収集されたユーザー・ペイロード・データのエクスポート
Oracle TSAMデータベース、ローカル・ファイルまたはHadoopに格納されているユーザー・ペイロード・データは、バイナリ形式です。データ・分析がしやすいように、エクスポートAPIまたはペイロード・ダンプ・ツールを使用してデータをテキスト形式またはXML形式にエクスポートできます。
データ・エクスポート用API
表7-4に、ユーザー・ペイロード・データをエクスポートするためのAPIを示します。
 
表7-4 データ・エクスポート用API
カテゴリ
API
説明
インタフェース
ペイロード・メトリック記憶域インタフェース
クラス
ファイル記憶域のペイロード・レコード・イテレータ
ペイロード・メトリックのファイル記憶域
Hadoop記憶域のペイロード・レコード・イテレータ
ペイロード・メトリックのHadoop記憶域
ペイロード・メトリックをダンプするコマンド行ツール
記憶域内のペイロード・レコード
ペイロード・メトリック
TSAMデータベース記憶域のペイロード・レコード・イテレータ
ペイロード・メトリックのTSAM Plusデータベース記憶域
列挙
ペイロード・メトリック・タイプ
データ・エクスポート用のAPIを使用する場合は、$TSAMDIR/libの下のCLASSPATHに、CLASSPATH=payloadapi.jar:com.bea.core.jatmi_2.0.0.0.jar:com.oracle.tuxedo.tjatmi_12.1.3.0.jar:commons-cli-1.2.jarを含める必要があります。
ペイロードをHadoop dfsからエクスポートする場合は、次のようにHADOOP_HOMEを設定します。
HADOOP_HOME=/home/user/hadoop-2.6.0/
ペイロードをOralce Databaseからエクスポートする場合は、CLASSPATHojdbc6.jarを含めます。
PayloadRepository
すべてのスーパーインタフェース
java.lang.AutoCloseable, java.io.Closeable, java.lang.Iterable<PayloadRecord>
既知のすべての実装クラス
FilePayloadRepository、HadoopPayloadRepository、TSAMDBPayloadRepository
説明
public interface PayloadRepository
extends java.lang.Iterable<PayloadRecord>, java.io.Closeable
ペイロード・メトリック記憶域インタフェース
FilePayloadIterator
java.lang.Object
com.oracle.tsam.payload.FilePayloadIterator
すべての実装されたインタフェース
java.util.Iterator<PayloadRecord>
説明
public class FilePayloadIterator
extends java.lang.Object
implements java.util.Iterator<PayloadRecord>
ファイル記憶域のペイロード・レコード・イテレータ
クラスjava.lang.Objectから継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
コンストラクタの詳細
FilePayloadIterator
public FilePayloadIterator(org.apache.hadoop.io.SequenceFile.Reader reader)
リーダーを使用してFilePayloadIteratorを作成します。
メソッドの詳細
hasNext
public boolean hasNext()
定義:
hasNext in interface java.util.Iterator<PayloadRecord>
next
public PayloadRecord next()
定義:
next in interface java.util.Iterator<PayloadRecord>
remove
public void remove()
定義:
remove in interface java.util.Iterator<PayloadRecord>
FilePayloadRepository
java.lang.Object
com.oracle.tsam.payload.FilePayloadRepository
すべての実装されたインタフェース
PayloadRepository, java.io.Closeable, java.lang.AutoCloseable, java.lang.Iterable<PayloadRecord>
説明
public class FilePayloadRepository
extends java.lang.Object
implements PayloadRepository
ペイロード・メトリックのファイル記憶域
クラスjava.lang.Objectから継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
コンストラクタの詳細
FilePayloadRepository
public FilePayloadRepository(java.lang.String path)
throws java.io.IOException
パスを使用してFilePayloadRepositoryを作成します
例外:
java.io.IOException
メソッドの詳細
iterator
public java.util.Iterator<PayloadRecord> iterator()
定義:
iterator in interface java.lang.Iterable<PayloadRecord>
close
public void close()
throws java.io.IOException
定義:
close in interface java.io.Closeable
定義:
close in interface java.lang.AutoCloseable
例外:
java.io.IOException
getFile
public java.io.File getFile()
ファイル・オブジェクトを返します。
HadoopPayloadIterator
java.lang.Object
com.oracle.tsam.payload.HadoopPayloadIterator
すべての実装されたインタフェース
java.util.Iterator<PayloadRecord>
説明
public class HadoopPayloadIterator
extends java.lang.Object
implements java.util.Iterator<PayloadRecord>
Hadoop記憶域のペイロード・レコード・イテレータ
クラスjava.lang.Objectから継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
コンストラクタの詳細
HadoopPayloadIterator
public HadoopPayloadIterator(java.lang.String HadoopURL,
java.lang.String[] MatchFiles)
throws java.io.IOException
例外:
java.io.IOException
メソッドの詳細
hasNext
public boolean hasNext()
定義:
hasNext in interface java.util.Iterator<PayloadRecord>
next
public PayloadRecord next()
定義:
next in interface java.util.Iterator<PayloadRecord>
close
public void close()
throws java.io.IOException
例外:
java.io.IOException
remove
public void remove()
定義:
remove in interface java.util.Iterator<PayloadRecord>
HadoopPayloadRepository
java.lang.Object
com.oracle.tsam.payload.HadoopPayloadRepository
すべての実装されたインタフェース
PayloadRepository, java.io.Closeable, java.lang.AutoCloseable, java.lang.Iterable<PayloadRecord>
説明
public class HadoopPayloadRepository
extends java.lang.Object
implements PayloadRepository
ペイロード・メトリックのHadoop記憶域
クラスjava.lang.Objectから継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
HadoopPayloadRepository
HadoopPayloadIterator
public HadoopPayloadRepository(java.lang.String HadoopURL,
java.lang.String Domain,
java.lang.String Machine,
java.util.Date StartDate,
java.util.Date EndDate)
throws java.io.IOException
Constructs a HadoopPayloadRepository with a Hadoop URL and filters of domain name, machine name, start date, and end date
例外:
java.io.IOException
メソッドの詳細
iterator
public java.util.Iterator<PayloadRecord> iterator()
定義:
iterator in interface java.lang.Iterable<PayloadRecord>
close
public void close()
throws java.io.IOException
定義:
close in interface java.io.Closeable
定義:
close in interface java.lang.AutoCloseable
例外:
java.io.IOException
getHadoopURL
public java.lang.String getHadoopURL()
Hadoop URLを戻します
payloaddump
java.lang.Object
com.oracle.tsam.payload.payloaddump
説明
public class payloaddump
extends java.lang.Object
ペイロード・メトリックをダンプするコマンド行ツール
クラスjava.lang.Objectから継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
コンストラクタの詳細
payloaddump
public payloaddump()
メソッドの詳細
main
public static void main(java.lang.String[] args)
throws org.apache.commons.cli.ParseException,
java.lang.ClassNotFoundException,
java.sql.SQLException,
java.io.IOException,
javax.xml.parsers.ParserConfigurationException,
java.text.ParseException,
java.lang.Exception
パラメータ:
args
-url
必須パラメータです。ペイロード・リポジトリのURL。データベースURL、Hadoop URLまたはファイル・パスを指定できます。
-username
データベース・ユーザー名
-password
データベース・パスワード
-payloadtype
必須パラメータです。リクエストまたは応答
-wherecondition
SQL問合せ条件。URLがデータベースURLに指定されている場合にのみ使用できます。
-domainid
結果のフィルタリングに使用するドメインID
-servicename
結果のフィルタリングに使用するサービス名
-outputtype
XMLまたはテキスト。デフォルトの出力タイプはxmlです。
-fieldnames
出力タイプがテキストの場合に必要なフィールド名。TuxedoタイプCARRAY、X_OCTETおよびSTRINGの場合、fieldnamesは、ユーザー・ペイロード・ポリシーの結果フィルタで指定されているaliasNamesです。urlがデータベースURLに指定され、servicenameが指定されている場合、デフォルトのfieldnamesはサービス契約情報から取得されます。urlがデータベースURLに指定され、policynameとservicenameの両方が指定されている場合、デフォルトのfieldnamesはサービス契約情報とポリシーの結果フィルタの結合結果です。
-o
出力ファイル名。デフォルトの出力は標準出力です。
例外:
org.apache.commons.cli.ParseException
java.lang.ClassNotFoundExceptionjava.sql.SQLException
java.io.IOException
javax.xml.parsers.ParserConfigurationException
java.text.ParseException
java.lang.Exception
PayloadRecord
java.lang.Object
com.oracle.tsam.payload.PayloadRecord
説明
public class PayloadRecord
extends java.lang.Object
記憶域内のペイロード・レコード。
クラスjava.lang.Objectから継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
コンストラクタの詳細
PayloadRecord
public PayloadRecord(java.lang.String dOMAINID,
java.lang.String LMID,
short groupID,
short serverID,
java.lang.String serviceName,
java.lang.String correlationID,
java.lang.String ECID,
java.lang.Short errno,
PayloadType payloadType,
java.util.Date logtime,
PayloadValue payloadValue)
メソッドの詳細
getdOMAINID
public java.lang.String getdOMAINID()
setdOMAINID
public void setdOMAINID(java.lang.String dOMAINID)
getLMID
public java.lang.String getLMID()
setLMID
public void setLMID(java.lang.String lMID)
getGroupID
public short getGroupID()
setGroupID
public void setGroupID(short groupID)
getServerID
public short getServerID()
setServerID
public void setServerID(short serverID)
getServiceName
public java.lang.String getServiceName()
setServiceName
public void setServiceName(java.lang.String serviceName)
getCorrelationID
public java.lang.String getCorrelationID()
setCorrelationID
public void setCorrelationID(java.lang.String correlationID)
getECID
public java.lang.String getECID()
setECID
public void setECID(java.lang.String eCID)
getTperrno
public PayloadType getPayloadType()
setTperrno
public void setTperrno(java.lang.Short tperrno)
getPayloadType
public PayloadType getPayloadType()
setPayloadType
public void setPayloadType(PayloadType payloadType)
getPayloadValue
public PayloadValue getPayloadValue()
setPayloadValue
public void setPayloadValue(PayloadValue payloadValue)
getLogtime
public java.util.Date getLogtime()
setLogtime
public void setLogtime(java.util.Date logtime)
PayloadValue
java.lang.Object
com.oracle.tsam.payload.PayloadValue
説明
public class PayloadValue
extends java.lang.Object
ペイロード・メトリック2種類の出力形式があります。
テキスト: テキスト・モードのデータベース・エクスポート形式と同じであるため、BIデータ・ソースとしてデータベース表にインポートできます。
注意:
出力データのシーケンスは、String [] fieldNamesを使用して定義できます。fieldnamesを指定しない場合、フィールドはデフォルトの順序で出力されます。埋込みバッファは出力されません。
XML: フォーマッタは、型付きバッファCARRAY、X_OCTET、STRING、FML、FML32、VIEW、VIEW32、X_C_TYPE、X_COMMONおよびXMLをXML形式に変換できます。バッファがネストされている場合は、ネストされたすべてのバッファも変換されます。
CARRAY/X_OCTET/STRINGの場合、ペイロードはXML形式の要素に変換されます。CARRAYは、base64文字列にエンコードされます。要素名は、パラメータelemNameに指定された値です。
FML/FML32/VIEW/VIEW32/X_C_TYPE/X_COMMONの場合、フォーマッタは型付きバッファのすべてのフィールドを変換します。これらの種類の型付きバッファがネストされている場合は、ネストされたすべてのバッファも変換されます。
XMLの場合、フォーマッタは変更を行いません。
クラスjava.lang.Objectから継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
コンストラクタの詳細
PayloadValue
public PayloadValue(short valueTypeIndex,
byte[] payloadValue)
メソッドの詳細
getFieldNames
public java.lang.String[] getFieldNames()
戻り値:
このオブジェクト内のフィールド名
toXMLString
public java.lang.String toXMLString(java.lang.String encoding)
throws java.io.IOException, javax.xml.parsers.ParserConfigurationException,
org.xml.sax.SAXException
ペイロード値をXML文字列に変換します。
パラメータ:
encoding
例外:
java.io.IOException
javax.xml.parsers.ParserConfigurationException
org.xml.sax.SAXException
toText
public java.lang.String toText(char delimiter,
char enclosure)
throws java.io.IOException,
javax.xml.parsers.ParserConfigurationException,
org.xml.sax.SAXException
ペイロード値をテキストに変換し、そのテキストはデータベース表にインポートできます。埋込みフィールドは戻り値に含まれません。enclosureと等しい文字は複製されます。
パラメータ:
delimiter - delimiter character
enclosure - enclosure character
戻り値:
text
例外:
java.io.IOException
javax.xml.parsers.ParserConfigurationException
org.xml.sax.SAXException
toText
public java.lang.String toText()
throws java.io.IOException,
javax.xml.parsers.ParserConfigurationException,
org.xml.sax.SAXException
ペイロード値をテキストに変換し、そのテキストはデータベース表にインポートできます。delimiterのデフォルト設定=タブであり、enclosure='"'です。埋込みフィールドは戻り値に含まれません。
戻り値:
text
例外:
java.io.IOException
javax.xml.parsers.ParserConfigurationException
org.xml.sax.SAXException
toText
public java.lang.String toText(char delimiter,
char enclosure,
java.lang.String[] fieldNames)
throws java.io.IOException,
javax.xml.parsers.ParserConfigurationException,
org.xml.sax.SAXException
ペイロード値の指定したフィールドをテキストに変換し、そのテキストはデータベース表にインポートできます。埋込みフィールドは戻り値に含まれません。enclosureと等しい文字は複製されます。
パラメータ:
delimiter -
enclosure -
fieldNames -
戻り値:
text
例外:
java.io.IOException
javax.xml.parsers.ParserConfigurationException
toText
public java.lang.String toText(java.lang.String[] fieldNames)
throws java.io.IOException,
javax.xml.parsers.ParserConfigurationException,
org.xml.sax.SAXException
ペイロード値の指定したフィールドをテキストに変換し、そのテキストはデータベース表にインポートできます。デフォルト設定は、delimiter=tabおよびenclosure='"'です。埋込みフィールドは戻り値に含まれません。
戻り値:
text
例外:
java.io.IOException
javax.xml.parsers.ParserConfigurationException
TSAMDBPayloadIterator
java.lang.Object
com.oracle.tsam.payload.TSAMDBPayloadIterator
すべての実装されたインタフェース
java.util.Iterator<PayloadRecord>
説明
public class TSAMDBPayloadIterator
extends java.lang.Object
implements java.util.Iterator<PayloadRecord>
TSAMデータベース記憶域のペイロード・レコード・イテレータ。
クラスjava.lang.Objectから継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
コンストラクタの詳細
TSAMDBPayloadIterator
public TSAMDBPayloadIterator(java.lang.String whereConditionalExpression,
java.sql.Connection con)
throws java.sql.SQLException
例外:
java.sql.SQLException
メソッドの詳細
hasNext
public boolean hasNext()
定義:
hasNext in interface java.util.Iterator<PayloadRecord>
next
public PayloadRecord next()
定義:
next in interface java.util.Iterator<PayloadRecord>
remove
public void remove()
定義:
remove in interface java.util.Iterator<PayloadRecord>
TSAMDBPayloadRepository
java.lang.Object
com.oracle.tsam.payload.TSAMDBPayloadRepository
すべての実装されたインタフェース
PayloadRepository, java.io.Closeable, java.lang.AutoCloseable, java.lang.Iterable<PayloadRecord>
説明
public class TSAMDBPayloadRepository
extends java.lang.Object
implements PayloadRepository
ペイロード・メトリックのTSAM Plusデータベース記憶域。
クラスjava.lang.Objectから継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
コンストラクタの詳細
TSAMDBPayloadRepository
public TSAMDBPayloadRepository(java.lang.String TSAMDBURL)
throws java.sql.SQLException,
java.lang.ClassNotFoundException
TSAM PlusデータベースURLを使用してTSAMDBPayloadRepositoryを作成します
例外:
java.sql.SQLException
java.lang.ClassNotFoundException
TSAMDBPayloadRepository
public TSAMDBPayloadRepository(java.sql.Connection connection)
TSAMデータベース接続を使用してTSAMDBPayloadRepositoryを作成します。
メソッドの詳細
iterator
public java.util.Iterator<PayloadRecord> iterator()
定義:
iterator in interface java.lang.Iterable<PayloadRecord>
iterator
public java.util.Iterator<PayloadRecord> iterator(java.lang.String whereConditionalExpression)
throws java.sql.SQLException
入力されたSQL問合せ条件からイテレータを取得します
パラメータ:
whereConditionalExpression - SQL query condition, for an example, "where DOMAINID='DOMAIN1' and LMID='L1' and GROUPID=1 and SERVERID=1 and SVCNAME='toupper' and PAYLOADTYPE=1"
フィールドPAYLOADTYPEでは、1はリクエストを、2は応答を意味します。
戻り値:
イテレータ
例外:
java.sql.SQLException
close
public void close()
throws java.io.IOException
定義:
close in interface java.io.Closeable
定義:
close in interface java.lang.AutoCloseable
例外:
java.io.IOException
getConnection
public java.sql.Connection getConnection()
戻り値:
TSAMデータベース接続
getFieldNames
public java.lang.String[] getFieldNames(java.lang.String domainID,
java.lang.String serviceName,
PayloadType payloadType)
throws java.lang.Exception
パラメータ:
domainID - domain ID
serviceName - service name
payloadType - payload type
戻り値:
フィールド名
例外:
java.lang.Exception
Enum PayloadType
java.lang.Object
java.lang.Enum<PayloadType>
com.oracle.tsam.payload.PayloadType
すべての実装されたインタフェース
java.io.Serializable, java.lang.Comparable<PayloadType>
説明
public enum PayloadType
extends java.lang.Enum<PayloadType>
ペイロード・メトリック・タイプ
クラスjava.lang.Enumから継承されたメソッド
compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
クラスjava.lang.Objectから継承したメソッド
getClass, notify, notifyAll, wait, wait, wait
列挙型定数の詳細
request
public static final PayloadType request
Tuxedo呼出しのリクエスト
メソッドの詳細
values
public static PayloadType[] values()
この列挙型の定数を含む配列を、宣言されている順序で返します。このメソッドは、次のようにして定数を反復するために使用できます。
for (PayloadType c : PayloadType.values())
System.out.println(c);
戻り値:
この列挙型の定数を含む配列(宣言されている順序)
valueOf
public static PayloadType valueOf(java.lang.String name)
指定された名前を持つ、この型の列挙型定数を返します。文字列は、この型の列挙型定数を宣言するのに使用した識別子と厳密に一致している必要があります。(不適切な空白文字は許可されません。)
パラメータ:
name - 返される列挙型定数の名前。
戻り値:
指定された名前を持つ列挙型定数
例外:
java.lang.IllegalArgumentException - この列挙型に、指定された名前を持つ定数がない場合java.lang.NullPointerException - 引数がnullの場合
ペイロードAPIのサンプル
リスト7-1に、ペイロード・メトリックをTSAM Plusデータベースから読み取り、データをテキスト・ファイルにエクスポートする例を示します。
リスト7-1 ペイロードAPIのサンプル1
public class DBPayloadSample {
 
public static void main(String[] args) throws IOException {
 
TSAMDBPayloadRepository tSAMDBPayloadRecordRepository = new TSAMDBPayloadRepository(
"jdbc:oracle:thin:@localhost:1521:orcl",
"tsam", "tsam");
 
Iterator<PayloadRecord> iterator = tSAMDBPayloadRecordRepository
.iterator("where DOMAINID='DOMAIN1' and svcname='toupper' and PAYLOADTYPE=1");
 
String[] fieldNames = tSAMDBPayloadRecordRepository.getFieldNames(
"DOMAIN1", "toupper", PayloadType.request);
 
Writer writer = new FileWriter("payload.txt");
 
for (int i = 0; i < fieldNames.length - 1; i++) {
writer.append("\"" + fieldNames[i] + "\"\t");
}
writer.append("\"" + fieldNames[fieldNames.length - 1] + "\"");
 
while (iterator.hasNext()) {
{
PayloadValue payloadValue = iterator.next().getPayloadValue();
 
writer.append(payloadValue.toText(fieldNames));
writer.append('\n');
}
}
 
writer.close();
 
tSAMDBPayloadRecordRepository.close();
 
}
}
 
ファイルpayload.txtの出力形式は、次のとおりです。
"STRINGFIELD1 ""STRINGFIELD2 ""INTFIELD1 ""SHORTFIELD1"
"abc" "def" "10000" ""
"hij" "" "1" "2"
リスト7-2に、ペイロード・メトリックをHadoopから読み取り、データをXMLファイルにエクスポートする例を示します。
リスト7-2 ペイロードAPIのサンプル2
public class HadoopPayloadSample {
 
public static void main(String[] args) throws IOException {
 
HadoopPayloadRepository hadoopPayloadRecordRepository = new HadoopPayloadRepository(
"hdfs://localhost:8080/tmp/tuxPayload/");
 
Iterator<PayloadRecord> iterator = hadoopPayloadRecordRepository
.iterator();
 
Writer writer = new FileWriter("payload.txt");
 
while (iterator.hasNext()) {
PayloadRecord payloadRecord = iterator.next();
if ("DOMAIN1".equals(payloadRecord.getdOMAINID())
&& "toupper".equals(payloadRecord.getServiceName())
&& (payloadRecord.getPayloadType() == PayloadType.request)) {
 
PayloadValue payloadValue = iterator.next().getPayloadValue();
 
writer.append(payloadValue.toXml());
writer.append('\n');
 
}
}
 
writer.close();
 
hadoopPayloadRecordRepository.close();
}
 
}
 
ペイロード・ダンプ・ツール
ペイロード・ダンプ・ツールを実行する前に、次を構成する必要があります。
CLASS PATHを次のように設定します。
CLASSPATH=payloadapi.jar:com.bea.core.jatmi_2.0.0.0.jar:com.oracle.tuxedo.tjatmi_12.1.3.0.jar:commons-cli-1.2.jar
ペイロードをHadoop dfsからエクスポートする場合は、次のようにHADOOP_HOMEを設定します。
export HADOOP_HOME=/home/user/hadoop-2.6.0/
ペイロードをOralce Databaseからエクスポートする場合は、CLASSPATHojdbc6.jarを含めます。
ペイロード・ダンプ・ツール・コマンドは、次の形式です。
payloaddump -url <URL> [-username <username> -password <password>] -payloadtype request|reply [-wherecondition <wherecondition>] [-domainid <domainid>] [-servicename <servicename>] [-outputtype xml|text] [-fieldnames <fieldnames>] [-o outputFile]
各パラメータの説明は、「payloaddump」を参照してください。
たとえば、ペイロードをHadoopからエクスポートするには、次のコマンドを実行します。
java com.oracle.tsam.payload.payloaddump -url "hdfs://localhost:9000/data/" -payloadtype reply -outputtype xml
ペイロードをTSAM Plusデータベースからエクスポートするには、次のコマンドを実行します。
java com.oracle.tsam.payload.payloaddump -url "jdbc:oracle:thin:@localhost:1521:tsam" -username tsam -password tsam -payloadtype reply -outputtype xml
 
 
 

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