Oracle® Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド 11g リリース1 (11.1.1.5.0) B55916-05 |
|
前 |
次 |
この章では、SOAコンポジット・アプリケーションをプログラムで管理するためのFacade APIの概要を示します。
この章の内容は、次のとおりです。
実行時にFacade APIを使用してSOAコンポジット・アプリケーションをプログラムで管理できます。Facade APIは、Oracle SOA SuiteのInfrastructure Management Java APIの一部です。Facade APIは、コンポジット、コンポーネント、サービス、参照などの操作と属性を公開します。Facade APIでは、Oracle Enterprise Manager Fusion Middleware Controlでのコンポジットの管理の代替方法が提供されます。
oracle.soa.management.facade.Locator
インタフェースは、ほとんどのFacade APIに対する最上位レベルのエントリ・ポイントとしてメソッド・インタフェースを公開します。oracle.soa.management.facade.Locator
インタフェースは、コンポジットにDirectConnection
を返すcreateConnection
メソッドを公開します。LocatorFactory
実装を使用してDirectConnection
を取得できます。LocatorFactory
およびDirectConnection
の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の直接バインディング起動APIの概要に関する項を参照してください。DirectConnection
クラスおよびDirectConnectionFactory
クラス(直接バインディング接続の作成用)は、oracle.soa.api.invocation
パッケージに入っています。
パーティション管理APIは、Locator
によって公開されません。かわりに、パーティション管理APIに対する最上位レベルのエントリ・ポイントはServerManager
です。例10-1に示すServerManagerFactory
実装を使用して、SOAサーバーを管理するためのServerManager
オブジェクトを作成します。
例10-1 ServerManagerFactory
ServerManagerFactory smf = ServerManagerFactory.getInstance(); Hashtable jndiProps = new Hashtable(); jndiProps.put(Context.PROVIDER_URL, "server_JNDI_provider_url"); jndiProps.put(Context.INITIAL_CONTEXT_FACTORY, "server_initial_context_factory_ classname"); jndiProps.put(Context.SECURITY_PRINCIPAL, "jndi_user"); jndiProps.put(Context.SECURITY_CREDENTIALS, "jndi_password"); ServerManager sm = smf.createInstance(jndiProps);
Facade APIの詳細は、Oracle Fusion MiddlewareのOracle SOA Suite Infrastructure Management Java API リファレンスを参照してください。
表10-1に、Facade APIインタフェースの概要を示します。
表10-1 Facade APIインタフェース
インタフェース | 説明 |
---|---|
|
このアクティビティが属するインスタンスのインスタンスID(キー)、コンポーネント名、アクティビティの作成日、現在のアクティビティの有効期限などを取得します。 |
|
非同期ジョブ・タイプに関する詳細を取得します。 注意: このインタフェースは非推奨となっています。 |
|
非同期プロセスの結果を取得します。 |
|
URI、タイプ、サブタイプなどのバインディングの詳細を取得します。 |
|
特定のフォルト・フィルタで指定されたバインディング・タイプとフォルトのリストを取得します。 |
|
一貫性レベル、フィルタ・タイプ、ローカル名、ネームスペースURI、接頭辞など、ビジネス・イベントの詳細を取得します。 |
|
識別名(DN)、アクティブなインスタンス、失敗したインスタンス、インスタンスの合計、デプロイメント時間など、コンポーネントの詳細を取得します。 |
|
監査証跡、コンポーネント・インスタンスの状態(正常に完了、失敗、実行中など)、対話ID、作成日など、コンポーネント・インスタンスの詳細を取得します。 |
|
識別名(DN)、アクティブなインスタンス、失敗したインスタンス、インスタンスの合計、デプロイメント時間など、コンポジットの詳細を取得します。 |
|
コンポジット・インスタンスの状態(正常に完了、失敗、実行中など)を取得します。 |
|
特定のフォルト・フィルタで指定されたイベント・ブリッジ・タイプとフォルトのリストを取得します。 |
|
フォルトがバインディング・コンポーネントで発生した場合のバインディング・タイプ、コンポーネント・インスタンスID、フォルトが発生したコンポーネントの名前、フォルトが生成された時刻、フォルトがサービス・エンジンで発生した場合のサービス・エンジン・タイプなど、フォルトの詳細を取得します。 |
|
インスタンスの終了、失敗したアクティビティを完了としてマーク、拒否メッセージをファイルに格納、失敗したアクティビティをリカバリ済としてマーク、アクティビティの再試行など、アクションのタイプを提供します。 |
|
フォルト、エラー、リカバリ可能なフォルト、リカバリできないフォルトなどを取得します。 |
|
フォルト・リカバリ・サービス・エンジンを提供します。 |
|
インポートされたリソースの場所とインポート・タイプを取得します。 |
|
コールバック・インタフェースとインタフェースのプロパティを取得します。 |
|
Facade APIクライアントのエントリ・ポイントとしてメソッド・インタフェースを公開します。 |
|
コンポーネント名、コンポジットDN、メッセージの内容、対話ID、メッセージの格納場所、メッセージのリカバリ可能状態など、メッセージの詳細を取得します。 |
|
パーティション内のすべてのコンポジットの開始、停止、アクティビティ化、リタイアなど、パーティション化のライフサイクル管理タスクを実行します。 |
|
プロパティのデフォルト値、名前、オーバーライド属性値、プロパティ値のソースなど、プロパティの詳細を取得します。 |
|
ターゲット・サービスのWSDL URL、参照のプロパティ、参照名、参照バインディングなど、参照の詳細を取得します。 |
|
バインディングのタイプを取得します。コンポジットのDN、コンポジット・インスタンスID、インスタンスの作成時刻などです。 |
|
パーティションを取得および作成します。 |
|
バインディング、コンポジットDN、インタフェース・タイプ、名前、多重度など、サービスの詳細を取得します。 |
|
サービス・エンジンでデプロイされたコンポーネントのリスト、エンジン・タイプ、および特定のフォルト・フィルタで指定されたフォルトのリストを取得します。 |
|
バインディングのタイプなどのサービス・インスタンスの詳細を取得します。コンポジットのDN、コンポジット・インスタンスID、作成時刻などです。 |
|
デフォルト・アドレスURI、エンドポイント・アドレスURI、ポート、トランスポート・タイプなどを取得します。 |
|
ポート名、ポートURI、サービス名などを取得します。 |
|
ワイヤ参照、ワイヤ・サービス、ソースURIおよびターゲットURIを取得します。 |
|
WSDL URLを取得します。 |
この項では、Facade APIを使用してコンポジット管理を実行する例をいくつか示します。
Facade APIを使用してコンポジットの状態を取得できます。
モード: アクティブ | リタイア
この設定では、新規インスタンスを作成できるか(アクティブ)、または新しいインスタンスを作成せずに古いインスタンスを完了できるか(リタイア)を決定します。
状態: オン | オフ
この設定はコンポジット状態であり、コンポジット・リビジョンへのコール・アクセス(呼出し/コールバック)を許可するか(オン)、コール・アクセスを許可しないで(オフ)、「アクティブ」または「リタイア」コンポジット・モードをオーバーライドします。
oracle.soa.management.facade.Locator#getComposite(compositeDN)
を使用して、目的のコンポジットへの参照を取得します。
コンポジット参照から、次のメソッドを使用してモードおよび状態を問い合せることができます。
String
getMode()
String
getState()
Facade APIでコンポジット・インスタンスおよびコンポーネント・インスタンスを検索できます。
Locator
インタフェースを使用してComposite
(locator.lookupComposite(compositeDN))
を検索します。コンポジットがまだ呼び出されていない場合、インスタンスはありません。
次に、インスタンスを検索し、関連情報(インスタンスID、実行されたコンポーネントなど)を取得できます。
Composite composite = locator.lookupComposite("default/OrderBookingComposite!1.0"); // The context is already the composite, so there is no need to set the DN as a filter criterion CompositeInstanceFilter filter = new CompositeInstanceFilter(); filter.setMinCreationDate(new java.util.Date((System.currentTimeMillis() - 20000))); // Get composite instances by filter List compositeInstances = composite.getInstances(filter); // for each of the returned composite instances.. for (CompositeInstance instance : compositeInstances) { long instanceId = instance.getId(); Date created = instance.getCreationDate(); String state = instance.getState(); // Configure a component instance filter ComponentInstanceFilter cInstanceFilter = new ComponentInstanceFilter (); // Get the child component instances List componentInstances = instance.getChildComponentInstances(cInstanceFilter); for (ComponentInstance compInstance : componentInstances) { String compName = compInstance.getComponentName(); long compInstanceId = compInstance.getId(); String type = compInstance.getServiceEngine().getEngineType(); // State values correspond to constants defined by the ComponentInstance interface int state = compInstance.getState(); } // Retrieve composite sensors List sensorData = instance.getSensorData(); }