OracleAS Adapters for CICSをデプロイし、Oracle BPEL Process Managerと統合するには、BPEL Process Managerを構成する必要があります。
この項の構成は、次のとおりです。
Oracle BPEL Process ManagerとのOracleAS Adapters for CICSの統合の概要
OracleAS Adapter for CICSと相互作用するためのOracle BPEL Process Managerの構成
Oracle BPEL Process Managerは、BPELビジネス・プロセスを作成、デプロイおよび管理するための包括的なソリューションを提供します。Oracle BPEL Process Managerは、サービス指向アーキテクチャ(SOA)に基づいて、企業に対してWebサービスおよびビジネス・プロセスの柔軟性、相互運用性、再利用性、拡張性および迅速な実装性を提供します。これにより、既存のビジネス・プロセスを管理、変更、拡張および再デプロイする全体的なコストが削減されます。各ビジネス・アクティビティは、自己完結型で自己記述的なモジュラ・アプリケーションです。そのインタフェースはWSDLで定義され、そのビジネス・プロセスはWebサービスとしてモデル化されます。
Webサービスは、最初に公開され、次にビジネス・フローに作成または編成されます。サービスの公開は、既存のアプリケーションまたはシステム内の機能を取り入れ、標準的な方法で使用できるようにすることで実装されます。一方、サービスの編成は、複数のサービスを単一のエンドツーエンド・ビジネス・プロセスに作成することで実装されます。OracleAS Adapter for CICSの構成の一部として定義される相互作用は、PartnerLinkとして編成に統合されます。各PartnerLinkは、Webサービスを記述するWSDLにリンクされます。
OracleAS Adapter for CICSとOracle BPEL Process Managerを統合するには、次のタスクを指定された順序で実行する必要があります。
この項の構成は、次のとおりです。
Oracle Connectサーバーとの接続を設定する手順は、次のとおりです。
「Oracle BPEL Admin」ウィンドウを開きます。
「サーバー」タブの「構成」タブで、次のように指定します。
LegacyServer: Oracle ConnectがインストールされているサーバーのIPアドレス。サーバーが1つの場合、デフォルトはlocalhostです。
LegacyPort: Oracle Connectがインストールされているサーバーのポート番号。ポートが1つの場合、デフォルトは2551です。
Oracle BPEL Process Managerによって使用される各Oracle Connectサーバーについて、前述の手順を繰り返します。異なるサーバーおよびポート間のセパレータにはカンマを使用します。
「適用」をクリックします。
Oracle BPEL Process Managerがインストールされているサーバーを再起動します。
Oracle ConnectサーバーのメタデータがOracle BPEL Process Managerで使用できることを検証する手順は、次のとおりです。
Oracle JDeveloperを開きます。
「接続」タブで「統合サーバー」ノードを開き、OC4Jサーバーのリストを表示します。
J2CA 1.5 CICSアダプタを構成したOC4Jサーバーのノードを開きます(「OC4JとのOracleAS Adapters for CICSの統合」を参照)。
「アダプタ」ノードの「レガシー」ノードを開き、「Oracle BPEL Admin」ウィンドウで定義したOracle Connectサーバーのリストを表示します。
メタデータを確認するOracle Connectサーバーのノードで、デーモンのノード(IRPCD)を開き、ワークスペースのリストを表示します。
ワークスペースには、インバウンドまたはアウトバウンド・アプリケーションのいずれかのアダプタが含まれます。
作業をするアダプタが含まれているワークスペースのノードで、関連のあるアダプタのノードを開き、相互作用のリストを表示します。
インバウンド・アプリケーションのアダプタが含まれているワークスペースを選択した場合、アダプタにはEventStreamという1つの相互作用のみが含まれます。
相互作用をダブルクリックしてWSDLを表示します。
アウトバウンド・アプリケーションを構築すると、Oracle BPEL Process Managerにより、相互作用に対応するWSDLが自動的に作成されます。WSDLは、アダプタのコネクション・ファクトリの名前を、<service>セクションの<jca:address>要素のadapterInstanceJndi属性の値として指定します。この名前は自動的に生成されます。この名前のコネクション・ファクトリがOC4Jサーバーに存在することを検証する必要があります。存在しない場合、この名前のコネクション・ファクトリを作成するか、またはこのコネクション・ファクトリの名前を既存のコネクション・ファクトリの名前に変更する必要があります。
次に、アウトバウンド・アプリケーションのWSDLの例を示します。
<?xml version = '1.0' encoding = 'UTF-8'?>
<definitions name="add" targetNamespace="http://xmlns.oracle.com/pcbpel/calc/add" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:legacyReq="noNamespace://calc" xmlns:tns="http://xmlns.oracle.com/pcbpel/calc/add" 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://calc">
<types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="noNamespace://calc" targetNamespace="noNamespace://calc" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:element name="binput" type="binput"/>
<xsd:complexType name="binput">
<xsd:attribute name="p1" type="xsd:int"/>
<xsd:attribute name="p2" type="xsd:int"/>
</xsd:complexType>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="noNamespace://calc" targetNamespace="noNamespace://calc" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:element name="output" type="output"/>
<xsd:complexType name="output">
<xsd:attribute name="result" type="xsd:int"/>
</xsd:complexType>
</xsd:schema>
</types>
<message name="request">
<part name="input_add" element="legacyReq:binput"/>
</message>
<message name="response">
<part name="output_add" element="legacyReq:output"/>
</message>
<portType name="addPortType">
<operation name="add">
<input name="Input_add" message="tns:request"/>
<output name="Output_add" message="tns:response"/>
</operation>
</portType>
<binding name="addJCABinding" type="tns:addPortType">
<jca:binding XMLRecordConverterCallout="oracle.tip.adapter.fw.record.oracle.AttuXMLRecordConverterImpl"/>
<operation name="add">
<jca:operation FunctionName="add" InteractionSpec="com.oracle.adapter.AttuInteractionSpec" ExecutionTimeout="120"/>
<input/>
<output/>
</operation>
</binding>
<service name="addService">
<port name="addPort" binding="tns:addJCABinding">
<jca:address adapterInstanceJndi="eis/legacy/calc"/>
</port>
</service>
<plt:partnerLinkType name="addPartnerLinkType">
<plt:role name="addRole">
<plt:portType name="tns:addPortType"/>
</plt:role>
</plt:partnerLinkType>
/definitions>
インバウンド・アプリケーションを構築すると、Oracle BPEL Process Managerにより、相互作用に対応するWSDLが自動的に作成されます。これには、アダプタ、サーバー、ワークスペースの名前、およびポート番号など、ActivationSpecクラスの最も重要な属性が含まれます。ワークスペースの名前は、EventStream相互作用が所属するワークスペースの名前です。他のすべてのプロパティはデフォルト値が設定されていますが、変更可能です。
また、WSDLは、アダプタのコネクション・ファクトリの名前を、<service>セクションの<jca:address>要素のadapterInstanceJndi属性の値として指定します。この名前は自動的に生成されます。この名前のコネクション・ファクトリがOC4Jサーバーに存在する場合、その値が使用されます。そうでない場合、ActivationSpecで指定されたプロパティが使用されます。値がコネクション・ファクトリおよびActivationSpecの両方で指定されている場合、ActivationSpecプロパティが、コネクション・ファクトリの値より優先されます。コネクション・ファクトリで指定されている値を使用する場合、まず、ActivationSpecからプロパティを削除する必要があります。
プロパティのリストは、Oracle Application Server Containers for J2EEのドキュメントを参照してください。
次に、インバウンド・アプリケーションのWSDLの例を示します。
<?xml version = '1.0' encoding = 'UTF-8'?>
<definitions name="eventStream" targetNamespace="http://xmlns.oracle.com/pcbpel/testCICSQ1/eventStream" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:legacyReq="noNamespace://testCICSQ1" xmlns:tns="http://xmlns.oracle.com/pcbpel/testCICSQ1/eventStream" 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://DEMO#">
<types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="noNamespace://testCICSQ1" targetNamespace="noNamespace://testCICSQ1" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:element name="eventStream" type="eventStreamDescription"/>
<xsd:complexType name="eventStreamDescription">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="EMPLOYEE_INFO__VAR_0__BIG_EMPLOYEE" type="EMPLOYEE_INFO__VAR_0__BIG_EMPLOYEE"/>
<xsd:element name="EMPLOYEE_INFO__VAR_0__EMPLOYEE" type="EMPLOYEE_INFO__VAR_0__EMPLOYEE"/>
</xsd:choice>
</xsd:complexType>
<xsd:element name="EMPLOYEE_INFO__VAR_0__EMPLOYEE" type="EMPLOYEE_INFO__VAR_0__EMPLOYEE"/>
<xsd:complexType name="EMPLOYEE_INFO__VAR_0__EMPLOYEE">
<xsd:attribute name="LAST_NAME">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="15"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="FIRST_NAME">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="ADDRESS_1">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="15"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="ADDRESS_2">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="15"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="CARS" type="xsd:int"/>
<xsd:attribute name="SALARY" type="xsd:int"/>
</xsd:complexType>
<xsd:element name="EMPLOYEE_INFO__VAR_0__BIG_EMPLOYEE" type="EMPLOYEE_INFO__VAR_0__BIG_EMPLOYEE"/>
<xsd:complexType name="EMPLOYEE_INFO__VAR_0__BIG_EMPLOYEE">
<xsd:attribute name="ID">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="LAST_NAME2">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="FIRST_NAME2">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="ADDRESS_12">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="ADDRESS_22">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="150"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="CARS2" type="xsd:int"/>
<xsd:attribute name="SALARY2" type="xsd:int"/>
<xsd:attribute name="FILLER">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="1500"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:schema>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="noNamespace://DEMO#" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="noNamespace://DEMO#">
<element name="eventStream">
<complexType/>
</element>
</schema>
</types>
<message name="event">
<part name="event_eventStream" element="legacyReq:eventStream"/>
</message>
<portType name="eventStreamPortType">
<operation name="eventStream">
<input name="Event_eventStream" message="tns:event"/>
</operation>
</portType>
<binding name="eventStreamJCABinding" type="tns:eventStreamPortType">
<pc:inbound_binding/>
<operation name="eventStream">
<jca:operation ActivationSpec="com.oracle.adapter.AttuOracleActivationSpec" EisName="testCICSQ1" ServerName="mvs5" UserName="" Password="" Workspace="testCICSQ1" PortNumber="2551" FirewallProtocol="" ConnectTimeout="0" EncryptionProtocol="" EncryptionKeyName="" EncryptionKeyValue="" UseNamespace="true" NetworkXMLProtocol="" MessagesInBatch="50" Support2PC="true" WaitTime="30" RetryInterval="15"/>
<input/>
</operation>
</binding>
<service name="eventStreamService">
<port name="eventStreamPort" binding="tns:eventStreamJCABinding">
<jca:address ResourceAdapterClassName="com.oracle.adapter.AttuOracleResourceAdapter" adapterInstanceJndi="eis/legacy/testCICSQ1"/>
</port>
</service>
<plt:partnerLinkType name="eventStreamPartnerLinkType">
<plt:role name="eventStreamRole">
<plt:portType name="tns:eventStreamPortType"/>
</plt:role>
</plt:partnerLinkType>
/definitions>