OracleAS Adapters for IMS/DBをデプロイし、Oracle BPEL Process Managerと統合するには、BPEL Process Managerを構成する必要があります。
この章の構成は、次のとおりです。
OracleAS Adapters for IMS/DBとOracle BPEL Process Managerの統合の概要
OracleAS Adapter for IMS/DBと相互作用するためのOracle BPEL Process Managerの構成
Oracle BPEL Process Managerは、BPELビジネス・プロセスを作成、デプロイおよび管理するための包括的なソリューションを提供します。 Oracle BPEL Process Managerは、サービス指向アーキテクチャ(SOA)に基づいて、企業に対してWebサービスおよびビジネス・プロセスの柔軟性、相互運用性、再利用性、拡張性および迅速な実装性を提供します。 Oracle BPEL Process Managerによって、既存のビジネス・プロセスを管理、変更、拡張および再デプロイする全体的なコストが削減されます。 各ビジネス・アクティビティは、自己完結型で自己記述的なモジュラ・アプリケーションです。そのインタフェースはWSDLで定義され、そのビジネス・プロセスはWebサービスとしてモデル化されます。
Webサービスは、まず先に公開され、その後ビジネス・フロー内に作成または編成されます。サービスの公開とは、1つの機能を既存のアプリケーション内またはシステム内に取り入れて標準的に使用できるようにすることです。一方、サービスの編成とは、複数のサービスを単一のエンドツーエンド・ビジネス・プロセス内に作成することです。 OracleAS Adapter for IMS/DBの構成の一部として定義された相互作用は、パートナ・リンクとして編成に統合されます。 すべてのパートナ・リンクは、Webサービスを記述したWSDLにリンクします。
OracleAS Adapter for IMS/DBをOracle BPEL Process Managerと統合するには、指定の順序に従って次のタスクを実行します。
この項の構成は、次のとおりです。
次の手順を実行して、Oracle Connectサーバーへの接続を設定します。
Oracle BPEL Adminウィンドウを開きます。
「構成」タブ上の「サーバー」タブで、次を指定します。
LegacyServer: Oracle ConnectがインストールされているサーバーのIPアドレス。 単一のサーバーの場合、デフォルトはlocalhostです。
LegacyPort: Oracle Connectがインストールされているサーバーのポート番号。 単一のポートの場合、デフォルトは2551です。
Oracle BPEL Process Managerで使用するOracle Connectサーバーごとに、前述の手順を繰り返します。 各サーバーとポートはカンマで区切って指定します。
「適用」をクリックします。
Oracle BPEL Process Managerがインストールされているサーバーを再起動します。
次の手順を実行して、Oracle ConnectサーバーのメタデータがOracle BPEL Process Managerで使用できることを確認します。
Oracle JDeveloperを開きます。
「接続」タブで、「統合サーバー」ノードを開き、OC4Jサーバー・リストを表示します。
JCA 1.5 IMS/DBアダプタを構成したOC4Jサーバーのノードを開きます(「OracleAS Adapter for IMS/DBとOC4Jの統合」を参照)。
「アダプタ」ノードの下にある「レガシー」ノードを開き、Oracle BPEL Adminウィンドウを使用して定義したOracle Connectサーバーのリストを表示します。
チェックするメタデータのあるOracle Connectサーバーのノード下でデーモンのノード(IRPCDINI)を開き、ワークスペース・リストを表示します。
操作対象のアダプタが含まれているワークスペースのノード下にある関連アダプタのノードを開き、相互作用リストを表示します。
相互作用をダブルクリックしてWSDLを表示します。
アウトバウンド・アプリケーションを作成すると、Oracle BPEL Process Managerにより、相互作用に対応するWSDLが自動的に作成されます。 WSDLでは、アダプタのコネクション・ファクトリの名前が、<service>セクションの<jca:address>要素のadapterInstanceJndi属性の値として指定されます。 この名前は自動的に生成されます。 この名前のコネクション・ファクトリがOC4Jサーバー上にあることを確認する必要があります。 この名前のコネクション・ファクトリがOC4Jサーバーにない場合は、作成するか、コネクション・ファクトリの名前を既存のコネクション・ファクトリの名前に変更する必要があります。
アウトバウンド・アプリケーションに対するWSDLサンプル・コードを次に示します。
<?xml version = '1.0' encoding = 'UTF-8'?>
<definitions name="findAccount" targetNamespace="http://xmlns.oracle.com/pcbpel/findIMSAccount/findAccount" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:legacyReq="noNamespace://findIMSAccount" xmlns:tns="http://xmlns.oracle.com/pcbpel/findIMSAccount/findAccount" xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" xmlns:jca="http://xmlns.oracle.com/pcbpel/wsdl/jca/" xmlns:pc="http://xmlns.oracle.com/pcbpel/" xmlns:legacyRes="noNamespace://findIMSAccount">
<types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="noNamespace://findIMSAccount" targetNamespace="noNamespace://findIMSAccount" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:element name="CA_INPUT" type="CA_INPUT"/>
<xsd:complexType name="CA_INPUT">
<xsd:attribute name="CA_EYE_CATCH">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="8"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="CA_ACCT_I_NUM" type="xsd:int"/>
</xsd:complexType>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="noNamespace://findIMSAccount" targetNamespace="noNamespace://findIMSAccount" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:element name="CA_OUTPUT" type="CA_OUTPUT"/>
<xsd:complexType name="CA_OUTPUT">
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="1" name="CA_ACCT_DATA" type="CA_OUTPUT__CA_ACCT_DATA"/>
</xsd:sequence>
<xsd:attribute name="CA_RET_CODE" type="xsd:int"/>
</xsd:complexType>
<xsd:element name="CA_OUTPUT__CA_ACCT_DATA" type="CA_OUTPUT__CA_ACCT_DATA"/>
<xsd:complexType name="CA_OUTPUT__CA_ACCT_DATA">
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="1" name="CA_CUST_INFO" type="CA_OUTPUT__CA_ACCT_DATA__CA_CUST_INFO"/>
<xsd:element minOccurs="0" maxOccurs="10" name="CA_TRAN_HIST" type="CA_OUTPUT__CA_ACCT_DATA__CA_TRAN_HIST"/>
</xsd:sequence>
<xsd:attribute name="CA_ACCT_NUM" type="xsd:int"/>
<xsd:attribute name="CA_ACCT_BAL" type="xsd:int"/>
</xsd:complexType>
<xsd:element name="CA_OUTPUT__CA_ACCT_DATA__CA_TRAN_HIST"
type="CA_OUTPUT__CA_ACCT_DATA__CA_TRAN_HIST"/>
<xsd:complexType name="CA_OUTPUT__CA_ACCT_DATA__CA_TRAN_HIST">
<xsd:attribute name="CA_TRAN_YYYYMMDD">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="8"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="CA_TRAN_AMT" type="xsd:int"/>
<xsd:attribute name="CA_TRAN_REF" type="xsd:int"/>
<xsd:attribute name="CA_TRAN_TYPE" type="xsd:int"/>
</xsd:complexType>
<xsd:element name="CA_OUTPUT__CA_ACCT_DATA__CA_CUST_INFO"
type="CA_OUTPUT__CA_ACCT_DATA__CA_CUST_INFO"/>
<xsd:complexType name="CA_OUTPUT__CA_ACCT_DATA__CA_CUST_INFO">
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="4" name="CA_CUST_PHONE">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="14"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="CA_CUST_NAME_F">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="CA_CUST_NAME_M">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="CA_CUST_NAME_L">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="CA_CUST_SOC_SEC">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="11"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:schema>
</types>
<message name="request">
<part name="input_findAccount" element="legacyReq:CA_INPUT"/>
</message>
<message name="response">
<part name="output_findAccount" element="legacyReq:CA_OUTPUT"/>
</message>
<portType name="findAccountPortType">
<operation name="findAccount">
<input name="Input_findAccount" message="tns:request"/>
<output name="Output_findAccount" message="tns:response"/>
</operation>
</portType>
<binding name="findAccountJCABinding" type="tns:findAccountPortType">
<jca:binding XMLRecordConverterCallout="oracle.tip.adapter.fw.record.attunity.AttuXMLRecordConverterImpl"/>
<operation name="findAccount">
<jca:operation FunctionName="findAccount"
InteractionSpec="com.attunity.adapter.AttuInteractionSpec" ExecutionTimeout="120"/>
<input/>
<output/>
</operation>
</binding>
<service name="findAccountService">
<port name="findAccountPort" binding="tns:findAccountJCABinding">
<jca:address adapterInstanceJndi="eis/legacy/findIMSAccount"/>
</port>
</service>
<plt:partnerLinkType name="findAccountPartnerLinkType">
<plt:role name="findAccountRole">
<plt:portType name="tns:findAccountPortType"/>
</plt:role>
</plt:partnerLinkType>
/definitions>