Skip Headers
Oracle® Application Server Adapter for Tuxedo User's Guide
10g Release 3 (10.1.3.1.0)

Part Number B29000-01
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

4 Integrating OracleAS Adapters for Tuxedo with Oracle BPEL Process Manager

To deploy and integrate OracleAS Adapters for Tuxedo with Oracle BPEL Process Manager, you need to configure BPEL Process Manager.

This section includes the following topics:

Overview of Integrating OracleAS Adapters for Tuxedo with Oracle BPEL Process Manager

Oracle BPEL Process Manager provides a comprehensive solution for creating, deploying, and managing BPEL business processes. Oracle BPEL Process Manager is based on the Service Oriented Architecture (SOA) to provide enterprises with flexibility, interoperability, reusability, extensibility, and rapid implementation of Web services and business processes. It reduces the overall costs of management, modification, extension, and redeployment of existing business processes. Each business activity is a self-contained, self-describing, and modular application whose interface is defined by the WSDL, and the business process is modeled as a Web Service.

A Web Service is first published and then composed or orchestrated into business flows. Publishing a service is implemented by taking a function within an existing application or system and making it available in a standard way, while orchestration is implemented by composing multiple services into an end-to-end business process. The interactions that are defined as part of the configuration of the OracleAS Adapter for Tuxedo are integrated into the orchestration as PartnerLinks. Every PartnerLink is linked to a WSDL that describes the Web service.

To integrating the OracleAS Adapter for Tuxedo with Oracle BPEL Process Manager, you must perform the following tasks in the specified order:

  1. Installing and Configuring OracleAS Adapters for Tuxedo

  2. Integrating OracleAS Adapter for Tuxedo with OC4J

  3. Configuring Oracle BPEL Process Manager to interact with the OracleAS Adapter for Tuxedo

Configuring Oracle BPEL Process Manager to interact with the OracleAS Adapter for Tuxedo

This section includes the following topics:

Setting up the Connection to the Oracle Connect Server

Perform the following steps to set up the connection to the Oracle Connect server:

  1. Open the Oracle BPEL Admin window.

  2. On the Server tab, on the Configuration tab, specify the following:

    • LegacyServer: The IP address of the server where Oracle Connect is installed. For a single server, the default is localhost.

    • LegacyPort: The port number of the server where Oracle Connect is installed. For a single port, the default is 2551.

  3. Repeat the previous step for each Oracle Connect server to be used by Oracle BPEL Process Manager. Use a comma as a separator between the different servers and ports.

  4. Click Apply.

  5. Restart the server where Oracle BPEL Process Manager is installed.

Checking Metadata Availability Using Oracle JDeveloper

Perform the following steps to verify that the metadata of the Oracle Connect server is available in Oracle BPEL Process Manager:

  1. Open Oracle JDeveloper.

  2. On the Connections tab, expand the Integration Server node to view the list of OC4J servers.

  3. Expand the node of the OC4J server on which you configured the JCA 1.5 Tuxedo adapter (see Integrating OracleAS Adapter for Tuxedo with OC4J).

  4. Under the Adapters node, expand the Legacy node to view a list of the Oracle Connect servers that you defined by using the Oracle BPEL Admin window.

  5. Under the node of the Oracle Connect server whose metadata you want to check, expand the node of the daemon (IRPCD) to view a list of workspaces.

    A workspace includes adapters for either inbound or outbound applications.

  6. Under the node of the workspace that contains the adapter that you want to work with, expand the node of the relevant adapter to view a list of interactions.

    If you selected a workspace that includes adapters for inbound applications, the adapter contains a single interaction only, called EventStream.

  7. Double-click an interaction to view the WSDL.

Configuring the WSDL for Outbound Applications

When you build an outbound application, Oracle BPEL Process Manager automatically creates the WSDL that corresponds to the interaction. The WSDL specifies the name of the adapter's connection factory as the value of the adapterInstanceJndi attribute of the <jca:address> element in the <service> section. This name is generated automatically. You need to verify that a connection factory with this name exists on the OC4J server. If it does not, you need to create it, or change the name of the connection factory to the name of a connection factory that exists.

The following is an example of a WSDL for outbound applications:

<?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>

Configuring the WSDL for Inbound Applications

When you build an outbound application, Oracle BPEL Process Manager automatically creates the WSDL that corresponds to the interaction, including the most important attributes of the ActivationSpec class, such as the name of the adapter, the server, the workspace, and the port number. The name of the workspace is the one that the EventStream interaction belongs to. All other properties have default values that you can modify.

The WSDL also specifies the name of the adapter's connection factory as the value of the adapterInstanceJndi attribute of the <jca:address> element in the <service> section. This name is generated automatically. If a connection factory with this name exists on the OC4J server, its values are taken. Otherwise, the properties specified by the ActivationSpec are used. If a value is specified by both the connection factory and the ActivationSpec, the ActivationSpec property overrides the value in the connection factory. If you want to use the value specified in the connection factory, you first need to delete the property from the ActivationSpec.

For a list of ActivationSpec properties, see the Oracle Application Server Containers for J2EE documentation.

The following is an example of a WSDL for outbound applications:

<?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.attunity.adapter.AttuOracleActivationSpec" EisName="testTuxedoQ1" ServerName="mvs5" UserName="" Password="" Workspace="testTuxedoQ1" PortNumber="2551" FirewallProtocol="" ConnectTimeout="0" EncryptionProtocol="" EncryptionKeyName="" EncryptionKeyValue="" UseNamespace="true" NetworkXMLProtocol="" MessagesInBatch="50" Support2PC="false" 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/testTuxedoQ1"/>
       </port>
   </service>
   <plt:partnerLinkType name="eventStreamPartnerLinkType">
       <plt:role name="eventStreamRole">
           <plt:portType name="tns:eventStreamPortType"/>
       </plt:role>
   </plt:partnerLinkType>
/definitions>