この章では、ICommandコマンドライン・ユーティリティを使用して、アクティブ・データ・キャッシュにあるアイテムに対して操作(エクスポート、インポート、名前の変更など)を実行する方法について説明します。また、リモート・システムからICommandを実行する方法、およびリモートにあるサーバー上でコマンドを実行する方法についても説明します。
この章では、次の項目について説明します。
ICommandは、アクティブ・データ・キャッシュのアイテム上で様々な操作を実行する一連のコマンドを提供する、コマンドライン・ユーティリティ(およびWebサービス)です。ICommandを使用すると、アクティブ・データ・キャッシュからのアイテムのエクスポート、インポート、名前の変更、消去および削除が可能です。これらのコマンドは、一連のコマンドとして入力XMLファイル内に含めることも、単一のコマンドとしてコマンドラインに入力することもできます。情報メッセージおよびエラー・メッセージは、コマンド・ウィンドウまたはXMLファイルのいずれかに出力されます。
ICommand Webサービスの使用方法の詳細は、第59.5項「ICommand Webサービスの使用」を参照してください。
個々のコマンドとそのパラメータの詳細は、付録G「Oracle BAM ICommandの操作とファイル形式」を参照してください。
ICommandは、Microsoft WindowsプラットフォームでORACLE_HOME
\bam\bin\icommand.bat
ファイルを使用して実行することも、UNIXプラットフォーム上でORACLE_HOME
\bam\bin\icommand.sh
シェル・スクリプトを使用して実行することもできます。
コマンドラインでicommand
と入力すると、ICommandの操作とパラメータのサマリーが表示されます。
ICommandを実行するには、その前に、JAVA_HOME
環境変数が、サポートされているJava Development Kitのバージョンのルート・ディレクトリを指すように設定されている必要があります(サポートされているJDKのバージョンについては、Oracle Technology Network WebサイトにあるOracle BAMサポート・マトリックスを参照してください)。
注意: Oracle BAMがインストールされると、ICommandは、デフォルトでポート9001でOracle BAMサーバーを検索します。Oracle BAMサーバーのポート番号が、Oracle BAMの設定および構成時にデフォルトから変更されている場合は、ファイルBAMICommandConfig.xml 内のポート番号を9001から新しいポート番号に手動で変更する必要があります。
次のプロパティを変更します。
|
ICommandのコマンドライン入力の基本構造は次のようになります。
icommand -username user_name -cmd command_name -name value -type value [-parameter value]
コマンドラインで指定するすべてのパラメータの形式は次のとおりです。
-parameter value
parameter
部分では、大/小文字は区別されません。value
部分に空白または他の特殊文字を含める場合は、それらを二重引用符で囲む必要があります。次に例を示します。
icommand -cmd export -name "/Samples/Call Center" -type dataobject -file C:\CallCenter.xml
空白およびその他の特殊文字が含まれているレポート名およびファイル名は、引用符で囲む必要があります。
一部のパラメータでは、value
を省略できます。個々のパラメータ値の詳細は、G.2項「操作に関する詳細な説明」を参照してください。
ICommandでは、操作の実行時にユーザーがセキュリティ資格証明を指定する必要があります。セキュリティ資格証明が構成ファイルに指定されていない場合、ICommandでは、安全な方法でユーザー名とパスワードの入力が求められます。
デフォルトの資格証明を使用するには、WLS_HOME
/user_projects/domains/base_domain/config/fmwconfig/servers/bam_server1/applications/oracle-bam_11.1.1/config/BAMICommandConfig.xml
ファイルに、ICommand_Default_User_Name
およびICommand_Default_Password
プロパティを追加します。例:
<ICommand_Default_User_Name>user_name</ICommand_Default_User_Name> <ICommand_Default_Password>password</ICommand_Default_Password>
ただし、コマンドライン入力は常に、構成ファイルに指定したプロパティをオーバーライドします。
ICommand操作の実行に使用するユーザー名とパスワードは、構成ファイル、コマンドライン・プロンプトまたはコマンドライン・オプションから次のように取得されます。
ユーザー名とパスワードを構成ファイルにのみ指定している場合(つまり、-username
パラメータをコマンドラインで使用していない場合)は、構成ファイルのICommand_Default_User_Name
およびICommand_Default_Password
の値が使用されます。
ユーザー名のみを構成ファイルで指定し、パスワードを指定していない場合は、そのユーザー名の値が使用され、コマンドラインでパスワードの入力が求められます。
コマンドラインでユーザー名を指定した場合は、その値が使用され、パスワードの入力が求められます。パスワードのプロンプトは、構成ファイルに指定されているプロパティに関係なく表示されます。例:
icommand -cmd export -name TestDO -file C:\TestDO.xml -username user_name
コマンドラインでは、コマンドはcmd
パラメータの値で指定されます。コマンドのオプションは追加パラメータで指定されます。次に例を示します。
icommand -cmd export -name TestDO -type dataobject -file C:\TestDO.xml
XMLコマンド・ファイルでは、XMLタグでコマンドが指定されます。コマンドのオプションは、コマンド・タグのXML属性値として、parametername=
value
の形式で指定されます。
コマンド名およびパラメータ値(アクティブ・データ・キャッシュのアイテム名は除く)では、大/小文字は区別されません。
個々のコマンドとそのパラメータの詳細は、付録G「Oracle BAM ICommandの操作とファイル形式」を参照してください。
オブジェクト名をコマンドに指定する場合は、常に次のルールが適用されます。
一般的ルール
コマンドラインで指定する際に、DOSまたはUNIXで特殊な意味となる空白または文字を名前に含める場合は、コマンドラインのルールに従ってその名前を引用符で囲む必要があります。
XMLコマンドラインで指定する際に、XMLでは特殊な意味となる文字を名前に含める場合は、標準XMLエスケープを使用する必要があります。
データ・オブジェクト
データ・オブジェクトがルートに存在しない場合は、フルパス名を指定する必要があります。次に例を示します。
/MyFolder/MySubfolder/MyDataObject
データ・オブジェクトがルートに存在する場合、先頭のスラッシュ(/)はオプションです。次の2つの例は同等です。
/MyDataObject MyDataObject
データ・オブジェクト・フォルダ
データ・オブジェクト内のフォルダを指定するには、フォルダのパスの先頭に接頭辞/public/DataObject/
を指定する必要があります。
/public/DataObject/MyFolder/MySubfolder
レポートとレポート・フォルダ
次の例に示すように、フルパス名と適切な接頭辞を指定する必要があります。
共有レポートの場合は、次に示すように/public/Report/
接頭辞を指定する必要があります。
"/public/Report/Subfolder1/My Report"
プライベート・レポートの場合は、/private:
user_name
/Report/
接頭辞を指定する必要があります。
"/private:jsmith/Report/Subfolder1/My Report"
ICommandを実行しているユーザーがレポートを所有しているユーザーである場合は、接頭辞の/private:
user_name
/
の部分を省略できます。
"Report/Subfolder1/My Report"
接頭辞public
またはprivate
が付いていないパス情報はエクスポート・ファイルに保存されます。
同様に、レポート・フォルダも適切な接頭辞を使用して指定できます。
/public/Report/Subfolder1 /private:jsmith/Report/Subfolder1
アラート・ルール
アラートの名前またはフルネームのいずれかを指定できます。次の2つの例は、ICommandを実行するユーザーがAlert1を所有するユーザーである場合は同等です。
Alert1
/private:user_name/Rule/Alert1
ICommandを実行するユーザーがAlert1の所有者でない場合は、2つ目の形式のみを使用できます。
その他のすべてのオブジェクト・タイプ
オブジェクトのフルネームを指定します。
アクティブ・データ・キャッシュの各オブジェクト・タイプ(データ・オブジェクト、フォルダ、レポートおよびルールなど)に対して、特定のコマンドを実行するために別々のコマンドラインを作成するかわりに、ICommandでは、複数のオブジェクト・タイプに同じコマンドラインでパラメータ値を渡すことができます。
例:
icommand -cmd export -type all -report,rule,folder:owner 1 -dataobject,folder:permissions 1 -systemobjects 1 -file filename.xml
この例では、システム内のすべてのオブジェクトがエクスポートされますが、owner = 1は、レポート、ルールおよびフォルダの各アクティブ・データ・キャッシュ・オブジェクト・タイプに渡されます。また、permissions = 1は、データ・オブジェクトおよびフォルダの各オブジェクト・タイプに渡されます。カンマ(,)でオブジェクト・タイプが区切られ、コロン(:)の後にパラメータがリストされています。
この例の単一コマンドラインで複数の値を指定する方法は、次の3つのコマンドと同じ結果となります。
icommand -cmd export -type report -owner 1 ... icommand -cmd export -type rule -owner 1 ... icommand -cmd export -type folder -owner 1 ...
Cmd
-cmd commandname
実行する単一のコマンドを指定するオプションのパラメータ。そのコマンドに必要なパラメータをコマンドラインに指定する必要もあります。
Cmdfile
およびcmd
パラメータは相互に排他的です。いずれかのみを指定する必要があります。
Cmdfile
-cmdfile file_name
処理されるコマンドが含まれているファイルの名前を指定するオプションのパラメータ。このファイルはXMLファイルであるため、通常、XML拡張子が使用されますが、必須ではありません。
Cmdfile
およびcmd
パラメータは相互に排他的です。いずれかのみを指定する必要があります。
Debug
-debug flag
エラーが発生した場合に追加のデバッグ情報を出力するかどうかを指定するオプションのパラメータ。0
(ゼロ)以外の値の場合または値を指定しない場合は、デバッグ情報が出力されます。このパラメータが存在しない場合、デバッグ情報は出力されません。
Domain
-domain domain_name
アクティブ・データ・キャッシュへのログインに使用するドメイン名(アクティブ・データ・キャッシュ・サーバーが実行されているコンピュータの名前)を指定するオプションのパラメータ。
このパラメータを省略すると、main
が使用されます。この場合、ICommand.exe.config
ファイル内のServerName
プロパティからサーバー情報が取得されます。
予約値ADCInProcServer
が使用されると、ICommandは、アクティブ・データ・キャッシュ・サーバーには接続せずに、(ICommandが実行されているシステムと同じシステムにローカルで存在する必要がある)アクティブ・データ・キャッシュ・データベースに直接アクセスします。このオプションは、アクティブ・データ・キャッシュ・サーバーが実行されていない場合にのみ必要です。それ以外の場合に使用すると、データベースが破損する可能性があります。アクティブ・データ・キャッシュ・データベースの場所および構造に関する情報は、ICommand.exe.configファイルの様々なキーから取得されます。
Logfile
-logfile file_name
結果およびエラーが記録されるファイルの名前を指定するオプションのパラメータ。このファイルが存在しない場合は作成されます。このファイルが存在する場合は、コンテンツが上書きされます。このファイルはXMLファイルであるため、通常、XML拡張子が使用されますが、必須ではありません。
このパラメータが存在しない場合、結果およびエラーはコンソールに出力されます。
ログ・ファイルのフォーマットに関する詳細は、G.4項「ログ・ファイルのフォーマット」を参照してください。
Logmode
-logmode mode
既存のログ・ファイルが上書きされるか、既存のログ・ファイルに追加されるかを指定するオプションのパラメータ。このパラメータに指定可能な値は、append
またはoverwrite
です。いずれの場合も、このファイルが存在しない場合は作成されます。
このパラメータが存在しない場合は、overwrite
が使用されます。
ログ・ファイルにはXMLが追加されるため、append
オプションを使用すると、生成されるXMLが厳密な正規表現にならない場合があります。これは、追加を連続していって生成されたXMLには最上位のルート・タグが存在しなくなるため(ICommandを実行するたびに同じタグが追加されるため)です。これは、ユーザーが対処する必要があります。
Username
-username user_name
コマンドを実行するとみなすユーザー名を指定するオプションのパラメータ。パスワード・パラメータはありません。
ICommandでは、コマンドの実行時にユーザーがセキュリティ資格証明を指定する必要があります。ICommandでは、安全な方法でユーザー名とパスワードの入力が求められます。コマンドラインに-username
パラメータを指定している場合は、パスワードの入力のみが求められます。
リモート・システム(Oracle BAMがインストールされた)からICommandを実行して、リモートにあるサーバー上でコマンドを実行できます。ICommandをリモートで実行するには、プロパティである「ServerName」と「ServerPort」を、下記に示されているようにWLS_HOME
/user_projects/domains/base_domain/config/fmwconfig/servers/bam_server1/applications/oracle-bam_11.1.1/config/
BAMICommandConfig.xml
に追加します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <BAMICommand> <ServerName>host_name</ServerName> <ServerPort>7001</ServerPort> <Communication_Protocol>t3</Communication_Protocol> <SensorFactory>oracle.bam.common.statistics.noop.SensorFactoryImpl</SensorFactor y> <GenericSatelliteChannelName>invm:topic/oracle.bam.messaging.systemobjectnotific ation</GenericSatelliteChannelName> </BAMICommand>
リモート・システムにインストールされているOracle BAMバージョンは、Oracle BAMサーバー・バージョンと同一である必要があります(つまり、両サーバーともに同じラベルであること)。