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>