ヘッダーをスキップ
Oracle® Fusion Middleware Oracle SOA Suite開発者ガイド
11g リリース1 (11.1.1.4.0)
B56238-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

58 ICommandの使用

この章では、ICommandコマンドライン・ユーティリティの使用方法について説明します。

項目は次のとおりです。

58.1 ICommandの概要

ICommandは、アクティブ・データ・キャッシュのアイテム上で様々な操作を実行する一連のコマンドを提供する、コマンドライン・ユーティリティ(およびWebサービス)です。ICommandを使用すると、アクティブ・データ・キャッシュからのアイテムのエクスポート、インポート、名前の変更、消去および削除が可能です。これらのコマンドは、一連のコマンドとして入力XMLファイル内に含めることも、単一のコマンドとしてコマンドラインに入力することもできます。情報メッセージおよびエラー・メッセージは、コマンド・ウィンドウまたはXMLファイルのいずれかに出力されます。

ICommand Webサービスの使用方法の詳細は、第56.5項「ICommand Webサービスの使用」を参照してください。

個々のコマンドとそのパラメータの詳細は、付録G「Oracle BAM ICommandの操作とファイル・フォーマット」を参照してください。

58.2 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から新しいポート番号に手動で変更する必要があります。

次のプロパティを変更します。

<ServerPort>9001</ServerPort>

BAMICommandConfig.xmlファイルは、WLS_HOME/user_projects/domains/base_domain/config/fmwconfig/servers/bam_server1/applications/oracle-bam_11.1.1/config/にあります。


58.3 コマンドおよびオプションの構文の指定

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項「操作に関する詳細な説明」を参照してください。

58.3.1 セキュリティ資格証明の指定方法

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
    

58.3.2 コマンドの指定方法

コマンドラインでは、コマンドはcmdパラメータの値で指定されます。コマンドのオプションは追加パラメータで指定されます。次に例を示します。

icommand -cmd export -name TestDO 
 -type dataobject -file C:\TestDO.xml

XMLコマンド・ファイルでは、XMLタグでコマンドが指定されます。コマンドのオプションは、コマンド・タグのXML属性値として、parametername=valueの形式で指定されます。

コマンド名およびパラメータ値(アクティブ・データ・キャッシュのアイテム名は除く)では、大/小文字は区別されません。

個々のコマンドとそのパラメータの詳細は、付録G「Oracle BAM ICommandの操作とファイル・フォーマット」を参照してください。

58.3.3 オブジェクト名の指定方法

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

一般的ルール

コマンドラインで指定する際に、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つ目の形式のみを使用できます。

その他のすべてのオブジェクト・タイプ

オブジェクトのフルネームを指定します。

58.3.4 複数パラメータ・ターゲットの指定方法

アクティブ・データ・キャッシュの各オブジェクト・タイプ(データ・オブジェクト、フォルダ、レポートおよびルールなど)に対して、特定のコマンドを実行するために別々のコマンドラインを作成するかわりに、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 ...

58.4 コマンドライン専用パラメータの使用

次のパラメータは、コマンドラインでのみ指定できます。

58.5 ICommandのリモート実行

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