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」ウィンドウを開きます。
「Server」タブの「Configuration」タブで、次のように指定します。
LegacyServer
: Oracle ConnectがインストールされているサーバーのIPアドレス。 サーバーが1つの場合、デフォルトはlocalhost
です。
LegacyPort
: Oracle Connectがインストールされているサーバーのポート番号。 ポートが1つの場合、デフォルトは2551
です。
Oracle BPEL Process Managerによって使用される各Oracle Connectサーバーについて、前述の手順を繰り返します。 異なるサーバーおよびポート間のセパレータにはカンマを使用します。
「Apply」をクリックします。
Oracle BPEL Process Managerがインストールされているサーバーを再起動します。
Oracle ConnectサーバーのメタデータがOracle BPEL Process Managerで使用できることを検証する手順は、次のとおりです。
Oracle JDeveloperを開きます。
「接続」タブで「Integration Server」ノードを開き、OC4Jサーバーのリストを表示します。
J2CA 1.5 CICSアダプタを構成したOC4Jサーバーのノードを開きます(「OC4JとのOracleAS Adapters for CICSの統合」を参照)。
「Adapters」ノードの「Legacy」ノードを開き、「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.attunity.AttuXMLRecordConverterImpl"/> <operation name="add"> <jca:operation FunctionName="add" InteractionSpec="com.attunity.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.attunity.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.attunity.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>