Oracle Application Server Adapter for PeopleSoftユーザーズ・ガイド 10g リリース3(10.1.3.4.0) B53281-01 |
|
戻る |
次へ |
この章では、Oracle Containers for J2EE(OC4J)のデプロイおよびOracleAS Adapter for PeopleSoftとの統合について説明します。
この章の項目は次のとおりです。
OracleAS Adapter for PeopleSoftは、インストール時にOC4Jコンテナ内にデプロイされます。すべてのクライアント・アプリケーションは、OC4J環境で実行されます。J2CAのデプロイでは、共通クライアント・インタフェース(CCI)により、OC4Jクライアント・アプリケーションがリソース・アダプタと統合されます。
図3-1に、Oracle Application Serverへのコネクタのデプロイを示します。 ランタイム・サービスの使用例では、EJB(Enterprise Java Bean)、サーブレットまたはJavaプログラム・クライアントがJ2CAリソース・アダプタに対してCCIコールを実行します。アダプタは、このコールをリクエストとして処理し、EISに送ります。EISのレスポンスはクライアントに送られます。
図3-1 Oracle Application Server AdapterのJ2CAアーキテクチャ
OracleAS Adapter for PeopleSoftのJ2CAデプロイ中に、OC4Jによりoc4j-ra.xml
というデプロイメント・ディスクリプタが生成され、OC4J_home
¥j2ee¥home¥application-deployments¥default¥jca_app_adapter
に配置されます。
注意: インストールには、 oc4j-ra.xml というファイルが複数含まれています。この項で説明するOC4Jデプロイメント・ディスクリプタは、前述のディレクトリにあります。 |
単一の管理コネクタ・ファクトリ・オブジェクトの作成
oc4j-ra.xml
記述子は、リソース・アダプタに関するOC4J固有のデプロイ情報を提供します。 たとえば、Application Explorerにおけるデフォルトのjca_sample
構成は、oc4j-ra.xml
ファイルでは次のように表されます。
<?xml version="1.0"?><!DOCTYPE oc4j-connector-factories PUBLIC "-//Oracle//DTD Oracle Connector 9.04//EN" "http://xmlns.oracle.com/ias/dtds/oc4j-connector-factories-9_04.dtd"> <oc4j-connector-factories> <connector-factory location="eis/OracleJCAAdapter/DefaultConnection" connector-name="IWAFJCA10"> <config-property name="IWayHome" value="../../adapters/application"/> <config-property name="IWayConfig" value="jca_sample"/> <config-property name="IWayRepoURL" value=""/> <config-property name="IWayRepoUser" value=""/> <config-property name="IWayRepoPassword" value=""/> <config-property name="logLevel" value="debug"/> </connector-factory> </oc4j-connector-factories>
次の表に、oc4j-ra.xml
ファイルに定義されているパラメータを示します。
パラメータ名 | 説明 |
---|---|
IWayHome | OracleASにパッケージされたアプリケーション・アダプタの基本インストール・ディレクトリ。 |
IWayConfig | Application Explorerで定義されているアダプタ構成名。たとえば、OracleAS Adapter for PeopleSoftの場合は、Application Explorerでjca_sample 構成が事前に構成されています。 |
IWayRepoURL | データベースへの接続をオープンするときに使用するURL。 このURLが必要なのは、BSEリポジトリとしてOracleデータベースを使用する場合のみです。詳細は、「BSEシステム設定の構成」を参照してください。 |
IWayRepoUser | データベースへの接続時に使用するユーザー名。 このユーザー名が必要なのは、BSEリポジトリとしてOracleデータベースを使用する場合のみです。詳細は、「BSEシステム設定の構成」を参照してください。 |
IWayRepoPassword | パスワード。指定すると、構成が上書きされます。 このパスワードが必要なのは、BSEリポジトリとしてOracleデータベースを使用する場合のみです。詳細は、「BSEシステム設定の構成」を参照してください。 |
loglevel | ManagedConnectionFactoryプロパティで設定されているレベルが上書きされます。 . |
複数の管理コネクタ・ファクトリ・オブジェクトの作成
複数の管理コネクタ・ファクトリ・オブジェクトを設定するには、oc4j-ra.xml
ファイルを編集して<connector-factory>
ノードを追加する必要があります。 たとえば、Application Explorerにおけるデフォルトのjca_sample
構成は、oc4j-ra.xml
ファイルでは次のように表されます。
<?xml version="1.0"?><!DOCTYPE oc4j-connector-factories PUBLIC "-//Oracle//DTD Oracle Connector 9.04//EN" "http://xmlns.oracle.com/ias/dtds/oc4j-connector-factories-9_04.dtd"> <oc4j-connector-factories> <connector-factory location="eis/OracleJCAAdapter/DefaultConnection" connector-name="IWAFJCA10"> <config-property name="IWayHome" value="../../adapters/application"/> <config-property name="IWayConfig" value="jca_sample"/> <config-property name="IWayRepoURL" value=""/> <config-property name="IWayRepoUser" value=""/> <config-property name="IWayRepoPassword" value=""/> <config-property name="logLevel" value="debug"/> </connector-factory> </oc4j-connector-factories>
複数の管理コネクタ・ファクトリ・オブジェクトを作成するには、ファイルに新規の<connector-factory>ノードを追加する必要があります。次に例を示します。
<?xml version="1.0"?><!DOCTYPE oc4j-connector-factories PUBLIC "-//Oracle//DTD Oracle Connector 9.04//EN" "http://xmlns.oracle.com/ias/dtds/oc4j-connector-factories-9_04.dtd"> <oc4j-connector-factories> <connector-factory location="eis/OracleJCAAdapter/DefaultConnection1" connector-name="IWAFJCA10"> <config-property name="IWayHome" value="../../adapters/application"/> <config-property name="IWayConfig" value="jca_sample"/> <config-property name="IWayRepoURL" value=""/> <config-property name="IWayRepoUser" value=""/> <config-property name="IWayRepoPassword" value=""/> <config-property name="logLevel" value="debug"/> </connector-factory> <connector-factory location="eis/OracleJCAAdapter/DefaultConnection2" connector-name="IWAFJCA10"> <config-property name="IWayHome" value="../../adapters/application"/> <config-property name="IWayConfig" value="jca_sample2"/> <config-property name="IWayRepoURL" value=""/> <config-property name="IWayRepoUser" value=""/> <config-property name="IWayRepoPassword" value=""/> <config-property name="logLevel" value="debug"/> </connector-factory> </oc4j-connector-factories>
次の例では、パッケージされたアプリケーション・アダプタでCCIを使用するためのコード構造を示します。 コード例は4つのステップに分かれています。
注意: OracleAS Adapter for PeopleSoftは、CCI APIによる起動をサポートしていません。 Oracle BPEL Process ManagerおよびESBを使用した起動のみがサポートされています。 次の項はリファレンス用に掲載します。 |
ステップ1. コネクション・ファクトリの取得
コネクション・ファクトリはJNDIルックアップにより取得されます。
InitialContext context = new InitialContext(); ConnectionFactory cf = (ConnectionFactory)context.lookup(iwayJndi)
ステップ2. アダプタ用接続の取得
IWAFConnectionSpecは、デザインタイム時またはランタイム時のサービス・アダプタ接続を作成するために使用されるConnectionSpecの実装です。ConnectionSpecには7つのパラメータがあります。ログ・レベルを除き、これらのパラメータに基づいて接続プーリングが完全にサポートされ、設定されます。
接続プールは、特定の接続先へのクライアント接続の集合です。プールにより、指定したリモート・システムへの新規接続を自動的に作成するか、既存の接続を戻すことができます。また、不要になった接続をプールに戻すためのメソッドも用意されています。
接続プールでは、使用されなくなった接続をチェックしてクローズし、システム・リソースを節約できます。プールによる接続のチェック間隔と、接続がタイムアウトになるまでの時間は、コール側アプリケーションで構成できます。
プールは常に1つのユーザーIDおよびパスワードにバインドされます。これは、このプールから使用される全接続で、これらの資格証明が使用されることを意味します。PeopleSoft接続は、常にPeopleSoftユーザーIDおよびPeopleSoftクライアント番号にバインドされます。
プール・サイズを1に設定してログオンすると、接続プールは作成されません(ユーザーIDが1つとプロセス・スレッドが1つです)。プール・サイズを2以上に設定してログオンすると、サイズnのプールが作成されます。nは、指定した数値です。
ConnectionSpecでアダプタ名と構成のパラメータを指定すると、PeopleSoftとの相互作用を開始するようにiWAFConnectionSpecを設定できます。 次に例を示します。
iWAFConnectionSpec cs = new IWAFConnectionSpec(); cs.setAdapterName(ADAPTER); cs.setConfig(TARGET); cs.setLogLevel(LOG_LEVEL); // Adapter layer log level Connection c = cf.getConnection(cs);// where cf is the connection factory
このコード部分では、ADAPTER
はデプロイするアダプタ(この場合はPeopleSoft)、TARGET
はApplication Explorerで定義されているターゲットの名前を指します。詳細は、「完全なコード例」を参照してください。
ステップ3. ランタイム用のInteractionSpecとの相互作用の作成
Interaction i = c.createInteraction(); IWAFInteractionSpec is = new IWAFInteractionSpec(); is.setFunctionName(IWAFInteractionSpec.PROCESS);
PROCESSおよびIWAEという2つのファンクションを設定できます。 PROCESSはランタイム時に使用されます。IWAEが使用されるのは、デザインタイム時にIAEAdapterを使用する場合です。
ステップ4. 入力レコードの作成と相互作用の実行
この例では、EISの起動を完了するために、PeopleSoftメッセージが参照されます。スキーマはApplication Explorerから提供されます。
この例では、標準的なJ2CA索引付きレコードを使用しています。
// Use JCA IndexRecord, named "input" for run-time processing.
IndexedRecord rIn = cf.getRecordFactory().createIndexedRecord("input");
rIn.add(msg_run
);
IndexedRecord rOut = (IndexedRecord)i.execute(is, rIn);
System.out.println((String)rOut.get(0));
この例では、特殊なレコードがサポートされます。
//IWAFRecord rIn = new IWAFRecord("input");
//rIn.setRootXML(msg_run
);
//IWAFRecord response = executeRunInteraction(c, rIn);
//IWAFRecord rOut = (IWAFRecord)i.execute(is, rIn);
//System.out.println(rOut.getRootXML());
msg_run
は、Application Explorerで作成されたスキーマから生成されるインスタンスのXML文書です。たとえば、次に示すのはPeopleSoftリクエストXML文書のサンプルです。
<?xml version="1.0" encoding="UTF-8" ?> <PS8> <component perform="browse">LOCATION</component> <key name="Setid">SHARE</key> <key name="Location">ALBERTA</key> </PS8>
完全なコード例
import javax.resource.cci.*; import com.ibi.afjca.cci.*; import com.ibi.afjca.spi.*; /** * The purpose of this sample is to illustrate how to use the IWAF Universal * JCA connector. */ public class IWAFJCASimple { private static String HOME = "c:/iway/xfoc/components/iwafcont/dist"; private static String CONFIG = "base"; private static String LOG_LEVEL = "FATAL"; private static String ADAPTER = "PeopleSoft"; private static String TARGET = "PeopleSoft_connection"; // Input Message private static String msg_run = "<PeopleSoft/>"; public static void main(String[] args) throws Exception { // 1. Getting the Connection factory through JNDI lookup // --------------------------------------------------------- InitialContext context = new InitialContext(); ConnectionFactory cf = (ConnectionFactory)context.lookup(iwayJndi) // 2. Getting a connection for a particular adapter target, in this case PeopleSoft // --------------------------------------------------------- IWAFConnectionSpec cs = new IWAFConnectionSpec(); cs.setAdapterName(ADAPTER); cs.setConfig(TARGET); cs.setLogLevel(LOG_LEVEL); // Adapter layer log level Connection c = cf.getConnection(cs);// where cf is the connection factory // 3. Create interaction with interactionSpec for RUNTIME // --------------------------------------------------------- Interaction i = c.createInteraction(); IWAFInteractionSpec is = new IWAFInteractionSpec(); is.setFunctionName("PROCESS"); // 4. Create input Record and execute interaction // --------------------------------------------------------- // 4.1 Using JCA standard Indexed Record // Use JCA IndexRecord, named "input" for run-time processing. IndexedRecord rIn = cf.getRecordFactory().createIndexedRecord("input"); rIn.add(msg_run
); IndexedRecord rOut = (IndexedRecord)i.execute(is, rIn); System.out.println((String)rOut.get(0)); // 4.2 Our own Record is supported here //IWAFRecord rIn = new IWAFRecord("input"); //rIn.setRootXML(msg_run
); //IWAFRecord response = executeRunInteraction(c, rIn); //IWAFRecord rOut = (IWAFRecord)i.execute(is, rIn); //System.out.println(rOut.getRootXML()); } // main() }