プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle BAMでのビジネス・アクティビティのモニタリング
12c (12.2.1.2.0)
E82842-02
目次へ移動
目次

前
前へ
次
次へ

17 Oracle BAMでのコマンドの使用

この章では、BAMCommandコマンド行ユーティリティを使用して、BAMメタデータ、データおよびプロジェクト・アーティファクトをエクスポート、インポート、移行、クリアおよび削除する方法について説明します。また、loadgenユーティリティを使用して、データ・ストリームをシミュレートする方法についても説明します。

この章の内容は次のとおりです。

17.1 BAMCommandの使用

この項では、BAMCommandコマンド行ユーティリティをローカルまたはリモートで使用して、BAMメタデータ、データおよびプロジェクト・アーティファクトをエクスポート、インポート、移行、クリアおよび削除する方法について説明します。

この項には次のトピックが含まれます:

17.1.1 BAMCommandの実行

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サポート・マトリックスを参照してください。

17.1.2 BAMCommand構成ファイルの使用

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>

17.1.3 BAMCommandのリモート実行

リモート・システム(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サーバー・バージョンと同一である必要があります(つまり、両サーバーともに同じラベルであること)。

17.1.4 コマンドおよびパラメータの構文の指定

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"

この項には次のトピックが含まれます:

17.1.4.1 汎用パラメータの指定

次のパラメータは、任意の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がデフォルトになります。

17.1.4.2 セキュリティ資格証明の指定

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

17.1.4.3 オブジェクト名の指定

オブジェクト名をコマンドに指定する場合は、常に次のルールが適用されます。

コマンド行で指定する際に、DOSまたはUNIXで特殊な意味となる空白または文字を名前に含める場合は、コマンド行のルールに従ってその名前を引用符で囲む必要があります。

プロジェクト・アーティファクトには、プロジェクト名を接頭辞として付ける必要があります。次に例を示します。

-name MyProject/MyAlert

データ・オブジェクトの完全内部名を指定する必要があります。

17.1.5 個々の操作のサマリー

この項では、各BAMCommand操作のパラメータの要約を示します。これらの操作のサマリーは、コマンド・プロンプトでbamcommand (パラメータなし)と入力してコマンド・ウィンドウに表示できます。

表17-1に、BAMCommandで使用可能な操作の要約を示します。

表17-1 BAMCommand操作サマリー

操作 パラメータ

clear

-name itemname

[-type [dataobject]]

clearの詳細は、clearを参照してください。

delete

[-all [0|1]]

[-match pattern]

-name "projectname/itemname"

[-regex regularexpression]

[-type [dataobject|project|view|businessquery|dashboard|alert|kpi|parameter|ems|all]

deleteの詳細は、deleteを参照してください。

export

[-all [0|1]]

[-append [0|1]]

[-contents [0|1]]

[-dependencies [0|1]]

-file filename

[-layout [0|1]]

[-match pattern]

-name "projectname/itemname"

[-owner [0|1]]

[-regex regularexpression]

[-type [dataobject|project|view|businessquery|dashboard|alert|kpi|parameter|ems|all]

exportの詳細は、exportを参照してください。

import

[-batchsize integer]

[-contents [0|1]]

[-continueonerror [0|1]]

[-datamode [error|append|overwrite|update]]]

[-datatruncate [0|1]]

[-dbusername dbusername]

[-dburl dburl]

[-dbdriver dbdriver]

-file filename

[-migrate [0|1]]

[-mode [error|append|overwrite|update]]]

-name "projectname/itemname"

[-preserveowner [0|1]]

-setcol "columnname/overridevalue"

[-type [dataobject|project|view|businessquery|dashboard|alert|kpi|parameter|ems|all]

[-upgrade [0|1]]

importの詳細は、importを参照してください。

rename

-name "projectname/itemname"

-newdisplayname "projectname/itemname"

[-type [dataobject|project|view|businessquery|dashboard|alert|kpi|parameter|ems]

renameの詳細は、renameを参照してください。

17.1.6 操作に関する詳細な説明

この項では、BAMCommand操作について、各種パラメータやその例などの詳細を説明します。次のトピックが含まれています:

17.1.6.1 clear

Oracle BAMサーバーからデータ・オブジェクトのコンテンツをクリアします。

表17-2 clear操作のパラメータ

パラメータ 説明

-name itemname

消去するアイテムの名前。必須。

-type itemtype

クリアするアイテムのタイプ。このパラメータを省略する場合、使用できる値はdataobjectのみです。この値がデフォルトになります。これは例全体で次のように説明されます。

データ・オブジェクトをクリアする方法の例を示します。

bamcommand -cmd clear -name "Call Center" -type dataobject

17.1.6.2 delete

Oracle BAMサーバーからアイテムを削除します。

表17-3 delete操作のパラメータ

パラメータ 説明

-all [0|1]

指定したタイプのすべてのアイテムが削除されるかどうかを制御します(この表の後にコマンド文の例で表示)。

0(ゼロ)以外の値を指定した場合または値を省略した場合は、指定したタイプのすべてのアイテムが削除され、0(ゼロ)を指定した場合は、指定した(一致した)アイテムのみが削除されます。このパラメータを省略すると、ゼロがデフォルトになります。

-match pattern

アスタリスク(*)および疑問符(?)を使用するDOS形式のパターン一致文字列。名前がパターンと一致するアイテムが削除されます。この表の後にコマンド文の例で表示します。

-name "projectname/ itemname"

削除するアイテムの名前。プロジェクト・アーティファクトの場合は、接頭辞としてプロジェクト名を指定する必要があります。

-regex regularexpr

正規表現パターン一致文字列。名前がパターンと一致するアイテムが削除されます。詳細は、正規表現を参照してください。

-type itemtype

削除するアイテムのタイプ。次の値が有効です。

  • dataobject(この表の後にコマンド文の例で表示)

  • project

  • view

  • businessquery

  • dashboard

  • alert

  • kpi

  • parameter

  • ems (エンタープライズ・メッセージ・ソース) (この表の後にコマンド文の例で表示)

  • all

このパラメータを省略すると、dataobjectがデフォルトになります。

データ・オブジェクトを削除する方法の例を示します。TestDOという名前のデータ・オブジェクトを削除します。-typeパラメータを指定しない場合は、dataobjectタイプが使用されます。

bamcommand -cmd delete -name TestDO 

次のコマンドはEMSタイプのすべてのオブジェクトを削除します。

bamcommand -cmd delete -type ems -all 1

共通の接頭辞を持つアイテムも一度に削除できます。たとえば、このコマンドは名前がACMEで開始されるすべてのアイテムを削除します。

bamcommand -cmd delete -match "ACME*" -type all

17.1.6.3 エクスポート

Oracle BAMサーバーの1つ以上のオブジェクトに関する情報をZIPファイルにエクスポートします。エクスポート・ファイルの例は、エクスポート・ファイルの構造を参照してください。

表17-4 export操作のパラメータ

パラメータ 説明

-all [0|1]

指定したタイプのすべてのアイテムについて、エクスポートするかどうかを制御します。

0(ゼロ)以外の値を指定した場合または値を省略した場合は、指定したタイプのすべてのアイテムがエクスポートされ、0(ゼロ)を指定した場合は、指定した(一致した)アイテムのみがエクスポートされます。このパラメータを省略すると、0(ゼロ)が使用されます。

プロジェクトおよびプロジェクト・アーティファクトの場合は、BAMCommandを実行しているユーザーが管理者でないかぎり、そのBAMCommandを実行しているユーザーが所有しているアイテムのみがエクスポートされます。管理者がBAMCommandを実行すると、すべてのユーザーのアイテムがエクスポートされます。

-append [0|1]

エクスポートされた情報を既存のZIPファイルに追加するかどうかを制御します。

ゼロ以外の値を指定した場合または値を省略した場合は、指定したタイプのアイテムが追加され、ゼロを指定した場合は、指定したタイプのアイテムが上書きされます。このパラメータを省略すると、0(ゼロ)が使用されます。

-contents [0|1]

コンテンツ情報(行、列値)をエクスポートするかどうかを制御します。データ・オブジェクトに対してのみ適用されます。contentsパラメータは他のアーティファクトに対して使用できないため、-type allパラメータとともに使用することはできません。

ゼロ以外の値を指定すると、コンテンツ情報がエクスポートされます。ゼロ(0)を指定すると、コンテンツ情報はエクスポートされません。このパラメータを省略すると、ゼロ以外の値がデフォルトになります。

また、次の場合にのみ使用できます。

  • すべてのデータ・オブジェクトが、パラメータ-all 1を使用してエクスポートされる場合

  • 一連のデータ・オブジェクトが、regexまたはmatchパラメータを使用してエクスポートされる場合

  • 単一のデータ・オブジェクトがエクスポートされる場合

-dependencies [0|1]

指定したアイテムとともに依存アイテムをエクスポートするかどうかを制御します。

ゼロ以外の値を指定した場合または値を省略した場合は、依存アイテムが含まれ、ゼロを指定した場合は、依存アイテムが無視されます。このパラメータを省略すると、0(ゼロ)が使用されます。

-file filename

エクスポート先のZIPファイルの名前。必須です。

このファイルが存在しない場合は作成されます。このファイルが存在する場合は、コンテンツが上書きされます。デフォルトの拡張子は.zipです。

-layout [0|1]

データ・オブジェクト・レイアウト(メタデータ)をエクスポートするかどうかを制御します。

ゼロ以外の値を指定した場合はレイアウトがエクスポートされ、ゼロを指定した場合は、レイアウトがエクスポートされません。このパラメータを省略すると、0(ゼロ)が使用されます。

-match pattern

アスタリスク(*)および疑問符(?)を使用するDOS形式のパターン一致文字列。名前がパターンと一致するアイテムがエクスポートされます。

-name "projectname/ itemname"

エクスポートするアイテムの内部名。プロジェクト・アーティファクトの場合は、接頭辞としてプロジェクト名を指定する必要があります。

-owner [0|1]

所有権情報をエクスポートするかどうかを制御します。

-owner nonzeroまたは-ownerのようにゼロ以外の値を指定した場合は所有者情報がエクスポートされ、ゼロを指定した場合は、所有者情報がエクスポートされません。-owner 0を指定したり、集計名-ownerとその値(bamcommand -cmd import -name DOなど)を含む-ownerオプションオプションを指定しないなど、このパラメータを省略すると、ゼロ(0)が使用されます。

-regex regularexpr

正規表現パターン一致文字列。名前がパターンと一致するアイテムがエクスポートされます。詳細は、「正規表現」を参照してください。

-type itemtype

エクスポートするアイテムのタイプ。次の値が有効です。

  • dataobject

  • project

  • view

  • businessquery

  • dashboard

  • alert

  • kpi

  • parameter

  • ems(エンタープライズ・メッセージ・ソース)

  • all

このパラメータを省略すると、dataobjectがデフォルトになります。

次のようにデータ・オブジェクをエクスポートできます。

bamcommand -cmd export -name "CallCenter" -file "C:\CallCenter.zip"

-typeパラメータはこの例に含まれていないことに注意してください。デフォルトでは、指定がない場合-typedataobjectになります。

データ・オブジェクト・コンテンツをエクスポートするには、次のコマンド形式を使用します。

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"

17.1.6.4 インポート

以前にエクスポートしたZIPファイルまたは以前のバージョンのBAMの情報をOracle BAMサーバーにインポートします。このオブジェクトは、作成したり、置き換えたり、更新できます。オブジェクトが存在しない場合、可能であれば作成されます。

データ・オブジェクトの場合は、データ・オブジェクトの作成に必要なレイアウト情報が入力ファイルに含まれている必要があります。ファイルにコンテンツ情報が含まれていない場合は、空のデータ・オブジェクトが作成されます。

表17-5 import操作のパラメータ

パラメータ 説明

-batchsize integer

-migrateが使用されている場合にのみ適用されます。データ移行のJDBCバッチ更新サイズを指定します。デフォルトは10000です。

-contents [0|1]

コンテンツ情報(行、列値)をインポートするかどうかを制御します。データ・オブジェクトに対してのみ適用されます。

ゼロ以外の値を指定すると、コンテンツ情報がインポートされます。ゼロ(0)を指定すると、コンテンツ情報はインポートされません。このパラメータを省略すると、ゼロ以外の値がデフォルトになります。

contentsパラメータは他のアーティファクトに対して使用できないため、-type allパラメータとともに使用することはできません。

migrateパラメータとともに使用する場合は、ゼロを設定できません。

また、次の場合にのみ使用できます。

  • すべてのデータ・オブジェクトが、パラメータ-all 1を使用してインポートされる場合

  • 一連のデータ・オブジェクトが、regexまたはmatchパラメータを使用してインポートされる場合

  • 単一のデータ・オブジェクトがインポートされる場合

-continueonerror [0|1]

-migrateが使用されている場合にのみ適用されます。エラーが発生した場合にデータ・レコードのインポートを続行するかどうかを決定します。

1つのデータ・オブジェクトの移行中にエラーが発生した場合、同じmigrate操作内の他のデータ・オブジェクトは影響を受けません。

ゼロ以外の値を指定すると、true (続行)になります。ゼロ(0)を指定すると、false (続行しない)になります。このパラメータを省略すると、ゼロがデフォルトになります。

このパラメータがtrueである場合、拒否されたデータ・レコードがBADファイルに書き込まれ、別の操作で、これらのレコードを修正してインポートできます。BADファイルの命名規則は次のとおりです。

dataobjectname_BAD_timestamp.xml

-datamode [error|append|overwrite|update]]

インポートしたデータが、既存のデータとどのように相互作用するかを指定します。BEAM_ID列によって一致が判別されます。

  • error (デフォルト): 既存のデータ・レコードとインポートしたデータ・レコードの一致をスキップします。

  • append: インポートしたレコードを既存のデータに影響を与えずに挿入します。

  • overwrite: インポートの前に既存のデータをすべて削除します。

  • update: まだ存在しないレコードを追加し、既存のレコードを更新します。BEAM_IDが指定されていない場合は、インポートしたデータが追加されます。

既存のアイテムの処理方法を指定するには、modeパラメータを使用します。11gデータ・オブジェクト・スキーマをインポートするには、upgradeパラメータを使用します。

-datatruncate [0|1]

-migrateが使用されている場合にのみ適用されます。2000文字を超えるデータ値を、2000文字に切り捨てるかどうかを決定します。

ゼロ以外の値を指定すると、true (切捨て)になります。ゼロ(0)を指定すると、false (切り捨てない)になります。このパラメータを省略すると、1がデフォルトになります。

このパラメータがfalse (0)で、2000文字を超えるデータ値が発生した場合、-continueonerrorパラメータにより、実行されるアクションが決定されます。

-dbusername dbusername

-dburl dburl

これらのパラメータは、-migrateが使用されている場合にのみ適用されます。Oracle BAM 12cデータベースへの接続を指定します。すべて必須です。

便宜上、BAMCommandConfig.xmlファイルでは、12cデータベースのパラメータ以外に、これらのパラメータとdbpasswordを指定できます。詳細は、BAMCommand構成ファイルの使用を参照してください。

-file filename

インポート元のファイルの名前。必須です。通常、これは、export操作を使用して作成されたファイルです。Oracle BAM 11gのデータ・オブジェクトまたはエンタープライズ・メッセージ・ソースの場合はXMLまたはCSVファイルにすることもできます。

-migrate [0|1]

データ・オブジェクトに対してのみ適用されます。Oracle BAM 11gデータをOracle BAM 12cにインポートします。

ゼロ以外の値を指定すると、true (移行)になります。ゼロ(0)を指定すると、false (移行しない)になります。このパラメータを省略すると、ゼロがデフォルトになります。

-migrateが使用されている場合は、dbusernameおよびdburlパラメータが必須となり、batchsizeパラメータがオプションとなります。

11gデータ・オブジェクト・スキーマをインポートするには、upgradeパラメータを使用します。

詳細は、移行の考慮事項を参照してください。

-mode [error|append|overwrite|update]]

インポートしたアイテムが、同じ名前を持つ既存のアイテムとどのように相互作用するかを指定します。

  • error (デフォルト): システムにアーティファクトの依存オブジェクトがすでに存在する場合はインポートを許可しません。たとえば、既存のプロジェクトにデータ・オブジェクトが含まれている場合、同じ名前のプロジェクトはインポートされません。

  • append: 既存のアイテムに依存アイテムがある場合に、インポートを許可し、既存のアイテム定義に追加します。

  • overwrite: 同じ名前を持つ既存のアイテムを削除します。

  • update: 既存のアイテムに依存アイテムがある場合に、インポートを許可し、既存のアイテム定義を更新します。

既存のデータの処理方法を指定するには、datamodeパラメータを使用します。11gデータ・オブジェクト・スキーマをインポートするには、upgradeパラメータを使用します。

-name "projectname/ itemname"

インポートするアイテムの名前。プロジェクト・アーティファクトの場合は、接頭辞としてプロジェクト名を指定する必要があります。

-preserveowner [0|1]

所有権情報をインポートするかどうかを制御します。

ゼロ以外の値を指定した場合または値を省略した場合は、所有権情報がインポートされます。ゼロを指定すると、インポートを実行するユーザーに所有権が設定されます。このパラメータを省略すると、0(ゼロ)が使用されます。

-setcol "columnname/ overridevalue"

データ・オブジェクトに対してのみ適用されます。インポート時にコマンド行から列値をオーバーライドできます。オーバーライド値は、値がない場合はNULL、現在の日時の場合はNOWまたは別の値にできます。

-type itemtype

インポートするアイテムのタイプ。次の値が有効です。

  • dataobject

  • project

  • view

  • businessquery

  • dashboard

  • alert

  • kpi

  • parameter

  • ems(エンタープライズ・メッセージ・ソース)

  • all

このパラメータを省略すると、allがデフォルトになります。

-upgrade [0|1]

データ・オブジェクトおよびEMSオブジェクトに対してのみ適用されます。Oracle BAM 11gアーティファクトをOracle BAM 12cにインポートします。

ゼロ以外の値を指定すると、true (アップグレード)になります。ゼロ(0)を指定すると、false (アップグレードしない)になります。このパラメータを省略すると、ゼロがデフォルトになります。

11gデータ・オブジェクト・データをインポートするには、migrateパラメータを使用します。

詳細は、アップグレードの考慮事項を参照してください。

データ・オブジェクトをインポートしてスキーマをオーバーライドする方法の例を示します。

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」状態になります。

17.1.6.5 rename

Oracle BAMサーバーのアイテムの表示名を変更します。内部名は変更できません。

表17-6 rename操作のパラメータ

パラメータ 説明

-name "projectname/ itemname"

名前を変更するアイテムの内部名。プロジェクト・アーティファクトの場合は、接頭辞としてプロジェクト名を指定する必要があります。

-newdisplayname "projectname/ itemname"

名前を変更するアイテムの新しい表示名。プロジェクト・アーティファクトの場合は、接頭辞としてプロジェクト名を指定する必要があります。

表示名は、データ・オブジェクトでは大/小文字が区別されず、その他のすべてのタイプでは大/小文字が区別されます。フォルダ・パスを示すスラッシュ(/)を除く任意の文字を含めることができます。最大128文字を使用できます。

-type itemtype

名前を変更するアイテムのタイプ。次の値が有効です。

  • dataobject

  • project

  • view

  • businessquery

  • dashboard

  • alert

  • kpi

  • parameter

  • ems(エンタープライズ・メッセージ・ソース)

このパラメータを省略すると、dataobjectがデフォルトになります。

データ・オブジェクトの名前を変更するには、次のコマンドを使用します。内部名がTestDOのデータ・オブジェクトに、表示名MyDOを付けます。-typeパラメータを指定しない場合は、dataobjectタイプが使用されます。

bamcommand -cmd rename -name TestDO -newdisplayname MyDO

ビューの名前を変更するには、次のコマンドを使用します。内部名がBarChart1のビジネス・ビューに、表示名MyViewを付けます。

bamcommand -cmd rename -type view -name BarChart1 -newdisplayname MyView

17.1.7 コマンド・ファイルの構造

この項では、次の項目について説明します。

コマンド・ファイルには、ルート・タグ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>

このサンプル・コマンド・ファイルの出力は、ログ・ファイルの構造を参照してください。

17.1.7.1 操作ID

この機能は、出力をログ・ファイルに送信する場合にのみ使用されます。ログ結果の解析を簡単にするために、各操作に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 &quot;/Data Object A&quot;
 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>

17.1.7.2 エラー時も続行

通常、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>

17.1.8 ログ・ファイルの構造

ログ・ファイルには、ルート・タグBAMCommandLogが含まれています。

ルート・タグ内には、記録されたすべてのエラー・メッセージまたは情報メッセージのエントリがあります。

エラーは、Errorタグ付きで記録されます。

情報メッセージは、Resultsタグ付きで記録されます。

ResultsErrorの両方のタグには、必要に応じて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>

17.1.9 エクスポート・ファイルの構造

エクスポートされた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>

17.1.10 移行の考慮事項

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パラメータにより実行するアクションが決定されます。

17.1.11 アップグレードの考慮事項

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定義を指定する必要があります。

17.1.12 正規表現

exportおよびdelete操作では、必要に応じて-regexパラメータが指定された正規表現を使用できます。

正規表現は、通常の文字(たとえば、aからzの英字)と、メタ文字と呼ばれる特殊文字で構成されるテキストのパターンです。このパターンによって、アイテムを名前で検索するときに一致する1つ以上の文字列を表します。

注意:

BAMCommandの-regexパラメータの動作は、文字シーケンスを正規表現で指定したパターンと照合するためのjava.util.regexパッケージと同じです。

表17-7に、メタ文字の完全なリストおよび正規表現におけるメタ文字の動作を示します。

表17-7 正規表現で使用するメタ文字

文字 説明

\

次に続く文字が特殊文字、リテラル、前方参照または8進エスケープであることを示します。たとえば、「n」は文字「n」と一致します。「\\」は「\」と一致し、「\(」は「(」と一致します。

^

入力文字列の先頭と一致します。RegExpオブジェクトのMultilineプロパティが設定されている場合は、「\n」または「\r」の直後とも一致します。

$

入力文字列の末尾と一致します。RegExpオブジェクトのMultilineプロパティが設定されている場合は、「\n」または「\r」の直前とも一致します。

*

直前の文字または部分式と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コレクションから$0...$9プロパティを使用して取得できます。カッコ( )と一致させるには、「\(」または「\)」を指定します。

(?: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は著作権記号(©)と一致します。

17.2 Loadgenユーティリティの使用

この項では、Oracle BAM 12cのこのリリースに含まれているLoadgenユーティリティの使用方法について説明します。

次のサブセクションが含まれます:

17.2.1 Loadgenの概要

Loadgenユーティリティ(ロード・ジェネレータ)は、Oracle BAM製品をインストールすると提供される単純なユーティリティであり、BAMサーバーへのデータ・フィードのシミュレーションに使用されます。具体的には、永続性レイヤーで、Enterprise Java Bean (EJB)インタフェースを使用して動作します。実際のデータ・フィードに接続しないでアプリケーションのEvent Processing Language (EPL)ルールをテストする場合に役立ちます。ストリームおよびアーカイブ済リレーション・データ・オブジェクト(DO)の両方のロードを生成できます。

ロード・ジェネレータは、サンプル・データ・フィード情報が含まれている1つ以上のXMLファイルを読み取り、各データ・アイテムを構成済ポートに送信します。サンプル・データ・ファイルのアイテムを順番に読み取ってストリームに挿入し、データ・ファイルの最後に到達すると、先頭にループします。これにより、ファイル内のデータ・アイテムの数に関係なく、データの継続的なストリームが実現されます。開始時点のレート、最終レート、およびロード・ジェネレータが最終レートにランプアップするのにかかる時間から、送信データのレートを構成できます。

17.2.1.1 Loadgenの機能

ロード・ジェネレータは、ダッシュボードのテストに使用することが想定されています。これは、ロード・シナリオなどの本番をシミュレートする、機能およびロードのテストに特に便利です。

このユーティリティでは、次のユースケース機能がサポートされています。

  • システムのデータの精度に関する機能テストをサポートするための、システムへのデータ・フィードのシミュレーション。たとえば、このユーティリティを使用して、データをフィードし、CQLテンプレートをテストします(ストリームDOとのパターン一致やアーカイブ済リレーションDOのダッシュボードなど)。

  • 進行中のロードを生成するルーピング・コンストラクトの指定。

  • アーカイブ済リレーションDOの挿入、削除および更新イベントとストリームDOの挿入イベントの指定。

  • 特定のイベントのみを更新するフィルタ条件の指定。

  • 初期インジェクション・レートと最終インジェクション・レートの指定。初期レートと最終レートの間の期間はランプアップ期間と呼ばれます。最終レート状態に到達すると、期間が切れるまで一定のレートでデータがインジェクトされます。

  • 高いスループット・レートを達成するための複数のコンシューマ・スレッドの指定。

  • 1つ以上のXMLファイルでの入力データの指定。XMLファイルは順番に処理されます。各イベントに関連付けられたターゲットDOが必要となります。

  • 複数のイベントを単一の操作にグループ化するバッチ操作の指定。

  • プレーン・テキスト制御ファイルのコマンド行からのLoadgenの実行。制御ファイルのコマンド行を使用したLoadgenの実行を参照してください。

  • 本番デプロイメントをシミュレーションする大量のロードに対応するための、固定期間を使用したインジェクトの頻度の指定。詳細は、使用例を参照してください。

17.2.2 構成および実行

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の挿入、更新および削除の例を参照してください。

17.2.2.1 コマンド行構文

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

-usernameで指定したユーザーのパスワードを指定します。

文字列

はい

host

ターゲットのBAMサーバーのホスト名またはIPアドレスを指定します。デフォルトはlocalhostです。

文字列

いいえ

port

ターゲットのBAMサーバーのポート番号を指定します。デフォルトは7001です。

整数

いいえ

protocol

使用する通信プロトコルを指定します。SSLの場合は、t3またはt3sのいずれかです。デフォルトはt3です。

文字列

いいえ

url

-host-portおよび-protocolを使用するかわりに、ターゲットのBAMサーバーのURLを指定します。デフォルトはt3://localhost:7001です。

文字列

いいえ

file

bamloadgenを実行するコマンド行引数を含む制御ファイルを指定します。制御ファイルのコマンド行を使用したLoadgenの実行を参照してください。

文字列

いいえ

retry_count

失敗したセッションを再確立する再試行の回数。デフォルトは30です。

整数

いいえ

retry_interval

失敗したセッションを再確立する再試行間に待機するミリ秒数。デフォルトは1000です。

整数

いいえ

17.2.3 使用例

この項では、様々な使用シナリオの例を示します。

17.2.3.1 安定したレートで固定期間のデータをインジェクトするための-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

17.2.3.2 単一のファイルで初期レートから最終レートまでのレートでのインジェクト

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にこれを示します。

図17-1 単一のファイルでの初期から最終へのインジェクション・レートの変化例

図17-1の説明が続きます
「図17-1 単一のファイルでの初期から最終へのインジェクション・レートの変化例」の説明

17.2.3.3 スループット向上のための複数スレッド

-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

17.2.3.4 複数のXML入力ファイル

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にこれを示します。

図17-2 複数の入力ファイルでのインジェクション・レートの変化例

図17-2の説明は次にあります。
「図17-2 複数の入力ファイルでのインジェクション・レートの変化例」の説明

17.2.3.5 複数のイベントを単一の操作にグループ化するバッチング操作

-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

17.2.3.6 機能テストのデータのシミュレーション

このコマンド行では、ストリーム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を指定すると、データ・フィード・ループが無限に実行されます。

17.2.3.7 アーカイブ・リレーションDOおよびストリームDOでの操作

この例では、アーカイブ済リレーション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>

17.2.3.8 制御ファイルのコマンド行を使用したLoadgenの実行

次のコマンド行を実行して、制御ファイル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

17.2.3.9 CRUD XMLの挿入、更新および削除の例

次の例を参照してください。

  • データを挿入するための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>