この章では、BAMCommandコマンド行ユーティリティを使用して、BAMメタデータ、データおよびプロジェクト・アーティファクトをエクスポート、インポート、移行、クリアおよび削除する方法について説明します。また、loadgenユーティリティを使用して、データ・ストリームをシミュレートする方法についても説明します。
この章の内容は次のとおりです。
この項では、BAMCommandコマンド行ユーティリティをローカルまたはリモートで使用して、BAMメタデータ、データおよびプロジェクト・アーティファクトをエクスポート、インポート、移行、クリアおよび削除する方法について説明します。
この項には次のトピックが含まれます:
BAMCommandは、WindowsプラットフォームのFMW_HOME
\soa\bam\bin
ディレクトリおよびUNIXプラットフォームのFMW_HOME
/soa/bam/bin
から実行できます。
コマンド行でbamcommand
を単独で入力すると、BAMCommandの操作およびパラメータがリストされます。
BAMCommandを実行する前に、サポート対象バージョンのJava Development Kitのルート・ディレクトリを指すようにJAVA_HOME
環境変数を設定する必要があります。JDKのサポート対象バージョンは、Oracle Technology Network WebサイトのOracle BAMサポート・マトリックスを参照してください。
BAMCommandを使用するたびにコマンド行でBAMCommandパラメータを入力する必要がないように、BAMCommand構成ファイルを使用して、BAMCommandパラメータを事前設定します。構成ファイルのパラメータは、コマンド行パラメータによってオーバーライドされます。このファイルは、FMW_HOME
/soa/bam/bin/
BAMCommandConfig.xml
に配置されます。
BAMCommandConfig.xml
ファイルの例を示します。
<host>www.example.com</host> <port>7001</port> <username>weblogic</username> <password>abcdefg1</password> <dbusername>SOAINFRA</dbusername> <dbpassword>abcdefg1</dbpassword> <dburl>jdbc:oracle:thin:@localhost:1521:orcl</dburl>
リモート・システム(Oracle BAMがインストールされた)からBAMCommandを実行して、リモートにあるサーバー上でコマンドを実行できます。BAMCommandをリモート実行するには、コマンド行で-host
および-port
の各プロパティを指定するか、またはFMW_HOME
/soa/bam/bin/
BAMCommandConfig.xml
で、次のように指定します。
<host>www.example.com</host> <port>7001</port>
リモート・システムにインストールされているOracle BAMバージョンは、Oracle BAMサーバー・バージョンと同一である必要があります(つまり、両サーバーともに同じラベルであること)。
BAMCommandのコマンド行入力の基本構造は次のようになります。
bamcommand [-host host] [-port port] [-username username] [-logfile filename] [-logmode [overwrite|append]] -cmd operation -param value...
コマンド行の操作固有のパラメータはすべて次の形式になります。
-param value
param
部分では、大/小文字は区別されません。value
部分に空白または他の特殊文字を含める場合は、それらを二重引用符で囲む必要があります。次に例を示します。
bamcommand -cmd export -name "/Samples/Call Center" -file "C:\CallCenter.zip"
この項には次のトピックが含まれます:
次のパラメータは、任意のBAMCommandコマンドで使用できます。
cmd
-cmd operation
実行される単一の操作を指定します。その操作に必要なパラメータをコマンド行に指定する必要もあります。
cmd
およびcmdfile
パラメータは相互に排他的です。いずれかのみを指定する必要があります。
cmdfile
-cmdfile filename
処理される操作が含まれているXMLファイルの名前を指定します。XMLファイルの拡張子はオプションです。
cmd
およびcmdfile
パラメータは相互に排他的です。いずれかのみを指定する必要があります。
コマンド・ファイルの例を次に示します。
<OracleBAMCommands continueonerror="1"> <Export id="1" type="dataobject" name="DO1" file="file1"/> <Export id="2" type="dataobject" name="DO2" file="file2"/> </OracleBAMCommands>
詳細は、コマンド・ファイルの構造を参照してください。
host
-host www.example.com
Oracle BAMサーバーのホスト名を指定するオプションのパラメータ。デフォルトのホスト名はデフォルトのBAMCommand構成ファイルに指定されています。詳細は、BAMCommandのリモート実行を参照してください。
port
-port port
Oracle BAMサーバーのポートを指定するオプションのパラメータ。デフォルトのポートは7001であり、デフォルトのBAMCommand構成ファイルに指定されています。詳細は、「BAMCommandのリモート実行」を参照してください。
Oracle BAMサーバーのポート番号が、Oracle BAMの設定および構成時にデフォルトから変更されている場合は、BAMCommand構成ファイルFMW_HOME
/soa/bam/bin/
BAMCommandConfig.xml
内のポート番号を7001から新しいポート番号に手動で変更する必要があります。
username
-username username
コマンドを実行するとみなすユーザー名を指定するオプションのパラメータ。詳細は、セキュリティ資格証明の指定を参照してください。BAMCommandでは、パスワードがFMW_HOME
/soa/bam/bin/
BAMCommandConfig.xml
ファイルで構成されていない場合、パスワードを求めるプロンプトが表示されます。
logfile
-logfile filename
結果およびエラーが記録されるファイルの名前を指定するオプションのパラメータ。このファイルが存在しない場合は作成されます。このファイルが存在する場合は、logmode
設定に従って既存のコンテンツが上書きまたは追加されます。このパラメータが存在しない場合、結果およびエラーはコンソールに出力されます。
詳細は、ログ・ファイルの構造を参照してください。
logmode
-logmode [overwrite|append]
既存のログ・ファイルが上書きされるか、既存のログ・ファイルに追加されるかを指定するオプションのパラメータ。このパラメータが存在しない場合は、overwrite
がデフォルトになります。
BAMCommandでは、操作の実行時にユーザーがセキュリティ資格証明を指定する必要があります。セキュリティ資格証明が構成ファイルに指定されていない場合、BAMCommandでは、安全な方法でユーザー名とパスワードの入力が求められます。
デフォルトの資格証明を使用するには、FMW_HOME
/soa/bam/bin/
BAMCommandConfig.xml
ファイルにusername
およびpassword
プロパティを追加します。次に例を示します。
<username>weblogic</username> <password>abcdefg1</password>
ただし、構成ファイルのusername
プロパティは、常に-username
コマンド行パラメータによってオーバーライドされます。
BAMCommand操作の実行に使用するユーザー名とパスワードは、構成ファイルまたはコマンド行プロンプトから取得されます。また、ユーザー名をコマンド行パラメータとして指定することもできます。次の2通りの場合があります。
ユーザー名とパスワードを構成ファイルにのみ指定している場合(つまり、-username
パラメータをコマンド行で使用していない場合)は、構成ファイルのusername
およびpassword
の値が使用されます。
ユーザー名のみを構成ファイルで指定し、パスワードを指定していない場合は、そのユーザー名の値が使用され、コマンド行でパスワードの入力が求められます。
コマンド行でユーザー名を指定した場合は、その値が使用され、パスワードの入力が求められます。パスワードのプロンプトは、構成ファイルに指定されているプロパティに関係なく表示されます。次に例を示します。
bamcommand -cmd export -name TestDO -file C:\TestDO.zip -username username
この項では、各BAMCommand操作のパラメータの要約を示します。これらの操作のサマリーは、コマンド・プロンプトでbamcommand
(パラメータなし)と入力してコマンド・ウィンドウに表示できます。
表17-1に、BAMCommandで使用可能な操作の要約を示します。
表17-1 BAMCommand操作サマリー
操作 | パラメータ |
---|---|
|
[
|
|
[ [
[ [
|
|
[ [ [ [
[ [
[ [ [
|
|
[ [ [ [ [ [ [ [
[ [
[
[ [
|
|
[
|
Oracle BAMサーバーからデータ・オブジェクトのコンテンツをクリアします。
表17-2 clear操作のパラメータ
パラメータ | 説明 |
---|---|
|
消去するアイテムの名前。必須。 |
|
クリアするアイテムのタイプ。このパラメータを省略する場合、使用できる値は |
データ・オブジェクトをクリアする方法の例を示します。
bamcommand -cmd clear -name "Call Center" -type dataobject
Oracle BAMサーバーからアイテムを削除します。
表17-3 delete操作のパラメータ
パラメータ | 説明 |
---|---|
|
指定したタイプのすべてのアイテムが削除されるかどうかを制御します(この表の後にコマンド文の例で表示)。 0(ゼロ)以外の値を指定した場合または値を省略した場合は、指定したタイプのすべてのアイテムが削除され、0(ゼロ)を指定した場合は、指定した(一致した)アイテムのみが削除されます。このパラメータを省略すると、ゼロがデフォルトになります。 |
|
アスタリスク(*)および疑問符(?)を使用するDOS形式のパターン一致文字列。名前がパターンと一致するアイテムが削除されます。この表の後にコマンド文の例で表示します。 |
|
削除するアイテムの名前。プロジェクト・アーティファクトの場合は、接頭辞としてプロジェクト名を指定する必要があります。 |
|
正規表現パターン一致文字列。名前がパターンと一致するアイテムが削除されます。詳細は、正規表現を参照してください。 |
|
削除するアイテムのタイプ。次の値が有効です。
このパラメータを省略すると、 |
データ・オブジェクトを削除する方法の例を示します。TestDO
という名前のデータ・オブジェクトを削除します。-type
パラメータを指定しない場合は、dataobject
タイプが使用されます。
bamcommand -cmd delete -name TestDO
次のコマンドはEMSタイプのすべてのオブジェクトを削除します。
bamcommand -cmd delete -type ems -all 1
共通の接頭辞を持つアイテムも一度に削除できます。たとえば、このコマンドは名前がACME
で開始されるすべてのアイテムを削除します。
bamcommand -cmd delete -match "ACME*" -type all
Oracle BAMサーバーの1つ以上のオブジェクトに関する情報をZIPファイルにエクスポートします。エクスポート・ファイルの例は、エクスポート・ファイルの構造を参照してください。
表17-4 export操作のパラメータ
パラメータ | 説明 |
---|---|
|
指定したタイプのすべてのアイテムについて、エクスポートするかどうかを制御します。 0(ゼロ)以外の値を指定した場合または値を省略した場合は、指定したタイプのすべてのアイテムがエクスポートされ、0(ゼロ)を指定した場合は、指定した(一致した)アイテムのみがエクスポートされます。このパラメータを省略すると、0(ゼロ)が使用されます。 プロジェクトおよびプロジェクト・アーティファクトの場合は、BAMCommandを実行しているユーザーが管理者でないかぎり、そのBAMCommandを実行しているユーザーが所有しているアイテムのみがエクスポートされます。管理者がBAMCommandを実行すると、すべてのユーザーのアイテムがエクスポートされます。 |
|
エクスポートされた情報を既存のZIPファイルに追加するかどうかを制御します。 ゼロ以外の値を指定した場合または値を省略した場合は、指定したタイプのアイテムが追加され、ゼロを指定した場合は、指定したタイプのアイテムが上書きされます。このパラメータを省略すると、0(ゼロ)が使用されます。 |
|
コンテンツ情報(行、列値)をエクスポートするかどうかを制御します。データ・オブジェクトに対してのみ適用されます。 ゼロ以外の値を指定すると、コンテンツ情報がエクスポートされます。ゼロ(0)を指定すると、コンテンツ情報はエクスポートされません。このパラメータを省略すると、ゼロ以外の値がデフォルトになります。 また、次の場合にのみ使用できます。
|
|
指定したアイテムとともに依存アイテムをエクスポートするかどうかを制御します。 ゼロ以外の値を指定した場合または値を省略した場合は、依存アイテムが含まれ、ゼロを指定した場合は、依存アイテムが無視されます。このパラメータを省略すると、0(ゼロ)が使用されます。 |
|
エクスポート先のZIPファイルの名前。必須です。 このファイルが存在しない場合は作成されます。このファイルが存在する場合は、コンテンツが上書きされます。デフォルトの拡張子は |
|
データ・オブジェクト・レイアウト(メタデータ)をエクスポートするかどうかを制御します。 ゼロ以外の値を指定した場合はレイアウトがエクスポートされ、ゼロを指定した場合は、レイアウトがエクスポートされません。このパラメータを省略すると、0(ゼロ)が使用されます。 |
|
アスタリスク(*)および疑問符(?)を使用するDOS形式のパターン一致文字列。名前がパターンと一致するアイテムがエクスポートされます。 |
|
エクスポートするアイテムの内部名。プロジェクト・アーティファクトの場合は、接頭辞としてプロジェクト名を指定する必要があります。 |
|
所有権情報をエクスポートするかどうかを制御します。
|
|
正規表現パターン一致文字列。名前がパターンと一致するアイテムがエクスポートされます。詳細は、「正規表現」を参照してください。 |
|
エクスポートするアイテムのタイプ。次の値が有効です。
このパラメータを省略すると、 |
次のようにデータ・オブジェクをエクスポートできます。
bamcommand -cmd export -name "CallCenter" -file "C:\CallCenter.zip"
-type
パラメータはこの例に含まれていないことに注意してください。デフォルトでは、指定がない場合-type
はdataobject
になります。
データ・オブジェクト・コンテンツをエクスポートするには、次のコマンド形式を使用します。
bamcommand -cmd export -name TestDataObject -contents 1 -file "C:/TestDataObjectData.zip"
'Match'パラメータを使用してデータ・オブジェクトをエクスポートする方法の例を示します。
bamcommand -cmd export -match "M*" -file "C:/DOstartingwithM.zip"
プロジェクトをエクスポートする方法の例を示します。
bamcommand -cmd export -name MyProject -type project -file "C:\MyProject.zip"
ビジネス・ビューをエクスポートする方法の例を示します。
bamcommand -cmd export -name "MyProject/BarChart" -type view -file "C:\BarChart.zip"
ビュー名の前にプロジェクト名およびスラッシュ(/)があることに注意してください。
ビジネス問合せをエクスポートする方法の例を示します。
bamcommand -cmd export -name "MyProject/CallsPerHour" -type businessquery -file "C:\CallsPerHour.zip"
問合せ名の前にプロジェクト名およびスラッシュ(/)があることに注意してください。
ダッシュボードをエクスポートする方法の例を示します。
bamcommand -cmd export -name "MyProject/CallCenterDash" -type dashboard -file "C:\CallCenterDash.zip"
ダッシュボード名の前にプロジェクト名およびスラッシュ(/)があることに注意してください。
アラートをエクスポートする方法の例を示します。
bamcommand -cmd export -name "MyProject/Alert1" -type alert -file "C:\Alert1.zip"
アラート名の前にプロジェクト名およびスラッシュ(/)があることに注意してください。
Enterprise Managerソースをエクスポートする方法の例を示します。
bamcommand -cmd export -type ems -name TestEMS -file "C:\TestEMS.zip"
プロジェクトのすべてのダッシュボードをエクスポートする方法の例を示します。
bamcommand -cmd export -all 1 -name MyProject -type dashboard -file "C:\AllDash.zip"
プロジェクト名を指定する必要があります。
システムのすべてのOracle BAMオブジェクトをエクスポートする方法の例を示します。
bamcommand -cmd export -type all -file "C:\temp\TestAll.zip"
以前にエクスポートしたZIPファイルまたは以前のバージョンのBAMの情報をOracle BAMサーバーにインポートします。このオブジェクトは、作成したり、置き換えたり、更新できます。オブジェクトが存在しない場合、可能であれば作成されます。
データ・オブジェクトの場合は、データ・オブジェクトの作成に必要なレイアウト情報が入力ファイルに含まれている必要があります。ファイルにコンテンツ情報が含まれていない場合は、空のデータ・オブジェクトが作成されます。
表17-5 import操作のパラメータ
パラメータ | 説明 |
---|---|
|
|
|
コンテンツ情報(行、列値)をインポートするかどうかを制御します。データ・オブジェクトに対してのみ適用されます。 ゼロ以外の値を指定すると、コンテンツ情報がインポートされます。ゼロ(0)を指定すると、コンテンツ情報はインポートされません。このパラメータを省略すると、ゼロ以外の値がデフォルトになります。
また、次の場合にのみ使用できます。
|
|
1つのデータ・オブジェクトの移行中にエラーが発生した場合、同じ ゼロ以外の値を指定すると、true (続行)になります。ゼロ(0)を指定すると、false (続行しない)になります。このパラメータを省略すると、ゼロがデフォルトになります。 このパラメータがtrueである場合、拒否されたデータ・レコードがBADファイルに書き込まれ、別の操作で、これらのレコードを修正してインポートできます。BADファイルの命名規則は次のとおりです。
|
|
インポートしたデータが、既存のデータとどのように相互作用するかを指定します。BEAM_ID列によって一致が判別されます。
既存のアイテムの処理方法を指定するには、 |
|
ゼロ以外の値を指定すると、true (切捨て)になります。ゼロ(0)を指定すると、false (切り捨てない)になります。このパラメータを省略すると、1がデフォルトになります。 このパラメータがfalse (0)で、2000文字を超えるデータ値が発生した場合、 |
|
これらのパラメータは、 便宜上、 |
|
インポート元のファイルの名前。必須です。通常、これは、 |
|
データ・オブジェクトに対してのみ適用されます。Oracle BAM 11gデータをOracle BAM 12cにインポートします。 ゼロ以外の値を指定すると、true (移行)になります。ゼロ(0)を指定すると、false (移行しない)になります。このパラメータを省略すると、ゼロがデフォルトになります。
11gデータ・オブジェクト・スキーマをインポートするには、 詳細は、移行の考慮事項を参照してください。 |
|
インポートしたアイテムが、同じ名前を持つ既存のアイテムとどのように相互作用するかを指定します。
既存のデータの処理方法を指定するには、 |
|
インポートするアイテムの名前。プロジェクト・アーティファクトの場合は、接頭辞としてプロジェクト名を指定する必要があります。 |
|
所有権情報をインポートするかどうかを制御します。 ゼロ以外の値を指定した場合または値を省略した場合は、所有権情報がインポートされます。ゼロを指定すると、インポートを実行するユーザーに所有権が設定されます。このパラメータを省略すると、0(ゼロ)が使用されます。 |
|
データ・オブジェクトに対してのみ適用されます。インポート時にコマンド行から列値をオーバーライドできます。オーバーライド値は、値がない場合は |
|
インポートするアイテムのタイプ。次の値が有効です。
このパラメータを省略すると、 |
|
データ・オブジェクトおよびEMSオブジェクトに対してのみ適用されます。Oracle BAM 11gアーティファクトをOracle BAM 12cにインポートします。 ゼロ以外の値を指定すると、true (アップグレード)になります。ゼロ(0)を指定すると、false (アップグレードしない)になります。このパラメータを省略すると、ゼロがデフォルトになります。 11gデータ・オブジェクト・データをインポートするには、 詳細は、アップグレードの考慮事項を参照してください。 |
データ・オブジェクトをインポートしてスキーマをオーバーライドする方法の例を示します。
bamcommand -cmd import -name TestDataObject -mode update -type dataobject -file "C:\TestDataObject.zip"
11gデータ・オブジェクト・スキーマをインポートする方法の例を示します。
bamcommand -cmd import -name OldDataObject -upgrade 1 -type dataobject -file "C:\OldDataObject.xml"
11gデータをインポートする方法の例を示します。
bamcommand -cmd import -name OldDataObject -migrate 1 -type dataobject -file "C:\OldDataObject.xml" -continueonerror 1 -mode update -dbusername SOAINFRA -dburl jdbc:oracle:thin:@localhost:1511:orcl
11gデータベース・パラメータは必須ですが、-continueonerror
および-mode
パラメータはオプションです。
プロジェクトから問合せをインポートする方法の例を示します。
bamcommand -cmd import -name "MyProject/CallsPerHour" -type businessquery -file "C:\CallsPerHour.zip"
問合せ名の前にプロジェクト名およびスラッシュ(/)があることに注意してください。
ファイルのすべてのオブジェクトをインポートする方法の例を示します。
bamcommand -cmd import -file "C:\temp\TestAll.zip"
-type all
はデフォルトであり、必要ありません。
次に、エンタープライズ・メッセージ・ソースをインポートする方法を示します。
bamcommand -cmd import -file "C:\temp\TestEMS.zip" -type ems
注意:
BAMCommandを使用してEMSをインポートする際、(以前にインポートされたときからの)EMSの状態にかかわらず、EMSはターゲット・マシンで「STOP」状態になります。Oracle BAMサーバーのアイテムの表示名を変更します。内部名は変更できません。
表17-6 rename操作のパラメータ
パラメータ | 説明 |
---|---|
|
名前を変更するアイテムの内部名。プロジェクト・アーティファクトの場合は、接頭辞としてプロジェクト名を指定する必要があります。 |
|
名前を変更するアイテムの新しい表示名。プロジェクト・アーティファクトの場合は、接頭辞としてプロジェクト名を指定する必要があります。 表示名は、データ・オブジェクトでは大/小文字が区別されず、その他のすべてのタイプでは大/小文字が区別されます。フォルダ・パスを示すスラッシュ( |
|
名前を変更するアイテムのタイプ。次の値が有効です。
このパラメータを省略すると、 |
データ・オブジェクトの名前を変更するには、次のコマンドを使用します。内部名がTestDO
のデータ・オブジェクトに、表示名MyDO
を付けます。-type
パラメータを指定しない場合は、dataobject
タイプが使用されます。
bamcommand -cmd rename -name TestDO -newdisplayname MyDO
ビューの名前を変更するには、次のコマンドを使用します。内部名がBarChart1
のビジネス・ビューに、表示名MyView
を付けます。
bamcommand -cmd rename -type view -name BarChart1 -newdisplayname MyView
この項では、次の項目について説明します。
コマンド・ファイルには、ルート・タグOracleBAMCommands
が含まれています。
ルート・タグ内には、すべての操作を実行するタグがあります。タグ名は操作名であり、操作のパラメータは属性です。
コマンド・ファイルの例を示します。
<?xml version="1.0" encoding="utf-8"?> <OracleBAMCommands continueonerror="1"> <Export name="Samples/Media Sales" file="MediaSales.xml" contents="0" /> <Rename name="Samples/Call Center" newdisplayname="Call Centre" /> <Delete type="EMS" name="WebLog" /> <Delete type="EMS" name="WebLog2" /> </OracleBAMCommands>
このサンプル・コマンド・ファイルの出力は、ログ・ファイルの構造を参照してください。
この機能は、出力をログ・ファイルに送信する場合にのみ使用されます。ログ結果の解析を簡単にするために、各操作にIDを指定できます。このIDは、該当する操作に関連する出力の結果要素またはエラー要素に含まれます。
入力例を示します。
<OracleBAMCommands continueonerror="1"> <Delete id="1" type="dataobject" name="Data Object A"/> <Delete id="2" type="dataobject" name="Data Object B"/> </OracleBAMCommands>
出力ファイルの例は次のようになります。
<?xml version="1.0"?> <BAMCommandLog Login="weblogic"> <Results Command="Delete" ID="1">Data Object "/Data Object A" deleted.</Results> <Error Command="Delete" ID="2"> <![CDATA[BAM-02409: There is no Data Object named "Data Object B". [ErrorSource="BAMCommandEngine",ErrorID="BAMCommandEngine.DOExist"]]]> </Error> </BAMCommandLog>
通常、BAMCommandでは、障害が発生するまで、またはすべてのコマンドが正常に完了するまでコマンド・ファイル内の操作が実行されます。つまり、コマンド・ファイルに20の操作が含まれていて、2番目の操作が何らかの理由により失敗した場合、その後の操作は実行されません。この動作は、continueonerror
属性をグローバル・レベルで使用するか、または各操作に対して使用することによって変更できます。
continueonerror
属性を使用して、障害が発生したかどうかに関係なくすべての操作を実行することができます。グローバルcontinueonerror
モードを有効にする方法を示します。
<OracleBAMCommands continueonerror="1"> <Delete id="1" type="dataobject" name="Data Object A"/> <Delete id="2" type="dataobject" name="Data Object B"/> </OracleBAMCommands>
continueonerror
が適用されているのは、Data Object Aを削除する操作のみである場合があります。この操作が失敗した場合、BAMCommandはエラーを出力して処理を続行します。しかし、他の操作が失敗した場合、BAMCommandはただちに停止します。操作レベルのcontinueonerror
モードを有効にする方法を示します。
<OracleBAMCommands> <Delete id="1" type="dataobject" name="Data Object A" continueonerror="1"/> <Delete id="2" type="dataobject" name="Data Object B"/> <Delete id="3" type="dataobject" name="Data Object C"/> <Delete id="4" type="dataobject" name="Data Object D"/> </OracleBAMCommands>
ログ・ファイルには、ルート・タグBAMCommandLog
が含まれています。
ルート・タグ内には、記録されたすべてのエラー・メッセージまたは情報メッセージのエントリがあります。
エラーは、Error
タグ付きで記録されます。
情報メッセージは、Results
タグ付きで記録されます。
Results
とError
の両方のタグには、必要に応じてCommand=
cmdname
という形式の属性が含まれます。この属性には、エラー・メッセージまたは情報メッセージを生成した操作の名前が含まれます。
ここに示されているサンプル・ログ・ファイルは、コマンド・ファイルの構造に示されているコマンド・ファイルの出力です。
<?xml version="1.0" encoding="utf-8"?>
<BAMCommandLog Login="user_name">
<Results Command="Export">Data Object "/Samples/Media Sales" exported
successfully (0 rows).</Results>
<Results Command="Export">1 items exported successfully.</Results>
<Results Command="Rename">Data Object "/Samples/Call Center" renamed to
"/Samples/Call Centre".</Results>
<Results Command="Delete">Enterprise Message Source "WebLog" deleted.</Results>
<Error Command="Delete"><![CDATA[Error while processing command "Delete".
[ErrorSource="BAMCommand", ErrorID="BAMCommand.Error"] There is no Enterprise Message
Source named "WebLog2". [ErrorSource="BAMCommand",
ErrorID="BAMCommand.EMSExist"]]]></Error>
</BAMCommandLog>
エクスポートされたZIPファイルの構造の例を示します。
bam_export.zip: -dataobject -do1 -dataobject.xml -data.csv -project -Project1 -alert -alert1 -view -view1 -businessquery -query1 -continuousquery -cquery1 -project2 -parameter -parameter2 -view -view2 -businessquery -query2 -dashboard -dashboard1 ... -ems -ems1
データ・オブジェクトをエクスポートした結果生じたサンプルXMLスキーマ・ファイルを示します。
<?xml version = '1.0' encoding = 'UTF-8'?> <ns0:simpleDataObject xmlns:ns0="http://xmlns.oracle.com/bam/bam12"> <name>SPOTDO</name> <id>/dataobject/SPOTDO</id> <displayName>SPOTDO</displayName> <createdDate>2013-03-14T00:13:49.428</createdDate> <modifiedDate>2013-03-14T00:13:49.428</modifiedDate> <flexTableConfigured>false</flexTableConfigured> <calculatedFields/> <timeHierarchies/> <cqType>RELATION</cqType> <cqArchived>true</cqArchived> <cqSource>jms:topic/oracle.beam.server.event.dataobject</cqSource> <cqStampType>SYSTEM</cqStampType> <slowChangingDimension>false</slowChangingDimension> <physicalName>BEAM_VIEW_26</physicalName> <eventId>BEAM_ID</eventId> <replayAmount>0</replayAmount> <hidden>false</hidden> <columns> <column> <name>BEAM_ID</name> <id>0aa861629bd445e6929c762bbd4b38ea</id> <displayName>BEAM_ID</displayName> <length>10</length> <nullable>true</nullable> <unique>false</unique> <precision>0</precision> <scale>0</scale> <dataType>INT</dataType> <columnType>ATTRIBUTE</columnType> <hidden>false</hidden> </column> <column> <name>Sales</name> <id>c6e271cfef464fe6a7dd250b9ad62b3d</id> <length>10</length> <nullable>true</nullable> <unique>false</unique> <precision>0</precision> <scale>0</scale> <dataType>DECIMAL</dataType> <columnType>MEASURE</columnType> <hidden>false</hidden> </column> <column> <name>Cost</name> <id>42df8b2bd35043cd82b12dd289279e81</id> <length>10</length> <nullable>true</nullable> <unique>false</unique> <precision>0</precision> <scale>0</scale> <dataType>DECIMAL</dataType> <columnType>MEASURE</columnType> <hidden>false</hidden> </column> <column> <name>Category</name> <id>22d80831e48743e897814a23e3d7d549</id> <length>10</length> <nullable>true</nullable> <unique>false</unique> <precision>0</precision> <scale>0</scale> <dataType>VARCHAR</dataType> <columnType>DIMENSION</columnType> <hidden>false</hidden> </column> <column> <name>Product</name> <id>75694c6184cc44199bcec91ee9d30736</id> <length>10</length> <nullable>true</nullable> <unique>false</unique> <precision>0</precision> <scale>0</scale> <dataType>VARCHAR</dataType> <columnType>DIMENSION</columnType> <hidden>false</hidden> </column> </columns> <indexes/> <hierarchies> <hierarchy> <name>Category</name> <id>523992a9e8634e1498e0987cd8adb00b</id> <columns/> </hierarchy> <hierarchy> <name>PYPDrill</name> <id>8dfe2fce91a740a0a4933b25386718b5</id> <columns> <columnRef> <dataObject>SPOTDO</dataObject> <column>Product</column> </columnRef> </columns> </hierarchy> </hierarchies> </ns0:simpleDataObject>
import
操作を-migrate
パラメータとともに使用して、Oracle BAM 11gデータをOracle BAM 12cに移行すると、一部の情報が変更されます。
データ・オブジェクトの移行には、次の考慮事項が適用されます。
11gデータ・オブジェクトのXMLまたはCSVファイルからインポートできます。
11gデータ・オブジェクトのXMLファイルにauto-incr-integer
列がある場合、その値が12cデータ・オブジェクトのBEAM_ID
列に移入されます。
11gデータ・オブジェクトのXMLファイルにTimestamp
列がある場合、その値が12cデータ・オブジェクトのDATAOBJECT_CREATED
列に移入されます。
バッチ挿入のいずれかが失敗し、それ以上の処理が行われない場合は、データ・オブジェクトの状態(データ・オブジェクト名、バッチ・サイズ、バッチ番号)がdostate-recovery.xml
ファイルに書き込まれます。
修正処理を実行し、同じコマンドを再実行すると、失敗した時点から処理が開始されます。
レコードが正常に挿入されると、BEAM_SEQUENCE
表の対応するシーケンス番号(FLEX
表用)が更新されます。
2000文字を超えるデータ値は2000文字に切り捨てられますが、-datatruncate
パラメータをゼロに設定した場合はこの限りではなく、その場合、-continueonerror
パラメータにより実行するアクションが決定されます。
import
操作を-upgrade
パラメータとともに使用して、Oracle BAM 11gアーティファクトをOracle BAM 12cに移行すると、一部の情報が変更されます。
データ・オブジェクトのアップグレードには、次の考慮事項が適用されます。
11gデータ・オブジェクトIDが12cデータ・オブジェクト内部名に変換されます。すべての特殊文字および埋込み空白がアンダースコアで置き換えられ、すべての先頭のアンダースコアが削除されます。
11gデータ・オブジェクト・パスおよび名前が組み合されて12cデータ・オブジェクト表示名になります。
11g列IDが12c列内部名に変換されます。すべての特殊文字および埋込み空白がアンダースコアで置き換えられ、すべての先頭のアンダースコアが削除されます。
11gデータ・オブジェクトのXMLファイルにauto-incr-integer
列がある場合、その値が12cデータ・オブジェクトのBEAM_ID
列に移入されます。
11gデータ・オブジェクトのXMLファイルにTimestamp
列がある場合、その値が12cデータ・オブジェクトのDATAOBJECT_CREATED
列に移入されます。
11gファクト・データ・オブジェクトが次の2つの12cデータ・オブジェクトに変換されます。
12cの単純なデータ・オブジェクトは11g非参照列で構成されます。
12cの論理データ・オブジェクトは11g参照列で構成されます。
参照列は、11gファクト・データ・オブジェクトXMLファイルまたは12cスキーマに存在する必要があります。
11gのString
列は、12cの2000文字未満の幅のVarchar
列に変換されます。
外部データ・オブジェクトのアップグレードには、次の考慮事項が適用されます。
BAMCommandでは、11g外部データ・オブジェクトによって参照される外部データ・ソースをアップグレードしません。外部データ・ソースを再作成してから、12c外部データ・オブジェクトにマップされている11g外部データ・オブジェクトをアップグレードする必要があります。
標準BAM 11gファクト・データ・オブジェクトによって参照される11g外部データ・オブジェクトは、12c外部データ・オブジェクトではなく、12cの単純なデータ・オブジェクトにマップされます。データを移行するには、別の操作を使用する必要があります。
EMSのアップグレードには、次の考慮事項が適用されます。
11g EMS接続ファクトリの詳細は保持されません。アウトバウンド接続JNDIはマップされません。手動でこれらの詳細を作成し、12c JNDI名を選択する必要があります。
12cでは、11g EMSフィールド「BAMサーバーの起動時に起動」は変換されず、「自動起動」フィールドがfalseに設定されます。EMSは手動で起動する必要があります。
11g EMS定義XMLファイルには、データ・オブジェクト列のデータ型がありません。このため、12cデータベースにベース・データ・オブジェクトがない場合は、同じXMLファイルでデータ・オブジェクトおよびEMS定義を指定する必要があります。
export
およびdelete
操作では、必要に応じて-regex
パラメータが指定された正規表現を使用できます。
正規表現は、通常の文字(たとえば、a
からz
の英字)と、メタ文字と呼ばれる特殊文字で構成されるテキストのパターンです。このパターンによって、アイテムを名前で検索するときに一致する1つ以上の文字列を表します。
注意:
BAMCommandの-regex
パラメータの動作は、文字シーケンスを正規表現で指定したパターンと照合するためのjava.util.regex
パッケージと同じです。
表17-7に、メタ文字の完全なリストおよび正規表現におけるメタ文字の動作を示します。
表17-7 正規表現で使用するメタ文字
文字 | 説明 |
---|---|
\ |
次に続く文字が特殊文字、リテラル、前方参照または8進エスケープであることを示します。たとえば、「n」は文字「n」と一致します。「\\」は「\」と一致し、「\(」は「(」と一致します。 |
^ |
入力文字列の先頭と一致します。RegExpオブジェクトの |
$ |
入力文字列の末尾と一致します。RegExpオブジェクトの |
* |
直前の文字または部分式と0回以上一致します。たとえば、「zo*」は「z」と「zoo」のどちらにも一致します。「*」は「{0,}」と同じ意味です。 |
+ |
直前の文字または部分式と1回以上一致します。たとえば、「zo+」は「zo」や「zoo」とは一致しますが、「z」とは一致しません。「+」は「{1,}」と同じ意味です。 |
? |
直前の文字または部分式と0回または1回一致します。たとえば、「do(es)?」は「do」または「does」の「do」と一致します。「?」は「{0,1}」と同じ意味です。 |
{n} |
nには、0以上の整数を指定します。直前の文字と正確にn回一致します。たとえば、「o{2}」は「Bob」の「o」とは一致しませんが、「food」の2つの「o」とは一致します。 |
{n,} |
nには、0以上の整数を指定します。直前の文字とn回以上一致します。たとえば、「o{2,}」は「Bob」のoとは一致しませんが、「foooood」のすべての「o」とは一致します。「o{1,}」は「o+」と同じ意味です。「o{0,}」は「o*」と同じ意味です。 |
{n,m} |
mおよびnには0以上の整数を指定します。n <= mです。nからm回一致します。たとえば、「o{1,3}」は「fooooood」の最初の3つの「o」と一致します。「o{0,1}」は「o?」と同じ意味です。カンマと数の間には空白を入れません。 |
? |
他の量指定子(*、+、?、{n}、{n,}、{n,m})の直後に指定すると、一致パターンが最短一致になります。デフォルトの最長一致パターンでは、できるだけ多くの文字列と一致しますが、最短一致パターンでは、できるだけ少ない文字列と一致します。たとえば、文字列「oooo」に対して、「o+?」を指定すると1つの「o」と一致し、「o+」を指定するとすべての「o」と一致します。 |
. |
「\n」以外の任意の1文字に一致します。「\n」を含めて任意の文字と一致させるには、「[\s\S]」などのパターンを指定します。 |
(pattern) |
patternと一致した文字列を保存する部分式。一致した文字列が見つかった場合は、Matchesコレクションから |
(?:pattern) |
patternと一致しても、その文字列を保存しない部分式(後で使用するための保存は行わない非保存一致)。これは、「または」を意味する(|)を使用して、パターンの一部を結合するときに便利です。たとえば、「industr(?:y|ies)」と指定するより、「industry|industries」と指定する方が簡潔です。 |
(?=pattern) |
肯定先読み検索を実行する部分式です。patternと一致する文字列が始まる位置にある検索文字列と一致します。これは、非保存一致で、一致した文字列は後で使用できません。たとえば、「Windows (?=95|98|NT|2000)」は「Windows 2000」の「Windows」には一致しますが、「Windows 3.1」の「Windows」には一致しません。先読み処理では、文字は検索対象ではありません。一致の検出後、次の検索処理は、先読みされた文字の後からではなく、一致文字列のすぐ後から開始されます。 |
(?!pattern) |
否定先読み検索を実行する部分式です。patternに一致しない文字列が始まる位置にある検索文字列と一致します。これは、非保存一致で、一致した文字列は後で使用できません。たとえば、「Windows (?!95|98|NT|2000)」は「Windows 3.1」の「Windows」には一致しますが、「Windows 2000」の「Windows」には一致しません。先読み処理では、文字は検索対象ではありません。一致の検出後、次の検索処理は、先読みされた文字の後からではなく、一致文字列のすぐ後から開始されます。 |
x|y |
xまたはyと一致します。たとえば、「z|food」は「z」または「food」と一致します。「(z|f)ood」は「zood」または「food」と一致します。 |
[xyz] |
文字セットを指定します。大カッコで囲まれたいずれかの文字に一致します。たとえば、「[abc]」は「plain」の「a」と一致します。 |
[^xyz] |
除外する文字セットを指定します。大カッコで囲まれた文字以外の文字に一致します。たとえば、「[^abc]」は「plain」の「p」に一致します。 |
[a-z] |
文字の範囲を指定します。指定した範囲に含まれる任意の文字に一致します。たとえば、「[a-z]」はaからzの範囲にある任意の小文字と一致します。 |
[^a-z] |
除外する文字の範囲を指定します。指定した範囲に含まれていない任意の文字と一致します。たとえば、「[^a-z]」はaからzの範囲外にある任意の文字と一致します。 |
\b |
単語の境界と一致します。単語の境界とは、単語と空白との間の位置のことです。たとえば、「er\b」は「never」の「er」とは一致しますが、「verb」の「er」とは一致しません。 |
\B |
単語の境界以外と一致します。たとえば、「er\B」は「verb」の「er」とは一致しますが、「never」の「er」とは一致しません。 |
\cx |
xで指定した制御文字と一致します。たとえば、\cMはControl-Mまたは復帰改行文字と一致します。xの値は、AからZまたはaからzの範囲内で指定します。そうでない場合、cはリテラル文字の「c」と見なされます。 |
\d |
数字1文字に一致します。[0-9]と同じ意味です。 |
\D |
数字以外の1文字に一致します。[^0-9]と同じ意味です。 |
\f |
フォーム・フィード文字と一致します。\x0cおよび\cLと同じ意味です。 |
\n |
改行文字と一致します。\x0aおよび\cJと同じ意味です。 |
\r |
復帰文字と一致します。\x0dおよび\cMと同じ意味です。 |
\s |
空白、タブ、フォーム・フィードなどの任意の空白文字と一致します。[ \f\n\r\t\v]と同じ意味です。 |
\S |
空白文字以外の任意の文字と一致します。[^ \f\n\r\t\v]と同じ意味です。 |
\t |
タブ文字と一致します。\x09および\cIと同じ意味です。 |
\v |
垂直タブ文字と一致します。\x0bおよび\cKと同じ意味です。 |
\w |
単語に使用される任意の文字と一致します。アンダースコアも含まれます。[A-Za-z0-9_]と同じ意味です。 |
\W |
単語に使用される文字以外の任意の文字と一致します。[^A-Za-z0-9_]と同じ意味です。 |
\xn |
nと一致します。nには16進のエスケープ値を指定します。16進数のエスケープ値は2桁である必要があります。たとえば、「\x41」は「A」と一致します。「\x041」は「\x04」および「1」と同じ意味です。この表記によって、正規表現でASCIIコードを使用できるようになります。 |
\num |
numと一致します。numには正の整数を指定します。すでに保存されている部分を参照します。たとえば、「(.)\1」は連続する2つの同じ文字と一致します。 |
\n |
8進数のエスケープ値または前方参照を指定します。\nの前にn個以上の保存された部分式がある場合、nは前方参照になります。それ以外の場合でnが8進数(0から7)である場合、nは8進エスケープ値です。 |
\nm |
8進数のエスケープ値または前方参照を指定します。\nmの前にnm個以上の保存された部分式がある場合、nmは前方参照になります。\nmの前にn個以上の保存された部分式がある場合、nが前方参照で、リテラルmが後に続きます。いずれの条件も当てはまらない場合でnおよびmが8進数(0から7)である場合、\nmは8進エスケープ値nmと一致します。 |
\nml |
nが8進数値の0から3で、mおよびlが8進数(0から7)の場合は、8進エスケープ値nmlと一致します。 |
\un |
nと一致します。nにはUnicode文字で表した4桁の16進数を指定します。たとえば、\u00A9は著作権記号(©)と一致します。 |
この項では、Oracle BAM 12cのこのリリースに含まれているLoadgenユーティリティの使用方法について説明します。
次のサブセクションが含まれます:
Loadgenユーティリティ(ロード・ジェネレータ)は、Oracle BAM製品をインストールすると提供される単純なユーティリティであり、BAMサーバーへのデータ・フィードのシミュレーションに使用されます。具体的には、永続性レイヤーで、Enterprise Java Bean (EJB)インタフェースを使用して動作します。実際のデータ・フィードに接続しないでアプリケーションのEvent Processing Language (EPL)ルールをテストする場合に役立ちます。ストリームおよびアーカイブ済リレーション・データ・オブジェクト(DO)の両方のロードを生成できます。
ロード・ジェネレータは、サンプル・データ・フィード情報が含まれている1つ以上のXMLファイルを読み取り、各データ・アイテムを構成済ポートに送信します。サンプル・データ・ファイルのアイテムを順番に読み取ってストリームに挿入し、データ・ファイルの最後に到達すると、先頭にループします。これにより、ファイル内のデータ・アイテムの数に関係なく、データの継続的なストリームが実現されます。開始時点のレート、最終レート、およびロード・ジェネレータが最終レートにランプアップするのにかかる時間から、送信データのレートを構成できます。
ロード・ジェネレータは、ダッシュボードのテストに使用することが想定されています。これは、ロード・シナリオなどの本番をシミュレートする、機能およびロードのテストに特に便利です。
このユーティリティでは、次のユースケース機能がサポートされています。
システムのデータの精度に関する機能テストをサポートするための、システムへのデータ・フィードのシミュレーション。たとえば、このユーティリティを使用して、データをフィードし、CQLテンプレートをテストします(ストリームDOとのパターン一致やアーカイブ済リレーションDOのダッシュボードなど)。
進行中のロードを生成するルーピング・コンストラクトの指定。
アーカイブ済リレーションDOの挿入、削除および更新イベントとストリームDOの挿入イベントの指定。
特定のイベントのみを更新するフィルタ条件の指定。
初期インジェクション・レートと最終インジェクション・レートの指定。初期レートと最終レートの間の期間はランプアップ期間と呼ばれます。最終レート状態に到達すると、期間が切れるまで一定のレートでデータがインジェクトされます。
高いスループット・レートを達成するための複数のコンシューマ・スレッドの指定。
1つ以上のXMLファイルでの入力データの指定。XMLファイルは順番に処理されます。各イベントに関連付けられたターゲットDOが必要となります。
複数のイベントを単一の操作にグループ化するバッチ操作の指定。
プレーン・テキスト制御ファイルのコマンド行からのLoadgenの実行。制御ファイルのコマンド行を使用したLoadgenの実行を参照してください。
本番デプロイメントをシミュレーションする大量のロードに対応するための、固定期間を使用したインジェクトの頻度の指定。詳細は、使用例を参照してください。
bamloadgen
コマンドは、WindowsプラットフォームのFMW_HOME
\soa\bam\bin
ディレクトリおよびUNIXプラットフォームのFMW_HOME
/soa/bam/bin
から実行できます。
Loadgenの実行では、次の構成および実行を考慮します。
bamloadgen
をコールするコマンド行を使用して、Loadgenを実行します。コマンドは、制御ファイルと呼ばれる実行可能テキスト・ファイルから実行するか、コマンド・プロンプトから直接実行できます。
Oracle BAMサーバーが実行されており、アクセス可能である必要があります。
システムに既存の関連DOがあり、アクセス可能である必要があります。
次の状態に関する実行時メッセージが表示されます。
現在のインジェクション・レートなど、通常の処理ステータス
サーバーが使用不可の場合、XMLファイルにデータの不一致や無効なストリームDOがある場合など、処理中に発生した例外
アーカイブ済リレーションDOの更新の場合は削除および挿入操作がサポートされており、ストリームDOの場合は挿入操作のみがサポートされています。
XSD形式の入力XMLファイル: 現地時間を入力として取得するための日付値として$currentTime
を指定するか、2013-04-29T12:45:00.000-8:00
などの完全な日付値を指定できます。XMLの例は、CRUD XMLの挿入、更新および削除の例を参照してください。
bamloadgen
をコールするコマンド行は、コマンド・プロンプトから直接実行するか、実行可能プレーン・テキスト・ファイルから実行できます。コマンド行構文では、特定の初期レート、最終レート、ランプアップ時間およびスレッドの期間と数のデータ・フローの生成と制御がサポートされます。データ・ソースは1つ以上のXMLファイルから取得できます。各タイプの実行モードの構文例は、次のとおりです。カッコ(<...>)で囲んで示されている各変数オプション値は、実際のコマンド行では省略されます。使用可能なすべてのオプションの説明を示すリストは、表17-8を参照してください。
レートのランプアップなしの頻度モード:
bamloadgen -XMLFile XMLFile -consumerThread_num thread_num -batch_size batch_size -frequency frequency -duration duration
頻度なしのランプアップ・モード:
bamloadgen -XMLFile XMLFile -consumerThread_num thread_num -state_interval state_interval -ramp_up ramp_up -initial_rate initial_rate -final_rate final_rate -duration duration
表17-8 使用可能なコマンド行オプション
オプション | 説明 | データ型 | 必須 |
---|---|---|---|
XMLFile |
データ・オブジェクトに読み取るXMLファイル。複数のXMLファイルをカンマで区切ります。 |
文字列 |
はい |
batch_size |
単一の操作にグループ化されるイベントの数。デフォルト値は100です。 |
整数 |
いいえ |
consumerThread_num |
プロセス操作ごとのスレッドの数。デフォルト値は1です。 |
整数 |
いいえ |
queue_size |
キューのサイズ。デフォルト値は100です。 |
整数 |
いいえ |
frequency |
頻度モードでデータを1回インジェクトするまでの間隔。ramp_up、state_interval、initial_rateおよびfinal_rateとともに使用することはできません。デフォルト値は1です。 |
整数 |
いいえ |
ramp_up |
初期レートから最終レートに増加するロード生成の秒数。デフォルト値は1です。 |
整数 |
いいえ |
state_interval |
1つの状態から別の状態にランプアップするレートの時間。ramp_upモードで必須です。単位は秒で、デフォルト値は1です。 |
整数 |
いいえ |
initial_rate |
操作の初期レート。単位はイベント数/秒です。ramp_upモードで必須です。 |
整数 |
いいえ |
final_rate |
操作の最終レート。単位はイベント数/秒です。ramp_upモードで必須です。 |
整数 |
いいえ |
duration |
ロード生成が継続的に実行される時間(秒単位)。無限に実行する場合は0を使用します。 |
整数 |
はい |
username |
BAMサーバーへのログインに使用するユーザーの名前を指定します。 |
文字列 |
はい |
password |
|
文字列 |
はい |
host |
ターゲットのBAMサーバーのホスト名またはIPアドレスを指定します。デフォルトはlocalhostです。 |
文字列 |
いいえ |
port |
ターゲットのBAMサーバーのポート番号を指定します。デフォルトは7001です。 |
整数 |
いいえ |
protocol |
使用する通信プロトコルを指定します。SSLの場合は、t3またはt3sのいずれかです。デフォルトはt3です。 |
文字列 |
いいえ |
url |
|
文字列 |
いいえ |
file |
|
文字列 |
いいえ |
retry_count |
失敗したセッションを再確立する再試行の回数。デフォルトは30です。 |
整数 |
いいえ |
retry_interval |
失敗したセッションを再確立する再試行間に待機するミリ秒数。デフォルトは1000です。 |
整数 |
いいえ |
この項では、様々な使用シナリオの例を示します。
-frequency
の設定このコマンドでは、2秒に1回データをインジェクトし(-frequency 2
)、合計20秒間(-duration 20
)で、インジェクトごとに10レコードをグループ化します(-batch_size 10
)。プロセス全体で、(20/2)*10 = 100レコードが挿入されると計算されます。
bamloadgen -XMLFile CALLCENTER_FACT_export.xml -frequency 2 -batch_size 10 -duration 20
bamloadgen -XMLFile example -batch_size 100 -state_interval 30 -ramp_up 60 -initial_rate 1000 -final_rate 3000 -duration 90
このコマンド行では、example1.xml
で指定したデータを読み取り、その速度は1000レコード/秒から開始して、60秒以内に3000レコード/秒に達します。異なるレート間の期間は30秒(-state_interval 30
ごと)となるため、最終レートに到達するまでに、2ステップが必要となります(-ramp_up
または-state_interval = 2
)。最終レートに到達した後、loadgenは、90番目の秒で終了するまで最終レートで継続的に実行されます(-duration 90
)。図17-1にこれを示します。
-consumerThread_num 10
を指定して、同時に10スレッドで操作が処理されるようにします。
注意:
ローカル・システムの環境によっては、より高いレートを達成する必要がない場合があります。テストでは、-consumerThread_num 20によって最良のインジェクション・レートが達成され、30
に変更しても20
と同じレートでした。
bamloadgen -XMLFile example1.xml,example2.xml -batch_size 100 -consumerThread_num 20 -state_interval 30 -ramp_up 60 -initial_rate 2000 -final_rate 3000 -duration 90 -username weblogic
bamloadgen -XMLFile example1.xml,example2.xml -batch_size 100 -thread_num 10 -state_interval 30 -ramp_up 60 -initial_rate 1000 -final_rate 3000 -duration 90"
このコマンド行では、2つの異なるプロデューサ・スレッドを生成するexample1.xml
およびexample2.xml
で指定したデータで読み取り、サーバーにデータをインジェクトします。データをインジェクトするプロデューサ・スレッドが2つあるため、各スレッドは合計レートの4分の3で実行され、500 ->1000->1500 (イベント/秒)となります。データのインジェクト後、バックエンドでは10のコンシューマ・スレッドを使用して、データ操作を処理します。図17-2にこれを示します。
-batch_size 100
を指定すると、100のデータ・エントリを1つの操作で処理できます。このため、XMLファイルに500のデータ・エントリがある場合、各スレッドの操作では100のデータ・エントリが処理されます。
bamloadgen -XMLFile example_export.xml -batch_size 100 - consumerThread_num 10 -state_interval 30 -ramp_up 60 -initial_rate 1000 -final_rate 3000 -duration 90
このコマンド行では、ストリームDOのパターン一致と同様に、テストCQLテンプレートにデータをフィードします。ストリームDOに削除または更新が含まれている場合は、例外がスローされます。
bamloadgen -XMLFile example1.xml -batch_size 20 -thread_num 10 -state_interval 30 -ramp_up 60 -initial_rate 50 -final_rate 100 -duration 0
注意:
コマンド行で-duration 0
を指定すると、データ・フィード・ループが無限に実行されます。
この例では、アーカイブ済リレーションDOの挿入、削除および更新イベントとストリームDOの挿入イベントを指定します。更新イベントの場合は、特定のイベントを更新するためのフィルタ条件を指定できます。次のコマンド行でこの例が実行されます。
bamloadgen -XMLFile example1.xml -batch_size 20 -thread_num 10 -state_interval 30 -ramp_up 60 -initial_rate 50 -final_rate 100 -duration 90
次のコードは、DO xyz
を更新し、DO abc
を挿入および削除するLoadgenのXMLファイルを示します。更新データ・エントリおよび削除データ・エントリの両方に、データベースの対応するデータ・エントリの操作を処理するfilter-columns
要素があります。アーカイブ・リレーションおよびストリームDOで操作するには、次のXMLを使用します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <dataObjectOperations> <operations> <update dataobject="xyz"> <filter-columns> <string value="STRING_82" predicate="EQ" name="String_Column"/> </filter-columns> <update-columns> <string value="UPDATED" action="REPLACE" name="String_Column"/> <integer value="111" action="REPLACE" name="Integer_Column"/> <decimal value="111.10" action="REPLACE" name="Decimal_Column"/> <float value="111.11" action="REPLACE" name="Float_Column"/> <date value="2011-05-15T09:40:02.111Z" action="REPLACE" name="Date_Column"/> </update-columns> </update> <insert dataobject="abc"> <insert-columns> <date value="2011-05-15T09:40:02.111Z" name="Date_Column"/> <decimal value="670.05" name="Decimal_Column"/> <float value="52.107746" name="Float_Column"/> <integer value="91" name="Integer_Column"/> <string value="STRING_36" name="String_Column"/> </insert-columns> </insert> <delete dataobject="xyz"> <filter-columns> <string value="STRING_61" predicate="EQ" name="String_Column"/> </filter-columns> </delete> </operations> </dataObjectOperations>
次のコマンド行を実行して、制御ファイルcontrolFileExample.txt
を実行します。
./bamloadgen -file controlFileExample.txt
制御ファイルには、目的に応じて次のコンテンツが含まれます。
bamloadgen -XMLFile example_export.xml -batch_size 100 - consumerThread_num 10 -state_interval 30 -ramp_up 60 -initial_rate 1000 -final_rate 3000 -duration 90
次の例を参照してください。
データを挿入するためのCRUD XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <dataObjectOperations> <operations> <insert dataobject="PATTERNMATCH_FACT"> <insert-columns> <date value="$currentTime" name="callCreatedTime"/> <date value="$currentTime" name="callClosedTime"/> <integer value="1" name="callPriority"/> <string value="2" name="productId"/> <integer value="100" name="callWaitTime"/> <integer value="60" name="callProcessingTime"/> <string value="US" name="customerLocationId"/> <string value="CLOSED" name="callStatus"/> <string value="OPEN" name="customerStatus"/> </insert-columns> </insert> <insert dataobject="PATTERNMATCH_FACT"> <insert-columns> <date value="$currentTime" name="callCreatedTime"/> <date value="$currentTime" name="callClosedTime"/> <integer value="1" name="callPriority"/> <string value="2" name="productId"/> <integer value="200" name="callWaitTime"/> <integer value="120" name="callProcessingTime"/> <string value="CA" name="customerLocationId"/> <string value="WAIT" name="callStatus"/> <string value="OPEN" name="customerStatus"/> </insert-columns> </insert> </operations> </dataObjectOperations>
データを更新するためのCRUD XMLを示します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <dataObjectOperations> <operations> <update dataobject="xyz"> <filter-columns> <string value="STRING_82" predicate="EQ" name="String_Column"/> </filter-columns> <update-columns> <string value="UPDATED" action="REPLACE" name="String_Column"/> <integer value="111" action="REPLACE" name="Integer_Column"/> <decimal value="111.10" action="REPLACE" name="Decimal_Column"/> <float value="111.11" action="REPLACE" name="Float_Column"/> <date value="1901-01-01T01:11:11.111-8:00" action="REPLACE" name="Date_Column"/> </update-columns> </update> </operations> </dataObjectOperations>
データを削除するためのCRUD XMLを示します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <dataObjectOperations> <operations> <delete dataobject="xyz"> <filter-columns> <string value="STRING_1" predicate="EQ" name="String_Column1"/> </filter-columns> </delete> <delete dataobject="xyz"> <filter-columns> <string value="STRING_2" predicate="EQ" name="String_Column2"/> </filter-columns> </delete> </operations> </dataObjectOperations>