Skip Headers
Oracle® Application Server Integration InterConnect Adapter for DB Installation and User's Guide
10g Release 2 (10.1.2)
Part No. B14076-01
  Go To Documentation Library
Home
Go To Product List
Solution Area
Go To Table Of Contents
Contents
Go To Index
Index

Previous
Previous
Next
Next
 

3 Design Time and Runtime Concepts

This chapter describes the design time and runtime concepts for the Database adapter. It contains the following topics:

3.1 Database Adapter Design Time Concepts

During design time, the Database adapter maps relationships between application view and common view. The Database adapter can import the following tables and objects for the application view:

This section contains the following topics:

3.1.1 Importing Database Tables and Objects

For a database application, the application and common views resemble the underlying database schema, so iStudio allows the creation of a view by importing tables directly from the database.

The following examples show how importing tables into iStudio modifies their structures:

Example 3-1 Importing Relational Tables

Table 3-1 shows a simple relational database table.

Table 3-1 Customer

Parameter Value
NAME VARCHAR2(200)
ID NUMBER
ADDRESSES LONG

When imported into iStudio, this table appears as shown in Table 3-2.

Table 3-2 Customer

Parameter Value
NAME STRING
ID INTEGER
ADDRESSES STRING

When importing from database, iStudio allows any number of columns to be selected.

Example 3-2 Object Table

Table 3-3 shows a simple object table.

Table 3-3 Customer

Parameter Value
NAME VARCHAR2(200)
ID NUMBER
ADDRESSES ADDRESS_ARRAY

Where ADDRESS_ARRAY is VARRAY of ADDRESS and ADDRESS is an OBJECT TYPE containing the following attributes:

Parameter Value
CITY VARCHAR2(200)
STATE VARCHAR2(200)
ZIP NUMBER

When imported into iStudio, this table appears as shown in Table 3-4.

Table 3-4 Customer

Parameter Value
NAME STRING
ID INTEGER
ADDRESSES ARRAY (marked as an ARRAY)

Where ADDRESS_ARRAY contains the following attributes:

Parameter Value
CITY STRING
STATE STRING
ZIP NUMBER

When dealing with Oracle Object Types, the hierarchical structure is kept intact.

Example 3-3 Foreign Key

For FOREIGN keys, you must import each of the different tables and manually set up the relationship in iStudio by editing the types of attributes.

Relational Tables related by a FOREIGN Key

Table 3-5 Customer

Parameter Value
NAME VARCHAR2(200)
ID NUMBER
ADDRESS NUMBER (Foreign key)

Table 3-6 Address

Parameter Value
ID NUMBER (Primary key)
CITY VARCHAR2(100)
STATE VARCHAR2(50)
ZIP NUMBER

Using iStudio, complete the following to import this structure:

  1. Import the Address table.This results in the following:

    Parameter Value
    ID NUMBER
    CITY STRING
    STATE STRING
    ZIP NUMBER

  2. Import the Customer table. This results in the following:

    Parameter Value
    NAME STRING
    ID NUMBER
    ADDRESS NUMBER

  1. Change the type of Address attribute to Address.

3.1.2 Importing Oracle Objects and Advanced Queuing Payloads

Importing an Oracle Object or an Advanced Queuing payload in iStudio is similar to importing database tables. Importing from an Advanced Queuing payload is necessary when working with Advanced Queuing applications.


Note:

When importing an Advanced Queuing payload, it may be necessary to log in as the system user.

3.1.3 Returned In Arguments

The Returned In Args button appears only in the Invoke wizard. Returned In Arguments is used to propagate INOUT attributes contained in the request. If this feature doesn't exist, then you have to ensure that these attributes exist in both the common view and application view of the implementing application and are INOUT attributes. It would also be necessary to complete all the mappings to copy these attributes on their way out and back in, when receiving the reply. Returned In Args can also be used to correlate the reply with an asynchronous request.

For example, a Customer object looks like the following in the application view:

Customer
  Name
  ID
  Contact
    Address
      City
      State
      Zip
    Phone
      AreaCode
      PhoneNumber

If this is to be sent as part of a CreateCustomer message and ID is to be INOUT in both the request and the reply, then it should be an INOUT parameter. To do this, complete the following steps:

  1. Click Returned In Args on the Invoke wizard.

  2. Select ID in the Please Select In Arguments dialog and the Please Select Out Arguments dialog.

3.1.4 Deploying PL/SQL Code

If the Database adapter is used to connect to an application, then iStudio generates PL/SQL stored procedures. These stored procedures enable an application to interface with OracleAS Integration InterConnect through the Oracle database. This code is generated regardless of the integration point used, which is the event for publish/subscribe or procedure for request/reply, and must be deployed in the application schema to be executed at runtime. To deploy PL/SQL code, use the Deploy PL/SQL context menu in iStudio.

3.2 Database Adapter Runtime Concepts

The following section describes the runtime concepts pertinent to the Oracle9i Database Server.

3.2.1 How the Database Adapter Works

The following topics describe how the Database adapter works.

3.2.1.1 Database Sender

The Database adapter is comprised of the database bridge and the runtime agent. The bridge is constantly polling the MESSAGEOBJECTTABLE table in the oai schema, specified by the db_bridge_schema1_username parameter. A new row in this table indicates a new outbound OracleAS Integration InterConnect message waiting to be sent by this adapter. The adapter then picks up the message from the interface tables residing in the oai schema, builds the corresponding OracleAS Integration InterConnect message, persists it, transforms it to the common view, and routes it to the hub. From the hub, the message gets routed to the corresponding subscriber based on configuration completed in iStudio, which can be content-based or subscription-based.

The application and the database adapter communicate through the interface tables residing in the oai schema for outbound messages and through iStudio PL/SQL generated procedures for inbound messages. Thus, if the adapter is down while the application is publishing OracleAS Integration InterConnect messages using the iStudio generated PL/SQL procedures, then the messages are held in the interface tables and will be picked up in a FIFO method by the database adapter once it is up and running. If there are messages in the interface tables that no longer need to be published, then the DELETE FROM MESSAGEOBJECTTABLE using SQLPlus can be run in the oai schema.

3.2.1.2 Database Receiver

On the subscribing/receiving side, the Database adapter receives the message from the hub, transforms it from common view to application view, and passes it to the bridge, which calls the corresponding PL/SQL procedures, to inform the application about the newly arrived message. If this adapter were an implementing application, then the OUT arguments from the PL/SQL procedure invocation are put together and the REPLY in the form of another OracleAS Integration InterConnect message is sent back to the INVOKER or REQUESTER.

The receiving adapter is responsible for creating any necessary cross-reference entries. In a publish-subscribe scenario, the subscribing adapter creates the cross-reference entry using the returned arguments, for example OUT, from the subscribe side procedure.

3.3 Starting the Database Adapter

Based on the operating system, the process for stopping the adapter varies.

3.3.1 Log File of Database adapter

You can verify the start up status by viewing the oailog.txt files. The files are located in the timestamped subdirectory of the log directory of the Database adapter. Subdirectory names take the following form:

timestamp_in_milliseconds

The following is an example of the information about a Database adapter that successfully started.

The Adapter service is starting.. 
Registering your application (DBAPP).. 
Initializing the Bridge oracle.oai.agent.adapter.database.DBBridge
Starting the Bridge oracle.oai.agent.adapter.database.DBBridge
Service started successfully. 
db_bridge_writer_1 has been started.
db_bridge_reader_1 has been started.
db_bridge_writer_1 has connected to the database successfully.
db_bridge_reader_1 has connected to the database successfully.

3.4 Stopping the Database Adapter

Based on the operating system, the process for stopping the adapter varies.