OracleAS Adapter for Tuxedoをデプロイし、Oracle BPEL Process Managerと統合するには、BPEL Process Managerを構成する必要があります。
この項の構成は、次のとおりです。
Oracle BPEL Process Managerは、BPELビジネス・プロセスを作成、デプロイおよび管理するための包括的なソリューションを提供します。Oracle BPEL Process Managerは、サービス指向アーキテクチャ(SOA)に基づいて、企業に対してWebサービスおよびビジネス・プロセスの柔軟性、相互運用性、再利用性、拡張性および迅速な実装性を提供します。Oracle BPEL Process Managerによって、既存のビジネス・プロセスを管理、変更、拡張および再デプロイする全体的なコストが削減されます。各ビジネス・アクティビティは、自己完結型で自己記述的なモジュラ・アプリケーションです。そのインタフェースはWSDLで定義され、そのビジネス・プロセスはWebサービスとしてモデル化されます。
Webサービスは、最初に公開され、次にビジネス・フローに作成または編成されます。サービスの公開は、既存のアプリケーションまたはシステム内の機能を取り入れ、標準的な方法で使用できるようにすることで実装されます。一方、サービスの編成は、複数のサービスを単一のエンドツーエンド・ビジネス・プロセスに作成することで実装されます。OracleAS Adapter for Tuxedoの構成の一部として定義される相互作用は、PartnerLinkとして編成に統合されます。各PartnerLinkは、Webサービスを記述するWSDLにリンクされます。
OracleAS Adapter for TuxedoとOracle BPEL Process Managerを統合するには、次のタスクを指定された順序で実行する必要があります。
この項の構成は、次のとおりです。
JDeveloperによって作成された自動BPELアプリケーションを提供するためにOracle Connectサーバーとの接続を設定する手順は、次のとおりです。
「Oracle BPEL Admin」ウィンドウを開きます。
「サーバー」タブの「構成」タブで、次の項目を指定します。
LegacyServer
: Oracle ConnectがインストールされるサーバーのIPアドレス。単一のサーバーの場合、デフォルトはlocalhost
です。
LegacyPort
: Oracle Connectがインストールされるサーバーのポート番号。単一のサーバーの場合、デフォルトは2551
です。
Oracle BPEL Process Managerによって使用される各Oracle Connectサーバーについて、前述の手順を繰り返します。異なるサーバーおよびポート間のセパレータにはカンマを使用します。
「適用」をクリックします。
Oracle ConnectサーバーのメタデータがOracle BPEL Process Managerで使用できることを検証する手順は、次のとおりです。
Oracle JDeveloperを開きます。
「接続」タブで、「統合サーバー」を開き、OC4Jサーバーのリストを表示します。
Tuxedoリソース・アダプタをデプロイしたOC4Jサーバーを開きます(「OC4JとのOracleAS Adapter for Tuxedoの統合」を参照)。
「アダプタ」の下の「レガシー」を開き、「Oracle BPEL Admin」ウィンドウを使用して定義したOracle Connectサーバーのリストを表示します。
検証するメタデータを含むOracle Connectサーバーを開き、ワークスペースのリストを表示します。
対象のワークスペースを開いて、そのアダプタのリストを表示します。
関連ワークスペースを開いて、相互作用のリストを表示します。
インバウンド・アプリケーション用のキュー・アダプタを選択した場合、アダプタにはEventStream
という単一の相互作用が含まれます。
相互作用をダブルクリックすると、WSDLが表示されます。
Oracle JDeveloperでレガシー・アダプタ・パートナ・リンクWSDLを選択する手順は、次のとおりです。
パートナ・リンクをダブルクリックします。
サービス・エクスプローラをクリックします。
サービス・エクスプローラで、「アダプタ・サービス」を開きます。
Tuxedoリソース・アダプタをデプロイしたOC4Jサーバーを開きます(「OC4JとのOracleAS Adapter for Tuxedoの統合」を参照)。
「アダプタ」の下の「レガシー」を開き、「Oracle BPEL Admin」ウィンドウを使用して定義したOracle Connectサーバーのリストを表示します。
検証するメタデータを含むOracle Connectサーバーを開き、ワークスペースのリストを表示します。
対象のワークスペースを開いて、そのアダプタのリストを表示します。
関連ワークスペースを開いて、相互作用のリストを表示します。
インバウンド・アプリケーション用のキュー・アダプタを選択した場合、アダプタにはEventStream
という単一の相互作用が含まれます。
相互作用を選択して「OK」をクリックします。
アウトバウンド・パートナ・リンクを構築すると、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/> <operation name="add"> <jca:operation InteractionSpec="com.oracle.adapter.oracle.AttuInteractionSpec" FunctionName="add" 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>
注意: Tuxedo Gatewayアダプタ・メタデータ(インバウンド同期)を使用する場合、サーバーは稼働中である必要があります。 Tuxedo Gatewayアダプタ・メタデータを使用する場合、Tuxedo Gatewayアダプタにサービスを提供できるBPELインスタンスは1つのみです。 |
インバウンド・パートナ・リンクを構築する場合、Oracle BPEL Process Managerでは、アダプタ、サーバーおよびワークスペースの名前、ポート番号など、対応するActivationSpec
クラスの最も重要な属性を含み、相互作用に対応するWSDLが自動的に作成されます。他のすべてのプロパティには、変更できるデフォルト値があります。
また、WSDLで、アダプタのコネクション・ファクトリの名前を<service>
セクション内の<jca:address>
要素のadapterInstanceJndi
属性の値として指定します。名前は自動的に生成されます。 この名前のコネクション・ファクトリがアプリケーション・サーバー上に存在する場合、そのプロパティが取得されます。存在しない場合は、ActivationSpec
で指定されたプロパティが使用されます。値がコネクション・ファクトリおよびActivationSpec
の両方で指定されている場合、ActivationSpec
プロパティがコネクション・ファクトリ内の値を上書きします。コネクション・ファクトリで指定された値を使用する場合、ActivationSpec
からプロパティを削除する必要があります。
各ActivationSpecのプロパティのリストについては、次の表に記載されているアダプタのプロパティのリストを参照してください。
次に、キュー・アダプタ用のインバウンドWSDLの例を示します。
<?xml version = '1.0' encoding = 'UTF-8'?> <definitions name="eventStream" targetNamespace="http://xmlns.oracle.com/pcbpel/testTuxedoQ1/eventStream" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:legacyReq="noNamespace://testTuxedoQ1" xmlns:tns="http://xmlns.oracle.com/pcbpel/testTuxedoQ1/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://testTuxedoQ1" targetNamespace="noNamespace://testTuxedoQ1" 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.oracle.AttuActivationSpec" EisName="testTuxedoQ1" ServerName="mvs5" UserName="" Password="" Workspace="testTuxedoQ1" PortNumber="2551" ConnectTimeout="0" MessagesInBatch="50" WaitTime="30" RetryInterval="15"/> <input/> </operation> </binding> <service name="eventStreamService"> <port name="eventStreamPort" binding="tns:eventStreamJCABinding"> <jca:address ResourceAdapterClassName="com.oracle.adapter.oracle.AttuResourceAdapter" adapterInstanceJndi="eis/legacy/testTuxedoQ1"/> </port> </service> <plt:partnerLinkType name="eventStreamPartnerLinkType"> <plt:role name="eventStreamRole"> <plt:portType name="tns:eventStreamPortType"/> </plt:role> </plt:partnerLinkType> /definitions>
Oracle Adapter Frameworkでは独自のリソース・マネージャがサポートされていないため、トランザクションのインバウンド・プロセスは、Adapter Frameworkでは直接サポートできません。 トランザクション・ゲートウェイ・プロセスを構成する手順は、次のとおりです。
「Oracle BPEL Process Managerの構成」で説明されているように、特定のTuxedoサービスに対してOracle Gatewayインバウンド・プロセスを構成します。 トランザクションのTuxedo Gatewayアダプタを選択する必要があります。 詳細は、「Tuxedo Gateway OracleASアダプタの設定」を参照してください。 自動的に作成されたWSDLには、com.oracle.adapter.oracle.AttuGWTxnActivationSpec
が含まれています。 このActivationSpecのプロパティは使用されていないため、変更しないでください。
次に、作成されたBPELプロセスを配置します。 このActivationSpecを含むプロセスを配置すると、Adapter Frameworkの下で動作するTuxedo Gatewayリソース・アダプタは、対応するワーク・スレッドの起動を無視します。 これにより、BPELドメインではBPELアプリケーションのみが起動されます。
トランザクション・ゲートウェイ・アダプタとの接続性を提供するコネクション・ファクトリを構成する必要があります。 構成するプロパティのリストについては、「同期インバウンド・プロセスに関するOC4J接続のプロパティ」を参照してください。
また、リソース・アダプタのコネクション・ファクトリには、アプリケーション・サーバー環境からBPELドメインへの接続を可能にする2つのプロパティが含まれます。 これらのプロパティは、次のとおりです。
bpelDomain
: BPELドメインの名前。 デフォルト値はdefault
です。
bpelDomainPassword
: BPELドメインのパスワード。 デフォルト値はbpel
です。
対応するプロパティにデフォルト値がある場合は、コネクション・ファクトリを構成しないでください。 これらのプロパティを編集するには、既存のコネクション・ファクトリを使用するか、または新規のコネクション・ファクトリを作成します。
「JDeveloperを使用したBPELトランザクション・ゲートウェイ・プロセスの構成」で説明に従ってTuxedoサービスに対して起動されたBPELアプリケーションごとに、メッセージドリブンBeanのプロセスを配置する必要があります。 アプリケーションごとに独自のMDBを指定する必要があります。 提供されているAttuTuxedoGatewayWrapper.ear
を使用します。
.earファイルには、AttuTuxedoGatewayWrapper.jar
ファイルが含まれます。 この.jarファイルに含まれるディスクリプタ・ファイルejb-jar.xml
を編集する必要があります。 このディスクリプタ・ファイルには、3つの環境構成プロパティと2つのActivationSpec構成プロパティが含まれます。
環境プロパティは次のとおりです。
BpelApplication
: 「JDeveloperを使用したBPELトランザクション・ゲートウェイ・プロセスの構成」で説明されているように、BPELインバウンド・プロセスの名前に値を変更します。
WsdlOperation
: 対応するTuxedoサービス名に値を変更します。 この名前は、serviceName
プロパティに指定された名前と同じである必要があります。
ConnectionFactory
: 「リソース・アダプタのコネクション・ファクトリの構成」で説明されているように、構成したリソース・アダプタのコネクション・ファクトリ名に値を変更します。 コネクション・ファクトリが指定されていない場合は、BPELドメインとパスワードのデフォルト値が使用されます。
ActivationSpecプロパティは次のとおりです。
serviceName
: 対応するTuxedoサービス名に値を変更します。 この名前は、WsdlOperation
プロパティに指定された名前と同じである必要があります。
connectionFactoryName
: トランザクションTuxedo Gatewayアダプタとの接続性を提供するリソース・アダプタのコネクション・ファクトリ名に値を変更します。