Microsoft BizTalk Adapter for Oracle Database Help

Welcome to Microsoft BizTalk Adapter for Oracle Database Help, which includes a variety of resources that can help you learn to develop, deploy, administer, and use the Oracle Database adapter.

Getting started icon | Getting Started Information about new features, limitations, prerequisites, and topics for users who are new to the Oracle Database adapter.
Tutorials icon | Oracle Database Adapter Migration Tutorial Step-by-step instructions for learning how to use the Oracle Database adapter for specific scenarios.
Adapter Architecture icon | Planning and Architecture Architectural overview of the Oracle Database adapter.
Adapter Development icon | Development Instructions on how to use the Oracle Database adapter with BizTalk Server, the Windows Communication Foundation (WCF) service model, and the WCF channel model.
Adapter Deployment icon | Deployment Information about installing the Oracle Database adapter, migrating from previous versions of the adapter, and troubleshooting the installation.
Adapter Troubleshooting icon | Troubleshooting Information about enabling tracing and about troubleshooting issues with the BizTalk Adapter Pack and with the Oracle Database adapter, in particular.
Adapter Samples icon | Samples Samples demonstrating how to use the Oracle Database adapter.
Community resources icon | Community Resources Information about how to get assistance with the BizTalk Adapter Pack.

© 2014 Microsoft Corporation. All rights reserved.


Getting Started

This section provides an overview of the adapter, prerequisites, and topics for users who are new to Microsoft BizTalk Adapter Pack. It discusses the features of Microsoft BizTalk Adapter for Oracle Database and the different operations that can be performed on the Oracle database using the adapter.

What is an adapter? An adapter is a software component that enables you to send and receive messages to and from a line-of-business (LOB) system. The primary design goal of adapters is to facilitate the exchange of business documents between trading partners. Because each business system can adhere to specific document formats and protocols, the adapter uses a delivery mechanism that conforms to commonly recognized standards and protocols.

The adapters can be divided into two broad categories:

  • LOB adapters. Such adapters provide a service-oriented programming model to access LOB systems—for example, adapters for SAP or Siebel.

  • Data adapters. Such adapters provide a service-oriented programming model to access databases—for example, an adapter for the Oracle database or SQL Server.

There are five adapters in the BizTalk Adapter Pack:

  • Microsoft BizTalk Adapter for SQL Server (the SQL adapter)

  • Microsoft BizTalk Adapter for Oracle E-Business Suite (the Oracle E-Business adapter)

  • Microsoft BizTalk Adapter for Oracle Database (the Oracle Database adapter)

  • Microsoft BizTalk Adapter for mySAP Business Suite (the SAP adapter), including .NET Framework Data Provider for mySAP Business Suite (Data Provider for SAP)

  • Microsoft BizTalk Adapter for Siebel eBusiness Applications (the Siebel adapter), including .NET Framework Data Provider for Siebel eBusiness Applications (Data Provider for Siebel)

    Note
    The Siebel adapter is not available for 64-bit platforms.

If you do not already know how you want to use the Oracle Database adapter at your company, it is recommended that you start by exploring the features and functionality of the adapter described in Understanding BizTalk Adapter for Oracle Database.

In This Section

  • Prerequisite Skills and Knowledge

  • Common Administrative Tasks

  • Common Developer Tasks

  • Understanding BizTalk Adapter for Oracle Database

  • Oracle Database Adapter Migration Tutorial

  • Community Resources

  • Frequently Asked Questions


Prerequisite Skills and Knowledge
See Also

The potential users for the BizTalk Adapter Pack are:

  • Developers who directly program to the adapters

  • IT professionals who consume the adapters using other integration platforms like Microsoft BizTalk Server and other tools.

  • Independent software vendors (ISVs) who build solutions on top of the adapters

The prerequisite skills and knowledge required for each role are detailed below.

Prerequisites for Developers

A developer using Microsoft BizTalk Adapter for Oracle Database must be at least moderately experienced with the use of:

  • Microsoft Visual Studio 2013, with the development of .NET solutions

  • Programming with the .NET Framework 4.5 or .NET Framework 4.5.1

  • Programming with the Microsoft Windows Communication Foundation (WCF) Line of Business (LOB) Adapter SDK

  • Extensible Markup Language (XML)

  • XML Schema definition (XSD) language

  • Web Services Description Language (WSDL)

Prerequisites for IT Professionals

An IT professional using the Oracle Database adapter must be at least moderately experienced with the use of:

  • SQL Server Integration Services (SSIS)

  • BizTalk Server 2013 R2

  • Windows SharePoint Services

Prerequisites for ISVs

ISVs using the Oracle Database adapter must be at least moderately experienced with:

  • The internal workings and concepts of the Oracle database to be able to build applications on top of the adapters

  • Programming with the .NET Framework 4.5 or .NET Framework 4.5.1

  • The WCF LOB Adapter SDK

See Also

Other Resources

Getting Started
Understanding BizTalk Adapter for Oracle Database


Common Administrative Tasks

The following table provides links to topics helpful for deploying, using, and maintaining Microsoft BizTalk Adapter for Oracle Database.

Administrative Tasks

  • Oracle Database Adapter Migration Tutorial

  • Deployment

Planning and Architecture

  • Architecture for BizTalk Adapter for Oracle Database

  • Understanding BizTalk Adapter for Oracle Database

  • Security and Protection

Other Resources

  • Community Resources

  • Glossary

See Also

Concepts

Common Developer Tasks

Other Resources

Getting Started


Common Developer Tasks

The following table provides links to topics useful for developing applications on top of Microsoft BizTalk Adapter for Oracle Database.

Developer Tasks

  • Establishing a Connection to the Oracle Database

  • Developing BizTalk Applications

  • Developing Applications by Using the WCF Service Model

  • Developing Applications by Using the WCF Channel Model

Planning and Architecture

  • Architecture for BizTalk Adapter for Oracle Database

  • Understanding BizTalk Adapter for Oracle Database

  • Security and Protection

Other Resources

  • Community Resources

  • Troubleshooting

  • Technical Reference

  • Glossary

See Also

Concepts

Common Administrative Tasks

Other Resources

Getting Started


Understanding BizTalk Adapter for Oracle Database

The BizTalk Adapter Pack enables service-oriented programmatic access in order to interact with an external system. The adapters provide the following advantages to clients:

  • Consistent design-time experience. The adapters provide a common and user-friendly design-time experience for browsing, searching, and retrieving metadata of LOB artifacts.

  • Varied programming options. The adapters provide a choice of programming model including the Windows Communication Foundation (WCF) channel model, WCF service model, ADO.NET, Web services, or BizTalk supported models.

  • Uniform experience across LOBs. The adapters standardize on using WCF and Microsoft Windows Communication Foundation (WCF) Line of Business (LOB) Adapter SDK, and hence provide a uniform experience of gaining access to any LOB system.

As mentioned, the adapters are built on top of the WCF LOB Adapter SDK. The WCF LOB Adapter SDK provides a common basis for building integration adapters that a variety of client applications such as BizTalk Server and Microsoft Office can consume. The WCF LOB Adapter SDK aligns the adapter strategy with the Microsoft Services strategy by exposing integration adapters as Windows Communication Foundation (WCF) channels. For more information about the WCF LOB Adapter SDK, see the WCF LOB Adapter SDK documentation. The WCF LOB Adapter SDK documentation is installed along with the WCF LOB Adapter SDK, typically under <installation drive>:\Program Files\WCF LOB Adapter SDK\Documents.

To perform operations on an Oracle database, adapter clients must have access to relevant tables, functions, and procedures. Database tables are the basic unit of storage in the Oracle database. External applications can add or remove data from a table by using SQL statements. Applications can also access data in the tables by using views, functions, and procedures. With Microsoft BizTalk Adapter for Oracle Database, adapter clients can browse the artifacts such as tables, procedures, packages, views, and other such items in an Oracle database. Adapter clients can select the artifacts they require for their solution and retrieve metadata for those artifacts. This enables users to access and execute the operations on the artifacts in the Oracle database.

This section lists the features of the Oracle Database adapter.

In This Section

  • Overview of BizTalk Adapter for Oracle Database

  • New and Deprecated Features in BizTalk Adapter for Oracle Database

  • Limitations of BizTalk Adapter for Oracle Database

See Also

Other Resources

Getting Started


Overview of BizTalk Adapter for Oracle Database

The Microsoft BizTalk Adapter for Oracle Database exposes the Oracle database as a WCF service. Adapter clients can perform operations on the Oracle database by exchanging SOAP messages with the adapter. The adapter consumes the WCF message and makes appropriate ODP.NET calls to perform the operation. The adapter returns the response from the Oracle database back to the client in the form of SOAP messages.

The Oracle Database adapter surfaces metadata of Oracle database artifacts (tables, functions, procedures, etc.) that describes the structure of a SOAP message in the form of WSDL. The Oracle Database adapter uses Add Adapter Service Reference Visual Studio Plug-in, Consume Adapter Service BizTalk Project Add-in, and Add Adapter Metadata Wizard to enable adapter clients to retrieve metadata for operations and generates programming artifacts that can be used in your programming solution.

The Oracle Database adapter uses the Oracle Data Provider for .NET (ODP.NET) 11.1.0.7 to communicate with the Oracle database. You can use the Oracle Database adapter to communicate with the Oracle database in the following ways:

  • By developing BizTalk applications. See Developing BizTalk Applications for more information.

  • By using the Windows Communication Foundation (WCF) service model. See Developing Applications by Using the WCF Service Model for more information.

  • By using the WCF channel model. See Developing Applications by Using the WCF Channel Model for more information.

In This Section

  • How Does the Adapter Connect to an Oracle Database?

  • How Does the Adapter Surface Oracle Metadata?

  • What Operations Can be Performed Using the Adapter?

  • How does the Adapter Handle Transactions?

  • Streaming Support for LOB Data Types

  • Other Features Supported by the Adapter

See Also

Other Resources

Understanding BizTalk Adapter for Oracle Database


How Does the Adapter Connect to an Oracle Database?

The Microsoft BizTalk Adapter for Oracle Database uses ODP.NET 11.1.0.7 to connect to the Oracle database. The Oracle Database adapter requires adapter clients to provide a connection string, called the connection Uniform Resource Identifier (URI), to connect to the Oracle database. Internally, the Oracle Database adapter maps the URI to a database connection string to connect to the Oracle database. With a connection URI, adapter clients can specify connection parameters to connect to an external system.

The Oracle Database adapter enables adapter clients to connect to the Oracle database in the following two ways:

  • Using tnsnames.ora: The connection URI provided by the adapter client contains only the net service name specified in the tnsnames.ora file. The adapter extracts the connection parameters such as server name, service name, and port number from the net service name entry in the tnsnames.ora file. To use this approach, the computer running the Oracle client must be configured to include the net service name for the Oracle database in the tnsnames.ora file.

    Important
    Due to an Oracle Client limitation, the DataSourceName parameter (net service name) in the connection URI cannot contain more than 39 characters if you are performing operations in a transaction. Therefore, make sure that the value specified for the DataSourceName parameter is less than or equal to 39 characters if you will be performing operations in a transaction.

  • Without using tnsnames.ora: The connection URI provided by the adapter clients contains the connection parameters such as server name, service name, and port number. In this case, the net service name in the tnsnames.ora file, or the actual tnsnames.ora file itself, does not need to be present on the client computer. This is helpful when you have a large number of users connecting to the Oracle database in your organization, and adding/updating servers does not lead to manually adding/updating the connection details in the tnsnames.ora file on every client computer.

    Important
    This mode of connectivity is not supported if you are performing operations in a transaction. This is due to a limitation of Oracle Client.

For more information about connecting to the Oracle database, see Establishing a Connection to the Oracle Database.

Make sure you comply with the security guidelines when establishing a connection with the Oracle database. For more information about security guidelines, see Security and Protection.

Windows Authentication

The Oracle Database adapter supports Windows Authentication while connecting to the Oracle database. With Windows Authentication, the adapter clients can determine a user’s identity based on Windows logon credentials, and can leverage the built-in security of the Windows environment. For information about connecting to the Oracle database by using Windows Authentication, see Connecting to the Oracle Database Using Windows Authentication.

See Also

Concepts

Overview of BizTalk Adapter for Oracle Database


How Does the Adapter Surface Oracle Metadata?

The Oracle Database adapter surfaces metadata from the Oracle database that describes the message structure for communicating with the Oracle database using the adapter. The Oracle Database adapter supports two interfaces for retrieving metadata.

  • MetadataExchange provided by Windows Communication Foundation (WCF). WCF provides a metadata-exchange endpoint for all WCF bindings, which enables clients to get metadata from the Oracle database.

  • IMetadataRetrievalContract provided by the Microsoft Windows Communication Foundation (WCF) Line of Business (LOB) Adapter SDK, which supports the metadata browsing and searching capabilities of the adapter.

The Oracle Database adapter surfaces the Oracle database artifacts and respective operations that the adapter clients can invoke. The adapter also surfaces the SQLEXECUTE, POLLINGSTMT, and Notification operations that can be used to perform specific operations on the Oracle database. These operations are discussed later in this topic.

Adapter clients can browse, search, and retrieve metadata by using the WCF channel model, by using the WCF service model, or by creating a BizTalk project in Visual Studio. When using the WCF service model, you must use the Add Adapter Service Reference Visual Studio Plug-in to generate the proxy classes for performing operations on the Oracle database. When using a BizTalk project, you must use the Consume Adapter Service BizTalk Project Add-in or the Add Adapter Metadata Wizard to generate metadata for the operations that you want to perform on the Oracle database. For more information about browsing, searching, and retrieving metadata using Add Adapter Service Reference Plug-in, Consume Adapter Service Add-in or Add Adapter Metadata Wizard, see Retrieving Metadata for Oracle Operations in Visual Studio.

Browsing Metadata

The Oracle Database adapter enables adapter clients to browse database tables, table views, stored procedures, functions, and packages that are available in the Oracle database. As part of the metadata browse operation, the adapter also surfaces the operations that can be performed on the Oracle database, including some custom operations supported by the adapters. These operations are available from the Add Adapter Service Reference Plug-in or the Consume Adapter Service Add-in. The Oracle Database adapter surfaces the following operations:

Outbound Operations

Contains a list of schemas in the underlying Oracle database. Expand a schema node to see the following artifacts:

  • Table: A list of all the tables in the schema. Select a table to view the Insert, Select, Update, and Delete operations.

  • Procedure: A list of stored procedures in the schema that are exposed as operations.

  • Function: A list of functions in the schema that are exposed as operations.

  • Package: A list of all the packages in the schema. Select a package to view the procedures and functions inside the package that are exposed as operations.

  • View: A list of all the views in the schema. Select a view to view the Insert, Select, Update, and Delete operations.

Apart from this, the Oracle Database adapter also exposes the SQLEXECUTE outbound operation, which enables the adapter clients to execute any generic data manipulation language (DML) or stored procedure in an Oracle database. The SQLEXECUTE operation is available when you select the root node (/). Note that the output of SQLEXECUTE is an array of data readers (output as array of generic records). As a result, any simple out parameters are not surfaced using the SQLEXECUTE operation. For more information about the operation, see SQLEXECUTE Operation.

Inbound Operations

Contains a list of schemas in the underlying Oracle database. Expand a schema node to see the following artifacts:

  • Procedure: A list of stored procedures in the schema that are exposed as operations for polling.

  • Function: A list of functions in the schema that are exposed as operations for polling.

  • Package: A list of packages in the schema. Select a package to view the packaged procedures and functions that are exposed as operations for polling.

Apart from this, the Oracle Database adapter also exposes the POLLINGSTMT and Notification inbound operations. The POLLINGSTMT operation enables adapter clients to obtain inbound data from the Oracle database based on a query polling mechanism supported by the adapter. The Notification operation enables adapter clients to register a SELECT statement as the notification query on the database, and the database sends a notification to the adapter client as and when the result set of the SELECT statement changes. The POLLINGSTMT and Notification operations are available when you select the root node (/). For more information about the operations, see Support for Receiving Polling-based Data-changed Messages and Receiving Database Change Notifications.

For more information about how the metadata is categorized, see Metadata Node IDs.

Searching Metadata

With the Oracle Database adapter, it is possible to perform a search query on the Oracle database by using the Oracle search expressions that are compatible with the LIKE operator. For example, adapter clients can use a search expression such as “EMP%” to obtain tables starting with EMP. The adapter converts this to the following SQL query:

Copy Code
SELECT TABLE_NAME FROM ALL_TABLES WHERE TABLE_NAME LIKE 'EMP%' AND OWNER = 'SCOTT'

Where, SCOTT is the schema with a collection of Oracle database artifacts.

The following table lists the special characters that can be used for search and their interpretation by the Oracle Database adapter.

Special character | Interpretation
_ (underscore) | Matches exactly one character For example, A_ matches AB, AC, AD.
% (percentage) | Matches zero or more characters. For example, A% matches A, AB, ABC.
\ (escape) | Escapes the special meaning of % and _ For example, A\_B matches A_B.
Important
The metadata search scope is restricted to the level immediately under the node at which the search operation is performed. For example, to search for a function, you must be searching under \[Schema]\Functions. Recursive search is not supported.

Retrieving Metadata

When retrieving metadata, the Oracle Database adapter can extract metadata under a schema, including all or a subset of database objects with the respective object and operation parameters. The adapter presents the entities from the Oracle database as element names in XML. Because underscores are the only permissible special characters that can be included, all other special characters in the element names are encoded using underscores. For example, emp$name is encoded as emp_x0024_name.

See Also

Concepts

Overview of BizTalk Adapter for Oracle Database

Other Resources

Understanding BizTalk Adapter for Oracle Database
Retrieving Metadata for Oracle Operations in Visual Studio


What Operations Can be Performed Using the Adapter?

Adapter clients can perform operations on the Oracle database by creating BizTalk projects, by using the WCF channel model, or by using the WCF service model. The Oracle Database adapter exposes operations that applications can invoke on it and that it can, in turn, invoke on applications. These operations are invoked by sending SOAP messages over a channel. If a response is required, it is returned in a SOAP message over the same channel. For information about the message structure and the SOAP action associated with each operation, see Messages and Message Schemas for BizTalk Adapter for Oracle Database.

This section provides information about the operations supported on the Oracle database using the Oracle Database adapter.

In This Section

  • Performing Basic Insert, Update, Delete, and Select Operations on Oracle Tables and Views

  • Operations on Tables and Views That Contain LOB Data

  • Operations on Functions and Stored Procedures

  • Operations on Functions and Procedures with REF CURSOR Parameters

  • Operations on Functions and Procedures with RECORD Types

  • Operations on Tables With BFILE Data Types

  • Operations on Synonyms

  • SQLEXECUTE Operation

  • Performing Composite Operations

  • Support for Receiving Polling-based Data-changed Messages

  • Receiving Database Change Notifications

  • Support for Oracle User-Defined Types

See Also

Concepts

Overview of BizTalk Adapter for Oracle Database


Performing Basic Insert, Update, Delete, and Select Operations on Oracle Tables and Views

The Microsoft BizTalk Adapter for Oracle Database surfaces a set of standard operations on each Oracle database table and view. By using these operations, you can perform simple SQL INSERT, UPDATE, SELECT, and DELETE statements qualified by a WHERE clause on the target table (or view). These operations are also called data manipulation language (DML) operations. To perform more complex operations, for example a SQL SELECT query that uses the JOIN operator, you can use the SQLEXECUTE operation. For more information about the SQLEXECUTE operation, see SQLEXECUTE Operation.

The following table shows the DML operations that the Oracle Database adapter supports:

Operation Description

Insert

Performs an Insert operation on the target table or view. The Insert operation supports multiple record or bulk inserts into the target table or view:

  • A multiple record Insert operation inserts rows into a table or view based on a supplied record set.

  • A bulk Insert operation inserts rows into a table or view based on a supplied SQL SELECT query and column list. The records that the query returns are inserted into the target table based on the column list.

The return value for an Insert operation is the number of rows inserted.

Note
Both multiple-record insert and bulk insert cannot be combined in the same message.

InlineValue

For all simple data records in a multiple record Insert operation, you can choose to override the value of a record by specifying a value for an optional attribute called InlineValue. The InlineValue attribute can be used to insert computed values into tables or views such as populating the primary key column using a sequence or inserting system date (using SYSDATE) into a date column. For example, in the following INSERT statement:

Copy Code
<Insert xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/ACCOUNTACTIVITY">
  <RECORDSET>
    <ACCOUNTACTIVITYRECORDINSERT>
      <ACCOUNT>10001</ACCOUNT>
      <EMPNAME>John</EMPNAME>
      <AMOUNT>1500</AMOUNT>
      <TRANSDATE InlineValue="SYSDATE">2008-06-21T15:52:19</TRANSDATE>
      </ACCOUNTACTIVITYRECORDINSERT >
  </RECORDSET>
</Insert>

Even though “2008-06-21T15:52:19” is specified as a value for the TRANSDATE column, the value of the InlineValue attribute, “SYSDATE,” (system date) will be inserted into the target table.

While using the InlineValue attribute:

  • Avoid using constant values for the InlineValue attribute. For example, in the INSERT statement, if you specify <EMPNAME InlineValue="John"/> then it will result in an error. This is because the value of the InlineValue attribute is passed on as-is to Oracle, and in this case John is passed to the Oracle database, which is not the expected value (expected value is ‘John’). You would have to use single quotes around the employee name. For example: <EMPNAME InlineValue="’John’"/>.

  • If you want to use a select query for the InlineValue attribute, you must enclose the SELECT statement in parentheses and also ensure that the select query fetches only a single record. For example: <EMPNAME InlineValue="(SELECT NAME FROM MS_SAMPLE_EMPLOYEES WHERE ID=123)"/>.

Note
If an element is marked as NOT NULL in the Oracle database, you must specify a value for that element even if you have specified an inline value. Failing to do this will cause the schema validation to fail.

Select

Performs a SQL SELECT query on the target table or view based on a supplied list of column names and a filter string that specifies a SQL WHERE clause.

The return value for a Select operation is a strongly-typed result set that contains the specified columns and rows.

Update

Performs an Update operation on the target table or view. The records to be updated are specified by a filter string that specifies a SQL WHERE clause. The values for the update are specified in a template record.

The return value for an Update operation is the number of rows updated.

Delete

Performs a Delete operation on the target table or view based on a SQL WHERE clause that is specified in a filter string.

The return value for a Delete operation is the number of rows deleted.

For more information about:

  • Performing these operations using BizTalk Server, see Performing Basic Insert, Update, Delete, and Select Operations by Using BizTalk Server.

  • Performing these operations using the WCF service model, see Performing Basic Insert, Update, Delete, and Select Operations by Using the WCF Service Model.

  • Performing these operations using the WCF channel model, see Performing an Insert Operation by Using the WCF Channel Model.

  • Message structures and SOAP action for performing DML operations, see Message Schemas for the Basic Insert, Update, Delete, and Select Operations on Tables and Views.

See Also

Other Resources

What Operations Can be Performed Using the Adapter?


Operations on Tables and Views That Contain LOB Data

The Microsoft BizTalk Adapter for Oracle Database provides support for the Oracle large object (LOB) data types:

  • Binary large object (BLOB)

  • Character large object (CLOB)

  • National character large object (NCLOB)

  • Binary file (BFILE). For more information, see Operations on Tables With BFILE Data Types.

On the Oracle database, LOB data types are used to store large amounts of data (up to 4 GB). LOB types support both input and output streaming.

The Microsoft BizTalk Adapter for Oracle Database surfaces the following operations for tables and views that contain LOB columns:

  • ReadLOB. The ReadLOB operation is surfaced for tables and views that contain BLOB, CLOB, NCLOB, and BFILE columns. By using the ReadLOB operation, adapter clients can read values in a LOB column as a data stream. This operation takes the LOB data type column name and a filter string as parameters. Adapter clients must ensure that the filter string fetches exactly one matching row. If there is more than one matching row, the Oracle Database adapter only returns the LOB column for the first (matching) row.

    Note
    The ReadLOB operation is designed to support input streaming of LOB data in the WCF service model. You should use a table Select operation to read LOB data from a WCF Channel Model or BizTalk Server solution. For more information about streaming, see Streaming Support for LOB Data Types.

  • UpdateLOB. The UpdateLOB operation is surfaced for tables and views that contain BLOB, CLOB, and NCLOB columns. By using the UpdateLOB operation, adapter clients can update values in a LOB column. This operation takes the LOB data type column name, a filter string, and base64binary encoded data as parameters. Adapter clients must ensure that the filter string fetches exactly one matching row; otherwise the Oracle Database adapter throws an XmlReaderParsingException.

    Note
    The UpdateLOB operation:

    • Is not supported for the BFILE data type. Adapter clients can alternatively use the Update operation. For more information, see Operations on Tables With BFILE Data Types.

    • Must be performed as part of a transaction. To ensure this, the UseAmbientTransaction binding property must be set to True. For information about the UseAmbientTransaction binding property, see Working with BizTalk Adapter for Oracle Database Binding Properties.

Note
ReadLOB and UpdateLOB operate on a single LOB column in a single table row. To operate on LOB columns in multiple rows or on multiple LOB columns within a single row, you must invoke ReadLOB or UpdateLOB for each target column within each target row.

For more information about:

  • Invoking the UpdateLOB operation on an Oracle database table using BizTalk Server, see Performing Operations on Tables with Large Object Types Data by Using BizTalk Server. (You should use a table Select operation to read LOB data types in BizTalk Server.)

  • Invoking ReadLOB and UpdateLOB operations on an Oracle database table using WCF service model, see Performing Operations on Tables with Large Object Types by Using the WCF Service Model.

  • Message structure and SOAP actions for performing ReadLOB and UpdateLOB operations, see Message Schemas for Special LOB Operations.

See Also

Other Resources

What Operations Can be Performed Using the Adapter?


Operations on Functions and Stored Procedures

The Microsoft BizTalk Adapter for Oracle Database supports Oracle functions, procedures, and packages in the following manner:

  • Functions are surfaced as operations. The name of the operation is the name of the Oracle function. IN, OUT, and IN OUT parameters are supported, as well as, RETURN values.

  • Procedures are surfaced as operations. The name of the operation is the name of the Oracle procedure. IN, OUT, and IN OUT parameters are supported.

  • Packaged functions and procedures are surfaced as operations. The name and namespace of the operation (function or procedure) is qualified by the name of the Oracle package. Overloads are supported in packages (see next bullet).

  • Overloaded functions and procedures in packages are surfaced as operations. Each overloaded function or procedure is surfaced with a string appended to its name that identifies the overload. This string is part of the sequence "overload1", "overload2", "overload3", and so on.

  • REF CURSOR types are supported for IN, OUT, and IN OUT parameters for procedures and functions, as well as for function RETURN values. For more information, see Operations on Functions and Procedures with REF CURSOR Parameters.

  • RECORD types are supported for IN, OUT, and IN OUT parameters for procedures and functions, as well as for function RETURN values. Both simple and complex (nested) RECORD types are supported. Operations on Functions and Procedures with RECORD Types

For more information about:

  • Invoking an Oracle procedure or function by using BizTalk Server, see Invoking Functions and Procedures by Using BizTalk Server and Invoking Overloaded Functions and Procedures by Using BizTalk Server.

  • Invoking an Oracle procedure or function by using the WCF service model, see Invoking Functions and Procedures by Using the WCF Service Model.

  • Invoking an Oracle procedure or function by using the WCF channel model, see Invoking a Function by Using the WCF Channel Model.

  • Message structure and SOAP actions used to invoke Oracle procedures and functions, see Message Schemas for Functions and Procedures.

See Also

Other Resources

What Operations Can be Performed Using the Adapter?


Operations on Functions and Procedures with REF CURSOR Parameters

A REF CURSOR is a PL/SQL data type that represents a pointer to a server-side result set generated by executing a query. A REF CURSOR type enables input and output streaming of data and is ideal for transferring large amounts of data to and from a PL/SQL code. The Oracle Database adapter provides support for strongly-typed and weakly-typed (SYS_REFCURSOR) REF CURSORs that can be passed to PL/SQL procedures and functions as IN, OUT, or IN OUT parameters.

  • IN REF CURSOR. Adapter clients must use an IN REF CURSOR by supplying a PL/SQL code (as string) that opens REF CURSOR on the Oracle database. The adapter creates variable and sets it the opened REF CURSOR and calls a function or procedure with that variable. Therefore, IN REF CURSOR parameters in PL/SQL stored procedure and functions should be represented as strings that take a PL/SQL code block as input value marking the OUT REF CURSOR variable with a "?".

  • OUT REF CURSOR. OUT REF CURSOR parameters are returned as either strongly-typed or weakly-typed result sets. The type of the result set returned depends on whether the REF CURSOR parameter is declared as a strongly-typed or weakly-typed REF CURSOR in the stored procedure or function definition on the Oracle server.

  • IN OUT REF CURSOR parameters. Because the Oracle Database adapter models IN REF CURSOR parameters as strings and OUT REF CURSOR parameters as complex types, it cannot support a single type for an IN OUT REF CURSOR parameter. For this reason, it treats IN OUT REF CURSOR parameters as two different parameters: an IN parameter in the request message and an OUT parameter in the response message.

For more information about:

  • Invoking a function or procedure involving REF CURSOR parameters using the BizTalk Server, see Invoking Functions and Procedures with REF CURSORS by Using BizTalk Server.

  • Invoking a function or procedure involving REF CURSOR parameters using the WCF service model, see Performing Operations Using REF CURSORS in the WCF Service Model.

  • XML structure for REF CURSORS as supported by the Oracle Database adapter, see Message Schemas for REF CURSORS.

See Also

Other Resources

What Operations Can be Performed Using the Adapter?


Operations on Functions and Procedures with RECORD Types

Oracle RECORD types are used to represent hierarchical information in parameters passed to PL/SQL functions and procedures. The Microsoft BizTalk Adapter for Oracle Database surfaces RECORD types as complex XML types. The Oracle Database adapter supports the following kinds of RECORD types:

  • RECORD types that are declared as TABLE%ROWTYPE parameters in stored procedures and functions.

  • RECORD types that are declared as TYPE of RECORD parameters in PL/SQL packages for example, TYPE rec_type1 IS RECORD(name varchar2(100), age number(3));

  • RECORD types that contain nested records.

  • RECORD types that appear as IN, OUT, or IN OUT parameters to procedures or functions.

  • RECORD types that are RETURN values of functions.

    Note
    The Oracle Database adapter does not support BFILE types as RECORD members.

For information about:

  • Invoking a function or procedure involving RECORD types using the WCF service model, see Performing Operations Using RECORD Types in the WCF Service Model.

  • Invoking a function or procedure involving RECORD types using BizTalk Server, see Invoking Functions and Procedures with RECORD Types by Using BizTalk Server.

  • XML structure for RECORD types as supported by the Oracle Database adapter, see Message Schemas for RECORD Types.

See Also

Other Resources

What Operations Can be Performed Using the Adapter?


Operations on Tables With BFILE Data Types

The Oracle Database adapter supports the BFILE data type in tables and stored procedures. The following table summarizes the BFILE data type exposed by the adapter based on the operation performed and the LOB artifact (table/procedure) accessed:

Artifact | Operation | Data type exposed for BFILE col/param | Comments
TABLE | INSERT | String | Represents the logical Oracle directory path to the file to be inserted into the BFILE column E.g. MYDIR/screen.jpg where MYDIR is a logical directory in Oracle
TABLE | UPDATE | String | Represents the logical Oracle directory path to the file to be updated into the BFILE column
TABLE | SELECT | byte[] | Represents the binary data constituting the BFILE
STORED PROC | IN PARAM | String | Represents the logical Oracle directory path to the file to be inserted into the BFILE column E.g. MYDIR/screen.jpg where MYDIR is a logical directory in Oracle
STORED PROC | OUT PARAM | String | Represents the logical Oracle directory path to the file to be inserted into the BFILE column E.g. MYDIR/screen.jpg where MYDIR is a logical directory in Oracle
STORED PROC | INOUT PARAM | Not Supported | -

The special operation ReadLOB is also supported on tables with BFILE data type. The UpdateLOB operation is not supported. Adapter clients can alternately use the UPDATE operation.

For more information about:

  • Performing operations on tables containing BFILE data types by using BizTalk Server, see Performing Operations on Tables with BFILE Data Types by Using BizTalk Server.

See Also

Other Resources

What Operations Can be Performed Using the Adapter?


Operations on Synonyms

The Oracle Database adapter allows you to perform operations on synonyms. A synonym is an alias or friendly name for the database objects (such as tables, views, stored procedures, functions, and packages). For more information about synonyms in Oracle, see http://go.microsoft.com/fwlink/?LinkId=138058.

Advantages of Using Synonyms

Synonyms are helpful in the following scenarios:

  • Working with different schemas: If you are working with different schemas, and need to access the objects across schemas, you have to use different SQL statements to access those objects. You can create a synonym for an object in a schema, and use the synonym in your SQL statement to access the object. If you need to access the underlying object in a different schema, modify the definition of the synonym to point to the object in a different schema. Thus, the applications based on the synonym continue to function without modification in the SQL statement.

    For example, suppose you have two identical schemas for your test and production environments: “Test” and “Prod.” To access a table called “Employee” in the “Test” schema, you must use Test.Employee or Employee (if “Test” is the default schema) in your SQL statement. If you want to use the “Employee” table in the production schema, you must now use Prod.Employee or Employee (change the default schema to “Prod”) in your SQL statement. To get around this issue, you can create a synonym for the “Test.Employee” table (say “EMP”), and then use it in your SQL statements. Whenever you need to perform operation on the “Prod.Employee” table, modify the definition of the “EMP” synonym to point it to the “Prod.Employee” table. This ensures that you do not have to modify your SQL statements to perform operation on the object in different schemas.

  • Changes in the underlying objects: The synonyms insulate you from any changes in the name or location of the underlying objects on which you are performing an operation. You can modify the synonym definition to accommodate any changes in the name or location of the underlying objects.

    For example, suppose that you are using a table in one of your stored procedures. Now, if the table name changes or the table is moved to some other location then your stored procedure will stop working. To work around this, you can use a synonym for the table in the stored procedure, and update the synonym definition if there is a change in the name or location of the table.

  • Simplified and secure access: In a distributed environment, you must use the schema name along with the object names to ensure that you are accessing the correct object. Moreover, you must also ensure that the user has required privileges on the target object. To simplify this, you can assign a simple name for an object by creating a synonym that has the full qualified path to the object, and then grant appropriate privileges on the synonym.

Working with Synonyms in the Adapter

The Oracle Database adapter exposes the synonyms in Oracle for:

  • Tables

  • Views

  • Stored Procedures

  • Functions

  • Packages

The synonyms for each of these artifacts are exposed alongside the respective underlying artifact in the Consume Adapter Service Add-in, Add Adapter Metadata Wizard, and Add Adapter Service Reference Plug-in. For example, the Table node under a schema will display all the synonyms for tables along with the database tables in a schema, the View node under a schema will display all the synonyms for views along with the database views in a schema, and so on.

  • For synonyms created on tables and views, the same operations are exposed as for the underlying tables and views respectively. For example, if the underlying tables and views contain LOB columns, the synonyms for those tables and views will also expose the ReadLOB and UpdateLOB operations.

  • For synonyms created on stored procedures, functions, and packages, the synonyms are exposed as operations alongside the respective underlying stored procedures, functions, and packages in a schema.

Note
The Oracle Database adapter supports only local synonyms. This implies that only those synonyms are supported by the adapter that target the artifacts on the local server.

Moreover, the message actions for the synonyms are the same as the underlying object except for the artifact name on which the action is performed. For example, the message action for the Select operation on a table in the SCOTT schema is: http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/[TABLE_NAME]/Select. If you are performing a Select operation on a synonym for the same table in the SCOTT schema then the message action will be: http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/[SYNONYM_NAME]/Select.

When you invoke an operation on a synonym in the adapter, the adapter calls the synonym in the Oracle database to execute the operation. However, the adapter uses the underlying object name in the synonym definition to fetch the metadata.

Synonyms can be used in normal outbound operations, composite operations, and polling.

Note
You can search for synonyms in Consume Adapter Service Add-in or Add Adapter Service Reference Plug-in just like other objects. However, you cannot search for procedures inside synonym packages from a skip-level node as you can do for the procedures inside packages. For information about searching for operations in the adapter, see Browsing, Searching, and Retrieving Metadata for Oracle Operations.

See Also

Other Resources

What Operations Can be Performed Using the Adapter?


SQLEXECUTE Operation

The Microsoft BizTalk Adapter for Oracle Database surfaces a standard set of operations on Oracle database artifacts. By using these operations, you can do things like call an Oracle function or procedure, or perform basic SQL data manipulation language (DML) operations on tables. However, there may be scenarios driven by your business logic that require you to perform operations that the Oracle Database adapter does not surface. For example, you may want to:

  • Perform an operation on database artifacts that are not surfaced by the Oracle Database adapter; for example, get the CURVAL or NEXTVAL of an Oracle SEQUENCE.

  • Perform data definition language operations; for example, create a table.

  • Perform operations on a database artifact that was not present at design time; for example, update records in a temporary table that is created by your business logic.

  • Perform more complex DML operations on tables than the operations that the Oracle Database adapter surfaces; for example, to perform a query that includes a JOIN clause.

For these kinds of scenarios, the Oracle Database adapter surfaces the SQLEXECUTE operation. The SQLEXECUTE operation is surfaced under the root node (/) in the Select a category pane in the Add Adapter Service Reference Visual Studio Plug-in and Consume Adapter Service BizTalk Project Add-in.

By using the SQLEXECUTE operation, you can perform a parameterized SQL statement on the Oracle database. The SQLEXECUTE operation supports an input parameter block consisting of parameter sets that enable you to execute the same SQL statement once for each set. The SQLEXECUTE operation returns the results of the SQL statement in a generic record set.

Note
You can pass IN and IN OUT parameters to procedures, functions, and packages in the SQLEXECUTE operation. The invoked artifact will execute with the supplied parameters on the Oracle database; however, the SQLEXECUTE operation does not return the value of OUT and IN OUT parameters to the client. If you want to invoke procedures, functions, or packages, we recommend that you do so by invoking the dedicated operations that the Oracle Database adapter exposes for these Oracle artifacts.

For more information about:

  • Performing a SQLEXECUTE operation by using BizTalk Server, see Performing a SQLEXECUTE Operation by Using BizTalk Server.

  • Performing a SQLEXECUTE operation by using the WCF service model, see Performing a SQLEXECUTE Operation by Using the WCF Service Model.

  • Performing the SQLEXECUTE operation by using the WCF channel model, see Performing a SQLEXECUTE Operation by Using the WCF Channel Model.

  • Message structure and SOAP actions for performing a SQLEXECUTE operation, see Message Schemas for the SQLEXECUTE Operation.

See Also

Other Resources

What Operations Can be Performed Using the Adapter?


Performing Composite Operations

The Oracle Database adapter enables adapter clients to perform composite operations that can include any number of the following operations, and in any order:

  • Select, Insert, Update, and Delete operations on tables and views.

  • Stored procedures, functions, and procedures or functions within packages that are surfaced as operations in the adapter.

The operations in a composite operation can target tables and views in the same database or different databases. However, data cannot be shared or reused across different operations in a composite operation. For example, in a composite operation, the result set of a Select operation cannot be used as the input parameter for a stored procedure.

Each operation in a composite operation is performed using a separate connection. The Oracle Database adapter consumes as many connections from the ODP.NET connection pool as the number of operations in a composite operation, and then releases the connections as the operations get executed. However, if an operation in the composite operation returns a result set, the connection is released only after the message is consumed.

Important
If you experience time-out issues while executing a composite operation then it could be because the number of connections is less than the number of operations in a composite operation involving:

  • Stored procedures containing BFILE, BLOB, CLOB, NCLOB, and REF CURSOR as OUT or IN OUT parameters.

  • Select operation.

To resolve this issue, you must ensure that if there are “n” number of such operations in a composite operation, the value specified for the MinPoolSize binding property is “n+1” or greater. For more information about the MinPoolSize binding property, see Working with BizTalk Adapter for Oracle Database Binding Properties.

For information about:

  • How to perform composite operations in Oracle Database adapter using BizTalk Server, see Performing Composite Operations on Oracle Database by Using BizTalk Server.

  • Message schemas for the composite operation, see Message Schemas for the Composite Operation.

See Also

Other Resources

What Operations Can be Performed Using the Adapter?


Support for Receiving Polling-based Data-changed Messages

The Oracle Database adapter enables client programs to receive messages from the Oracle database informing them of changes to data stored in an Oracle database. The Oracle Database adapter supports receiving "polling-based" messages wherein the adapter executes a specified SELECT query, stored procedure, function, or procedure or function within a package, retrieves the data, and provides the result to the client at regular intervals of time. To enable this, the Oracle Database adapter exposes a POLLINGSTMT operation. Moreover, all the stored procedures, functions, and procedures and function within packages are exposed as inbound operations for polling.

The adapter provides two ways of polling the Oracle database:

  • Using SELECT statements. You can specify a simple SELECT statement to poll the tables and views in the Oracle database. The adapter executes the SELECT statement at specified intervals and returns the result to the adapter clients.

  • Using stored procedures, functions, or procedures or functions within a package. You can specify a stored procedure, function, or procedure or function within a package to poll the Oracle database. The adapter executes the request message at specified intervals and returns the result to the adapter clients.

Polling Operation Workflow

A typical polling operation using the Oracle Database adapter involves the following:

  1. The adapter clients must specify Polling as the inbound operation in the InboundOperationType binding property. The default value for this binding property is Polling.

  2. The adapter clients must specify a SELECT statement for the PolledDataAvailableStatement binding property to determine whether there is data available for polling. On execution of this statement, if the first column of the first row of the result set returned contains a positive integer value, there is date available for polling. By default, the value of this binding property is set to Select 1 FROM DUAL, which implies that the adapter must continue polling irrespective of whether the table being polled has data or not.

  3. The adapter clients must specify a polling interval for the PollingInterval binding property to define the interval in seconds at which the statement specified in the PolledDataAvailableStatement binding property is executed. At the end of every polling interval, the polled data available statement is executed, and the result set is returned.

  4. The adapter clients must specify a SELECT statement or a stored procedure for the PollingStatement binding property.

    • If you want to poll a table or view, you must specify a SELECT query in this binding property.

    • If you want to poll using a stored procedure, function, or procedure or function within a package, you must specify the entire request message for the respective operation in this binding property.

    The statement in the PollingStatement binding property is executed only if there is data available for polling, which is determined by the PolledDataAvailableStatement binding property in step 1.

  5. The adapter clients must specify an action for the polling operation in the PollingAction binding property. The polling action for a specific operation is determined from the metadata generated for the operation using the Consume Adapter Service Add-in.

    Note
    If you are polling a table or view using a SELECT statement in the PollingStatement binding property, you do not need to specify any value for the PollingAction binding property. The default value, Null, is passed in this case.

  6. The adapter clients can use the PollWhileDataFound binding property to ignore the polling interval, and continuously poll data, as and when available.

    Important
    If you set the value of the PollWhileDataFound binding property to True, the adapter clients continuously poll data from Oracle and in the process open and close connections to the Oracle database in a loop. As the rate at which connections are opened by ODP.NET is greater than the connections being closed, the connections get exhausted after some time, and an exception is thrown. As a work around, make sure that the value of the UseOracleConnectionPool is set to True, and an appropriate value is mentioned in the IncrPoolSize binding property to control the number of connections that can be opened by the adapter clients.

  7. The adapter clients can specify a post-poll statement, an Oracle PL/SQL block, for the PostPollStatement binding property. The statement specified in this binding property is executed after the statement specified in the PollingStatement binding property is executed.

The adapter wraps the polling statement and the post-poll statement in a transaction and the transaction timeout value is set as the value specified for the PollingInterval binding property. Therefore, it is critical to specify a timeout value that is greater than or equal to the time required to process the incoming message and send a reply. If the time taken by the client program to consume the message or execute the post-poll query is more than the timeout value, the transaction is rolled back. If the time taken is less than the timeout value, the adapter commits the transaction and "sleeps" for the remaining time in the poll before performing the next poll.

The adapter suppresses any empty polling responses coming from the Oracle database.

Differences between Polling and Notification

Though polling and notification are both inbound operations, and inform the adapter clients about the data changes in the Oracle database, the following table illustrates some differences between the two. The following differences will help you decide on an operation depending on your requirements:

Polling Notification

Polling is supported for all the Oracle database versions that are supported by the Oracle Database adapter.

Notification is supported only for Oracle database versions 10.2 and later.

You can either configure the polling interval to check the data available for polling at regular intervals or instantaneously as and when the data is available.

Tip
Polling can give you better throughput in scenarios where the data changes are happening continuously, and you do not want to be notified of each change as and when it happens. Instead, you specify a polling interval after which you want to be notified of all the changes that have happened since the last change notification.

The data-change notification is always instantaneous.

Polling is initiated by the adapter. The adapter executes a SQL statement to validate whether data is available for polling, and then initiates polling by executing the polling statement if some data is available for polling.

Notification is initiated by the Oracle database. The notification statement issued by the adapter just instructs the database to initiate notification in case there is a change in the result set of the statement. Notification is a feature of the Oracle database.

You can use the polling statement to read or update data in the Oracle database.

You can use the notification statement to only read data in an Oracle database.

Polling informs you about the actual data that has changed.

Notification informs only about the type of change in the data such as Insert, Update, and Delete.

For more information about:

  • How the adapter supports receiving polling-based messages from Oracle database, see Receiving Polling-based Data-changed Messages.

  • Receiving polling-based messages from Oracle database using BizTalk Server, see Polling Oracle Database by Using BizTalk Server.

  • Receiving polling-based messages from Oracle database using WCF service model, see Receiving Polling-based Data-changed Messages by Using the WCF Service Model.

  • Receiving polling-based messages from Oracle database using WCF channel model, see Receiving Polling-based Data-changed Messages by Using the WCF Channel Model.

  • Message structure and SOAP actions for performing a polling query, see Message Schemas for the Polling Operations.

See Also

Other Resources

What Operations Can be Performed Using the Adapter?


Receiving Database Change Notifications

The Microsoft BizTalk Adapter for Oracle Database supports the ODP.NET Database Change Notification feature. Using this feature, the adapter clients can register a SELECT statement as the notification query on the database, and the database sends a notification to the adapter client as and when the result set of the SELECT statement changes. The database change notification is implemented in the adapter using the OracleDependency class. For more information about the Database Change Support feature in ODP.NET and the OracleDependency class, see http://go.microsoft.com/fwlink/?LinkId=124801.

The Oracle Database adapter exposes an inbound operation, Notification, to support database change notification. However, for the database change notification to work with Oracle Database adapter, you must ensure the following:

  • Connect to the Oracle database with the underlying Oracle database version 10.2 or later. Oracle database versions prior to 10.2 do not support notifications.

  • Connect to Oracle database as a user that has the CHANGE NOTIFICATION privilege to create a notification registration. To grant the CHANGE NOTIFICATION privilege to a user, connect to the Oracle database as a user with administrative privileges, and run the following command at the SQL prompt:

    Copy Code
    grant change notification to <user name>
  • Decide on a TCP port that can be used by ODP.NET to receive database change notifications from Oracle database. Add the TCP port to Windows Firewall exceptions list. For instructions on how to add ports to Windows Firewall exceptions list, see http://go.microsoft.com/fwlink/?LinkID=196959. You must provide the same TCP port number for the NotificationPort binding property. For more information about the binding property, see Working with BizTalk Adapter for Oracle Database Binding Properties.

A typical database change notification using the Oracle Database adapter involves the following:

  1. The adapter clients must specify Notification as the inbound operation in the InboundOperationType binding property. The default value for this binding property is Polling.

  2. The adapter clients must specify a SQL SELECT statement to register for database change notifications in the NotificationStatement binding property. The adapter client gets a notification from Oracle database as and when the result set for the specified SQL statement changes.

  3. The adapter clients must specify whether the adapter sends a notification to the adapter clients as soon as the listener is started in the NotifyOnListenerStart binding property.

  4. The notification is sent to the adapter clients as and when the result set of the SELECT statement specified in the NotificationStatement binding property is changed.

Caution
If there is a network outage between the Oracle database and the adapter client, the notifications will not be sent to the adapter clients for the changes done on the Oracle database during the period of network outage, and thereafter. Therefore, you must use the Polling operation instead of the Notification operation for critical scenarios.

Differences between Notification and Polling

Though notification and polling are both inbound operations, and inform the adapter clients about the data changes in the Oracle database, the following table illustrates some differences between the two. The following differences will help you decide on an operation depending on your requirements:

Notification Polling

Notification is supported only for Oracle database versions 10.2 and later.

Polling is supported for all the Oracle database versions that are supported by the Oracle Database adapter.

The data-change notification is always instantaneous.

You can either configure the polling interval to check the data available for polling at regular intervals or instantaneously as and when the data is available.

Tip
Polling can give you better throughput in scenarios where the data changes are happening continuously, and you do not want to be notified of each change as and when it happens. Instead, you specify a polling interval after which you want to be notified of all the changes that have happened since the last change notification.

Notification is initiated by the Oracle database. The notification statement issued by the adapter just instructs the database to initiate notification in case there is a change in the result set of the statement. Notification is a feature of the Oracle database.

Polling is initiated by the adapter. The adapter executes a SQL statement to validate whether data is available for polling, and then initiates polling by executing the polling statement if some data is available for polling.

You can use the notification statement to only read data in an Oracle database.

You can use the polling statement to read or update data in the Oracle database.

Notification informs only about the type of change in the data such as Insert, Update, and Delete.

Polling informs you about the actual data that has changed.

For more information about:

  • The binding properties related to the Notification operation, see Working with BizTalk Adapter for Oracle Database Binding Properties.

  • How to use the Notification operation in Oracle Database adapter, see Receiving Database Change Notifications Using BizTalk Server.

See Also

Other Resources

What Operations Can be Performed Using the Adapter?


Support for Oracle User-Defined Types

The Microsoft BizTalk Adapter for Oracle Database supports performing operations on artifacts in the Oracle database that contain Oracle User-Defined Types (UDTs). The UDTs can be present in the following artifacts:

  • Tables and views containing UDT columns.

  • Packages, stored procedures, and functions containing UDT parameters.

What is an Oracle UDT?

Oracle UDTs help in representing complex entities as a “single” object that can be shared among the applications. For example, it is possible to model real-world entities such as "Customers" or "Sales Orders" as objects in the Oracle database. Oracle UDTs are defined in the Oracle database, and they are of the following two types:

  • Object types. For example, Oracle Object.

  • Collection types. For example, nested table types or VARRAY.

The name of the Oracle UDT is case sensitive, and must be specified in the following way: [SCHEMA_NAME].[UDT_NAME].

How Does the Adapter Support Oracle UDT?

ODP.NET supports UDTs by representing Oracle UDTs defined in the Oracle database as .NET types (custom types). Custom types define the mapping between the Oracle UDT attributes or elements to the .NET members. Custom types can be .NET classes or structures, and can represent either Oracle Objects or Oracle Collections. Owing to the fact that the Oracle Database adapter uses ODP.NET to connect to the Oracle database, it inherits support for Oracle UDTs.

The Oracle Database adapter uses the ODP.NET to specify a custom type mapping to map a .NET custom type to an Oracle UDT in the database. To specify a custom type mapping, the Oracle Database adapter uses a custom type factory. Therefore, in order to use an Oracle UDT, an assembly (.dll file) is required that defines the custom type factory. The Oracle Database adapter enables you to generate an assembly for the custom type factory while generating the metadata for an artifact/operation that contains an Oracle UDT.

Note
The adapter generates the assembly for the Oracle UDTs based on the classes used by the ODP.NET to support Oracle UDTs. For detailed information about how Oracle UDTs are supported in ODP.NET, see http://go.microsoft.com/fwlink/?LinkId=140697.

To generate the assembly file for using the Oracle UDTs at design time and then use it later at the run time, the Oracle Database adapter exposes the following binding properties:

  • GeneratedUserTypesAssemblyFilePath (design time)

  • GeneratedUserTypesAssemblyKeyFilePath (design time)

  • UserAssembliesLoadPath (run time)

For information about these binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

Performing Operations On Artifacts Containing Oracle UDTs

To perform operations on artifacts containing UDTs using the Oracle Database adapter, you must do the following during design time and run time.

Design Time

You must perform these steps while generation schema for the operation in Visual Studio.

  1. Connect to the Oracle database using the Consume Adapter Service Add-in, the Add Adapter Metadata Wizard, or the Add Adapter Service Reference Plug-in. For information about doing so, see Connecting to the Oracle Database in Visual Studio Using Consume Adapter Service Add-in.

  2. While connecting, in the Binding Properties tab of the Configure Adapter dialog box, specify appropriate values for the GeneratedUserTypesAssemblyFilePath and GeneratedUserTypesAssemblyKeyFilePath binding properties. For information about these binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

  3. When you are connected to the Oracle database in Visual Studio, browse to the required artifact that contains an Oracle UDT. For information about browsing artifacts, see Browsing, Searching, and Retrieving Metadata for Oracle Operations.

  4. Select the required artifact, and then click OK. The Oracle Database adapter generates the metadata for the selected operation along with the assembly (.dll file) for the Oracle UDT in the selected artifact. The assembly is created at the location that you specified in the GeneratedUserTypesAssemblyFilePath binding property.

  5. Proceed with the rest of the steps for building and deploying your project.

Run Time

You must perform these steps in the adapter clients to perform operations on the Oracle UDTs.

In BizTalk Server

  • Manually add the Oracle UDT assembly created in step 4 in “Design Time” to the Global Assembly Cache (GAC) on your computer. Alternatively, you can manually copy the Oracle UDT assembly under the BizTalk Server installation location. For BizTalk Server 2013 R2, typically this is <installation drive>:\Program Files\Microsoft BizTalk Server 2013 R2.

  • While configuring the BizTalk Server WCF-Custom or WCF-OracleDB port, in the Binding tab, specify the location of the Oracle UDT assembly for the UserAssembliesLoadPath binding property. For information about this binding property, see Working with BizTalk Adapter for Oracle Database Binding Properties.

In Visual Studio

  • Manually add the Oracle UDT assembly created in step 4 in “Design Time” to the Global Assembly Cache (GAC) on your computer. Alternatively, you can manually copy the Oracle UDT assembly to the same location as the project executable file, which typically is under the project’s \bin\Debug folder.

  • Specify the location of the Oracle UDT assembly for the UserAssembliesLoadPath binding property. For information about this binding property, see Working with BizTalk Adapter for Oracle Database Binding Properties.

See Also

Other Resources

What Operations Can be Performed Using the Adapter?


How does the Adapter Handle Transactions?

Microsoft BizTalk Adapter for Oracle Database does not initiate a transaction while performing an operation on the Oracle database. Instead, the adapter performs the operations using the transaction context provided by the adapter clients. In order to perform operations in a transaction using the Oracle Database adapter, you must:

  • Enable transactions in the adapter clients. For example, to enable transactions in BizTalk Server 2013 R2, you must select the Use Transaction check box in the Transactions area of the Messages tab for a WCF-Custom or WCF-OracleDB port.

  • Set the value of the UseAmbientTransaction binding property to True in the adapter. For more information about the binding property, see Working with BizTalk Adapter for Oracle Database Binding Properties.

Important
To use the adapter to perform transactions on the Oracle database, you must have installed the Oracle Services For Microsoft Transaction Server component, while installing the Oracle client, on the computer running the adapter client.

Transactions in the Outbound Operations

The Oracle Database adapter performs an outbound operation in a single transaction. For composite operations, all the operations are performed in a single transaction but using different ODP.NET connections. For more information about the outbound operations surfaced by the Oracle Database adapter, see How Does the Adapter Surface Oracle Metadata?.

Transactions in the Inbound Operations

The Oracle Database adapter exposes the following two inbound operations:

  • Polling: The polling statement and the post-poll statement (if specified) are executed in a transaction, whereas, the polled data available statement is executed in a different transaction. Similarly, the polling statement and the post-poll statement are executed using the same ODP.NET connection, whereas, the polled data available statement is executed using a different ODP.NET connection.

  • Notification: The notification operation is performed in a transaction using a single ODP.NET connection.

For more information about the inbound operations surfaced by the Oracle Database adapter, see How Does the Adapter Surface Oracle Metadata?.

See Also

Concepts

Overview of BizTalk Adapter for Oracle Database


Streaming Support for LOB Data Types

The Oracle database supports streaming on large object (LOB) data types. The Oracle Database adapter supports message streaming, which makes it possible to stream LOB data end-to-end between the Oracle database and an adapter client. However, streaming is not supported in the same manner across all programming models when you use the adapter.

The following shows how end-to-end streaming of LOB data types is supported by the adapter across different programming models.

Operation | WCF Channel Model | WCF Service Model | BizTalk Server
Table/View Insert operation | Not supported | Not supported | Not supported
Table/View Select operation | Supported | Not supported | Supported
Table/View Update operation | Not supported | Not supported | Not supported
Table/View Delete operation | Not supported | Not supported | Not supported
Table/View ReadLOB operation | Supported; however, the ReadLOB operations is surfaced primarily to support streaming in the WCF service model, it is not recommended for use in the WCF channel model. Use a Select operation or the SQLEXECUTE operation instead. | Supported | The ReadLOB operation is not supported for BizTalk Server. Use a Select operation instead.
Table/View UpdateLOB operation | Supported | Not Supported | Supported
SQLEXECUTE operation | Supported in the response | Not Supported | Supported in the response
Stored procedure and function operation | Supported in the response | Not Supported | Supported in the response
POLLINGSTMT operation | Supported | Not Supported | Supported

For more comprehensive information about how streaming of LOB data types is supported by the adapter and how it is supported when you use various programming models with the adapter, see Streaming and the Oracle Database Adapter.

See Also

Concepts

Overview of BizTalk Adapter for Oracle Database


Other Features Supported by the Adapter

In addition to the features discussed throughout the topics of Overview of BizTalk Adapter for Oracle Database, the Oracle Database adapter also provides the following features that are useful for adapter clients:

  • Support for configuring adapters using binding properties. Adapter clients can configure the Oracle Database adapter by specifying certain binding properties. For example, clients can configure the adapter to use the ODP.NET connection pool by setting the UseOracleConnectionPool binding property. For more information, see Working with BizTalk Adapter for Oracle Database Binding Properties.

  • Support for null values for operation parameters. Adapter clients can provide null values for operation parameters using the “nil” attribute in the input XML.

  • Support for dynamic ports in BizTalk. Through the BizTalk WCF-Custom adapter, the Oracle Database adapter supports a dynamic port that enables dynamic routing of messages from BizTalk Server based on the message context properties. For more information, see Configuring Dynamic Ports.

  • Support for performance counters. The Oracle Database adapter supports WCF-based performance counters for use by adapter clients. For more information about performance counters, see Using Performance Counters.

See Also

Concepts

Overview of BizTalk Adapter for Oracle Database


New and Deprecated Features in BizTalk Adapter for Oracle Database

This section lists the new and deprecated features in Microsoft BizTalk Adapter for Oracle Database.

Note
This topic has been used from the previous version of Microsoft BizTalk Adapter for Oracle Database Help.

New Features in the Oracle Adapter

The following are the new features introduced in this release of Oracle Database adapter.

Technology-Related Features

Feature | Comment
New way of connecting to the Oracle database | Apart from connecting to the Oracle database using the net service name in the tnsnames.ora file (as in the previous version of the adapter), the adapter clients can now also connect to the Oracle database directly by specifying the connection parameters, and thus eliminating the need to use a net service name or the tnsnames.ora file. Not requiring the tnsnames.ora file to connect to the Oracle database saves you from the hassle of manually updating the connection parameters (net service name) in the tnsnames.ora file on every client computer when you add or update Oracle servers in your environment. For more information, see Establishing a Connection to the Oracle Database.
Support for Windows Authentication | The adapter clients can use Windows Authentication to connect to the Oracle database. Windows Authentication enables you to determine the user’s identity based on the Windows logon credentials, and thus helps you to leverage the built-in security of the Windows environment. For more information about Windows Authentication in the Oracle Database adapter, see Connecting to the Oracle Database Using Windows Authentication.

Operations-Related Features

Feature Comment

Support for specifying inline values in the Insert operation

You can use the InlineValue attribute in the Insert operation to insert computed values into tables or views in the Oracle database. This is an optional attribute and is available for all simple data records in a multiple record Insert operation. If you specify a value for this attribute, it overrides the specified value of a record. For more information about the InlineValue attribute, see Performing Basic Insert, Update, Delete, and Select Operations on Oracle Tables and Views.

Enhanced polling

The Oracle Database adapter now supports receiving "polling-based" data-changed messages by using stored procedures, functions, or packaged procedures or functions to periodically poll the Oracle database. In addition to the SELECT statement, now you can specify a stored procedure, function, or packaged procedure or function as a polling statement that the adapter executes periodically to poll the Oracle database. For more information about polling, see Support for Receiving Polling-based Data-changed Messages.

Support for Oracle User-Defined Types (UDTs)

The Oracle Database adapter supports performing operations on artifacts in the Oracle database that contain Oracle UDTs. For information about UDT support, see Support for Oracle User-Defined Types.

Support for composite operations

The Oracle Database adapter enables adapter clients to perform composite operations on the Oracle database. A composite operation can include any number of the following operations, and in any order:

  • Operations on tables and views.

  • Stored procedures, functions, and procedures or functions within packages that are surfaced as operations in the adapter.

For more information about composite operations, see Performing Composite Operations.

Support for executing stored procedures in the schemas not owned by the user

The Oracle Database adapter allows you to execute stored procedures in a schema even if the current user is not the owner of the schema, provided the user has permissions on the schema in Oracle. However, if the stored procedure uses RECORD types, they must be defined in the same schema as the stored procedure. For information about executing stored procedures using the Oracle Database adapter, see Operations on Functions and Stored Procedures.

Support for database change notifications

Adapter clients can receive database change notifications from Oracle database based on a triggering SELECT statement. The notification is sent by Oracle database to the adapter clients as and when the result set for the SELECT statement changes. For more information about database change notifications, see Receiving Database Change Notifications.

Support for synonyms

Adapter clients can perform operations on synonyms created for tables, views, stored procedures, functions and packages. For information about synonyms, and how you can use the Oracle Database adapter to perform operations on synonyms, see Operations on Synonyms.

Support for boolean parameters and PL/SQL table types

Adapter clients can perform operations in stored procedures and functions that contain boolean parameters and PL/SQL table type.

Other Features

Feature | Comment
New way of using the adapter in BizTalk Server | The Oracle Database adapter can be used in BizTalk either as a WCF-Custom port or a WCF-OracleDB port. If you want to use the Oracle Database adapter through a WCF-Custom port, you do not need to add the WCF-Custom port to the BizTalk Server Administration console because the WCF-Custom port is added to the BizTalk Server Administration console by default. However, if you want to use the Oracle Database adapter through a WCF-OracleDB port, you must first add the WCF-OracleDB adapter to the BizTalk Server Administration console. For more information, see Adding the Oracle Database Adapter to BizTalk Server Administration Console.

Deprecated Features in the Oracle Adapter

The following table lists the feature that are deprecated in the current version of the Oracle Database adapter.

Feature Comment

Binding properties

The PollingRetryCount, TransactionIsolationLevel, and LongDataTypeColumnSize binding properties are deprecated in the current version of the Oracle Database adapter.

Note
To set the transaction isolation level for the inbound operations, you must set appropriate value by adding the service behavior while configuring the receive port. For instructions on how to set the transaction isolation level, see Configure Transaction Isolation Level and Transaction Timeout.

Changes Since the Last Release

This section lists the changes that have happened in the Oracle Database adapter since the last release as a result of bug fixes or code changes.

General

  • In the previous version of the Oracle Database adapter, for parameters of type IN OUT REF CURSOR:

    • If there was no change to the REF CURSOR value inside the stored procedure, the value of the output REF CURSOR use to be NULL instead of the data passed in.

    • It allowed input and output data to be in different formats.

    This has changed in the current release of the Oracle Database adapter, and now:

    • If there was no change to the REF CURSOR value inside the stored procedure, the value of the output is the same as the value in the input REF CURSOR.

    • The input and output data in the REF CURSOR is of the same type.

  • Incorrect behavior of the “nil” attribute: For all simple data types, if you set the value of the nil attribute to “true”, and a value for the field or parameter is present then the Oracle database adapter incorrectly passes the specified value instead of NULL. As a workaround, if you want to pass NULL value for a field or parameter, you must ensure that no value for the field or parameter is specified. For example, to pass NULL value for a field called “name”:

    Copy Code
    <name xsi:nil="true"/>
  • In the current version of the Oracle Database adapter, the exceptions thrown for various actions are not same as the previous version of the adapter.

  • Unlike in the previous version of the adapter, for the Real, Float, and Long data types, extra zeroes (0) at the end of the value in the result set of the Select operation are not truncated in the current version of the Oracle Database adapter. Moreover, in the current version of the adapter, the result set of the Select operation always returns a value with precision 8 for the Real, Float, and Long data types.

  • Handling of data for the RECORD types: In the earlier version of the adapter, for parameters of RECORD types in a stored procedure, the adapter always passed NULL values for nodes that were either not present or marked as ‘nil’ in the request XML. In the current version of the adapter, the value passed for these nodes depend on the value of the SkipNilNodes binding property. For more information about this binding property, see Working with BizTalk Adapter for Oracle Database Binding Properties.

  • Outbound operations: In the previous version of the Oracle Database adapter, if you executed stored procedures in which some parameters are not specified in the input XML file, a NULL value was sent for those parameters. Even if default values were specified for these parameters in the stored procedure, still a NULL value was sent for those parameters. In the current version of the adapter, no value is sent for the parameters that do not have a value specified in the input XML file. If a default value is specified in the stored procedure, the Oracle database uses that value because no value was sent by the adapter. If a NULL value needs to be sent, the user needs to specify a NULL node in the input XML file by setting the value of “nil” attribute to “true.”

  • The Oracle Database adapter now supports command timeout.

  • The UpdateLOB operation must be performed as part of a transaction. To ensure this, the value of the UseAmbientTransaction binding property must be set to True.

BizTalk Scenario

  • Outbound operations: In the previous version of the Oracle Database adapter, the outbound operations were executed within a non-distributed transaction, and this transaction was disjoint from the BizTalk MessageBox transaction. In the current version of the adapter, if the UseAmbientTransaction binding property is “True,” the operations on the Oracle database and on the BizTalk MessageBox database are performed within the same distributed transaction. For more information about transactions in the Oracle Database adapter, see How does the Adapter Handle Transactions?.

  • Inbound operations: You cannot use a Request-Response receive port in BizTalk Server for the inbound operations using the Oracle Database adapter. Only One-Way receive ports can be used.

Other Scenarios

  • Outbound operations: In the previous version of the Oracle Database adapter, the operations were performed transactionally. For example, if there were 25 rows to be inserted in an INSERT operation, the operation would be performed in the same local transaction. In the current version of the adapter, the adapter no longer initiates a transaction. If the user wants these rows to be inserted within the same transaction, it is the user’s responsibility to execute the operation within a System.Transactions Transaction Scope. The user also needs to set the value of the UseAmbientTransaction property to True. For more information about transactions in the Oracle Database adapter, see How does the Adapter Handle Transactions?.

  • Outbound operations: In the current version of the Oracle Database adapter, all operations performed on the same IRequestChannel/proxy object might not be performed on the same physical connection to the Oracle Database.

  • WCF Channel Model: The Oracle Database adapter no longer supports IReplyChannel while using the WCF Channel model. However, you can still use IInputChannel for performing inbound operations. Further, with regards to transactions, the adapter relies on the WCF Dispatcher initiated transaction to execute the polling statement and post poll statement against the Oracle database. The transaction isolation level and the time out of the WCF Dispatcher initiated transaction can be controlled by setting appropriate values in the ServiceBehavior.

See Also

Other Resources

Understanding BizTalk Adapter for Oracle Database


Limitations of BizTalk Adapter for Oracle Database

General

The following are known limitations for the Microsoft BizTalk Adapter for Oracle Database:

  • Barring some exceptions, the Oracle Database adapter is compatible with the previous release of the adapters. For a list of changes that has happened since the last release, see New and Deprecated Features in BizTalk Adapter for Oracle Database.

    Note
    You can modify the BizTalk projects for previous version of the Oracle database adapter to use the new WCF-based Oracle Database adapter. For more information, see Migrating BizTalk Projects Created Using the BizTalk ODBC Adapter for Oracle Database.

  • The Oracle Database adapter does not support XML Types.

  • The SQLEXECUTE operation does not return values for OUT or IN OUT parameters to procedures, functions, or packages. For this reason, you must invoke procedures, functions, and packages by using the dedicated operations that the Oracle Database adapter exposes for these Oracle artifacts.

  • When retrieving data from the Oracle database using proxy programming, the Oracle Database adapter does not deserialize XML messages that have more than 65536 nodes. Make sure the response message has nodes less than or equal to 65536. You can work around this limitation by modifying the app.config file for your application. For instructions, see Troubleshooting Operational Issues.

  • The Oracle Database adapter takes input strings and constructs SQL commands that are then executed by the adapter. However, the input string might contain other SQL commands that also get executed and might break the operation contract.

    Consider a scenario where the adapter provides an input REF CURSOR to a stored procedure. In such a scenario, the adapter client must provide a command that, when executed, obtains the REF CURSOR. The adapter then passes on the REF CURSOR to the stored procedure. However, if the command for obtaining the REF CURSOR performs some additional modifications to the database, the operation contract for executing the stored procedure is broken.

  • The Oracle Database adapter supports UDT nesting only up to two levels.

  • When using the adapters with BizTalk Server, if the credentials on the WCF-custom send port are incorrect, the request messages are not processed. After you specify the correct credentials, the message is sent to the Oracle database and a response is received. However, the response message is not available to the out port. In such scenarios, you may need to restart the host instance.

  • The Oracle Database adapter does not support the BFILE data type inside complex types (such as RECORD type, TABLE type, UDT, and VARRAY).

  • The Oracle Database adapter does not support User-Defined Types (UDTs) that have circular references.

  • The Oracle Database adapter does not support records that contain fields of type PL/SQL tables of RECORD type.

  • The Oracle Database adapter does not enable clients to set the value of the first element in a VARRAY to NULL.

  • Except for PL/SQL tables, the Oracle Database adapter does not support UDTs that are defined inside a package.

Limitations due to ODP.NET

The following are known limitations for the Oracle Database adapter due to the limitation of ODP.NET:

  • For Oracle data types that take decimal values, ODP.NET does not throw an exception if the input value contains alphabetic characters. Because the Oracle Database adapter uses ODP.NET to interface with the Oracle database, the adapter too does not throw an exception when passing alphabetic characters. For example:

    • Passing a value “54r” for an insert operation does not throw an exception; the value “54” is inserted instead.

    • Passing a value “r54” for an insert operation does not throw an exception; the value “0” is inserted instead.

  • Because of an ODP.NET limitation, the Oracle Database adapter does not support the use of overloaded procedures using strongly-typed and weakly-typed REF CURSORS. Internally, the adapter treats both the strongly-typed and weakly-typed REF CURSORS as just REF CURSORS.

  • The Oracle Database adapter does not support PL/SQL tables that are not indexed by a numeric field.

  • The Oracle Database adapter does not support associative arrays that do not contain any element.

  • The Oracle Database adapter does not support UDTs that contain the TimeStamp data type with local time zone attributes (TimeStampLTZ).

  • The Oracle Database adapter does not support UDTs that contain a “.” (period) in their names.

  • The Oracle Database adapter does not support UDTs that contain BLOB, CLOB, and NCLOB data types as an IN OUT parameter.

  • The Oracle Database adapter does not support Varray of Varray of the following simple types: BFILE, IntervalDS, IntervalYM, TimeStampLTZ, and TimeStampTZ.

  • Due to the limitation of associative arrays, PL/SQL tables or PL/SQL tables of records that contain any of the following data types are not supported in the Oracle Database adapter:

    • BFILE

    • BLOB

    • CLOB

    • IntervalDS

    • IntervalYM

    • Long

    • NCLOB

    • RowID

    • TimeStamp

    • TimeStampLTZ

    • TimeStampTZ

See Also

Other Resources

Understanding BizTalk Adapter for Oracle Database


Oracle Database Adapter Migration Tutorial

The Oracle Database adapter migration tutorial contains detailed instructions on how to migrate BizTalk projects created using the BizTalk ODBC Adapter for Oracle Database (shipped with BizTalk Server) to use the WCF-based Microsoft BizTalk Adapter for Oracle Database (shipped with BizTalk Adapter Pack 2013).

Also, the topics in the Developing BizTalk Applications section provide detailed instructions on how to use the Oracle Database adapter with BizTalk Server.

In This Section

  • Tutorial: Migrating BizTalk Projects

See Also

Other Resources

Getting Started


Tutorial: Migrating BizTalk Projects

The BizTalk ODBC Adapter for Oracle Database that shipped with Microsoft BizTalk Server differs from the WCF-based Oracle Database adapter in many aspects, including:

  • The design-time experience of creating a BizTalk project.

  • The metadata retrieval experience.

  • Schema file name and namespace.

  • Data type mappings.

  • The operations that can be performed using the adapter.

  • Physical port configuration in the BizTalk Server Administration console

These differences are explained in the topics within Migrating BizTalk Projects Created Using the BizTalk ODBC Adapter for Oracle Database.

However, you can make changes to the BizTalk project that was created using the BizTalk ODBC Adapter for Oracle Database and make it work with the WCF-based Oracle Database adapter.

This tutorial provides instructions on the changes you should make to the existing BizTalk project created using the BizTalk ODBC Adapter for Oracle Database.

Note
In this tutorial, for the sake of brevity, the BizTalk ODBC Adapter for Oracle Database will be referred to as “vPrev Oracle Database adapter.” Similarly, a BizTalk project that uses the vPrev Oracle Database adapter will be referred to as “vPrev BizTalk project.”

Sample Used for the Tutorial

This tutorial is based upon a sample (Oracle_Migration) that demonstrates how to migrate a vPrev BizTalk project. The sample is provided with Microsoft BizTalk Adapter Pack. For more information, see Samples.

Prerequisites

  • You must have a vPrev BizTalk project. This tutorial involves a BizTalk project that performs an Insert operation on a CUSTOMER table. The CUSTOMER table is created under the SCOTT schema by running the SQL scripts provided with the BizTalk Adapter Pack samples.

  • You must have a request message to perform an Insert operation on the Oracle database using the vPrev Oracle Database adapter. The request message must conform to the schema of the Insert operation generated using the vPrev Oracle Database adapter.

  • You must have completed the steps in Before You Develop BizTalk Applications.

Understanding a BizTalk Project Created Using the Previous Version of the Adapter

The key constituents of a vPrev BizTalk project created are:

  • BizTalk orchestration. This is a simple orchestration that picks request messages from a file location, sends the request message to the Oracle database using an Oracle send-receive port, receives the response, and saves it to another file location.

  • Schema for the operation you wish to perform on the Oracle database. This tutorial involves a BizTalk project that performs an Insert operation on the CUSTOMER table in the SCOTT schema. The CUSTOMER table is created under the SCOTT schema by running the SQL scripts provided with the BizTalk Adapter Pack samples. The schema generated for the CUSTOMER table is CUSTOMERService_CUSTOMER_x5d.xsd. This schema is generated using the vPrev Oracle Database adapter.

    Note
    Unlike the WCF-based Oracle Database adapter, the vPrev Oracle Database adapter does not support generating metadata for specific operations on an Oracle database table. By default, the adapter generates schema for all the operations supported on the table. For more such differences between the vPrev Oracle Database adapter and the WCF-based Oracle Database adapter, see Migrating BizTalk Projects Created Using the BizTalk ODBC Adapter for Oracle Database.

  • Request message. The request message to perform an Insert operation on the CUSTOMER table. The schema of the request message conforms to the schema of the Insert operation as surfaced by the previous version of the Oracle Database adapter.

How to Migrate a BizTalk Project Created Using the Previous Version of the Adapter

The goal of this migration tutorial is to enable you to send a request message, which conforms to schema generated by vPrev Oracle Database adapter, using a WCF-Custom port that can only process messages conforming to the WCF-based Oracle Database adapter. So, in short, the migration exercise involves configuring the WCF-Custom port to process messages that do not conform to the WCF-based Oracle Database adapter's schema.

However, to be able to configure the WCF-Custom port appropriately, you must perform the following tasks:

  • Generate metadata for the Insert operation on the SCOTT.CUSTOMER table using the WCF-based Oracle Database adapter.

  • Map the request message for performing an Insert operation using the vPrev Oracle Database adapter to a request message for performing an Insert operation using the WCF-based Oracle Database adapter.

  • Map the response message received using the WCF-based Oracle Database adapter to the response message for the vPrev Oracle Database adapter.

  • Create a WCF-Custom Oracle send-receive port in the BizTalk Server Administration console.

  • Configure the WCF-Custom port to use the request and response mappings.

In This Section

  • Step 1: Modify the vPrev BizTalk Project

  • Step 2: Configure the Orchestration in BizTalk Server Administration Console

  • Step 3: Test the Migrated Application

See Also

Other Resources

Oracle Database Adapter Migration Tutorial


Step 1: Modify the vPrev BizTalk Project

Step 1 of 3

Time to complete: 10 minutes

Objective: In this step, you make the following changes to the existing vPrev BizTalk project:

  • Generate metadata for the Insert operation on the SCOTT.CUSTOMER table using the WCF-based Oracle Database adapter.

  • Map the request message for performing an Insert operation using the vPrev Oracle database adapter to a request message for performing an Insert operation using the WCF-based Oracle Database adapter.

  • Map the response message received using the WCF-based Oracle Database adapter to the response message for the vPrev Oracle database adapter.

Prerequisites

  • You must have a vPrev BizTalk project to perform an Insert operation on the SCOTT.CUSTOMER table in the Oracle database.

To modify the vPrev BizTalk project

  1. Generate metadata for the Insert operation on the SCOTT.CUSTOMER table using the WCF-based Oracle Database adapter. You can use the Consume Adapter Service BizTalk Project Add-in to generate metadata.

    For instructions on how to generate metadata, see Retrieving Metadata for Oracle Operations in Visual Studio. After the schema is generated, a file with the name similar to OracleDBBindingSchema.xsd is added to the BizTalk project. This file contains the schema for sending a message to perform an Insert operation on the SCOTT.CUSTOMER table in the Oracle database using the WCF-based Oracle Database adapter.

  2. Generating the metadata for the Insert operation also creates a port binding file. In the next step, this binding file will be used to create a WCF-Custom send port to send messages to the Oracle database. The SOAP action for the operation is also set to the operation for which you generated metadata. For example, if you generate metadata for the Insert operation, the operation name in the SOAP action on the send port will be “Insert”. However, the operation name on the logical send port that you create as part of the orchestration could be different, for example, “Operation_1”. As a result, when you send messages to the Oracle database using the send port, you get an error. To prevent this, make sure the operation name on the logical send port in your orchestration is the same as the operation name for which you generated metadata.

    So, in case of this tutorial, because you generate metadata for the Insert operation, change the name of the logical send port operation to “Insert”.

  3. For the request message, map the schema generated using vPrev Oracle database adapter to the schema generated using the WCF-based Oracle Database adapter.

    1. Add a BizTalk mapper to the BizTalk project. Right-click the BizTalk project, point to Add, and click New Item.

      In the Add New Item dialog box, from the left pane, select Map Files. From the right pane, select Map. Specify a name for the map, such as RequestMap.btm. Click Add.

    2. From the Source Schema pane, click Open Source Schema.

    3. In the BizTalk Type Picker dialog box, expand the project name, expand Schemas, and select the schema for the request message for the vPrev Oracle database adapter. For this tutorial, select Oracle_Migration.CUSTOMERService_CUSTOMER_x5d. Click OK.

    4. In the Root Node for Source Schema dialog box, select Insert and click OK.

    5. From the Destination Schema pane, click Open Destination Schema.

    6. In the BizTalk Type Picker dialog box, expand the project name, expand Schemas, and select the schema for the request message for the WCF-based Oracle Database adapter. For this tutorial, select Oracle_Migration.OracleDBBindingSchema. Click OK.

    7. In the Root Node for Target Schema dialog box, select Insert and click OK.

    8. Map the respective elements in both the schemas as illustrated in the following figure.

      Map the request sent to the Oracle database
    9. Save the map.

  4. For the response message, map the schema generated using vPrev Oracle database adapter to the schema generated using the WCF-based Oracle Database adapter.

    1. Add a BizTalk mapper to the BizTalk project. Right-click the BizTalk project, point to Add, and click New Item.

      In the Add New Item dialog box, from the left pane, select Map Files. From the right pane, select Map. Specify a name for the map, such as ResponseMap.btm. Click Add.

    2. From the Source Schema pane, click Open Source Schema.

    3. In the BizTalk Type Picker dialog box, expand the project name, expand Schemas, and select the schema for the response message for the WCF-based Oracle Database adapter. For this tutorial, select Oracle_Migration.OracleDBBindingSchema. Click OK.

    4. In the Root Node for Source Schema dialog box, select InsertResponse and click OK.

    5. From the Destination Schema pane, click Open Destination Schema.

    6. In the BizTalk Type Picker dialog box, expand the project name, expand Schemas, and select the schema for the response message for the vPrev Oracle database adapter. For this tutorial, select Oracle_Migration.CUSTOMERService_CUSTOMER_x5d. Click OK.

    7. In the Root Node for Target Schema dialog box, select InsertResponse, and then click OK.

    8. You will notice that the schema for the response message conforming to the WCF-based Oracle Database adapter contains an additional InsertResult element. You must remove this from the schema and map the InsertResponse element in both the schemas.

      To do so, from the Toolbox, drag the String Left Trim functoid and drop it on the mapper grid. Connect the InsertResponse element in the source schema to the functoid. Similarly, connect the InsertResponse element in the destination schema to the functoid. The following figure illustrates how the two elements are mapped via the functoid.

      Map the response received from Oracle database
      Note
      For more information about the String Left Trim functoid, see "String Left Trim Functoid" at http://go.microsoft.com/fwlink/?LinkId=105774.

    9. Save the map.

  5. Save and build the BizTalk solution. Right-click the solution, and then click Build Solution.

  6. Deploy the solution. Right-click the solution, and then click Deploy Solution.

Next Steps

Create a WCF-custom send port and configure it to use the maps you created in this step, as described in Step 2: Configure the Orchestration in BizTalk Server Administration Console.

See Also

Concepts

Tutorial: Migrating BizTalk Projects


Step 2: Configure the Orchestration in BizTalk Server Administration Console

Step 2 of 3

Time to complete: 10 minutes

Objective: In this step, you perform the following tasks:

  • Create a WCF-Custom send-receive port to send and receive messages from the Oracle database using the Oracle Database adapter. Configure this port to use the maps you created in the previous step.

  • Configure the orchestration you deployed in the last step to use the WCF-Custom port.

Prerequisite

  • You must have deployed the BizTalk orchestration for which you want to configure the WCF-Custom port.

To create a WCF-Custom port

  1. When you generate schema for an operation on the Oracle database using Consume Adapter Service BizTalk Project Add-in, a binding file is also added to the BizTalk project. You can import this binding file into your BizTalk application to create a WCF-Custom send-receive port. For instructions on importing a binding file, see Importing Bindings.

  2. After you import the binding file, a send port is created under the Send Ports folder in the BizTalk Server Administration console.

  3. Right-click the WCF-Custom port and click Properties.

  4. From the left pane of the send port properties dialog box, click the General tab. From the right pane, click Configure.

  5. In the WCF-Custom Transport Properties dialog box, click the Credentials tab, and specify the credentials to connect to an Oracle database.

  6. Click OK.

  7. From the left pane of the send port properties dialog box, click Inbound Maps. From the right pane, click the field under the Map column, and from the drop-down select ResponseMap.

    Configure inbound map

  8. From the left pane of the send port properties dialog box, click Outbound Maps. From the right pane, click the field under the Map column, and from the drop-down select RequestMap.

    Configure outbound map

  9. Click OK.

To configure the BizTalk application

  1. In the BizTalk Server Administration console, expand BizTalk Group, expand Applications, and expand the BizTalk Application where the orchestration is deployed.

  2. Right-click the BizTalk application, and then select Configure.

  3. From the left pane, click the orchestration to configure. From the right pane, from the Host drop-down list, select a BizTalk host instance.

  4. Under the Bindings box, map the logical ports of the BizTalk orchestration to the physical ports in the BizTalk Server Administration console.

    1. Select the file port where you will drop a request message. The BizTalk orchestration will consume the request message and send it to the Oracle database.

    2. Select the file port where the BizTalk orchestration will drop the response message containing the response from the Oracle database.

    3. Select the WCF-Custom send port you created earlier in this topic.

    4. Click OK.

    For more information about configuring an application, see "How to Configure an Application" at http://go.microsoft.com/fwlink/?LinkID=196961.

Next Steps

You have now completed migration of your vPrev BizTalk project to a BizTalk project that sends messages to the Oracle database using the WCF-based Oracle Database adapter. You must now test the migrated BizTalk application by sending a request message to perform an Insert operation on the Oracle database, as described in Step 3: Test the Migrated Application.

See Also

Concepts

Tutorial: Migrating BizTalk Projects


Step 3: Test the Migrated Application

Step 3 of 3

Time to complete: 5 minutes

Objective: In this step, you will test the migrated application by performing an Insert operation on the SCOTT.CUSTOMER table. To do this, you drop a request message that conforms to the schema generated using the vPrev Oracle Database adapter.

Prerequisites

  • Configure the BizTalk application by mapping the logical ports in the BizTalk orchestration to physical ports in the BizTalk Server Administration console.

  • Configure the BizTalk application to use the WCF-Custom send port for the WCF-based Oracle Database adapter.

To test the migrated application

  1. From the Oracle_Migration folder, copy the OracleInsert.xml request message. This request message conforms to the schema generated by the vPrev Oracle Database adapter. Using the outbound map, the WCF-Custom send port converts this to conform to the schema for the WCF-based Oracle Database adapter and sends it to the Oracle database.

    Copy Code
    <ns0:Insert xmlns:ns0="http://schemas.microsoft.com/[OracleDb://ADAPTER/SCOTT/Tables/CUSTOMER]">
  <ns0:Rows>
    <ns0:InsertRecord>
      <ns0:NAME>Customer_1</ns0:NAME>
      <ns0:STREET>Street_1</ns0:STREET>
      <ns0:CITY>City_1</ns0:CITY>
    </ns0:InsertRecord>
    <ns0:InsertRecord>
      <ns0:NAME>Customer_2</ns0:NAME>
      <ns0:STREET>Street_2</ns0:STREET>
      <ns0:CITY>City_2</ns0:CITY>
    </ns0:InsertRecord>
  </ns0:Rows>
</ns0:Insert>

  2. Paste the request message to the folder mapped to the file receive location.

  3. The orchestration consumes the request message and sends it to the Oracle database. The response from the Oracle database is received in the schema that conforms with the schema of the WCF-based Oracle Database adapter. Using the inbound map, the WCF-Custom send port converts this to the schema for the vPrev Oracle Database adapter. The response from the Oracle database is saved to the other file location defined as part of the orchestration. The response for the preceding request message is:

    Copy Code
    <?xml version="1.0" encoding="utf-8"?>
<ns0:InsertResponse xmlns:ns0="http://schemas.microsoft.com/[OracleDb://ADAPTER/SCOTT/Tables/CUSTOMER]"></ns0:InsertResponse>

See Also

Concepts

Tutorial: Migrating BizTalk Projects


Community Resources

There are two principal sources of information from Microsoft about the BizTalk Adapter Pack:

  • The documentation and samples installed with the BizTalk Adapter Pack.

  • The Microsoft BizTalk Adapter Pack forums.

BizTalk Adapter Pack Documentation

You can install the BizTalk Adapter Pack documentation when you install the BizTalk Adapter Pack. (For information about how to install the BizTalk Adapter Pack, see the installation guide. The installation guide is typically available under <installation drive>:\Program Files\Microsoft BizTalk Adapter Pack\Documents.) The core documentation covers the concepts and procedures required to use the BizTalk Adapter Pack.

After you install the BizTalk Adapter Pack Setup program, you can access the documentation through the Microsoft BizTalk Adapter Pack program group on the Start menu.

BizTalk Adapter Pack Samples

This BizTalk Adapter Pack release provides samples demonstrating how to use the adapters with:

  • BizTalk Server.

  • The Windows Communication Foundation (WCF) channel model.

  • The WCF service model.

In addition, migration samples are provided.

The samples are available at http://go.microsoft.com/fwlink/?LinkID=196854.

BizTalk Adapter Pack Forums

You can post your queries about the BizTalk Adapter Pack on the forums.

Resource | Location
BizTalk Adapter Pack Forums | http://go.microsoft.com/fwlink/?LinkId=87695

Getting Assistance with the BizTalk Adapter Pack

Should you encounter any issues with the BizTalk Adapter Pack, you must mention the product ID (PID) for the BizTalk Adapter Pack in all communications with Microsoft Support. The PID is available in a file, pid.txt, installed by the setup wizard, typically under <installation drive>:\Program Files\Microsoft BizTalk Adapter Pack\Documents.

The end-user license agreement (EULA) for the BizTalk Adapter Pack is available in a file, EULA.rtf, installed by the setup wizard, typically under <installation drive>:\Program Files\Microsoft BizTalk Adapter Pack.

See Also

Other Resources

Getting Started


Frequently Asked Questions

The following are some frequently asked questions (FAQs) related to Microsoft BizTalk Adapter for Oracle Database.

What are the supported BizTalk versions for the BizTalk Adapter Pack?

The BizTalk Adapter Pack is supported with Microsoft BizTalk Server 2013 R2.

In which user context should the setup wizard be run?

You must always run the BizTalk Adapter Pack setup wizard under a user context with administrative privileges on the computer.

Does the Microsoft BizTalk Adapter Pack support tracing?

Microsoft BizTalk Adapter Pack enables adapter clients to activate Windows Communication Foundation (WCF) tracing and adapter-specific tracing. For more information about tracing, see Diagnostic Tracing and Message Logging.

Where are the trace files stored?

The trace files are stored at a location that the adapter clients specify. The adapter clients can specify this location while enabling tracing. For more information about tracing, see Diagnostic Tracing and Message Logging.

How do I view the traces?

You can use the WCF Service Trace Viewer tool to view the traces. For more information about the tool, see http://go.microsoft.com/fwlink/?LinkId=91243.

See Also

Other Resources

Getting Started


Planning and Architecture

This section describes the architecture for the Microsoft BizTalk Adapter for Oracle Database. An understanding of the Oracle Database adapter architecture can help you:

  • Understand the relationship between the Oracle Database adapter and the Microsoft Windows Communication Foundation (WCF) Line of Business (LOB) Adapter SDK.

  • Understand security boundaries, so that you can better secure data in your solution.

  • Understand the Oracle Database adapter binding properties.

  • Troubleshoot installation issues.

The following topics describe the architecture of end-to-end solutions that use the Oracle Database adapter to operate on an Oracle database and the internal architecture of the Oracle Database adapter.

In This Section

  • Architecture for BizTalk Adapter for Oracle Database

  • BizTalk Adapter for Oracle Database and the WCF LOB Adapter SDK


Architecture for BizTalk Adapter for Oracle Database

The Microsoft BizTalk Adapter for Oracle Database is a Windows Communication Foundation (WCF) custom binding. This binding contains a single custom transport binding element that enables communication with an Oracle database. The Oracle Database adapter is wrapped by the Microsoft Windows Communication Foundation (WCF) Line of Business (LOB) Adapter SDK runtime and is exposed to applications through the WCF channel architecture. The Oracle Database adapter communicates with the Oracle database through the Oracle Data Provider for .NET (ODP.NET) and the Oracle client, which are part of the Oracle Data Access Components (ODAC) for Windows.

The following figure shows the end-to-end architecture for solutions that are developed by using the Oracle Database adapter.

Oracle database adapter architecture diagram

Consuming the Adapter

The Oracle Database adapter exposes the Oracle database as a WCF service to client applications. To perform operations and access data on the Oracle database, client applications exchange SOAP messages with the Oracle Database adapter through WCF channels. The preceding figure shows four ways in which the Oracle Database adapter can be consumed.

  • Through a WCF channel model application. A WCF channel model application performs operations on the Oracle database by using the WCF channel model to exchange SOAP messages directly with the Oracle Database adapter. For more information about developing solutions for the Oracle Database adapter by using the WCF channel model, see Developing Applications by Using the WCF Channel Model.

  • Through a WCF service model application. A WCF service model application calls methods on a WCF client to perform operations on the Oracle database. A WCF client models the operations exposed by the Oracle Database adapter as .NET methods. You can use the Microsoft Windows Communication Foundation (WCF) Line of Business (LOB) Adapter SDK or the WCF ServiceModel Metadata Utility Tool (svcutil.exe) to create a WCF client class from metadata exposed by the Oracle Database adapter. For more information about the WCF service model and the Oracle Database adapter, see Developing Applications by Using the WCF Service Model.

  • Through a BizTalk receive location or send port that is configured to use the Microsoft BizTalk WCF-Custom adapter. The WCF-Custom adapter enables the use of WCF extensibility features. By using the WCF-Custom adapter you can select and configure the Oracle DB Binding and the behavior for the receive location or send port. For more information about how to use the Oracle Database adapter in BizTalk Server solutions, see Developing BizTalk Applications.

  • Through an IIS-hosted Web service. In this scenario, a WCF service proxy generated by using the adapter is hosted in IIS using the standard WCF Http Binding. This exposes the service contract as a Web service to external users. IIS automatically hosts the adapter at runtime, which, in turn, communicates with the Oracle database.

The Oracle Database adapter and ODAC are always hosted in-process with the application or service that consumes the adapter.

The Oracle Database Adapter and WCF

WCF presents a programming model based on the exchange of SOAP messages over channels between clients and services. These messages are sent between endpoints exposed by a communicating client and service. An endpoint consists of:

  • An endpoint address, which specifies the location at which messages are received

  • A binding, which specifies the communication protocols used to exchange messages

  • A contract,which specifies the operations and data types exposed by the endpoint.

A binding consists of one or more binding elements that stack on top of each other to define how messages are exchanged with the endpoint. At a minimum, a binding must specify the transport and encoding that are used to exchange messages with the endpoint. Message exchange between endpoints occurs over a channel stack that is composed of one or more channels. Each channel is a concrete implementation of one of the binding elements in the binding configured for the endpoint. For more information about WCF and the WCF programming model, see the WCF Help documentation at http://go.microsoft.com/fwlink/?LinkId=196850.

The Microsoft BizTalk Adapter for Oracle Database exposes a WCF custom binding, the Oracle DB Binding (Microsoft.Adapters.OracleDB.OracleDBBinding). By default, this binding contains a single custom transport binding element, the Oracle DB Adapter Binding Element (Microsoft.Adapters.OracleDB.OracleDBAdapter), which enables operations on an Oracle database.

Microsoft.Adapters.OracleDB.OracleDBBinding (the Oracle DB Binding) and Microsoft.Adapters.OracleDB.OracleDBAdapter (the Oracle DB Adapter Binding Element) are public classes and are also exposed to the configuration system. Because the Oracle DB Adapter Binding Element is exposed publicly, you can build your own custom WCF bindings capable of extending the functionality of the Oracle Database adapter. For example, you could implement a custom binding to support Enterprise Single Sign-on (SSO) in a WCF channel or service model solution. The reasons for doing this would be to aggregate database operations into a single multifunction operation or to perform schema transformation between operations implemented by a custom application and operations on the Oracle database.

The Oracle Database adapter is built on top of the Microsoft Windows Communication Foundation (WCF) Line of Business (LOB) Adapter SDK and runs on top of the WCF LOB Adapter SDK runtime. The WCF LOB Adapter SDK provides a software framework and tooling infrastructure that the Oracle Database adapter uses to provide a rich set of features to users and adapter clients.

ODP.NET

The Oracle Database adapter connects with the Oracle database through the ODP.NET and the Oracle client. Both of these components are part of Oracle Data Access Components (ODAC).

ODP.NET implements a data provider for the Oracle database that is consistent with the ADO.NET interface. The Oracle Database adapter uses the classes exposed by ODP.NET to operate on the Oracle database.

The Oracle client provides connectivity to the Oracle database. You establish a connection to an Oracle database by providing a connection URI to the Oracle Database adapter. You can specify the connection URI in two ways:

  • Using tnsnames.ora. In this approach, the connection URI provided by the adapter client contains only the net service name specified in the tnsnames.ora file. The adapter extracts the connection parameters such as server name, service name, port number, etc. from the net service name entry in the file. To use this approach, the computer running the Oracle client must be configured to include the net service name for the Oracle database in the tnsnames.ora file.

  • Without using tnsnames.ora. In this approach, the adapter clients specify the connection parameters directly in the connection URI. This does not require the net service name to be present in the tnsnames.ora file on the client computer. This approach does not even require the tnsnames.ora file to be present on the client computer.

For more information about the connection URI, see Establishing a Connection to the Oracle Database. For more information about installing ODAC, see Installing the BizTalk Adapter Pack.

See Also

Other Resources

Planning and Architecture
Understanding BizTalk Adapter for Oracle Database


BizTalk Adapter for Oracle Database and the WCF LOB Adapter SDK

The Microsoft BizTalk Adapter for Oracle Database implements a set of core components that leverage functionality provided by the Microsoft Windows Communication Foundation (WCF) Line of Business (LOB) Adapter SDK and provide connectivity to the Oracle database through Oracle Data Provider for .NET (ODP.NET).

The WCF LOB Adapter SDK serves as the software layer through which the Oracle Database adapter interfaces with the Windows Communication Foundation (WCF). ODP.NET serves as the layer through which the Oracle Database adapter interfaces with the Oracle database. The following figure shows the relationships between the internal components of the Oracle Database adapter, WCF LOB Adapter SDK, and ODP.NET.

Oracle Database adapter internal architecture

See Also

Other Resources

Planning and Architecture


Security and Protection

A database often contains sensitive business information such as customer account details. Applications that use the Microsoft BizTalk Adapter for Oracle Database to access and modify this information either locally or across a distributed network might inadvertently expose it to access by unauthorized actors, unless efforts are made to protect and secure the data during transmission. Data protection and security are usually thought of in the following terms:

  • Authorization controls access to a resource based on the identity of the requester.

  • Authentication provides mechanisms for verifying the identity of a requester.

  • Data confidentiality provides mechanisms for protecting the privacy of data through encryption.

  • Data integrity provides mechanisms to digitally sign data, so that the receiver can ensure that the data has not been altered in-transit.

Another important area of concern is the user-name password credentials that you supply to the Oracle Database adapter. The adapter uses these credentials to open connections to the Oracle database. These credentials can be supplied in the connection URI; however, because the user name and password are clear text, the Oracle Database adapter provides alternative methods that you can use to supply these credentials in a more secure manner.

The topics in this section provide guidelines to help you better secure the solutions that you develop with the Oracle Database adapter.

In This Section

  • Security Considerations Between the Oracle Database and the Adapter

  • Security Considerations When Using the Adapter with BizTalk Server

  • Security Considerations When Programming on the Adapter

  • Best Practices


Security Considerations Between the Oracle Database and the Adapter

The Oracle Database adapter provides no support for helping to secure communication between it and the Oracle database. You must provide a security mechanism to help ensure appropriate levels of authorization, authentication, data privacy, and data integrity for data exchanges between the adapter and the Oracle database.

One possible mechanism for helping to provide more security across the network is Internet Protocol Security (IPsec). IPsec is a framework of open standards for protecting communications over Internet Protocol (IP) networks. For more information about IPsec and about using IPsec with Microsoft products, see the Microsoft TechNet article "IPsec" at http://go.microsoft.com/fwlink/?LinkId=196851.

However, in the absence of security mechanisms like IPsec, the administrator must configure native Oracle data encryption and integrity to ensure secure data exchanges between the adapter client and the Oracle database. For detailed information about configuring native Oracle data encryption and integrity, see http://go.microsoft.com/fwlink/?LinkId=140032.

You must supply user name password credentials to the Oracle Database adapter. The Oracle Database adapter uses these credentials to authenticate the user on the Oracle database when it opens a connection. These credentials provide a level of authorization on the Oracle database for the connection.

Note
The credentials used by the Oracle Database adapter to establish a connection on the Oracle database do not provide message-level or transport-level authentication or authorization for data traveling across the network. They are only used to open a connection and authenticate the user on the Oracle database.

The Oracle Database adapter provides a number of methods through which you can supply these credentials. For information about how to more securely provide Oracle credentials in BizTalk solutions, see Security Considerations When Using the Adapter with BizTalk Server. For information about how to more securely provide Oracle database credentials in programming solutions, see Security Considerations When Programming on the Adapter.

Managing Audit Logs

Audit logs enable you to store information about the actions performed by various clients on your enterprise software, and helps usage monitoring and problem tracking. However, the Oracle Database adapter does not provide any way to manage audit logs for the actions performed by the adapter clients on the Oracle database. This might pose a security threat as the adapter clients can repudiate the actions performed by them on the Oracle database. To mitigate this issue, you must enable audit trail in Oracle to log the actions performed by the adapter clients on the Oracle database.

See Also

Concepts

Best Practices

Other Resources

Security and Protection


Security Considerations When Using the Adapter with BizTalk Server

When you configure a send port or a receive port (location) by using the BizTalk Server Administration console or use the Consume Adapter Service BizTalk Project Add-in to retrieve message schemas for a BizTalk solution, you must provide credentials for the Oracle database. It is important to supply these credentials in a secure way to help prevent them from being revealed to potentially malicious actors. This topic discusses how to most securely supply credentials for the Microsoft BizTalk Adapter for Oracle Database for BizTalk Server solutions.

A more general discussion of security in the context of BizTalk solutions is an expansive topic and is beyond the scope of this documentation. For information about how you can make your BizTalk solutions more secure, see the "Security and Protection" topic in the BizTalk Server Help documentation at http://go.microsoft.com/fwlink/?LinkID=101135.

How Do I Protect Credentials When I Use the Consume Adapter Service BizTalk Project Add-in or Add Adapter Metadata Wizard?

When you use the Consume Adapter Service Add-in to retrieve message schemas for a BizTalk solution, you must supply a user name and password for the Oracle database. You should only do this from the Security tab on the Configure Adapter dialog box. This ensures that your credentials will not be displayed in the Configure a URI field of the Consume Adapter Service Add-in dialog box, where anyone with access to your computer screen can read them. For more information about how to retrieve message schemas by using the Consume Adapter Service Add-in, including how to enter a user name and password for the Oracle database, see Retrieving Metadata for Oracle Operations in Visual Studio.

How Do I Protect Credentials When I Configure a Send Port or a Receive Location?

BizTalk solutions use the Microsoft BizTalk WCF-Custom adapter to consume WCF services. The Oracle Database adapter is a WCF custom binding that enables clients to consume the Oracle database as if it were a WCF service. BizTalk solutions consume the Oracle Database adapter through send ports and receive locations that are configured to use the WCF-Custom adapter, which is, in turn, configured to use the Oracle Database adapter as its transport. For more information about how to configure send ports and receive ports (receive locations), including how to configure the WCF-Custom adapter, see Manually Configuring a Physical Port Binding to the Oracle Database Adapter.

You configure the Oracle database credentials from the Credentials tab of the WCF-Custom Transport Properties dialog box for send ports or from the Other tab of the WCF-Custom Transport Properties dialog box for receive locations. Because the WCF-Custom adapter supports Enterprise Single Sign-On (SSO), you can choose to provide either a user name and password or an SSO affiliate application on either of these tabs. The following topics discuss both options.

User Name Password Credentials

You should only supply a user name and password from the Credentials tab (for send ports) or the Other tab (for receive locations) in the WCF-Custom Transport Properties dialog box. This ensures the following:

  • Your credentials will not be displayed in the Address (URI) field of the dialog box. This prevents those who have access to your screen (or who have permissions that enable them to view the send port or receive location properties) from seeing your credentials.

  • Your password will not be written to the binding file if you export the send port or receive port binding. This prevents anyone from with access to the file from viewing your password.

Enterprise Single Sign-On and SSO Affiliate Applications

You can configure the WCF-Custom adapter to use Enterprise Single Sign-on (SSO) to get the credentials for the Oracle database. SSO uses a database and a master secret to encrypt and store user credentials. It also provides services to map Microsoft Windows accounts to secondary credentials that are used to access a back-end system. By using SSO, you can map a Windows account to a user name and password on the Oracle database.

SSO uses affiliate applications and SSO mappings to map credentials to the back-end system. An affiliate application is a logical entity in SSO that refers to a system or an application that requires secondary credentials. An SSO mapping is associated with an affiliate application. It maps a Windows account to the secondary credentials used by that account to access the affiliate system or application. An SSO mapping can be associated with a Windows user account or with a group.

To use SSO with the Oracle Database adapter, you must do the following.

  1. Create an affiliate application in SSO to hold the user name password credentials for the Oracle database. This step is often performed by someone with special types of SSO administrative privileges.

  2. Create a user or group mapping for the affiliate application that maps your Windows account to the user name and password that are used to establish a connection with the Oracle database. Depending on your installation, a user might be able to perform this step or it might require someone with special types of SSO administrative privileges.

Note
When configured for SSO, the WCF-Custom adapter uses services provided by SSO to get the Oracle user name and password from the SSO database. It provides these (unencrypted) to the Oracle Database adapter, so that the adapter can open a connection to the Oracle database. SSO provides no encryption or protection across the connection between the Oracle Database adapter and the Oracle database.

For information about how to use SSO, including information about how to create affiliate applications and SSO mappings, see the "Using SSO" topic in the BizTalk Server documentation at http://go.microsoft.com/fwlink/?LinkId=103052. For more general information about SSO, see the "Implementing Enterprise Single Sign-On" topic in the BizTalk Server documentation at http://go.microsoft.com/fwlink/?LinkId=103054.

The AcceptCredentialsInUri Binding Property

The Oracle Database adapter surfaces the AcceptCredentialsInUri binding property. This property determines whether Oracle database credentials are permitted in the connection URI. By default, AcceptCredentialsInUri is false and the Oracle Database adapter throws an exception if credentials are included in the URI.

This property is surfaced because there are certain programming scenarios that require the credentials to be present in the connection URI. This should never be the case when you are configuring a send port or a receive location, or when you are using the Consume Adapter Service Add-in to retrieve message schemas from the Oracle Database adapter. It is recommended that you do not set AcceptCredentialsInUri to true. For more information about the Oracle Database adapter binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

The AcceptCredentialsInUri binding property is not available in BizTalk Server in the Binding tab while configuring a WCF-Custom or WCF-OracleDB receive or send port. To set the value of the AcceptCredentialsInUri binding property, you must open the adapter bindings file (XML file) that is created after you have generated metadata using the Consume Adapter Service Add-in, and then locate this binding property in the file. Specify an appropriate value for this binding property, save the binding file, and then import the binding file in BizTalk Server. See Importing Bindings for instructions.

See Also

Concepts

Best Practices

Other Resources

Security and Protection


Security Considerations When Programming on the Adapter

How Do I Protect Credentials When I Use the Add Adapter Service Reference Visual Studio Plug-in?

When you use the Add Adapter Service Reference Plug-in to create a WCF client, you must supply a user name and password for the Oracle database. You should only do this from the Security tab on the Configure Adapter dialog box. By entering the Oracle credentials from the Security tab instead of directly into the Configure a URI field, you ensure the following:

  • The credentials will not be displayed in the Uri field of the Add Adapter Service Reference Plug-in dialog box where anyone with access to your computer screen can read them.

  • The credentials will not appear in the configuration file that the Add Adapter Service Reference Plug-in generates.

For more information about how to generate a WCF client by using the Add Adapter Service Reference Plug-in, including how to enter a user name and password for the Oracle database, see Retrieving Metadata for Oracle Operations in Visual Studio.

What Are Best Practices for Setting Credentials in Code?

WCF provides the ClientCredentials class to help you configure the credentials that a client communication object, such as a ChannelFactory, uses to authenticate itself with a service. By using the ClientCredentials class, you ensure that WCF takes whatever authentication mechanisms are specified in that object’s channel stack and applies them to the exchange between your client and the service.

Because the Oracle Database adapter is hosted in-process with its consuming application, it is not imperative to use the ClientCredentials class to set credentials on the client communication objects that the consuming application uses. It is, however, considered good practice to do so.

The Oracle Database adapter encourages the use of the ClientCredentials class. This property specifies whether the adapter will accept the user name and password for the Oracle database in the connection URI. AcceptCredentialsInUri defaults to false, which means that the adapter will throw an exception if the connection URI contains credentials. You can set AcceptCredentialsInUri to true to supply credentials in the connection URI.

The following example shows how to use the Credentials property to set credentials for the Oracle database on a ChannelFactory.

Copy Code
// Create binding and endpoint
OracleDBBinding binding = new OracleDBBinding();
EndpointAddress endpointAddress = new EndpointAddress("oracleDB://Adapter");

// Create the channel factory
ChannelFactory<IRequestChannel> factory = new ChannelFactory<IRequestChannel>(binding, endpointAddress))

// Set user name and password
factory.Credentials.UserName.UserName = "SCOTT";
factory.Credentials.UserName.Password = "TIGER";

// Open the channel factory
factory.Open();

The following example shows how to use the ClientCredentials class to set credentials for the Oracle database on a WCF client.

Copy Code
// Initialize a new client for the SQLEXECUTE operation from configuration
SQLEXECUTEClient sqlExecuteClient = new SQLEXECUTEClient("OracleDBBinding_SQLEXECUTE");

// Set user name and password
sqlExecuteClient.ClientCredentials.UserName.UserName = "SCOTT";
sqlExecuteClient.ClientCredentials.UserName.Password = "TIGER";

// Open the client
sqlExecuteClient.Open();

How Can I Provide for More Secure Data Exchange Across Process Boundaries?

The Oracle Database adapter is hosted in-process with the application or service that consumes it. Because the adapter is hosted in-process with the consumer, there is no need to provide security on messages exchanged between the consumer and the Oracle Database adapter. However, if the consuming application or service sends messages that contain sensitive database information across a process boundary to another service or client, you should take measures to provide adequate protection for this data in your environment. Windows Communication Foundation (WCF) provides many options for helping to secure messages sent between clients and services. For more information about helping to secure messages sent between clients and services in WCF, see "Securing Services and Clients" at http://go.microsoft.com/fwlink/?LinkId=89725. For more general information about security features that WCF provides, see "Windows Communication Foundation Security" at http://go.microsoft.com/fwlink/?LinkId=89726.

See Also

Concepts

Best Practices

Other Resources

Security and Protection


Best Practices

This section provides best practices that you should follow to more completely protect sensitive data when you use or develop applications that consume the Microsoft BizTalk Adapter for Oracle Database.

Security Best Practices for the Connection between the Oracle Database Adapter and the Oracle Database

  • The Oracle Database adapter provides no support for helping to secure communication between it and the Oracle database. You must provide a mechanism to help ensure an adequate level of security for data exchanged between the adapter and the Oracle database.

  • Do not provide user name password credentials for the Oracle database in the connection URI. See the following sections for alternative methods of providing credentials to the Oracle Database adapter.

  • The Oracle Database adapter also enables you to use Windows Authentication while connecting to the Oracle database to generate metadata and perform operations, either through Visual Studio or BizTalk Server. Before using Windows Authentication, you must perform the steps listed in Connecting to the Oracle Database Using Windows Authentication.

For more information, see Security Considerations Between the Oracle Database and the Adapter.

Security Best Practices for Consuming the Oracle Database Adapter with BizTalk Server

  • Do not provide user name password credentials for the Oracle database in the connection URI.

  • When you use the Consume Adapter Service Add-in, enter the user name password credential for the Oracle database from the Security tab of the Configure Adapter dialog box.

  • When you configure the BizTalk WCF-Custom adapter for the Oracle Database adapter on a send port, enter the user name password credential for the Oracle database from the Credentials tab of the Configure WCF Custom Transport dialog box.

  • When you configure the BizTalk WCF-Custom adapter for the Oracle Database adapter on a receive location, enter the user name password credential for the Oracle database from the Other tab of the Configure WCF Custom Transport dialog box.

  • The Oracle Database adapter also enables you to use Windows Authentication while connecting to the Oracle database to generate metadata and perform operations through BizTalk Server. Before using Windows Authentication, you must perform the steps listed in Connecting to the Oracle Database Using Windows Authentication.

For more information, see Security Considerations When Using the Adapter with BizTalk Server.

Security Best Practices for Consuming the Oracle Database Adapter with Programming Solutions

  • It is sometimes necessary to provide the user name password credentials for the Oracle database in the connection URI; however, if possible, you should avoid doing this.

  • When you use the Add Adapter Service Reference Visual Studio Plug-in, enter the user name password credential for the Oracle database from the Security tab of the Configure Adapter dialog box.

  • In WCF Channel Model programming, use the Credentials property on the channel factory to set the user name password credential for the Oracle database.

  • In WCF Service Model programming, use the ClientCredentials property on the WCF client to set the user name password credential for the Oracle database.

  • If an application that consumes the Oracle Database adapter sends messages that contain sensitive database information across a process boundary to another service or client, ensure that these messages have sufficient security measures applied to provide adequate data protection in your environment.

  • The Oracle Database adapter also enables you to use Windows Authentication while connecting to the Oracle database to generate metadata and perform operations through Visual Studio. Before using Windows Authentication, you must perform the steps listed in Connecting to the Oracle Database Using Windows Authentication.

For more information see, Security Considerations When Programming on the Adapter.

Security Best Practices for Hosting the Oracle Database Adapter in IIS

Hosting the Oracle Database adapter in Microsoft Internet Information Services (IIS) as a Web service exposes operations surfaced by the Oracle Database adapter to Web clients. These operations might involve exchanging sensitive data over the Internet, so you should take measures to help ensure that this data is as secure as possible.

WCF provides two standard bindings for HTTP transport: the BasicHttpBinding provides basic HTTP transport with no security mechanisms; the WSHttpBinding supports both transport-level and message-level security mechanisms.

You can either use the BasicHttpBinding over an HTTPS connection, or use the WSHttpBinding to help protect your data. The WCF LOB Adapter SDK includes the WCF LOB Adapter Service Development Wizard to generate WCF service for LOB artifacts. This wizard only supports use of BasicHttpBinding.

You can also develop a custom HTTP binding to leverage additional security mechanisms that your environment provides. For more information about the security features that WCF provides, see "Securing Services and Clients" at http://go.microsoft.com/fwlink/?LinkId=89725.

Security Best Practices for WCF Diagnostic Tracing and Message Logging

WCF supports diagnostic tracing and message logging. You configure diagnostic tracing and message logging either through configuration files or by using Windows Management Instrumentation (WMI). Depending on the configuration options you set, WCF diagnostic tracing or message logging can emit sensitive information to log files, where it could potentially be exposed to observation by unauthorized users.

Follow the recommendations provided in the WCF documentation to mitigate potential security threats exposed by enabling these features. At a minimum, you should observe the following best practices for diagnostic tracing and message logging:

  • Do not enable “verbose” or “information” tracing in a production environment. This may lead to performance degradation. However, you must enable “warning” and “error” tracing in a production environment. If you enable tracing, you must take proper security measures to protect your data. See the WCF documentation for more information.

  • Ensure that log files and configuration files are protected by access control lists (ACLs).

The following warnings apply specifically to the messages that are exchanged between a client application and the Oracle Database adapter:

  • WCF diagnostic tracing can log the header (but not the body) of messages exchanged with the Oracle Database adapter. Because the message action is in the message header, this reveals the operations invoked on the Oracle Database adapter by the client.

  • If WCF message logging is enabled and logMessagesAtServiceLevel is true, the message header (but not the message body) of messages exchanged between the adapter client and the Oracle Database adapter are logged. Because the message action is in the message header, this reveals the operations that the client invoked on the Oracle Database adapter. If logEntireMessage is also true, the message body will be logged. This can reveal sensitive database information.

For more information about improving security when you enable diagnostic tracing, see "Security Concerns and Useful Tips for Tracing" at http://go.microsoft.com/fwlink/?LinkId=89796. For more information about improving security when you enable message logging, see "Security Concerns for Message Logging" at http://go.microsoft.com/fwlink/?LinkId=89797.

See Also

Other Resources

Security and Protection


Development

The Microsoft BizTalk Adapter for Oracle Database is a Windows Communication Foundation (WCF) custom binding. Client applications can consume the Oracle Database adapter to invoke operations on Oracle database artifacts. The Oracle Database adapter can be consumed:

  • Through a physical port binding in a BizTalk Server solution.

  • By invoking methods on an instance of a .NET client proxy.

  • As a hosted WCF service.

  • By sending SOAP messages over a channel instance in code that uses the WCF channel model.

The following table:

  • Lists the different operations that can be performed on an Oracle database using the Oracle Database adapter.

  • Provides links to the topics containing information about performing the task using the chosen approach (BizTalk Server, WCF service model, or WCF channel model).

Task | BizTalk Server | WCF Service Model | WCF Channel Model
Basic Insert, Update, Delete, and Select operations on tables and views | Performing Basic Insert, Update, Delete, and Select Operations by Using BizTalk Server | Performing Basic Insert, Update, Delete, and Select Operations by Using the WCF Service Model | Performing an Insert Operation by Using the WCF Channel Model
Operations on tables and views containing LOB data | Performing Operations on Tables with Large Object Types Data by Using BizTalk Server | Performing Operations on Tables with Large Object Types by Using the WCF Service Model |
Operations on functions and stored procedures | Invoking Functions and Procedures by Using BizTalk Server | Invoking Functions and Procedures by Using the WCF Service Model | Invoking a Function by Using the WCF Channel Model
Invoking overloaded functions and procedures | Invoking Overloaded Functions and Procedures by Using BizTalk Server | Invoking Functions and Procedures by Using the WCF Service Model |
Operations on functions and procedures With REF CURSOR parameters | Invoking Functions and Procedures with REF CURSORS by Using BizTalk Server | Performing Operations Using REF CURSORS in the WCF Service Model |
Operations on functions and procedures with RECORD types | Invoking Functions and Procedures with RECORD Types by Using BizTalk Server | Performing Operations Using RECORD Types in the WCF Service Model |
Operations on tables and views with BFILE data types | Performing Operations on Tables with BFILE Data Types by Using BizTalk Server |  |
SQLEXECUTE operation | Performing a SQLEXECUTE Operation by Using BizTalk Server | Performing a SQLEXECUTE Operation by Using the WCF Service Model | Performing a SQLEXECUTE Operation by Using the WCF Channel Model
Receiving polling-based data-change messages | Polling Oracle Database by Using BizTalk Server | Receiving Polling-based Data-changed Messages by Using the WCF Service Model | Receiving Polling-based Data-changed Messages by Using the WCF Channel Model
Performing Composite Operations on the Oracle Database | Performing Composite Operations on Oracle Database by Using BizTalk Server |  |
Receiving Database Change Notifications | Receiving Database Change Notifications Using BizTalk Server | Receiving Database Change Notifications Using the WCF Service Model |

The topics in this section provide information, procedures, and examples to help you develop applications that consume the Oracle Database adapter in both BizTalk Server and .NET programming solutions. The topics also provide information on other key aspects of using the adapters, such as:

  • Connecting to the Oracle database.

  • Retrieving metadata from the Oracle database.

  • Using binding properties to configure the adapter.

In This Section

  • Establishing a Connection to the Oracle Database

  • Retrieving Metadata for Oracle Operations in Visual Studio

  • Working with BizTalk Adapter for Oracle Database Binding Properties

  • Streaming and the Oracle Database Adapter

  • Receiving Polling-based Data-changed Messages

  • Developing BizTalk Applications

  • Developing Applications by Using the WCF Service Model

  • Developing Applications by Using the WCF Channel Model

  • Retrieving Metadata Programmatically from the Oracle Database

  • Using the Oracle Database Adapter with Microsoft Office SharePoint Server

  • Samples

  • How Do I?


Establishing a Connection to the Oracle Database

The Microsoft BizTalk Adapter for Oracle Database is a Windows Communication Foundation (WCF) custom binding. As such, it enables communication to an Oracle database through a WCF endpoint address. In WCF, the endpoint address is typically expressed as a Uniform Resource Identifier (URI), which identifies the network location of the service. The Oracle Database adapter expresses this location as a connection URI, which contains properties that the Oracle Database adapter uses to establish a connection to the Oracle database.

You must specify a connection URI when you:

  • Create a channel factory or a channel listener using the WCF channel model or when you create a WCF client or service host using the WCF service model.

  • Create a physical port binding in a BizTalk Server solution.

  • Use the Add Adapter Service Reference Visual Studio Plug-in to generate a WCF client class or WCF service interface for a WCF service model solution.

  • Use the Consume Adapter Service BizTalk Project Add-in to retrieve message schemas from the Oracle Database adapter for a BizTalk Server solution.

  • Use the ServiceModel Metadata Utility tool (svcutil.exe) to generate a WCF client class or WCF service interface for a WCF service model solution.

The Oracle Database adapter supports two ways of establishing a connection to the Oracle database:

  • Using tnsnames.ora. In this approach, the connection URI provided by the adapter client contains only the net service name specified in the tnsnames.ora file. The adapter extracts the connection parameters such as server name, service name, port no, etc. from the net service name entry in the file. To use this approach, the computer running the Oracle client must be configured to include the net service name for the Oracle database in the tnsnames.ora file.

    Important
    Due to an Oracle Client limitation, the DataSourceName parameter (net service name) in the connection URI cannot contain more than 39 characters if you are performing operations in a transaction. Therefore, make sure that the value specified for the DataSourceName parameter is less than or equal to 39 characters if you will be performing operations in a transaction.

  • Without using tnsnames.ora. In this approach, the adapter clients specify the connection parameters directly in the connection URI. This does not require the net service name to be present in the tnsnames.ora file on the client computer. This approach does not even require the tnsname.ora file to be present on the client computer.

    Important
    This mode of connectivity is not supported if you are performing operations in a transaction. This is due to a limitation of Oracle Client.

The topics in this section describe how to establish a connection between the Microsoft BizTalk Adapter for Oracle Database and the Oracle database by providing you with:

  • Information about configuring the Oracle client.

  • Information about the connection properties and the structure of the Oracle connection URI.

  • Links to topics that show how to establish a connection by using the Oracle Database adapter.

  • Information about connecting to the Oracle database using Windows Authentication.

In This Section

  • Configuring the Oracle Client

  • The Oracle Database Connection URI

  • Connecting to the Oracle Database Using Windows Authentication

See Also

Concepts

Development


Configuring the Oracle Client
Important
This topic is relevant only if you are using tnsnames.ora to connect to the Oracle database.

The Microsoft BizTalk Adapter for Oracle Database connects to the Oracle database through the Oracle client installed on your computer. The Oracle Database adapter passes the net service name that you specify in the connection URI to the Oracle client to establish a connection to the Oracle database. The net service name is an alias that the Oracle client uses to acquire connection information for the target Oracle database service.

The Oracle client resolves the net service name according to the naming method that it is configured to use. You use the Oracle Net Configuration Assistant to configure the naming methods to be used by the Oracle client. The Oracle Database adapter supports the Local Naming method for connecting to the Oracle database. This method uses a local file, tnsnames.ora, to resolve the net service name.

The tnsnames.ora file associates net service names with connect descriptors that contain the information the Oracle client needs to establish a connection to a specific Oracle database service (instance). The following is a sample entry from tnsnames.ora.

Copy Code
ADAPTER =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = yourOracleServer)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = yourOracleDatabaseServiceName)
    )
  )

In this sample entry, ADAPTER is the net service name. The connect descriptor specifies address information and the service name of the Oracle database service associated with ADAPTER. You can use the Oracle Net Configuration Assistant to create and configure net service names in tnsnames.ora. After you have configured the net service name, you can specify it in a connection URI as in the following example.

Copy Code
oracledb://ADAPTER

For more information about using the Oracle Net Configuration Assistant and about tnsnames.ora, see the Oracle Database Net Services Administrator's Guide. Consult your database administrator about configuration details for your specific installation.

See Also

Other Resources

Establishing a Connection to the Oracle Database


The Oracle Database Connection URI

The Microsoft BizTalk Adapter for Oracle Database connection URI contains properties that the adapter uses to establish a connection to the Oracle database. This topic provides information about how to specify the connection URI to connect to the Oracle database using tnsnames.ora and without using tnsnames.ora. It also provides information about using the connection URI to connect to the Oracle database.

Connection URI to Connect to the Oracle Database Using tnsnames.ora

Important
  • For this approach, you must add the net service name entry in the tnsnames.ora file on the computer with the adapter client installed. For more information about the net service name entry, see Configuring the Oracle Client.

  • Due to an Oracle Client limitation, the DataSourceName parameter (net service name) in the connection URI cannot contain more than 39 characters if you are performing operations in a transaction. Therefore, make sure that the value specified for the DataSourceName parameter is less than or equal to 39 characters if you will be performing operations in a transaction.

A typical endpoint address URI in WCF is represented as: scheme://userauthparams@hostinfoparams?query_string, where:

  • scheme is the scheme name.

  • userauthparams is a name-value collection of parameters required for user authentication by the endpoint.

  • hostinfoparams is information required to establish the connection to the host; for example, a path.

  • query_string is an optional name-value collection of parameters delimited by a question mark (?).

The Oracle Database adapter connection URI adheres to this basic format and is implemented as follows:

Copy Code
oracledb://User=[USER_NAME];Password=[PASSWORD]@[NET_SERVICE_NAME]?PollingId=[POLLING_ID]

The following table explains the properties contained in the connection URI.

Connection URI Property Category Description

[USER_NAME]

userauthparams

The user name to use for authentication on the Oracle database; for example, SCOTT. You must set the AcceptCredentialsInUri binding property to true to specify the user name and password in the connection URI.

Note
The Oracle Database adapter preserves the case of the value that you enter for the user name when it opens a connection on the Oracle database. User names on the Oracle database are case-sensitive. You should ensure that you provide Oracle user names to the Oracle Database adapter in the case expected by your Oracle database. Typically, this means that the user name in the SCOTT/TIGER credential should be upper case: "SCOTT".

[PASSWORD]

userauthparams

The password to use for authentication on the Oracle database; for example, TIGER. You must set the AcceptCredentialsInUri binding property to true to specify the user name and password in the connection URI.

Note
The Oracle Database adapter preserves the case of the value that you enter for the password when it opens a connection on the Oracle database. For release 10g and earlier, passwords on the Oracle system are not case-sensitive.

[NET_SERVICE_NAME]

hostinfoparams

A net service name that is specified in the tnsnames.ora file on the computer where the Oracle Database adapter is installed. For more information about net service names and tnsnames.ora, see Configuring the Oracle Client.

[POLLING_ID]

query_string

An optional string that should be appended by the adapter to the standard namespace of the POLLINGSTMT operation. This enables you to specify a unique namespace for each polling operation when a project contains multiple polling operations. You do not have to specify a PollingId string if your project contains only one POLLINGSTMT operation.

Note
Query parameters are also used in the connection URI when an endpoint address is specified for a WCF Metadata Exchange client.

Connection URI to Connect to the Oracle Database Without Using tnsnames.ora

Important
  • For this approach, the net service name in the tnsnames.ora file, or the actual tnsnames.ora file itself does not need to be present on the client computer.

  • This mode of connectivity is not supported if you are performing operations in a transaction. This is due to a limitation of Oracle Client.

A typical endpoint address URI in WCF is represented as: scheme://userauthparams@hostinfoparams?query_string, where:

  • scheme is the scheme name.

  • userauthparams is a name-value collection of parameters required for user authentication by the endpoint.

  • hostinfoparams is information required to establish the connection to the host; for example, server name, port number, etc.

  • query_string is an optional name-value collection of parameters delimited by a question mark (?).

The Oracle Database adapter connection URI adheres to this basic format and is implemented as follows:

Copy Code
oracledb://User=[USER_NAME];Password=[PASSWORD]@[SERVER_NAME]:[PORT_NUMBER]/[SERVICE_NAME]/SERVICE_TYPE]?PollingId=[POLLING_ID]

The following table explains the properties contained in the connection URI.

Connection URI Property Category Description

[USER_NAME]

userauthparams

The user name to use for authentication on the Oracle database; for example, SCOTT. You must set the AcceptCredentialsInUri binding property to true to specify the user name and password in the connection URI.

Note
The Oracle Database adapter preserves the case of the value that you enter for the user name when it opens a connection on the Oracle database. User names on the Oracle database are case-sensitive. You should ensure that you provide Oracle user names to the Oracle Database adapter in the case expected by your Oracle database. Typically, this means that the user name in the SCOTT/TIGER credential should be upper case: "SCOTT".

[PASSWORD]

userauthparams

The password to use for authentication on the Oracle database; for example, TIGER. You must set the AcceptCredentialsInUri binding property to true to specify the user name and password in the connection URI.

Note
The Oracle Database adapter preserves the case of the value that you enter for the password when it opens a connection on the Oracle database. For release 10g and earlier, passwords on the Oracle system are not case-sensitive.

[SERVER_NAME]

hostinfoparams

Name of the server on which the Oracle database is running. This is mandatory.

[PORT_NUMBER]

hostinfoparams

The Oracle Net Listener port. If no value is specified, the adapter takes the default value 1521.

[SERVICE_NAME]

hostinfoparams

The Oracle database service name. This is mandatory.

[SERVICE_TYPE]

hostinfoparams

The type of Oracle service. The possible values are Dedicated or Shared. A dedicated service uses a dedicated server process to serve only one user process. A shared service uses a shared server process that can that can serve multiple user processes. Default is Dedicated.

[POLLING_ID]

query_string

An optional string that should be appended by the adapter to the standard namespace of the POLLINGSTMT operation. This enables you to specify a unique namespace for each polling operation when a project contains multiple polling operations. You do not have to specify a PollingId string if your project contains only one POLLINGSTMT operation.

Note
Query parameters are also used in the connection URI when an endpoint address is specified for a WCF Metadata Exchange client.

Oracle Database Credentials and the Connection URI

By default, the Oracle Database adapter throws an exception when the Oracle database credentials are specified in the connection URI. This is because these credentials are represented as plain text in the connection URI, and this poses a security risk. You can set the AcceptCredentialsInUri binding property to control whether the connection URI can contain credentials for the Oracle database. If the AcceptCredentialsInUri property is false, the Oracle Database adapter throws an exception if the connection URI contains Oracle database credentials; if the property is true, no exception is thrown. There are a few limited scenarios in which it is necessary to specify credentials in the connection URI; for example, to receive the inbound POLLINGSTMT operation when you use the WCF service model or the WCF channel model. For most situations, however, you should avoid providing credentials in the connection URI. For more information about how to more securely provide credentials for the Oracle database, see Security and Protection.

Important
Due to the security risks posed by passing credentials in strings as plain text, you should avoid specifying Oracle database connection credentials in the connection URI.

Using Reserved Characters in the Connection URI

The Oracle Database adapter does not support specifying a connection URI that has special characters for any of the parameter values. If the connection parameter values contain special characters, make sure you do one of the following:

  • If you are specifying the URI in Visual Studio using Add Adapter Service Reference Plug-in or Consume Adapter Service Add-in, you must specify them as-is in the URI Properties tab, that is, without using any escape characters. If you specify the URI directly in the Configure a URI field and the connection parameters contain reserved characters, you must specify the connection parameters using proper escape characters.

  • If you are specifying the URI while creating a send or receive port in BizTalk Server Administration console, and the connection parameters contain reserved characters, you must specify the connection parameters using proper escape characters.

Using the Connection URI to Connect to the Oracle Database

The following is an example of a connection URI for Oracle Database adapter.

Using tnsnames.ora Without using tnsnames.ora
Copy Code
oracledb://ADAPTER

In this example, ADAPTER is a net service name that is associated with the SERVICE NAME and connection information for the target Oracle database in tnsnames.ora.

Copy Code
oracledb://yourOracleServer:1521/yourOracleDatabaseServiceName/Dedicated

In this example, the server name is “yourOracleServer” and the service name is “yourOracleDatabaseServiceName”.

The following is an example of a connection URI for a POLLINGSTMT operation. This URI includes a PollingId parameter to modify the namespace of the POLLINGSTMT operation.

Using tnsnames.ora Without using tnsnames.ora
Copy Code
oracledb://ADAPTER?PollingId=MyPollingNotification1
Copy Code
oracledb://yourOracleServer:1521/yourOracleDatabaseServiceName/Dedicated? PollingId=MyPollingNotification1

For the above connection URIs, the Oracle Database adapter creates the following namespace for the POLLINGSTMT operation.

Copy Code
http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTMyPollingNotification1

For information about how to establish a connection to the Oracle database when you:

  • Use the Consume Adapter Service BizTalk Project Add-in or the Add Adapter Service Reference Visual Studio Plug-in, see Connecting to the Oracle Database in Visual Studio Using Consume Adapter Service Add-in.

  • Configure a send port or receive port (location) in a BizTalk Server solution, see Manually Configuring a Physical Port Binding to the Oracle Database Adapter.

  • Use the WCF channel model in a programming solution, see Creating a Channel.

  • Use the WCF service model in a programming solution, see Specifying a Client Binding for the Oracle Database.

  • Use the WCF ServiceModel Metadata Utility Tool (svcutil.exe), see Using the ServiceModel Metadata Utility Tool with the BizTalk Adapter for Oracle Database.

See Also

Concepts

Configuring the Oracle Client

Other Resources

Establishing a Connection to the Oracle Database


Connecting to the Oracle Database Using Windows Authentication

The Microsoft BizTalk Adapter for Oracle Database enables adapter clients to use Windows Authentication to establish a connection with the Oracle database. To use Windows Authentication, the adapter clients must specify “/” for user name and leave the password blank. For more information about connecting to the Oracle database using Windows Authentication, see Connecting to the Oracle Database in Visual Studio Using Consume Adapter Service Add-in.

To enable adapter clients to use Windows Authentication to connect to an Oracle database, you must perform the following tasks on the computer running the Oracle database.

  1. Make sure that the sqlnet.ora file on both the client and the server, available under ORACLE_BASE\ORACLE_HOME\network\admin\sqlnet.ora, has the following entry:

    Copy Code
    SQLNET.AUTHENTICATION_SERVICES= (NTS)
  2. Connect to the Oracle database as SYSDBA.

  3. Create the Windows user as an external user in the Oracle database. Note that the user name must be in upper case.

    Copy Code
    CREATE USER “OPS$<DOMAIN_NAME>\<USER_NAME>” IDENTIFIED EXTERNALLY;
  4. Grant privileges to the user.

    Copy Code
    GRANT CONNECT,RESOURCE TO “OPS$<DOMAIN_NAME>\<USER_NAME>”;
  5. To enable the newly created user, logging in using Windows Authentication, to access the Oracle database artifacts, you can change the user’s schema to the SCOTT schema. You can add the following SQL command to the logon script that changes the user’s default schema to SCOTT when the user logs on.

    Copy Code
    alter session set current_schema=SCOTT;
  6. Even though you changed the schema of the user to the SCOTT schema, you will still not be able to see the Oracle database artifacts while browsing and generating metadata using the Oracle Database adapter. This is because the newly created user does not have permissions for the SCOTT schema. Make sure you provided permission for the SCOTT schema to the newly created user.

See Also

Concepts

Configuring the Oracle Client

Other Resources

Establishing a Connection to the Oracle Database


Retrieving Metadata for Oracle Operations in Visual Studio

The Microsoft BizTalk Adapter for Oracle Database provides three Visual Studio components that you can use to help you develop solutions using the adapter.

  • The Consume Adapter Service BizTalk Project Add-in and the Add Adapter Metadata Wizard are available in BizTalk Server projects. You use the Consume Adapter Service Add-in and the Add Adapter Metadata Wizard to generate message schemas (XSDs) for operations that you want to target in your BizTalk solution. For more information about developing solutions with BizTalk Server, see Developing BizTalk Applications.

  • The Add Adapter Service Reference Visual Studio Plug-in is available in non-BizTalk programming projects. You use the Add Adapter Service Reference Plug-in to generate a WCF client class or a WCF service callback interface when you develop solutions using the WCF service model. For more information about developing solutions with the WCF service model, see Developing Applications by Using the WCF Service Model.

All these three Visual Studio components simplify development by:

  • Providing a Microsoft Windows interface through which you can browse and search for operations that you want to use in your solution.

  • Retrieving metadata exposed by the adapter for these target operations.

  • Converting that metadata, which is expressed as a Web Services Description Language (WSDL) document by the adapter, into a form that you can use in your solution (XSD message schemas for BizTalk projects or a .NET object representation of a service contract for the WCF service model) and adding it to your project.

This section provides instructions about how to use Consume Adapter Service Add-in, Add Adapter Metadata Wizard, and Add Adapter Service Reference Plug-in.

In This Section

  • Connecting to the Oracle Database in Visual Studio

  • Browsing, Searching, and Retrieving Metadata for Oracle Operations

See Also

Concepts

Development


Connecting to the Oracle Database in Visual Studio

This section provides information about how to use the Consume Adapter Service Add-in, the Add Adapter Metadata Wizard, and the Add Adapter Service Reference Plug-in.

  • The Consume Adapter Service BizTalk Project Add-in is available in BizTalk Server projects. You use the Consume Adapter Service Add-in to generate message schemas (XSDs) for operations that you want to target in your BizTalk solution. For more information about developing solutions with BizTalk Server, see Developing BizTalk Applications.

  • The Add Adapter Metadata Wizard is available in BizTalk Server projects. You use the Add Adapter Metadata Wizard to generate message schemas (XSDs) for operations that you want to target in your BizTalk solution. For more information about developing solutions with BizTalk Server, see Developing BizTalk Applications.

    Note
    Because the Oracle Database adapter is exposed both as a WCF-Custom binding and as BizTalk adapter, you can use either the Consume Adapter Service Add-in or the Add Adapter Metadata Wizard from a BizTalk project to connect to SQL Server.

  • The Add Adapter Service Reference Visual Studio Plug-in is available in non-BizTalk programming projects. You use the Add Adapter Service Reference Plug-in to generate a WCF client class or a WCF service callback interface when you develop solutions using the WCF service model. For more information about developing solutions with the WCF service model, see Developing Applications by Using the WCF Service Model.

To use the Consume Adapter Service Add-in, the Add Adapter Metadata Wizard, or the Add Adapter Service Reference Plug-in, you must first connect to the Oracle database. All three methods present a dialog box through which you configure a connection by setting the following:

  • Connection parameters. These are the parameters that are used to build the connection URI. You must specify a data source (Oracle net service name).

  • User name password credentials for the Oracle database. These are used to authenticate you on the Oracle database when the connection is established. You must specify a user name and password.

  • Binding properties. Binding properties are optional at design-time, that is, while generating metadata for operations. For more information about binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

At a minimum, when you configure the connection to the Oracle database, you only have to specify binding properties and connection parameters that are needed to establish the connection and that affect the metadata returned by the Oracle Database adapter for the operations you want to target. However, you might also want to specify values for any additional binding properties and connection parameters that will be used at run time. This is because:

  • The Consume Adapter Service Add-in creates a BizTalk port binding file from the binding properties and connection parameters that you specify when you configure the connection, and adds this file to your project. Later, you can use this binding file to create a port in the BizTalk Server Administration console. For more information about the binding file, see Configuring a Physical Port Binding by Using a Port Binding File.

  • The Add Adapter Service Reference Plug-in creates an app.config file from the binding properties and connection properties that you specify when you configure the connection, and adds this file in your project directory.

In This Section

  • Connecting to the Oracle Database in Visual Studio Using Consume Adapter Service Add-in

  • Connecting to the Oracle Database in Visual Studio Using Add Adapter Metadata Wizard

  • Connecting to the Oracle Database in Visual Studio Using Add Adapter Service Reference Plug-in

See Also

Other Resources

Retrieving Metadata for Oracle Operations in Visual Studio


Connecting to the Oracle Database in Visual Studio Using Consume Adapter Service Add-in

The Consume Adapter Service Add-in is installed when you install WCF LOB Adapter SDK. The Consume Adapter Service Add-in loads all the WCF-Custom bindings installed on the computer. To connect to the Oracle database using the WCF-based Oracle Database adapter in a BizTalk project, you must use the oracleDBBinding.

This topic provides instructions on how to use the Consume Adapter Service Add-in.

Connecting to an Oracle Database Using the Consume Adapter Service Add-in

Perform the following steps to connect to an Oracle database using the Consume Adapter Service Add-in.

To connect to an Oracle database

  1. To connect using the Consume Adapter Service Add-in in a BizTalk solution:

    1. Right-click the project in Solution Explorer, point to Add, and then click Add Generated Items.

    2. In the Add Generated Items dialog box, do the following:

      Use this To do this

      Categories

      Click Consume Adapter Service.

      Templates

      Click Consume Adapter Service.

    3. Click Add. The Consume Adapter Service Add-in opens.

  2. From the Select a binding drop-down list, select oracleDBBinding and click Configure.

  3. In the Configure Adapter dialog box, click the Security tab, and from the Client credential type drop-down list box, select Username and specify the user name and password to connect to the Oracle database.

    1. To connect using the Oracle database credentials, type the database credentials in the User name and Password text boxes. Make sure you adhere to the following considerations when specifying the user name and password to connect to an Oracle database:

      • User name. The Oracle Database adapter preserves the case of the value that you enter for the user name when it opens a connection on the Oracle database. User names on the Oracle database are case-sensitive. You should ensure that you provide Oracle user names to the Oracle Database adapter in the case expected by your Oracle database. Typically, this means that the user name in the SCOTT/TIGER credential should be upper case: "SCOTT".

      • Password. The Oracle Database adapter preserves the case of the value that you enter for the password when it opens a connection on the Oracle database. For release 10g and earlier, passwords on the Oracle system are not case-sensitive.

    2. To connect using Windows Authentication, type / in the User name text box and leave the Password text box blank.

  4. Click the URI Properties tab, and specify values for the connection parameters. For more information about the connection URI for the Oracle Database adapter, see The Oracle Database Connection URI.

  5. Click the Binding Properties tab, and then specify values for the binding properties, if any, required by the operations you want to target. For example, if you want to target the POLLINGSTMT operation, you must set the PollingStatement binding property. For more information about binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

  6. Click OK.

  7. Click Connect. After the connection is established, the connection status is shown as Connected.

    The following figure shows the Consume Adapter Service Add-in immediately after the connection is established.

    Consume Adapter Service dialog box connected

See Also

Concepts

Connecting to the Oracle Database in Visual Studio
Connecting to the Oracle Database Using Windows Authentication


Connecting to the Oracle Database in Visual Studio Using Add Adapter Metadata Wizard

The Oracle Database adapter is also exposed as a BizTalk adapter and, therefore, you can use the Add Adapter Metadata Wizard to generate schema for the operations you want to perform on the Oracle database using the adapter.

This topic provides instructions on how to use the Add Adapter Metadata Wizard.

Connecting to an Oracle Database Using the Add Adapter Metadata Wizard

Perform the following steps to connect to an Oracle database using the Add Adapter Metadata Wizard.

To connect to an Oracle database

  1. To connect using the Add Adapter Metadata Wizard in a BizTalk solution:

    1. Right-click the project in Solution Explorer, point to Add, and then click Add Generated Items.

    2. In the Add Generated Items dialog box, do the following:

      Use this To do this

      Categories

      Click Add Adapter.

      Templates

      Click Add Adapter Metadata.

    3. Click Add. The Add Adapter Metadata Wizard opens.

    4. In the Add Adapter Metadata Wizard, select WCF-OracleDB. Select the computer on which BizTalk Server is installed and the name of the BizTalk database.

      Important
      If you already have a WCF-OracleDB port configured in BizTalk, select the port from the Port list.

    5. Click Next.

  2. From the Select a binding drop-down list, select oracleDBBinding and click Configure.

  3. In the Configure Adapter dialog box, click the Security tab, and from the Client credential type drop-down list box, select Username and specify the user name and password to connect to the Oracle database.

    1. To connect using the Oracle database credentials, type the database credentials in the User name and Password text boxes. Make sure you adhere to the following considerations when specifying the user name and password to connect to an Oracle database:

      • User name. The Oracle Database adapter preserves the case of the value that you enter for the user name when it opens a connection on the Oracle database. User names on the Oracle database are case-sensitive. You should ensure that you provide Oracle user names to the Oracle Database adapter in the case expected by your Oracle database. Typically, this means that the user name in the SCOTT/TIGER credential should be upper case: "SCOTT".

      • Password. The Oracle Database adapter preserves the case of the value that you enter for the password when it opens a connection on the Oracle database. For release 10g and earlier, passwords on the Oracle system are not case-sensitive.

    2. To connect using Windows Authentication, type / in the User name text box and leave the Password text box blank.

  4. Click the URI Properties tab, and specify values for the connection parameters. For more information about the connection URI for the Oracle Database adapter, see The Oracle Database Connection URI.

  5. Click the Binding Properties tab, and then specify values for the binding properties, if any, required by the operations you want to target. For example, if you want to target the POLLINGSTMT operation, you must set the PollingStatement binding property. For more information about binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

    Note
    If you are generating metadata using Add Adapter Metadata Wizard and you selected an existing WCF-OracleDB send port, you need not specify the binding properties. The binding properties are picked from the send port configuration. However, you may choose to specify the binding properties that are required at design-time, if any. In such case, the new values for binding properties will be used at design-time while generating the metadata. However, at run-time the values specified for binding properties in the send port configuration will be applicable.

  6. Click OK.

  7. Click Connect. After the connection is established, the connection status is shown as Connected.

    The following figure shows the Consume Adapter Service Add-in immediately after the connection is established.

    Consume Adapter Service dialog box connected

See Also

Concepts

Connecting to the Oracle Database in Visual Studio
Connecting to the Oracle Database Using Windows Authentication


Connecting to the Oracle Database in Visual Studio Using Add Adapter Service Reference Plug-in

To connect to the Oracle database using the adapteroracle_short in a .NET programming solution, you must use the Add Adapter Service Reference Visual Studio Plug-in. This topic provides instructions on how to use the Add Adapter Service Reference Plug-in.

Connecting to an Oracle Database Using the Add Adapter Service Reference Plug-in

Perform the following steps to connect to an Oracle database using the Add Adapter Service Reference Plug-in.

To connect to an Oracle database

  1. To connect using the Add Adapter Service Reference Plug-in in a programming solution:

    1. Create a project using Visual Studio.

    2. Right-click the project in Solution Explorer, and then click Add Adapter Service Reference. The Add Adapter Service Reference Plug-in opens.

  2. From the Select a binding drop-down list, select oracleDBBinding and click Configure.

  3. In the Configure Adapter dialog box, click the Security tab, and from the Client credential type drop-down list box, select Username and specify the user name and password to connect to the Oracle database.

    1. To connect using the Oracle database credentials, type the database credentials in the User name and Password text boxes. Make sure you adhere to the following considerations when specifying the user name and password to connect to an Oracle database:

      • User name. The Oracle Database adapter preserves the case of the value that you enter for the user name when it opens a connection on the Oracle database. User names on the Oracle database are case-sensitive. You should ensure that you provide Oracle user names to the Oracle Database adapter in the case expected by your Oracle database. Typically, this means that the user name in the SCOTT/TIGER credential should be upper case: "SCOTT".

      • Password. The Oracle Database adapter preserves the case of the value that you enter for the password when it opens a connection on the Oracle database. For release 10g and earlier, passwords on the Oracle system are not case-sensitive.

    2. To connect using Windows Authentication, type / in the User name text box and leave the Password text box blank.

  4. Click the URI Properties tab, and specify values for the connection parameters. For more information about the connection URI for the Oracle Database adapter, see The Oracle Database Connection URI.

  5. Click the Binding Properties tab, and then specify values for the binding properties, if any, required by the operations you want to target. For example, if you want to target the POLLINGSTMT operation, you must set the PollingStatement binding property. For more information about binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

  6. Click OK.

  7. Click Connect. After the connection is established, the connection status is shown as Connected.

    The following figure shows the Consume Adapter Service Add-in immediately after the connection is established.

    Consume Adapter Service dialog box connected

See Also

Concepts

Connecting to the Oracle Database in Visual Studio
Connecting to the Oracle Database Using Windows Authentication


Browsing, Searching, and Retrieving Metadata for Oracle Operations

This section provides information about how to use Consume Adapter Service BizTalk Project Add-in, Add Adapter Metadata Wizard, and Add Adapter Service Reference Visual Studio Plug-in. By using these Visual Studio components, you can:

  • Browse for operations for which to retrieve metadata.

  • Search for operations for which to retrieve metadata.

  • Add message schemas for selected operations and port binding configuration files to a BizTalk server project when using the Consume Adapter Service Add-in or the Add Adapter Metadata Wizard.

  • Add a WCF client class or a WCF service contract (interface) for selected operations and a configuration file (app.config) to a non-BizTalk programming project when using the Add Adapter Service Reference Plug-in.

You must connect to the Oracle database before you can browse, search, or retrieve metadata for target operations. For information about how to connect to the Oracle database when you use Consume Adapter Service Add-in, Add Adapter Metadata Wizard or Add Adapter Service Reference Plug-in, see Connecting to the Oracle Database in Visual Studio.

Note
  • The Consume Adapter Service BizTalk Project Add-in, Add Adapter Metadata Wizard, and Add Adapter Service Reference Visual Studio Plug-in present essentially the same interface when you browse and search for operations, so all the three components are covered in the same topics.

  • You can select category nodes to return all the operations in that category's subtree—for example, an entire table or schema (or even all the tables in a schema).

Browsing for Operations

While browsing metadata using Consume Adapter Service Add-in, Add Adapter Metadata Wizard or Add Adapter Service Reference Plug-in, the Oracle Database adapter surfaces:

  • Operations that can be performed on tables, views, stored procedures, functions, and packages.

  • The SQLEXECUTE operation, which enables adapter clients to execute any generic data manipulation language (DML) or stored procedure in an Oracle database.

  • The POLLINGSTMT and Notification operations, which enable adapter clients to obtain inbound data from the Oracle database. It also exposes a list of stored procedures, functions and packages under the respective schemas that are exposed as operations for polling.

Note
  • By using the Consume Adapter Service Add-in, Add Adapter Metadata Wizard or Add Adapter Service Reference Plug-in, you can browse category and operation nodes using a Windows interface.

  • The SQLEXECUTE, POLLINGSTMT, and Notification operations are presented directly under the root node in the category tree. You must select the root node to view these outbound and inbound operations.

Fore more information about browsing metadata, see How Does the Adapter Surface Oracle Metadata?

Perform the following steps to browse for operations exposed for different artifacts in an Oracle database using the Add Adapter Service Reference Plug-in or Consume Adapter Service Add-in.

To browse metadata in an Oracle database

  1. Connect to an Oracle database using the Consume Adapter Service Add-in, Add Adapter Metadata Wizard or Add Adapter Service Reference Plug-in. See Connecting to the Oracle Database in Visual Studio for instructions.

  2. From the Select contract type drop-down list, select the type of contract based on whether you will be performing inbound or outbound operations using the adapter.

  3. The Select a category box lists the schemas in the Oracle database. Click a schema to see the tables, procedures, functions, packages, and views accessible to the schema in the Available categories and operations box. Alternatively, you can see the categorization by expanding the schema node.

    Tip
    You can directly go to the “immediate” category node or subcategory nodes in the tree, by typing the name of the artifact in while the focus is on the tree view in the Select a category box. For example, to jump to the SCOTT node, keep the focus on the root node, and then type SCOTT.

    The following figure shows the Consume Adapter Service Add-in. The SCOTT schema node is selected, and the general category nodes available under the SCOTT node are listed in the Available categories and operations box.

    Browse users in an Oracle database

  4. Click the Table node to see the tables for SCOTT in the Available categories and operations box. Alternatively, you can see the list of tables by expanding the Table node.

  5. Click a table name to see the operations supported on the table.

    The following figure shows the Consume Adapter Service Add-in. The tables available in the SCOTT schema are listed in the Select a category box. The operations available for the EMP table are listed in the Available categories and operations box.

    Browse tables in an Oracle database

  6. Click the Procedure node to list the procedures accessible to schema SCOTT in the Available categories and operations box.

    The following figure shows the Consume Adapter Service Add-in. The general category nodes available in the SCOTT schema are listed in the Select a category box. The procedures available in the SCOTT schema are listed in the Available categories and operations box.

    Browse procedures in an Oracle database

  7. Click the Function node to see the functions for the schema SCOTT in the Available categories and operations box.

    The following figure shows the Consume Adapter Service Add-in. The general category nodes available in the SCOTT schema are listed in the Select a category box. The functions available in the SCOTT schema are listed in the Available categories and operations box .

    Browse functions in an Oracle database

  8. Click the Package node to see the packages for the schema SCOTT in the Available categories and operations box. Alternatively, you can see the list of packages by expanding the Package node.

  9. Click a package name to see the operations supported on the package.

    The following figure shows Consume Adapter Service Add-in, which lists the packages, and the supported operations for a particular package, for the SCOTT schema.

    Browse packages in an Oracle database

  10. Click the View node to see the views for the schema SCOTT in the Available categories and operations box. Alternatively, you can see the list of views by expanding the View node.

  11. Click a view name to see the operations supported on the view.

    The following figure shows the Consume Adapter Service Add-in, which lists the views, and the supported operations for a particular view, for the SCOTT schema.

    Browse views in an Oracle database
    Note
    Using the WCF channel and service models, adapter clients can specify a batch size to perform a batch retrieval of metadata.

Searching for Operations

While searching Oracle metadata using Consume Adapter Service Add-in, Add Adapter Metadata Wizard, or Add Adapter Service Reference Plug-in, the Oracle Database adapter:

  • Supports wildcard and escape characters in the search expression.

  • Enables search immediately under the node at which the search operation is performed. For example, to search for a function, you must be searching under \[Schema]\Functions. Multi-level search is not supported.

The following table lists the special characters that can be used for search and their interpretation by the Oracle Database adapter.

Special character | Interpretation
_ (underscore) | Matches exactly one character For example, A_ matches AB, AC, AD.
% (percentage) | Matches zero or more characters. For example, A% matches A, AB, ABC.
\ (escape) | Escapes the special meaning of % and _ For example, A\_B matches A_B.

Note
Escape character is a character that is put before a wildcard character to indicate that the wildcard should be interpreted as a regular character and not as a wildcard.

For more information see How Does the Adapter Surface Oracle Metadata?

To search metadata in an Oracle database

  1. Connect to an Oracle database using the Consume Adapter Service Add-in, Add Adapter Metadata Wizard or Add Adapter Service Reference Plug-in. See Connecting to the Oracle Database in Visual Studio for instructions.

  2. In the Consume Adapter Service Add-in, from the Select contract type drop-down list, select the type of contract based on whether you will be searching for inbound or outbound operations using the adapter.

  3. In the Select a category box, click the schema containing the tables, procedures, functions, packages, and views that you want to search. If you are not sure which schema to click, click the root node.

  4. In the Search in category text box, enter a search expression to search for a specific schema. For example, to search for schemas that have "SC" in their name, type %SC% in the text box.

  5. Click the button with the right-arrow icon to start the search. After the search is complete, the Available categories and operations box lists the schemas that satisfy the search criteria.

  6. In the Select a category box, expand the node that corresponds to the schema, and then and click the database item that you want to search within. In the Search in category text box, enter a search expression to search for a specific database item.

    For example, to search for tables that have "EMP" in their names, select Table, type %EMP% in the Search in category text box, and then click the button with the right-arrow icon.

    The following figure shows the Consume Adapter Service Add-in, which lists the search result.

    Search metadata in an Oracle database
    Note
    Using the WCF channel and service models, adapter clients can specify a batch size to perform a batch-wise search of metadata.

Generating Schema Using the Consume Adapter Service Add-in or Add Adapter Metadata Wizard

You can use the Consume Adapter Service Add-in or the Add Adapter Metadata Wizard to generate schema for selected Oracle database artifacts. Once you have browsed and searched for the artifacts you want to invoke, you can generate schema for those artifacts and send messages, conforming to the schema, to Oracle database. Perform the following steps to retrieve metadata from an Oracle database using the Consume Adapter Service Add-in.

Note
You can select category nodes to return all the operations in that category's sub-tree—for example, you can select an entire table (to generate schema for all the operations in the table) or a select specific operations on a table (for example, Insert and Delete) to generate schema for only those operations on a table. For more information about the nodes, see Metadata Node IDs.

To retrieve metadata from an Oracle database

  1. Connect to an Oracle database using the Consume Adapter Service Add-in or Add Adapter Metadata Wizard. See Connecting to the Oracle Database in Visual Studio for instructions.

  2. From the Select contract type drop-down list, select the type of contract based on whether you will be performing inbound or outbound operations using the adapter.

  3. In the Select a category box, expand a schema node.

  4. Select the category for which you want to generate metadata. For example, if you want to generate metadata for a table, select Table.

  5. Expand that particular category node, and select the specific item within that node for which you want to generate metadata.

    For example, to generate metadata for a specific table, expand the Table node, and select the specific table name.

    Note
    You can also search for a specific database item, as described in the previous procedure.

  6. In the Available categories and operations box, select the operations that pertain to the database item that you selected in the previous step, and then click Add. The selected operations are listed in the Added categories and operations box.

    The following figure shows the Consume Adapter Service Add-in, which lists the selected operations.

    Retrieve metadata from an Oracle database

    If you want to generate schema for multiple operations, there may be some duplicate element definitions among these schema that may cause failure in compiling the BizTalk project. For example, consider a scenario where you generate schema for an operation “Op1”. The schema for “Op1” contains a parameter of complex data type “CT1”. After generating the schema for “Op1” you close the Consume Adapter Service Add-in and re-open it to generate schema for another operation “Op2”. Assume that “Op2” also contains a parameter of complex data type “CT1”. After you exit the Consume Adapter Service Add-in and compile the project, you will get compilation errors because the complex data type “CT1” is defined twice in different XSD files. In such situations, we recommend the following:

    • Generate schema for all the operations in a single run of Consume Adapter Service Add-in. This ensures that the Consume Adapter Service Add-in generates only one definition for the complex data type “CT1”.

    • If you want to generate schema for multiple operations across different runs of Consume Adapter Service Add-in, make sure you select the Generate unique schema types check box so that the generated XSD files contain unique namespaces for the complex data type “CT1”.

  7. Click OK. The schema file is saved with an .xsd extension at the same location as the BizTalk project.

    By default, the files are created with the naming convention "OracleDBBindingSchema<n>.xsd", where 'n' can be 1, 2, and so on, depending on the number of schema files created. Alternatively, you can provide a custom name to the schema files by entering a name in the Filename prefix text box. The Consume Adapter Service Add-in now creates schema files with the naming convention <file name prefix>Schema<n>.xsd.

    Note
    The Consume Adapter Service Add-in also creates a binding file (an XML file) containing the binding properties that you specified when generating the schema for an operation and the SOAP action to invoke the operation. You can import this binding file in the BizTalk Server Administration console to create a WCF-Custom port with the connection URI, binding properties, and the SOAP action set. For more information, see Configuring a Physical Port Binding by Using a Port Binding File.

    Important
    Using the Add Adapter Metadata Wizard does not generate a binding file.

  8. On the File menu, click Save All.

Generating a WCF Client or WCF Service Contract Using the Add Adapter Service Reference Plug-in

You can use the Add Adapter Service Reference Plug-in to generate either WCF client code for outbound operations or WCF service code for the inbound operations.

To retrieve metadata from an Oracle database

  1. In the Add Adapter Service Reference Plug-in, from the Select contract type drop-down list, select the type of contract based on whether you will be performing inbound (POLLINGSTMT) or outbound operations.

  2. Browse or search for categories (such as an Oracle Database table) or for the specific operations for which you want to generate a WCF client (or WCF service contract).
    For example, to browse for the operations in the SCOTT.EMP table, In the Select a category box:

    1. Expand the root node (/) to see the schemas surfaced for the Oracle database.

    2. Under the root node, expand the SCOTT node to see the categories exposed for the SCOTT schema.

    3. Under the SCOTT node, expand the Table node to see the tables surfaced for the SCOTT schema.

    4. Under the Table node select the EMP node. The operations surfaced for the EMP table are listed in the Available categories and operations box.

  3. In the Available categories and operations box, select the operations or categories for which you want to generate a WCF client (or WCF service contract), and then click Add. The selected operations are listed in the Added categories and operations box.

    The following figure shows the Add Adapter Service Reference Plug-in with the Insert and Update operations for the SCOTT.EMP table selected.

    The Select and Update operations are selected.
    Important
    Depending on the outbound operations (or categories) that you select, more than one WCF client class may be generated. For more details, see Generating a WCF Client or a WCF Service Contract for Oracle Database Artifacts.

  4. For most scenarios the default serialization options are sufficient; however, if needed, you can control several aspects about the code that is generated and the type of serializer that is used. To set these options:

    1. Click Advanced Options to open the Advanced Options box.

    2. In the Advanced Options box under Choose options for generated proxy, select the options that you want. For example, you can select whether asynchronous methods are generated for the WCF client or disable the generation of a configuration file.

    3. Under Serializer select the serializer that should be used.

    The following figure shows the Advanced Options box with the default selections (Auto is selected for the serializer and no other options are selected).

    The Advanced Options box default settings

    The options that you can configure in the Advanced Options box are equivalent to some of the options available when you use the ServiceModel Metadata Utility Tool (svcutil.exe). For more information about these options, see "ServiceModel Metadata Utility Tool (Svcutil.exe)" at http://go.microsoft.com/fwlink/?LinkId=99821.

  5. Click OK. The Add Adapter Service Reference Plug-in saves the WCF client class (or WCF service interface) and helper code for the operations and categories that you have selected in your project directory. By default, a configuration file is also saved. Slightly different files are generated for inbound and outbound operations; for more information, see Generating a WCF Client or a WCF Service Contract for Oracle Database Artifacts.

You can select any node that is listed in the Available categories and operations box. If you select a category node then all of the operations available under that node and its sub-nodes will be selected. For example, to generate a WCF client for all of the operations surfaced for the EMP table, you can select the EMP node; to generate WCF clients for all of the tables in the SCOTT schema, you can select the Table node; and so on.

See Also

Other Resources

Retrieving Metadata for Oracle Operations in Visual Studio


Working with BizTalk Adapter for Oracle Database Binding Properties

The Microsoft BizTalk Adapter for Oracle Database surfaces several binding properties. By setting these properties, you can control some of the adapter's behavior. This section describes the Oracle Database adapter binding properties. It also shows how you can access them by using .NET programming or by setting properties on a BizTalk Server physical port binding.

The Adapter Binding Properties

The following table shows the Oracle Database adapter binding properties grouped by category. The category refers to the node under which each binding property appears in the dialog boxes that are presented by different applications to configure the adapter (or binding).

Binding Property Category Description .NET Type

CloseTimeout

General

The WCF connection close timeout. The default is 1 minute. Not supported.

System.TimeSpan

EnableBizTalkCompatibilityMode

General

Set the value of this binding property to True when using the adapter with BizTalk Server. Otherwise, you must set the value of this binding property to False.

bool (System.Boolean)

InboundOperationType

General

Specifies whether you want to perform Polling or Notification inbound operation. Default is Polling.

For more information about Polling see Support for Receiving Polling-based Data-changed Messages. For more information about Notification, see Receiving Database Change Notifications.

enum

Name

General

A read-only value that returns the name of the file generated by the Add Adapter Service Reference Visual Studio Plug-in to hold the WCF client class. The Add Adapter Service Reference Plug-in forms the file name by appending "Client" to the value of the Name property. The value returned is "OracleDBBinding"; for this value, the generated file will be named "OracleDBBindingClient".

string

OpenTimeout

General

ODP.NET property. Specifies the WCF connection open timeout. The default is 1 minute. This property is implemented by using ODP.NET.

Important
The Oracle Database adapter always uses OpenTimeout to set the connection open timeout when it opens a connection to the Oracle database. The adapter ignores any timeout (System.TimeSpan) parameters passed when you open a communication object, such as a channel.

System.TimeSpan

ReceiveTimeout

General

Specifies the WCF message receive timeout. Essentially, this means the maximum amount of time the adapter waits for an inbound message. The default is 10 minutes.

Important
For inbound operations such as polling, we recommend setting the timeout to the maximum possible value, which is 24.20:31:23.6470000 (24 days). When using the adapter with BizTalk Server, setting the timeout to a large value does not impact the functionality of the adapter.

System.TimeSpan

SendTimeout

General

ODP.NET property. Specifies the WCF message send timeout. The default is 1 minute. Not supported.

System.TimeSpan

DataFetchSize

BufferManagement

ODP.NET property. Specifies the amount of data in bytes that ODP.NET fetches from the result set in one server roundtrip. The default is 65536. This property is used for performance tuning.

long (System.Int64)

InsertBatchSize

BufferManagement

Specifies the batch size for multiple record Insert operations. The default is one. For values of InsertBatchSize greater than one, the Oracle Database adapter batches the specified number of records into a single ODP.NET call. If the number of records in the Insert operation is not a multiple of the batch size, the final batch will contain fewer records than the batch size value. For example, if the insert message has 10 records and the InsertBatchSize is set to 1, the adapter reads individual records and writes them into the Oracle database. So, the adapter performs 10 separate operations on the Oracle database. Similarly, if the insert message has 10 records and the InsertBatchSize is set to 5, the adapter will read and write 5 records at a time into the Oracle database, therefore performing only 2 insert operations.

If the structure of the records is not the same across a batch, a Microsoft.ServiceModel.Channels.Common.XmlReaderParsingException exception is thrown and the transaction is rolled back for the entire insert operation. A well-chosen value for InsertBatchSize can greatly improve adapter performance for multiple record Insert operations.

int (System.Int32)

LongDatatypeColumnSize

BufferManagement

Specifies the maximum size in bytes (32512) of an Oracle long data type column. The default is 0. You must use the default value if you are not performing operation on long data type. To prefetch the data, you must specify -1 as the value for this binding property. You must explicitly set an appropriate value for this binding property if you are:

  • Executing a stored procedure that contains parameters of long data type.

  • Performing a Select operation on a table that contains columns with long data type, and the SELECT statement does not include the primary key column.

Note
This binding property is deprecated.

long (System.Int64)

MaxOutputAssociativeArrayElements

BufferManagement

Specifies the size of the associate array that the adapter creates when performing operations that return an associative array in the response. The adapter communicates the size of the array to ODP.NET, which in turn creates a buffer depending on the array size. Default is 32.

This binding property is useful when performing operations involving PL/SQL table types.

int (System.Int32)

MetadataPooling

BufferManagement

ODP.NET property. Specifies whether ODP.NET caches metadata information for executed queries. The default is True, which enables metadata pooling. Caching this information improves performance; however, if changes to the underlying Oracle artifacts occur on the Oracle system, this pooled metadata will be out of sync. This might cause operations performed on the Oracle system to return unexpected exceptions. This property is used for performance tuning.

bool (System.Boolean)

StatementCachePurge

BufferManagement

ODP.NET property. Specifies whether the ODP.NET statement cache associated with a connection is purged when the connection is returned to the connection pool. The default is False, which disables statement cache purging. This property is used for performance tuning.

bool (System.Boolean)

StatementCacheSize

BufferManagement

ODP.NET property. Specifies the maximum number of statements that can be cached by each ODP.NET connection. Setting this property to a non-zero value enables statement caching for connections. The default is 10. This property is used for performance tuning.

int (System.Int32)

EnablePerformanceCounters

Diagnostics

Specifies whether to enable the WCF LOB Adapter SDK performance counters and the Oracle Database adapter LOB Latency performance counter. The default is False; performance counters are disabled. The LOB Latency performance counter measures the total time spent by the Oracle Database adapter in making calls to the Oracle database.

bool (System.Boolean)

EnableSafeTyping

Metadata

Enables or disables safe typing. The default is False; safe typing is disabled. This feature controls how the adapter surfaces certain Oracle data types. For more information about safe typing, see Basic Oracle Data Types.

bool (System.Boolean)

UseSchemaInNameSpace

Metadata

Specifies whether the schema name (SCOTT, HR, and so on) is included in the xml namespace for operations and their associated types. The default is True; the schema name is included in the namespace. The advantage of not having scheme name included in the namespace is that if there is a table with same name (for example, EMP) in two different schemas then the same XML can be used to perform the simple SQL operations (Insert, Update, Delete, Select) on both tables.

For example, if the UseSchemaInNamespace property is true, the namespace for these operations on the SCOTT.EMP table is "http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP"; if it is false, the namespace is "http://Microsoft.LobServices.OracleDB/2007/03/Table/EMP".

Important
The message action is not affected by the UseSchemaInNamesapce binding property; it always includes the schema name.

Important
We strongly recommend setting this binding property to True while generating metadata. If you set this property to false, the Oracle schema names (for example, SCOTT) will not be available in the XML namespace of the generated schema. So, if there are two tables with the same name in two different Oracle schemas, and they are added to the same BizTalk project, the BizTalk project will fail to build and deploy. If you want to include such schemas in the same BizTalk project, you must manually edit them to include the Oracle schema name in the XML namespace.

bool (System.Boolean)

NotificationPort

Notification

Specifies the port number that ODP.NET must open to listen for database change notification from Oracle database. Default is -1, which signifies that ODP.NET uses a valid, random, unused port number.

Important
Adapter clients will not receive database change notifications if Windows Firewall is turned on. Also, turning off Windows Firewall to receive notifications is not advisable. So, to receive notifications without compromising the security of the client-side computers, we recommend specifying a positive integer value as a port number and then adding that port number to the Windows Firewall exceptions list. If you set this binding property to the default value of -1, ODP.NET uses a random port and adapter clients will not know which port to add to Windows Firewall exceptions list. For instructions on how to add ports to Windows Firewall exceptions list, see http://go.microsoft.com/fwlink/?LinkID=196959.

Caution
If there is more than one application in an application domain receiving notifications using the Oracle Database adapter, the NotificationPort binding property for all applications must be set to the same port number. This is because ODP.NET creates only one listener that listens on one port within an application domain.

int (System.Int32)

NotificationStatement

Notification

Specifies the SELECT statement used to register for getting notifications from Oracle database. An example SELECT statement could resemble the following.

Copy Code
SELECT TID,ACCOUNT,PROCESSED FROM SCOTT.ACCOUNTACTIVITY WHERE PROCESSED = ‘n’
Note
You must specify the database object name along with the schema name. For example, SCOTT.ACCOUNTACTIVITY.

The adapter gets a notification message from Oracle database only when the result set for the specified SELECT statement changes.

string

NotifyOnListenerStart

Notification

Specifies whether the adapter sends a notification message to the adapter clients, informing that the receive location is running, when the listener starts. Default is True.

bool (System.Boolean)

ConnectionLifetime

OracleConnectionPool

ODP.NET property. Specifies the maximum duration in seconds of a connection. The default is 0. This property is used for performance tuning.

int (System.Int32)

DecrPoolSize

OracleConnectionPool

ODP.NET property. Specifies the number of connections that are closed when an excessive amount of established connections are not in use. The default is 1. This is used for performance tuning.

int (System.Int32)

IncrPoolSize

OracleConnectionPool

ODP.NET property. Specifies the number of new connections to be created when a new connection is requested and there are no available connections in the ODP.NET connection pool. The default is 5. This property is used for performance tuning.

int (System.Int32)

MaxPoolSize

OracleConnectionPool

ODP.NET property. Specifies the maximum number of connections in an ODP.NET connection pool. The default is 100. This property is used for performance tuning.

Important
You must set MaxPoolSize judiciously. It is possible to exhaust the number of connections available from ODP.NET, if this value is set too large.

int (System.Int32)

MinPoolSize

OracleConnectionPool

ODP.NET property. Specifies the minimum number of connections in an ODP.NET connection pool. The default is 1. This property is used for performance tuning.

int (System.Int32)

UseOracleConnectionPool

OracleConnectionPool

ODP.NET property. Specifies whether to use the ODP.NET connection pool. The default is True, which enables connection pooling. The Oracle Database adapter implements connection pooling by using the ODP.NET connection pool.

bool (System.Boolean)

PolledDataAvailableStatement

PollingReceive

Specifies the SELECT statement executed to determine whether any data is available for polling for a specific table. The specified statement must return a result set consisting of rows and columns. The value in the first cell of the result set indicates whether the adapter executes the value specified for the PollingStatement binding property. If the first cell of the result contains a positive value, the adapter executes the polling statement. For example, a valid statement for this binding property will be:

Copy Code
Select * from <table_name>

The default value of this binding property is set to:

Copy Code
SELECT 1 FROM DUAL

This implies that the adapter must continue polling irrespective of whether the table being polled has data or not.

Note
You must not specify stored procedures for this binding property. Also, this statement must not modify the underlying Oracle database.

string

PollingAction

PollingReceive

Specifies the action for the polling operation. You can determine the polling action for a specific operation from the metadata you generate for the operation using the Consume Adapter Service Add-in.

string

PollingInterval

PollingReceive

Specifies the transacted polling interval, that is, the interval in seconds at which the Oracle Database adapter executes the polling statement against the Oracle database. The default is 500. The polling interval is used by the adapter for the following:

  • The time interval between successive polls. This interval is used to run the poll and post-poll queries. If these queries are executed within the specified interval, the adapter sleeps for the remaining time in the interval.

  • The polling transaction timeout value. This value must be set large enough to include the polling statement execution time, the post-poll statement (if specified) execution time, and the time to receive the reply from the client application to commit the transaction.

If the client application sends a reply before the polling interval expires, the adapter commits the transaction and waits until the polling interval is reached to execute the next poll.

If the client application returns a fault, the adapter terminates the transaction.

If the polling interval expires before the client application sends the reply, the transaction will time out. For more information about how to use binding properties in a polling scenario, see Receiving Polling-based Data-changed Messages.

int (System.Int32)

PollingStatement

PollingReceive

Specifies the polling statement. You can specify a simple SELECT statement or a stored procedure, function, or a packaged procedure or function for polling.

  • If you want to poll a table or view, you must specify a SELECT query in this binding property.

  • If you want to poll using a stored procedure, function, or procedure or function within a package, you must specify the entire request message for the respective operation in this binding property.

The polling statement is executed only if the statement executed by the PolledDataAvailableStatement binding property returns some data.

Important
The Oracle Database adapter executes the polling statement and the post-poll statement (if specified) inside of an Oracle transaction. If you are using a SELECT statement in the PollingStatement binding property, we recommend that you specify a FOR UPDATE clause in your SELECT statement. This will ensure that the selected records are locked during the transaction and that the post-poll statement can perform any required updates on the selected records.

For more information about how to use binding properties in a polling scenario, including the use of the FOR UPDATE clause; see Receiving Polling-based Data-changed Messages.

string

PollWhileDataFound

PollingReceive

Specifies whether the Oracle Database adapter ignores the polling interval and continuously polls the Oracle database, if data is available in the table being polled. If no data is available in the table, the adapter reverts to execute the SQL statement at the specified polling interval. Default is False.

Consider a scenario where the polling interval is set to 60 seconds, and the statement specified for PolledDataAvailableStatement returns that data is available for polling. The adapter then executes the statement specified for the PollingInput binding property. Assuming that the adapter takes just 10 seconds to execute the statement, it will now have to wait for 50 seconds before executing the PolledDataAvailableStatement again, and then subsequently execute the polling statement. Instead, to optimize the performance you can set the PollWhileDataFound binding property to true so that the adapter can start executing the next polling cycle as soon as the previous polling cycle ends.

Note
This binding property is applicable both for polling on tables and views and polling using stored procedures, functions, or packaged procedures or functions.

string

PostPollStatement

PollingReceive

Specifies a PL/SQL block that is executed after the polling statement and before the /POLLINGSTMT message is sent to the consumer. The default is null; no post-poll statement is executed. The post-poll statement executes inside the polling transaction. Two common uses for the post-poll statement are to:

  • Update a column in the rows returned in the polling statement to indicate that they have been processed and should be excluded from subsequent polling queries.

  • Move processed records to a different table.

Important
If a post-poll statement is specified, PollingInterval should be set large enough for the PL/SQL block to complete before the interval expires.

For more information about how to use binding properties in a polling scenario, see Receiving Polling-based Data-changed Messages.

string

SkipNilNodes

Run Time Behavior

Specifies whether the Oracle Database adapter will skip inserting or updating values for nodes that are marked as ‘nil’ in the request XML. This binding property is applicable for inserting or updating records in a table and for RECORD type parameters in stored procedures. Default is True, which means the adapter will skip passing values for nodes that are marked as ‘nil’. In this case, the default value in Oracle (if specified) is taken into account for nodes that are marked as ‘nil’. If set to False, the adapter explicitly passes a null value for these nodes.

Note
  • For nodes that are not present in the request XML, the adapter always skips passing values, irrespective of the value of the SkipNilNodes binding property.

  • For PL/SQL tables of RECORDS, the adapter always passes a null value for nodes that are either marked as ‘nil’ or not present in the request XML, irrespective of the value of the SkipNilNodes binding property.

The following example explains the difference in the adapter configuration based on the value you set for this binding property. Assume a request XML resembles the following:

Copy Code
<EMPNO>1000</EMPNO>
<ENAME>John</ENAME>
<SAL nil=’true’></SAL>

If SkipNilNodes is set to True, the adapter executes the following command:

Copy Code
INSERT INTO EMP (EMPNO, ENAME) VALUES (1000, “John”);

If SkipNilNodes is set to False, the adapter executes the following query:

Copy Code
INSERT INTO EMP (EMPNO, ENAME, SAL) VALUES (1000, “John”, null);

Note that in the second statement, the adapter explicitly inserts a null value for the parameter “SAL”.

bool (System.Boolean)

UseAmbientTransaction

Transactions

Specifies whether the Oracle Database adapter performs the operations using the transaction context provided by the caller. The default value is True, which means that the adapter always performs the operations in a transaction context, assuming that the client is providing the transactional context. If there are other resources participating in the transaction, the connections created enlist in System.Transaction and are elevated to an MSDTC transaction.

However, there can be scenarios where you do not want the adapter to perform operations in a transactional context. For example:

  • While performing a simple SELECT operation on the Oracle database (on a send port).

  • While specify a polling statement that performs a SELECT operation and does not involve any changes to the table either through a DELETE statement or by invoking a stored procedure (on a receive port).

Both these operations do not make any updates to the database table and hence, elevating these operations to use an MSDTC transaction can be a performance overhead. In such scenarios, you can set the binding property to false so that the Oracle Database adapter does not perform the operations in a transaction context.

Note
Not performing operations in a transactional context is advisable only for operations that do not make changes to the database. For operations that update data in the database, we recommend setting the binding property to true otherwise you might either experience message loss or duplicate messages depending on whether you are performing inbound or outbound operations.

bool (System.Boolean)

GeneratedUserTypesAssemblyFilePath

UDT .NET Type Generation – Design Time

Specifies the name and path of the DLL that the adapter generates, while generating metadata, containing all UDTs that are used in the metadata. You must specify a DLL name if you are generating metadata for packages, stored procedures, or functions that use UDTs. Specifying the DLL name is optional for tables and views that have UDTs. The generated DLL is saved to the same location as the executable.

This binding property is required only while generating metadata.

Note
  • You must specify only one filename. For all the UDTs in the metadata, the adapter generates a single file with the given name. If you do not specify a name, the adapter generates the DLL with a GUID name.

  • This binding property is not available in BizTalk Server while configuring a WCF-OracleDB receive or send port.

string

GeneratedUserTypesAssemblyKeyFilePath

UDT .NET Type Generation – Design Time

Specifies the name and path of the key file that the adapter uses to create a strongly-typed assembly.

This binding property is optional and is required only while generating metadata.

Note
This binding property is not available in BizTalk Server while configuring a WCF-OracleDB receive or send port.

string

UserAssembliesLoadPath

UDT .NET Type Generation – Run Time

Specifies the name of the DLLs, separated by a semi-colon, which the adapter creates while generating metadata. These DLLs are saved at the location you specified for the GeneratedUserTypesAssemblyFilePath binding property while generating metadata. You must manually copy these DLLs to the following locations:

  • For BizTalk projects: Copy the DLLs at the same location as BTSNTSvc.exe. For BizTalk Server 2013 R2, this is available typically under <installation drive>:\Program Files\Microsoft BizTalk Server 2013 R2.

  • For .NET Projects: Copy the DLLs to the \bin\Development folder within your .NET project folder.

This binding property is required only while sending and receiving messages to perform operations on the Oracle database.

string

AcceptCredentialsInUri

Not surfaced by the Consume Adapter Service Add-in or the Add Adapter Service Reference Plug-in.

Specifies whether the Oracle connection URI can contain user credentials for the Oracle database. The default is False, which disables user credentials in the connection URI. If AcceptCredentialsInUri is False and the Oracle connection URI contains user credentials, the Oracle Database adapter throws an exception. You can set AcceptCredentialsInUri to True if you must specify credentials in the URI. For more information, see The Oracle Database Connection URI.

bool (System.Boolean)

How Do I Set Oracle Binding Properties?

You can set the Oracle binding properties when you specify a connection to an Oracle database. For information about how to set binding properties when you:

  • Use the Consume Adapter Service BizTalk Project Add-in or the Add Adapter Service Reference Visual Studio Plug-in, see Connecting to the Oracle Database in Visual Studio Using Consume Adapter Service Add-in.

    Important
    While using the Consume Adapter Service BizTalk Project Add-in or the Add Adapter Service Reference Visual Studio Plug-in, if you do not specify a value for a binding property of type string and whose default value is null then that binding property will not be available in the binding file (an XML file) or the app.config file respectively. You must manually add the binding property and its value in the binding file or the app.config file, if required.

  • Configure a send port or receive port (location) in a BizTalk Server solution, see Manually Configuring a Physical Port Binding to the Oracle Database Adapter.

  • Use the WCF channel model in a programming solution, see Creating a Channel.

  • Use the WCF service model in a programming solution, see Specifying a Client Binding for the Oracle Database.

  • Use the WCF ServiceModel Metadata Utility Tool (svcutil.exe), see Using the ServiceModel Metadata Utility Tool with the BizTalk Adapter for Oracle Database.

See Also

Concepts

Development


Streaming and the Oracle Database Adapter

The Microsoft BizTalk Adapter for Oracle Database supports streaming for Oracle large object (LOB) data types. With the Oracle Database adapter operations are invoked and responses are returned by exchanging SOAP messages. A SOAP message body is composed of XML nodes.

There are two kinds of message streaming that are supported by the adapter:

  • Node streaming. In node streaming each node is buffered by the adapter before it is sent to the Oracle database (or returned to the client). This means that, for an LOB data type, the entire value is read into a buffer.

  • Node-value streaming. In node-value streaming the actual value of the node can be streamed in chunks between the Oracle database and the client. Node-value streaming supports end-to-end streaming of LOB data types between the adapter client and the Oracle database.

Both of these streaming modes rely on support for node streaming and node-value streaming on messages in WCF. For this reason, streaming for LOB types is tied closely to how messages are created and consumed both by the adapter and by a client application. One result of this is that support for streaming LOB types is not the same across all programming models.

The sections in this topic provide:

  • Fundamental background information about how message streaming is supported in WCF and how it is implemented by the adapter.

  • Information about how streaming for LOB data types is supported when you use the adapter in each programming model.

Streaming Fundamentals

The support for streaming implemented by the Oracle Database adapter is a combination of:

  • Message streaming support in WCF.

  • Streaming support in the Oracle client library (ODP.NET).

  • The way messages are created and consumed internally by the adapter.

Message Streaming Support in WCF

How WCF supports streaming on a message depends both on how the message is created and how the message is consumed.

  • A WCF message is created by using the static Create method of System.ServiceModel.Channels.Message. This method has several overloads that support different ways of passing the message body. A WCF message can be created by passing the message body using:

    • A System.Xml.XmlReader, or

    • A System.ServiceModel.Channels.BodyWriter.

  • A WCF message can be consumed using

    • An XmlReader by calling Message.GetReaderAtBodyContents(), or

    • An XmlDictionaryWriter by calling Message.WriteBodyContents(XmlDictionaryWriter).

The following table shows how WCF behaves for different combinations of creating and consuming messages.

Message Created With | Message Consumed With | WCF Behavior
XmlBodyWriter | XmlDictionaryWriter | Node-value streaming is supported. WCF pipes the two writers together to enable streaming. Both the XmlBodyWriter and the XmlDictionaryWriter must support node-value streaming for it to occur.
XmlBodyWriter | XmlReader | Node streaming is supported. WCF internally buffers the XmlReader.
XmlReader | XmlDictionaryWriter | Node streaming is supported. WCF internally buffers the XmlReader and calls back into the XmlDictionaryWriter.
XmlReader | XmlReader | Node streaming is supported. WCF internally buffers the XmlReader.

Streaming Support in the Oracle Client Library (ODP.NET)

ODP.NET supports streaming in the following manner:

  • Streaming is supported only on Oracle LOB data types.

  • For some table (and view) operations, LOB data types are buffered. Therefore, no streaming is supported.

Internal Message Handling by the Adapter

The adapter supports streaming in the following manner:

  • The adapter extends Message to implement a custom message class, Microsoft.Adapters.AdapterUtilities.AdapterMessage. It creates an AdapterMessage for all WCF messages that it provides to the adapter client; this includes the response messages for all outbound operations and the request message for the POLLINGSTMT operation. This enables the adapter to support node-value streaming for the ReadLOB operation by providing an XmlReader that supports ReadValueChunk to adapter clients.

  • The adapter consumes all messages received from the client by using a custom implementation of XmlDictionaryWriter.

  • The adapter creates all messages that it sends to the client by using a custom implementation of XmlBodyWriter, except for the ReadLOB response message. (This includes response messages for all outbound operations and the request message for the POLLINGSTMT operation.)

Streaming Support in the WCF Channel Model

The following table provides detailed information about how streaming is supported in the WCF channel model.

Operation Node Streaming Node-Value Streaming Description

Table Insert operation

Supported*

Not supported between the adapter and the Oracle database. Supported between the client and adapter.*

End-to-end node-value streaming is not supported because the values of LOB columns are buffered by ODP.NET, and then the insert is performed. However, node-value streaming between the client and the adapter is possible for LOB columns, if the client creates the message with a BodyWriter.

Table Select operation

Supported

Supported

The adapter uses a BodyWriter to create the response message. If the client consumes the message using an XmlDictionaryWriter, node-value streaming for LOB columns occurs.

Table Update operation

Supported

Not supported between the adapter and the Oracle database. Supported between the client and adapter.

End-to-end node-value streaming is not supported because the values of LOB columns are buffered by ODP.NET, and then the update is performed. However, node-value streaming between the client and the adapter is possible for LOB columns if the client creates the message with a BodyWriter.

Table Delete operation

Supported

Not supported between the adapter and the Oracle database. Supported between the client and adapter.

End-to-end node-value streaming is not supported because the values of LOB columns are buffered by ODP.NET and then the delete is performed. However, node-value streaming between the client and the adapter is possible for LOB columns if the client creates the message with a BodyWriter.

Table ReadLOB operation

Supported

Supported

The ReadLOB operation is primarily designed to stream LOB data columns in the WCF service model. In the WCF channel model, if the client consumes the message using an XmlReader (by invoking the GetReaderAtBodyContents method on the response message), end-to-end node-value streaming occurs. This is because the adapter returns an XmlReader that supports ReadValueChunk calls for the ReadLOB response message. However, it is recommended that you do not use the ReadLOB operation from the WCF channel model. You can use a Select operation or a SQLEXECUTE operation instead.

Table UpdateLOB operation

Supported

Supported

The adapter uses an XmlDictionaryWriter to consume the request message. If the client uses a BodyWriter to create the request message, end-to-end node-value streaming for LOB data occurs.

SQLEXECUTE operation

Supported

Supported

The adapter uses a BodyWriter to create the response message.

If the client uses an XmlDictionaryWriter to consume the response message, end-to-end node-value streaming for the LOB data occurs.

End-to-end node-value streaming is not supported for the request message because the adapter must buffer all operands before it can invoke the operation on the Oracle database.

Stored procedure and function operation

Supported

Supported

The adapter uses a BodyWriter to create the response message.

If the client uses an XmlDictionaryWriter to consume the response message, end-to-end node-value streaming for the LOB data occurs. (This means that streaming is supported for OUT and IN OUT procedure and function parameters in the response message.)

End-to-end node-value streaming is not supported for the request message because the adapter must buffer all operands before it can invoke the operation on the Oracle database.

POLLINGSTMT operation

Supported

Supported

The adapter uses a BodyWriter to create the POLLINGSTMT request message. If the client consumes the message using an XmlDictionaryWriter, then node-value streaming for LOB columns occurs.

For information about how to implement LOB data streaming in your code when you use the WCF channel model, see Streaming Oracle LOB Data Types by Using the WCF Channel Model.

Streaming Support in the WCF Service Model

Serializing and deserializing between the XML representation of a message and the managed code object representation of that message requires writing and reading the entire message into memory. For this reason, neither node streaming nor node-value streaming is supported for most operations.

The only exception to this is the ReadLOB operation. This operation is implemented specifically to support end-to-end streaming for reading table and view LOB columns in the WCF service model.

Streaming Support in BizTalk Server

The following table provides detailed information about how streaming is supported in BizTalk Server. (All references to the "adapter" refer to the Oracle Database adapter; the WCF-Custom adapter is always referred to by its full name in this table.)

Operation Node Streaming Node-Value Streaming Description

Table Insert operation

Supported*

Not supported between the adapter and the Oracle database; however, data is streamed between BizTalk Server and the adapter.

End-to-end node-value streaming is not supported because the values of LOB columns are buffered by ODP.NET and then the insert is performed. However, node-value streaming between BizTalk Server and the adapter is supported for LOB data types because the WCF-Custom adapter creates the message with a BodyWriter.

Table Select operation

Supported

Supported

The WCF-Custom adapter uses an XmlDictionaryWriter to consume the response message, so end-to-end node-value streaming for LOB types is supported.

Table Update operation

Supported

Not supported between the adapter and the Oracle database; however, data is streamed between BizTalk Server and the adapter.

End-to-end node-value streaming is not supported because the values of LOB columns are buffered by ODP.NET and then the update is performed. However, node-value streaming between BizTalk Server and the adapter is supported for LOB data types because the WCF-Custom adapter creates the message with a BodyWriter.

Table Delete operation

Supported

Not supported between the adapter and the Oracle database; however, data is streamed between BizTalk Server and the adapter.

End-to-end node-value streaming is not supported because the values of LOB columns are buffered by ODP.NET and then the delete is performed. However, node-value streaming between BizTalk Server and the adapter is supported for LOB data types because the WCF-Custom adapter creates the message with a BodyWriter.

Table ReadLOB operation

The ReadLOB operation is not supported for BizTalk Server.

The ReadLOB operation is not supported for BizTalk Server.

The ReadLOB operation is not supported for BizTalk Server. Use the Select operation or a SQLEXECUTE operation instead.

Table UpdateLOB operation

Supported

Supported

The WCF-Custom adapter uses a BodyWriter to create the request message, so end-to-end node-value streaming for LOB data types is supported.

SQLEXECUTE operation

Supported

Supported

The WCF-Custom adapter uses an XmlDictionaryWriter to consume the response message, so end-to-end node-value streaming for LOB data types in the response message is supported.

End-to-end node-value streaming is not supported for the request message because the adapter must buffer all operands before it can invoke the operation on the Oracle database.

Stored procedure and function operation

Supported

Supported

The WCF-Custom adapter uses an XmlDictionaryWriter to consume the response message, so end-to-end node-value streaming for LOB data types in the response message is supported. (This means that streaming is supported for OUT and IN OUT procedure and function parameters in the response message.)

End-to-end node-value streaming is not supported for the request message because the adapter must buffer all operands before it can invoke the operation on the Oracle database.

POLLINGSTMT operation

Supported

Supported

The WCF-Custom adapter uses an XmlDictionaryWriter to consume the (inbound) request message, so end-to-end node-value streaming for LOB data types is supported.

See Also

Concepts

Development


Receiving Polling-based Data-changed Messages

This topic was last updated on: June 05, 2009

The Microsoft BizTalk Adapter for Oracle Database supports receiving polling-based data-changed messages by polling the Oracle database. The adapter delivers the messages to your application by:

  • Executing a SQL SELECT query to determine whether data is available for polling. You can configure the adapter to execute the SQL SELECT query periodically or continuously.

  • Executing a SQL SELECT query against an Oracle table or view or executing stored procedures, functions, or packaged procedures and functions.

  • Executing an optional post-poll PL/SQL code block on the Oracle database. This code block is often used to update a field on the queried records in the target or to move the queried records to another table or view.

  • Returning the query results in a result set by invoking the POLLINGSTMT operation or the stored procedures, functions, or packaged procedures and functions that are exposed as polling operations.

The adapter executes all of these operations inside of an Oracle transaction.

The adapter also enables you to receive data-changes messages for multiple Oracle artifacts in the same application by exposing a PollingId parameter in the connection URI. This parameter modifies the target namespace of the POLLINGSTMT operation.

How Do I Modify the Target Namespace of the POLLINGSTMT Operation?

You can modify the target namespace of the POLLINGSTMT operation by setting the PollingId query string parameter in the connection URI. If a PollingId is specified in the connection URI, the Oracle Database adapter appends the string specified in the PollingId parameter to the default target namespace for the POLLINGSTMT operation: http://microsoft.lobservices.oracledb/2007/03/POLLINGSTMT. The message action of the POLLINGSTMT operation is not modified.

For example, if the following connection URI is specified: OracleDb://User=SCOTT;Password=TIGER@Adapter?PollingId=AcctActivity, the target namespace will be http:/microsoft.lobservices.oracledb/2007/03/POLLINGSTMTAcctActivity.

By providing a unique namespace for each POLLINGSTMT operation, you can receive data-changed messages for multiple Oracle tables and views in your application.

For more information about the Oracle Database adapter connection URI, see The Oracle Database Connection URI.

How Do I Configure the Oracle Database Adapter for Receiving Data-changed Messages Using Binding Properties?

You configure the Oracle Database adapter to receive data-changed messages by setting some or all of the following binding properties.

Binding Property Value Default Required/Optional

InboundOperationType

Make sure that the value is set to Polling.

Polling

Required. If not explicitly set, the default value will apply.

PolledDataAvailableStatement

Specify the SELECT statement executed to determine whether any data is available for polling for a specific table. The specified statement must return a result set consisting of rows and columns. The value in the first cell of the result set indicates whether the adapter executes the value specified for the PollingStatement binding property. If the first cell of the result contains a positive value, the adapter executes the polling statement. For example, a valid statement for this binding property will be:

Copy Code
Select * from <table_name>
Note
You must not specify stored procedures for this binding property. Also, this statement must not modify the underlying Oracle database.

SELECT 1 FROM DUAL

Required. If not explicitly set, the default value will apply, which implies that the adapter must continue polling irrespective of whether the table being polled has data or not.

PollingAction

Specifies the action for the polling operation. You can determine the polling action for a specific operation from the metadata you generate for the operation using the Consume Adapter Service Add-in.

null

Optional for polling operations on tables and views using the SELECT statement.

PollingInterval

Set to the interval, in seconds, at which you want the adapter to query the Oracle database. This property specifies the polling interval and the polling transaction time out. The value should be greater than the amount of time it takes to execute the query and post-poll statement (if one is specified) on the Oracle database plus the amount of time it takes for the client to process the query data and return the polling response message.

500

Required. If not explicitly set, the default value will apply.

PollingStatement

Specify either of the following:

  • SQL SELECT statement that should be executed against the Oracle database. This statement should include a FOR UPDATE clause. For information about the FOR UPDATE clause, see Specifying a FOR UPDATE Clause in the Polling Statement later in this topic.

  • Request message for a stored procedure, function, or procedure or function within a package that you want to be polled.

null

Required. Setting PollingStatement to a non-null value enables polling.

PollWhileDataFound

Specifies whether the Oracle Database adapter ignores the polling interval and continuously polls the Oracle database, if data is available in the table being polled. If no data is available in the table, the adapter reverts to execute the SQL statement at the specified polling interval

False

Required. If not explicitly set, the default value will apply.

PostPollStatement

Set to an optional PL/SQL code block that is executed by the adapter after the query is performed, but before the query data is returned to the client.

null

Optional. If no value is specified, a post poll statement is not executed.

Note
If you are using the WCF service model or the WCF channel model, you must also set the AcceptCredentialsInUri binding property.

Specifying a FOR UPDATE Clause in the Polling Statement

If you are using a SELECT statement as the polling statement and executing a post-poll statement that affects the rows specified in the SELECT statement, you must use the FOR UPDATE clause in the polling statement. Specifying a FOR UPDATE clause ensures that the records selected by the polling statement are locked during the transaction and that the post-poll statement can perform any required updates on them.

Caution
You can have scenarios where in the time window between the polling and post-poll statements, more records are added to the table that meet the condition of the post-poll statement. In such situations, the post-poll statement would update all the records that satisfy the condition and not just the records selected as part of the polling statement.

If a post-poll statement is specified and the polling statement does not contain a FOR UPDATE clause, you will experience one of the following two conditions:

  • If TransactionIsolationLevel is set to ReadCommitted, the post-poll query will not update the selected rows.

  • If TransactionIsolationLevel is set to Serializable, the following target system exception (Microsoft.ServiceModel.Channels.Common.TargetSystemException) will occur when the post-poll statement is executed: "ORA-08177 can't serialize access for this transaction". In such a case, you must set the PollingRetryCount binding property to define the number of times you want the adapter to retry the same transaction.

For instructions on how to set the transaction isolation level, see Configure Transaction Isolation Level and Transaction Timeout.

The polling and post-poll statements are executed in a transaction if the adapter clients have configured to use transactions and the value of the UseAmbientTransaction binding property is set to True in the adapter.

An example of a polling query with the FOR UPDATE option is:

Copy Code
SELECT * from EMP WHERE FLAG = 'Y' FOR UPDATE

Specifying a NOWAIT Clause in the Polling Statement

You may have scenarios where concurrent threads are accessing the table being polled, leading to too many contentions in the table. This may cause the polling query to be blocked to get a lock on table rows. If you are using a SELECT statement as the polling statement, you may want to specify a NOWAIT keyword along with the FOR UPDATE keyword in the SELECT statement. This will cause the polling query execution within the adapter to return immediately if there are locks on rows which the polling query is trying to select. An exception is usually thrown by Oracle under such conditions. Again, adapter clients may use the PollingInterval binding property to specify the time interval after which the adapter clients must retry for polling the data.

An example of a polling query with the NOWAIT option is:

Copy Code
SELECT * from EMP WHERE FLAG = 'Y' FOR UPDATE NOWAIT

Specifying a SKIP LOCKED Clause in the Polling Statement

You may have scenarios where due to concurrent threads accessing the table being polled, some rows in the result set of the WHERE clause specified in the polling query are locked. For example, your polling query returns 6 rows from a table; 4 out of these 6 rows are already locked because of some other transaction. In this case, you might want to specify a SKIP LOCKED keyword along with the FOR UPDATE keyword that instructs the database to attempt to lock the rows specified by the WHERE clause, and to skip any rows that are found to be already locked. The unlocked rows in the WHERE clause are locked during the transaction and the post-poll statement can perform any required updates on them so that these rows are not polled again. This ensures that you do not have to wait to receive the polling messages until all the rows specified by the WHERE clause are unlocked.

The SKIP LOCKED keyword is useful in a scenario where you have adapter clients on multiple computers that are polling the same table in a database. You can load balance among the adapter clients by configuring the polling operation in such a way that you receive polling-based data-change messages for the rows specified by the WHERE clause that are unlocked at that point of time, and then update the row to ensure that if a polling-based data-change message is received by an adapter client, the other clients do not get the same message.

An example of a polling query with the SKIP LOCKED option is:

Copy Code
SELECT * from EMP WHERE FLAG = 'Y' FOR UPDATE SKIP LOCKED

Support for Ordered Delivery (FIFO)

In a production environment, polling can be used to monitor the data changes in the Oracle database. These data-changed messages are received by the adapter client using the Oracle Database adapter. Based on business scenarios, it can be critical that the data-changed messages are received by the adapter client in the right order.

The Oracle Database adapter supports ordered delivery or first-in-first-out (FIFO) to maintain the order in which messages are received from the Oracle database. Here are a few considerations related to support for FIFO in inbound scenarios for the Oracle Database adapter.

  • If the message is being consumed by an orchestration, the orchestration must have the ordered delivery set for the messages coming from the Oracle Database adapter receive port.

  • If the message is being consumed by a send port (in a content-based routing) scenario, the send port must have ordered delivery set for the messages coming from the Oracle Database adapter receive port.

The WCF-Custom or WCF-OracleDB adapter has a property Suspend request message on failure that specifies whether to suspend the request message that fails inbound processing. This property can be set on the Messages tab of the WCF-Custom or WCF-OracleDB receive port under the Error handling section. The following table lists the scenarios describing how the incoming messages are processed based on whether this property is set and the state of the message subscriber (orchestration or port).

Port property Subscriber in Unenlisted state Subscriber in Enlisted but Stopped state

Suspend request message on failure property NOT set

  • Routing Failure Report is generated as a suspended (non-resumable message)

  • Actual message is not suspended

  • Post poll query is not executed as transaction gets aborted. Hence polling repeats and fetches the rows again.

  • Errors reported in the event log to describe what has happened.

  • Not considered a “Failure”. There are no error messages in the event log.

  • Actual message is put into the suspended (resumable) queue.

  • When the subscribing port or orchestration starts, the messages are automatically resumed. If ordered delivery is set on the subscriber, it will be honored.

  • The messages may also be resumed manually.

Suspend request message on failure property IS set

  • Routing Failure Report is generated as a suspended (non-resumable message)

  • Actual message is also suspended

  • Post poll query is not executed as transaction gets aborted. Hence polling repeats and fetches the rows again.

  • Errors reported in the event log to describe what has happened.

  • Not considered a “Failure”. There are no error messages in the event log.

  • Actual message is put into the suspended (resumable) queue.

  • When the subscribing port or orchestration starts, the messages are automatically resumed. If ordered delivery is set on the subscriber, it will be honored.

  • The messages may also be resumed manually.

See Also

Concepts

Development
Receiving Polling-based Data-changed Messages by Using the WCF Service Model
Receiving Polling-based Data-changed Messages by Using the WCF Channel Model

Other Resources

Polling Oracle Database by Using BizTalk Server


Developing BizTalk Applications

Developing BizTalk applications involves creating a BizTalk project in Visual Studio and using the Consume Adapter Service BizTalk Project Add-in to generate XML schema. Once you have generated the schema, you can either use Content-Based Routing (CBR) or create BizTalk orchestrations to send and receive messages that conform to the generated schema.

CBR can be used in scenarios where the messages being sent to the Oracle database do not require any intensive processing. For example, if you know that the receive port will be receiving messages only of a certain type, you can add a filter to the send port to route the messages matching the filter expression to the send port.

In BizTalk orchestrations, you create send and receive ports to send and receive messages to and from the WCF-Custom adapter, which in turn sends the messages to BizTalk Server. This section provides information about using BizTalk orchestrations to perform operations on the Oracle database using the Oracle Database adapter. The Oracle Database adapter in turn uses the WCF-Custom adapter, which can interact with a WCF binding.

Important
To use the Oracle Database adapter with Microsoft BizTalk Server, you must always set the EnableBizTalkCompatibilityMode binding property to True. For instructions about how to set the binding properties, see Specifying Binding Properties.

Important
Unlike the earlier version of the adapters shipped with BizTalk Server, the Oracle Database adapter shipped with BizTalk Adapter Pack does not show up in the list of adapters in the BizTalk Server Administration console. This is because the latest Oracle Database adapter is a WCF custom binding. So, while the BizTalk Server Administration console displays the WCF-Custom adapter, it does not display the WCF custom bindings and hence, does not display the WCF based Oracle Database adapter.
Also, to generate metadata you must use the Consume Adapter Service BizTalk Project Add-in and not the Add Adapter Metadata Wizard, as used for the previous version of the adapter. For instructions on using the Consume Adapter Service Add-in, see Retrieving Metadata for Oracle Operations in Visual Studio. For more such differences between the adapter versions, see Migrating BizTalk Projects Created Using the BizTalk ODBC Adapter for Oracle Database.

In This Section

  • Before You Develop BizTalk Applications

  • Building Blocks for Developing BizTalk Applications

  • Performing Basic Insert, Update, Delete, and Select Operations by Using BizTalk Server

  • Performing Operations on Tables with Large Object Types Data by Using BizTalk Server

  • Invoking Functions and Procedures by Using BizTalk Server

  • Invoking Overloaded Functions and Procedures by Using BizTalk Server

  • Invoking Functions and Procedures with REF CURSORS by Using BizTalk Server

  • Invoking Functions and Procedures with RECORD Types by Using BizTalk Server

  • Performing Operations on Tables with BFILE Data Types by Using BizTalk Server

  • Performing a SQLEXECUTE Operation by Using BizTalk Server

  • Polling Oracle Database by Using BizTalk Server

  • Performing Composite Operations on Oracle Database by Using BizTalk Server

  • Receiving Database Change Notifications Using BizTalk Server

See Also

Concepts

Development


Before You Develop BizTalk Applications

This section provides information about what you must do before developing BizTalk applications using the Oracle Database adapter. The section also lists some BizTalk Server tools that are used to develop BizTalk applications.

In This Section

  • Create a Strong-Name Key File

  • Learn About BizTalk Server Tools


Create a Strong-Name Key File

You must create a strong-name key file to build projects in Microsoft Visual Studio. A strong name consists of the project's identity—its simple text name, version number, and culture information (if provided)—plus a public key and a digital signature. The strong-name key file contains the public key and the private key.

Important
Creating a strong-name key file is a one-time task. You can use the same key for all the BizTalk applications you develop.

To create a strong-name key file

  1. Start Visual Studio Command Prompt.

  2. At the command prompt navigate to the location where you want to create the key file. For example, type cd C:\Sample,and then press ENTER.

  3. At the command prompt, type sn -k <key file name>.snk, and then press ENTER.

    Note
    You should receive a message at the command prompt stating that the key pair was written to the strong-name key file.

  4. At the command prompt, type exit, and then press ENTER.

See Also

Concepts

Learn About BizTalk Server Tools

Other Resources

Before You Develop BizTalk Applications


Learn About BizTalk Server Tools

The topics on how to use the Oracle Database adapter in Developing BizTalk Applications assume that you have working knowledge of a number of BizTalk Server tools. You will use the following tools to develop BizTalk applications using Oracle Database adapter:

  • Microsoft Visual Studio 2013.

  • BizTalk Explorer

  • Orchestration Designer

  • Pipeline Designer

  • BizTalk Mapper

  • BizTalk Server Administration console

Prerequisites

You must install Microsoft BizTalk Server 2013 R2 before you can access the BizTalk Server tools.

BizTalk Server Tools

The following table includes topics in the BizTalk Server documentation that explain how to use each of the listed tools.

Tool Topics in BizTalk Server 2013 R2 Documentation

Visual Studio

  • Using Visual Studio (http://go.microsoft.com/fwlink/?LinkId=107180)

  • Working with BizTalk Projects (http://go.microsoft.com/fwlink/?LinkId=107181)

  • Deploying BizTalk Assemblies from Visual Studio into a BizTalk Application (http://go.microsoft.com/fwlink/?LinkId=107182)

Learn more about Visual Studio:

  • Introduction to Solutions, Projects, and Items (http://go.microsoft.com/fwlink/?LinkID=196962)

  • Solution Explorer Concepts (http://go.microsoft.com/fwlink/?LinkID=196963)

Orchestration Designer

  • Creating Orchestrations Using Orchestration Designer (http://go.microsoft.com/fwlink/?LinkId=107184)

Pipeline Designer

  • Creating Pipelines Using Pipeline Designer (http://go.microsoft.com/fwlink/?LinkId=107185)

BizTalk Mapper

  • Creating Maps Using BizTalk Mapper (http://go.microsoft.com/fwlink/?LinkId=107186)

BizTalk Server Administration console

  • Using the BizTalk Server Administration Console (http://go.microsoft.com/fwlink/?LinkId=107187)

See Also

Tasks

Create a Strong-Name Key File

Other Resources

Before You Develop BizTalk Applications


Building Blocks for Developing BizTalk Applications

Performing operations on an Oracle database by using the Oracle Database adapter involves two sets of tasks: design-time and run-time.

Design-time Tasks

The WCF LOB Adapter SDK provides capability to browse, search, and retrieve the Oracle metadata for tables, stored procedures, and other such items in the form of XML Schema definition languages (XSDs) by using the Consume Adapter Service BizTalk Project Add-in. The XSDs are specific to the operation you want to perform on the Oracle database. The Consume Adapter Service Add-in is available only when you create a BizTalk project. At design time you need to perform the following tasks:

  • Create BizTalk project and generate schema. You must create a BizTalk project in Microsoft Visual Studio and generate the schema for the operation that will be performed on the Oracle database. For example, if you want to insert a record into the EMPLOYEE table, you must generate the metadata for the Insert operation for the EMPLOYEE table. In this step, you use the Consume Adapter Service Add-in to generate the schema. For more information, see Retrieving Metadata for Oracle Operations in Visual Studio.

  • Set up an orchestration. Once you have generated the schema, you must set up an orchestration by using the Orchestration Designer. For a basic orchestration, you add the Send and Receive shapes along with the Send and Receive logical ports. In later steps, you map these logical ports to physical ports by using the BizTalk Server Administration console. The orchestration uses these ports to pick messages that an adapter client sends. The orchestration then passes the messages to the Oracle database. Once a response is received from the Oracle database, the orchestration passes the response to the adapter client.

  • Create messages and link to schema. In your orchestration, you must create messages that will be mapped to the schema you generated in the first step. Typically, you create a request message and a response message. These messages are mapped to corresponding request and response schemas.

  • Map message shapes to messages and ports. In your orchestration, you must now map each shape that you added in the second step to messages that you created in the third step. You must also map a message shape to the port on which that message will be sent.

    For example, if the first shape in your orchestration is a Receive shape that will receive a message, you map this shape to a request message and the port that sends the request message.

  • Build and deploy the BizTalk project. After you have set up the orchestration and mapped messages, ports, and schemas, you must build the BizTalk solution. For building a project in Visual Studio, you need an assembly key file. After you successfully build the solution, you must deploy the solution.

    Note
    More detailed description of these high-level tasks, including procedural information, is provided in various topics of this section.

Once the solution is deployed, your design-time tasks are accomplished. You must now perform the run-time tasks.

Run-time Tasks

At run time, you can use the BizTalk Server Administration console to deploy and monitor the orchestration you created at design time. In addition, you must:

  • Configure the application. The BizTalk project you deployed at design time shows up in the BizTalk Server Administration console as an orchestration. You must configure this orchestration by mapping the logical ports you created at design time to physical ports that you must now create using the BizTalk Server Administration console.

    On the physical ports, you must specify an "action" or "action mapping". This action corresponds to the operation you want to perform on the Oracle database. You need to set the action if you are not using dynamic actions. For more information about dynamic actions, see the BizTalk Server Help documentation at http://go.microsoft.com/fwlink/?LinkID=101130.

  • Start the application. After the application is configured, you must start the application, and drop input messages at a defined file location. The orchestration consumes the input messages and passes them to the Oracle database and receives a response. This response will be available to you at another defined file location.

To accomplish these high-level design-time and run-time tasks, you must also perform other tasks. For example, when you use the Consume Adapter Service BizTalk Project Add-in to generate the schema, you must specify a connection URI to connect to the Oracle database. This section provides information on such repetitive tasks that you must perform as you develop BizTalk applications using the Oracle Database adapter.

In This Section

  • Adding the Oracle Database Adapter to BizTalk Server Administration Console

  • Specifying the Connection URI

  • Specifying Credentials for the Oracle Database

  • Specifying Binding Properties

  • Specifying SOAP Action

  • Manually Configuring a Physical Port Binding to the Oracle Database Adapter

  • Configuring a Physical Port Binding by Using a Port Binding File

  • Configuring Dynamic Ports

  • Reusing Adapter Bindings

See Also

Other Resources

Developing BizTalk Applications


Adding the Oracle Database Adapter to BizTalk Server Administration Console

This topic provides instructions on how to add the WCF-OracleDB adapter to the BizTalk Server Administration console.

Important
You need not perform these tasks if you want to configure a WCF-Custom port for the Oracle Database adapter.

To add the Oracle Database Adapter

  1. Start the BizTalk Server Administration console.

  2. In the console tree, expand the BizTalk Group, expand Platform Settings, and then click Adapters.

  3. Right-click Adapters, point to New, and click Adapter.

    Add an adapter

  4. In the Adapter Properties dialog box, specify a name for the adapter and from the Adapter list, select WCF-OracleDB.

    Adding WCF-OracleDB adapter to BizTalk Server

  5. Click OK.

See Also

Tasks

Building Blocks for Developing BizTalk Applications


Specifying the Connection URI

A connection URI is a connection string that contains parameters required to connect to the Oracle database. While using the Consume Adapter Service Add-in or Add Adapter Metadata Wizard in Visual Studio, you must specify the URI to connect to the Oracle database to generate the metadata. While configuring an orchestration using the BizTalk Server Administration console, you must specify the URI to connect to the Oracle database to perform operations.

Specifying the Connection URI from Visual Studio

From Visual Studio, you must specify the credentials using the Consume Adapter Service Add-in or the Add Adapter Metadata Wizard.

To specify the Connection URI using Consume Adapter Service Add-in

  1. Right-click your BizTalk project, and then select Add Generated Items.

  2. In the Add Generated Items dialog box, do the following:

    Use this To do this

    Categories

    Click Consume Adapter Service.

    Templates

    Click Consume Adapter Service.

  3. To start the Consume Adapter Service dialog box, click Add.

  4. In the Consume Adapter Service dialog box, from the Select a binding list, select oracleDBBinding, and click Configure.

  5. In the Configure Adapter dialog box, click the Security tab and from the Client credential type drop-down list box, select Username and specify the user name and password to connect to the Oracle database:

    • To connect using the Oracle database credentials, type the database credentials in the User name and Password text boxes.

    • To connect using Windows Authentication, type / in the User name text box and leave the Password text box blank.

  6. Click the URI Properties tab, and specify values for different parameters. For more information about the connection URI for the Oracle Database adapter, see The Oracle Database Connection URI.

  7. Click the Binding Properties tab, and specify the binding values, if any, which are required before generating the schema. For more information about binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

  8. Click OK.

To specify the Connection URI using Add Adapter Metadata Wizard

  1. Right-click your BizTalk project, point to Add, and then click Add Generated Items.

  2. In the Add Generated Items dialog box, do the following:

    Use this To do this

    Categories

    Click Add Adapter.

    Templates

    Click Add Adapter Metadata.

  3. Click Add. The Add Adapter Metadata Wizard opens.

  4. In the Add Adapter Metadata Wizard, select WCF-OracleDB. Select the computer on which BizTalk Server is installed and the name of the BizTalk database.

    Important
    If you already have a WCF-OracleDB port configured in BizTalk, select the port from the Port list.

  5. Click Next.

  6. In the Consume Adapter Service dialog box, from the Select a binding list, select oracleDBBinding, and then click Configure.

  7. In the Configure Adapter dialog box, click the Security tab, and from the Client credential type list, select Username and specify the user name and password to connect to the Oracle database:

    • To connect using the Oracle database credentials, type the database credentials in the User name and Password text boxes.

    • To connect using Windows Authentication, type / in the User name text box and leave the Password text box blank.

  8. Click the URI Properties tab, and specify values for different parameters. For more information about the connection URI for the Oracle Database adapter, see The Oracle Database Connection URI.

  9. Click the Binding Properties tab, and specify the binding values, if any, which are required before generating the schema. For more information about binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

  10. Click OK.

Specifying the Connection URI from the BizTalk Server Administration Console

From the BizTalk Server Administration console, you must specify the credentials as part of the WCF-Custom or WCF-OracleDB port configuration.

To specify the Connection URI for the WCF-Custom Port

  1. Start the BizTalk Server Administration console.

  2. In the console tree, expand BizTalk Group, then expand Applications, and then expand the application under which you want to create a port, and click Send Ports or Receive Ports. In the right pane, you can choose to create a port or select an existing port.

  3. In the port properties dialog box, from the Type drop-down list, select WCF-Custom, and then click Configure.

  4. For a send port, in the WCF-Custom Transport Properties dialog box, click the Credentials tab and do one of the following:

    • Select the Do not use Single Sign-On option, and specify the user name and password to connect to an Oracle database.

      • To connect using the Oracle database credentials, type the database credentials in the User name and Password text boxes.

      • To connect using Windows Authentication, type / in the User name text box and leave the Password text box blank.

    • Select the Use Single Sign-On option, and specify an affiliate Enterprise Single Sign-on (SSO) application.

  5. For a receive port, in the WCF-Custom Transport Properties dialog box, click the Other tab and do one of the following:

    • Select User account option, and specify the user name and password to connect to an Oracle database.

      • To connect using the Oracle database credentials, type the database credentials in the User name and Password text boxes.

      • To connect using Windows Authentication, type / in the User name text box and leave the Password text box blank.

    • Select Get credentials from affiliate application option, and specify an affiliate application.

  6. Click OK.

To specify the Connection URI for the WCF-OracleDB port

  1. Start the BizTalk Server Administration console.

  2. Add the WCF-OracleDB adapter to the BizTalk Server Administration console. For instructions, see Adding the Oracle Database Adapter to BizTalk Server Administration Console.

  3. In the console tree, expand BizTalk Group, then expand Applications, and then expand the application under which you want to create a port, and click Send Ports or Receive Ports. In the right pane, you can choose to create a port or select an existing port.

  4. In the port properties dialog box, from the Type drop-down list, select WCF-OracleDB, and then click Configure.

    Note
    To see the location properties dialog box for a receive port, click the Receive Location tab on the left pane of the port properties dialog box, and then click New.

  5. In the port properties dialog box, click the Binding tab. From the Binding Type drop-down list, select oracleDBBinding.

  6. If you are creating a send port, in the transport properties dialog box, click the Credentials tab, and do one of the following:

    • Select the Do not use Single Sign-On option, and specify the user name and password to connect to the Oracle database.

      • To connect using the Oracle database credentials, type the database credentials in the User name and Password text boxes.

      • To connect using Windows Authentication, type / in the User name text box and leave the Password text box blank.

    • Select the Use Single Sign-On option, and specify an affiliate Enterprise Single Sign-on (SSO) application.

  7. If you are creating a receive port, in the transport properties dialog box, click the Other tab, and do one of the following:

    • Select User account option, and specify the user name and password to connect to the Oracle database.

      • To connect using the Oracle database credentials, type the database credentials in the User name and Password text boxes.

      • To connect using Windows Authentication, type / in the User name text box and leave the Password text box blank.

    • Select Get credentials from affiliate application option, and specify an affiliate SSO application.

  8. Click OK.

See Also

Tasks

Building Blocks for Developing BizTalk Applications

Concepts

Connecting to the Oracle Database Using Windows Authentication


Specifying Credentials for the Oracle Database

The Oracle Database adapter requires the adapter clients to provide client credentials. The adapter uses these credentials to authenticate the user with the Oracle database and to establish a connection.

Adapter clients can provide the client credentials both when using Visual Studio and when using the BizTalk Server Administration console. When using Visual Studio, credentials are required to generate the metadata. When using the BizTalk Server Administration console, credentials are required to perform operations on the Oracle database. This topic provides information about specifying client credentials in Visual Studio and the BizTalk Server Administration console.

Specifying Client Credentials from Visual Studio

From Visual Studio, you must specify the credentials using the Consume Adapter Service Add-in or the Add Adapter Metadata Wizard.

To specify credentials using Consume Adapter Service Add-in

  1. Right-click your BizTalk project, and then select Add Generated Items.

  2. In the Add Generated Items dialog box, do the following:

    Use this To do this

    Categories

    Click Consume Adapter Service.

    Templates

    Click Consume Adapter Service.

  3. To start the Consume Adapter Service dialog box, click Add.

  4. In the Consume Adapter Service dialog box, from the Select a binding list, select oracleDBBinding, and click Configure.

  5. In the Configure Adapter dialog box, click the Security tab and from the Client credential type drop-down list box, select Username and specify the user name and password to connect to the Oracle database:

    • To connect using the Oracle database credentials, type the database credentials in the User name and Password text boxes.

    • To connect using Windows Authentication, type / in the User name text box and leave the Password text box blank.

  6. Click OK.

To specify credentials using Add Adapter Metadata Wizard

  1. Right-click your BizTalk project, point to Add, and then click Add Generated Items.

  2. In the Add Generated Items dialog box, do the following:

    Use this To do this

    Categories

    Click Add Adapter.

    Templates

    Click Add Adapter Metadata.

  3. Click Add. The Add Adapter Metadata Wizard opens.

  4. In the Add Adapter Metadata Wizard, select WCF-OracleDB. Select the computer on which BizTalk Server is installed and the name of the BizTalk database.

    Important
    If you already have a WCF-OracleDB port configured in BizTalk, select the port from the Port list.

  5. Click Next.

  6. In the Consume Adapter Service dialog box, from the Select a binding list, select oracleDBBinding, and then click Configure.

  7. In the Configure Adapter dialog box, click the Security tab, and from the Client credential type list, select Username and specify the user name and password to connect to the Oracle database:

    • To connect using the Oracle database credentials, type the database credentials in the User name and Password text boxes.

    • To connect using Windows Authentication, type / in the User name text box and leave the Password text box blank.

  8. Click OK.

Specifying Client Credentials from the BizTalk Server Administration Console

From the BizTalk Server Administration console, you must specify the credentials as part of the WCF-Custom or WCF-OracleDB port configuration.

To specify client credentials for the WCF-Custom Port

  1. Start the BizTalk Server Administration console.

  2. In the console tree, expand BizTalk Group, then expand Applications, and then expand the application under which you want to create a port, and click Send Ports or Receive Ports. In the right pane, you can choose to create a port or select an existing port.

  3. In the port properties dialog box, from the Type drop-down list, select WCF-Custom, and then click Configure.

  4. For a send port, in the WCF-Custom Transport Properties dialog box, click the Credentials tab and do one of the following:

    • Select the Do not use Single Sign-On option, and specify the user name and password to connect to an Oracle database.

      • To connect using the Oracle database credentials, type the database credentials in the User name and Password text boxes.

      • To connect using Windows Authentication, type / in the User name text box and leave the Password text box blank.

    • Select the Use Single Sign-On option, and specify an affiliate Enterprise Single Sign-on (SSO) application.

  5. For a receive port, in the WCF-Custom Transport Properties dialog box, click the Other tab and do one of the following:

    • Select User account option, and specify the user name and password to connect to an Oracle database.

      • To connect using the Oracle database credentials, type the database credentials in the User name and Password text boxes.

      • To connect using Windows Authentication, type / in the User name text box and leave the Password text box blank.

    • Select Get credentials from affiliate application option, and specify an affiliate application.

  6. Click OK.

To specify credentials for the WCF-OracleDB port

  1. Start the BizTalk Server Administration console.

  2. Add the WCF-OracleDB adapter to the BizTalk Server Administration console. For instructions, see Adding the Oracle Database Adapter to BizTalk Server Administration Console.

  3. In the console tree, expand BizTalk Group, then expand Applications, and then expand the application under which you want to create a port, and click Send Ports or Receive Ports. In the right pane, you can choose to create a port or select an existing port.

  4. In the port properties dialog box, from the Type drop-down list, select WCF-OracleDB, and then click Configure.

    Note
    To see the location properties dialog box for a receive port, click the Receive Location tab on the left pane of the port properties dialog box, and then click New.

  5. In the port properties dialog box, click the Binding tab. From the Binding Type drop-down list, select oracleDBBinding.

  6. If you are creating a send port, in the transport properties dialog box, click the Credentials tab, and do one of the following:

    • Select the Do not use Single Sign-On option, and specify the user name and password to connect to the Oracle database.

      • To connect using the Oracle database credentials, type the database credentials in the User name and Password text boxes.

      • To connect using Windows Authentication, type / in the User name text box and leave the Password text box blank.

    • Select the Use Single Sign-On option, and specify an affiliate Enterprise Single Sign-on (SSO) application.

  7. If you are creating a receive port, in the transport properties dialog box, click the Other tab, and do one of the following:

    • Select User account option, and specify the user name and password to connect to the Oracle database.

      • To connect using the Oracle database credentials, type the database credentials in the User name and Password text boxes.

      • To connect using Windows Authentication, type / in the User name text box and leave the Password text box blank.

    • Select Get credentials from affiliate application option, and specify an affiliate SSO application.

  8. Click OK.

See Also

Tasks

Building Blocks for Developing BizTalk Applications

Concepts

Connecting to the Oracle Database Using Windows Authentication


Specifying Binding Properties

The Microsoft BizTalk Adapter for Oracle Database surfaces several binding properties that enable you to control some of its behavioral characteristics. This section provides information about setting the binding properties from Visual Studio and from the BizTalk Server Administration console. From Visual Studio, you must specify the binding properties while generating schema for specific operations. From BizTalk Server, you must specify the binding properties as part of the send or receive port for sending or receiving messages from the Oracle database.

For information about the binding properties, including a list of binding properties for Oracle Database adapter, see Working with BizTalk Adapter for Oracle Database Binding Properties.

Specifying Binding Properties from Visual Studio

From Visual Studio, you must specify the credentials using the Consume Adapter Service BizTalk Project Add-in or the Add Adapter Metadata Wizard.

To specify binding properties using Consume Adapter Service Add-in

  1. Right-click your BizTalk project and then select Add Generated Items.

  2. In the Add Generated Items dialog box, do the following:

    Use this To do this

    Categories

    Click Consume Adapter Service.

    Templates

    Click Consume Adapter Service.

  3. To start the Consume Adapter Service dialog box, click Add.

  4. In the Consume Adapter Service dialog box, from the Select a binding drop-down list select oracleDBBinding, and click Configure.

  5. In the Configure Adapter dialog box, click the Binding Properties tab and specify the different binding properties.

  6. Click OK.

To specify binding properties using Add Adapter Metadata Wizard

  1. Right-click your BizTalk project and then select Add Generated Items.

  2. In the Add Generated Items dialog box, do the following:

    Use this To do this

    Categories

    Click Add Adapter.

    Templates

    Click Add Adapter Metadata.

  3. Click Add. The Add Adapter Metadata Wizard opens.

  4. In the Add Adapter Metadata Wizard, select WCF-OracleDB. Select the computer on which BizTalk Server is installed and the name of the BizTalk database.

    Important
    If you already have a WCF-OracleDB port configured in BizTalk, select the port from the Port list.

  5. Click Next.

  6. In the Consume Adapter Service dialog box, from the Select a binding drop-down list select oracleDBBinding, and click Configure.

  7. In the Configure Adapter dialog box, click the Binding Properties tab, and specify the binding values, if any, which are required before generating the schema. For more information about binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

    Note
    If you selected an existing WCF-OracleDB send port, you need not specify the binding properties. The binding properties are picked from the send port configuration. However, you may choose to specify the binding properties that are required at design-time, if any. In such a case, the new values for binding properties will be used at design-time while generating the metadata. However, at run-time the values specified for binding properties in the send port configuration will be applicable.

  8. Click OK.

Specifying Binding Properties from the BizTalk Server Administration Console

From the BizTalk Server Administration console, you must specify the binding properties as part of the WCF-Custom or WCF-OracleDB port configuration.

To specify binding properties for the WCF-Custom port

  1. Start the BizTalk Server Administration console.

  2. In the console tree, expand BizTalk Group, then expand Applications, and then expand the application under which you want to create a port, and click Send Ports or Receive Ports. In the right pane, you can choose to create a port or select an existing port.

  3. In the port properties dialog box, from the Type drop-down list, select WCF-Custom, and then click Configure.

    Note
    To see the location properties dialog box for a receive port, click the Receive Location tab on the left pane of the port properties dialog box, and then click New.

  4. In the WCF-Custom Transport Properties dialog box, click the Binding tab.

  5. From the Binding Type drop-down list, select oracleDBBinding.

  6. In the Configuration box, specify the values for the different binding properties and click OK.

To specify binding properties for the WCF-OracleDB port

  1. Start the BizTalk Server Administration console.

  2. Add the WCF-OracleDB adapter to the BizTalk Server Administration console. For instructions, see Adding the Oracle Database Adapter to BizTalk Server Administration Console.

  3. In the console tree, expand BizTalk Group, then expand Applications, and then expand the application under which you want to create a port, and click Send Ports or Receive Ports. In the right pane, you can choose to create a port or select an existing port.

  4. In the port properties dialog box, from the Type drop-down list, select the WCF-OracleDB adapter you added earlier, and then click Configure.

    Note
    To see the location properties dialog box for a receive port, click the Receive Location tab on the left pane of the port properties dialog box, and then click New.

  5. In the transport properties dialog box, click the Binding tab, and specify values for binding properties.

    Note
    The binding properties are displayed based on whether you are configuring a send port or a receive port. For example, binding properties related to notifications are not available while configuring a send port because notifications are inbound operations and require a receive port configuration.

See Also

Tasks

Building Blocks for Developing BizTalk Applications


Specifying SOAP Action

To perform any operation on the Oracle database using the WCF-based Oracle Database adapter, adapter users must specify a SOAP action. The SOAP action communicates to the adapter what action should be performed. You can specify the SOAP action either at design time or at run time. However, if you specify the SOAP action both at design time and run time, the action you specified at design time will be overridden.

For more information about specifying SOAP action, see http://go.microsoft.com/fwlink/?LinkId=102063.

Specifying SOAP Action from Visual Studio

From Visual Studio, you must specify the SOAP action as part of the orchestration by using an Expression shape.

To specify SOAP action from Visual Studio

  1. In the BizTalk orchestration, include an Expression shape by dragging it from the BizTalk Orchestration toolbox.

  2. Double-click the Expression shape to open the BizTalk Expression Editor.

  3. Specify the action in the BizTalk Expression Editor. For example:

    Copy Code
    OutboundMessage(WCF.Action)="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert"

    For more information about Expression shape and the BizTalk Expression Editor, see http://go.microsoft.com/fwlink/?LinkId=102064.

Specifying SOAP Action from the BizTalk Server Administration Console

From the BizTalk Server Administration console, you must specify the SOAP action as part of the WCF-Custom or WCF-OracleDB port configuration.

To specify a SOAP action for the WCF-Custom port

  1. Start the BizTalk Server Administration console.

  2. In the console tree, expand BizTalk Group, then expand Applications, then expand the application under which you want to create a port, and then click Send Ports. In the right pane, you can choose to create a port or select an existing port.

  3. In the port properties dialog box, from the Type drop-down list, select WCF-Custom, and then click Configure.

  4. In the WCF-Custom Transport Properties dialog box, click the General tab.

  5. In the Action text box, specify the SOAP action for the operation. You can specify the action in the following ways:

    • By using the single action format. Use this format if the WCF-Custom port sends and receive messages for a single operation. For example:

      Copy Code
      http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert
    • By using the action mapping format. Use this format if a single WCF-Custom port sends and receives messages for more than one operation. For example, if a single WCF-Custom port sends and receives messages for Op1 (to insert records in the EMP table) and Op2 (to update records in the EMP table), the SOAP action can be specified in the following manner:

      Copy Code
      <BtsActionMapping>
  <Operation Name="Op1" Action="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert" />
  <Operation Name="Op2" Action="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Update " />
</BtsActionMapping>
      This approach provides greater flexibility in terms of specifying a set of actions and hence enabling messages belonging to different action types to flow through the same port.

      The format for the SOAP action is different for each operation. For more information about action format for each operation, see individual topics under Technical Reference.

To specify a SOAP action for the WCF-OracleDB port

  1. Start the BizTalk Server Administration console.

  2. Add the WCF-OracleDB adapter to the BizTalk Server Administration console. For instructions, see Adding the Oracle Database Adapter to BizTalk Server Administration Console.

  3. In the console tree, expand BizTalk Group, then expand Applications, then expand the application under which you want to create a port, and then click Send Ports. In the right pane, you can choose to create a port or select an existing port.

  4. In the port properties dialog box, from the Type drop-down list, select the WCF-OracleDB port you added earlier, and then click Configure.

  5. In the WCF-Custom Transport Properties dialog box, click the General tab.

  6. In the Action text box, specify the SOAP action for the operation. You can specify the action in the following ways:

    • By using the single action format. Use this format if the WCF-OracleDB port sends and receive messages for a single operation. For example:

      Copy Code
      http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert
    • By using the action mapping format. Use this format if a single WCF-OracleDB port sends and receives messages for more than one operation. For example, if a single WCF-OracleDB port sends and receives messages for Op1 (to insert records in the EMP table) and Op2 (to update records in the EMP table), the SOAP action can be specified in the following manner:

      Copy Code
      <BtsActionMapping>
  <Operation Name="Op1" Action="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert" />
  <Operation Name="Op2" Action="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Update " />
</BtsActionMapping>
      This approach provides greater flexibility in terms of specifying a set of actions and hence enabling messages belonging to different action types to flow through the same port.

      The format for the SOAP action is different for each operation. For more information about action format for each operation, see individual topics under Technical Reference.

See Also

Tasks

Building Blocks for Developing BizTalk Applications


Manually Configuring a Physical Port Binding to the Oracle Database Adapter

This section provides information about configuring the Microsoft BizTalk Adapter for Oracle Database as a WCF-Custom binding or WCF-OracleDB binding by using the BizTalk Server Administration console. After deploying the adapter, you will be able to send and receive messages from the Oracle database by using the BizTalk Server Administration console. The steps for deploying the adapter vary depending on:

  • The direction of communication between BizTalk Server and Oracle Database adapter. You may choose to configure a send, receive, send-receive, or a receive-send port. Your choices are summarized in the following table.

    Port direction Communication pattern Direction of communication to choose from

    Send

    One-way

    I will always be sending messages on this port.

    Receive

    One-way

    I will always be receiving messages on this port.

    Send-receive

    Request-response

    I will be sending a request and receiving a response.

    Receive-send

    Solicit-response

    I will be receiving a request and sending a response.

    For more information, see the BizTalk Server Help documentation at http://go.microsoft.com/fwlink/?LinkID=101130.

  • Whether the adapter sends messages to the Oracle database or receives messages from the Oracle database. Depending on whether you want to send or receive messages, you will create a send or receive port, respectively.

    Note
    You can also configure the send or receive ports by importing a binding configuration file that is created by the Consume Adapter Service Add-in as part of metadata generation. For instructions on configuring ports using this binding file, see Configuring a Physical Port Binding by Using a Port Binding File.

In This Section

  • Configuring a Port Using the WCF-Custom Adapter

  • Configuring a Port Using the WCF-OracleDB Adapter

See Also

Other Resources

Developing BizTalk Applications


Configuring a Port Using the WCF-Custom Adapter

This topic provides instructions on how to configure WCF-Custom send and receive ports to perform outbound and inbound operations on the Oracle database using the Microsoft BizTalk Adapter for Oracle Database.

Prerequisites

To perform the procedures in this topic, you must be logged on with an account that is a member of the BizTalk Server Administrators or BizTalk Operators group. For more detailed information about permissions, see the BizTalk Server Help documentation at http://go.microsoft.com/fwlink/?LinkID=101130.

To deploy adapters for sending messages to an Oracle database

  1. Start the BizTalk Server Administration console.

  2. In the console tree, expand BizTalk Group, and then expand Applications.

  3. Expand the application under which you want to deploy the Oracle Database adapter.

  4. Right-click Send Ports, point to New, and point to a type of port you want to configure depending on the mode of communication between BizTalk Server and the Oracle database.

  5. In the Send Port Properties dialog box, on the General tab, type a name for the send port.

  6. From the Type drop-down list, select WCF-Custom, and then click Configure.

  7. In the WCF-Custom Transport Properties dialog box, do the following:

    1. Click the General tab, and in the Address (URI) field, specify the connection URI for the Oracle database. For more information about the connection URI, see The Oracle Database Connection URI.

    2. On the General tab, in the Action text box, type the action for the operation. See individual topics in Technical Reference for a list of actions for each operation. For example, the action to invoke the Insert operation an EMPLOYEE table under the HR schema in an Oracle database is:

      Copy Code
      http://Microsoft.LobServices.OracleDB/2007/03/HR/Table/EMPLOYEE/Select
    3. Click the Binding tab, and from the Binding Type drop-down list, select oracleDBBinding. You can specify the different binding properties exposed by the Oracle Database adapter. For more information about binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

    4. Click the Credentials tab and do one of the following:

      • Select the Do not use Single Sign-On option, and specify the user name and password to connect to an Oracle database.

        • To connect using the Oracle database credentials, type the database credentials in the User name and Password text boxes.

        • To connect using Windows Authentication, type / in the User name text box and leave the Password text box blank.

      • Select the Use Single Sign-On option, and specify an affiliate SSO application.

      For more information about security with respect to BizTalk Server, see Security Considerations When Using the Adapter with BizTalk Server.

      To return to the Send Port Properties dialog box, click OK.

  8. From the Send handler drop-down list, select BizTalkServerApplication.

  9. If you chose Static One-Way Send Port in step 4, specify a send pipeline. From the Send pipeline drop-down list, select the pipeline that corresponds to XMLTransmit.

  10. If you chose Static Solicit-Response Port in step 4, specify send and receive pipelines.

    1. From the Send pipeline drop-down list, select the pipeline that corresponds to XMLTransmit.

    2. From the Receive pipeline drop-down list, select the pipeline that corresponds to XMLReceive.

  11. Click OK.

To deploy adapters for receiving messages from an Oracle database

  1. Start the BizTalk Server Administration console.

  2. In the console tree, expand BizTalk Group, and then expand Applications.

  3. Expand the application under which you want to deploy the Oracle Database adapter.

  4. Right-click Receive Ports, point to New, and click One-way Receive Port or Request Response Receive Port, depending on the mode of communication between BizTalk Server and the Oracle database.

  5. In the Receive Port Properties dialog box, on the General tab, type a name for the receive port.

  6. On the Receive Locations tab, click New. The Receive Location Properties dialog box appears.

  7. In the Receive Location Properties dialog box, do the following:

    1. Specify a name for the receive location.

    2. From the Type drop-down list, select WCF-Custom, and then click Configure.

  8. In the WCF-Custom Transport Properties dialog box, do the following:

    1. Click the General tab, and in the Address (URI) field, specify the connection URI for the Oracle database. For more information about the connection URI, see The Oracle Database Connection URI.

    2. Click the Binding tab, and from the Binding Type drop-down list, select oracleDBBinding. You can specify the different binding properties exposed by the Oracle Database adapter. For more information about binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

    3. Click the Others tab, and do one of the following:

      • Select User account, and specify the user name and password to connect to an Oracle database.

        • To connect using the Oracle database credentials, type the database credentials in the User name and Password text boxes.

        • To connect using Windows Authentication, type / in the User name text box and leave the Password text box blank.

      • Select Get credentials from affiliate application option, and specify an affiliate application.

      For more information about security with respect to BizTalk Server, see Security Considerations When Using the Adapter with BizTalk Server.

      To return to the Receive Location Properties dialog box, click OK.

  9. From the Receive handler drop-down list, select BizTalkServerApplication.

  10. If you chose One-way Receive Port in step 4, specify a receive pipeline. From the Receive pipeline drop-down list, select the pipeline corresponding to XMLReceive.

  11. If you chose Request Response Receive Port in step 4, specify send and receive pipelines.

    1. From the Receive pipeline drop-down list, select the pipeline that corresponds to XMLReceive.

    2. From the Send pipeline drop-down list, select the pipeline that corresponds to XMLTransmit.

  12. In the Receive Location Properties dialog box, click OK.

  13. In the Receive Port Properties dialog box, click OK.

See Also

Tasks

Manually Configuring a Physical Port Binding to the Oracle Database Adapter

Concepts

Connecting to the Oracle Database Using Windows Authentication


Configuring a Port Using the WCF-OracleDB Adapter

This topic provides instructions on how to configure WCF-OracleDB send and receive ports to perform outbound and inbound operations on the Oracle database using the Microsoft BizTalk Adapter for Oracle Database.

Prerequisites

To perform the procedures in this topic, you must be logged on with an account that is a member of the BizTalk Server Administrators or BizTalk Operators group. For more detailed information about permissions, see the BizTalk Server Help documentation at http://go.microsoft.com/fwlink/?LinkID=101130.

To deploy adapters for sending messages to Oracle Database

  1. Start the BizTalk Server Administration console.

  2. Add the WCF-OracleDB adapter to the BizTalk Server Administration console. For instructions, see Adding the Oracle Database Adapter to BizTalk Server Administration Console.

  3. In the console tree, expand BizTalk Group, and then expand Applications.

  4. Expand the application under which you want to deploy the Oracle Database adapter.

  5. Right-click Send Ports, point to New, and then point to the type of port you want to configure depending on the mode of communication between BizTalk Server and the Oracle database.

  6. In the Send Port Properties dialog box, on the General tab, type a name for the send port.

  7. From the Type drop-down list, select WCF-OracleDB, and then click Configure.

  8. In the transport properties dialog box, do the following:

    1. Click the General tab, click the Configure button and provide values for the connection parameters. For more information about the connection URI, see The Oracle Database Connection URI.

    2. On the General tab, in the Action text box, type the action for the operation. See individual topics in Technical Reference for a list of actions for each operation. For example, the action to invoke the Insert operation an EMPLOYEE table under the HR schema in an Oracle database is:

      Copy Code
      http://Microsoft.LobServices.OracleDB/2007/03/HR/Table/EMPLOYEE/Select
    3. Click the Binding tab and specify values for the binding properties exposed by the Oracle Database adapter. For more information about binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

      Note
      The binding properties are displayed based on whether you are configuring a send port or a receive port. For example, binding properties related to notifications are not available while configuring a send port because notifications are inbound operations and require a receive port configuration.

    4. Click the Credentials tab, and then do one of the following:

      • Select the Do not use Single Sign-On option, and specify the user name and password to connect to the Oracle database.

        • To connect using the Oracle database credentials, type the database credentials in the User name and Password text boxes.

        • To connect using Windows Authentication, type / in the User name text box and leave the Password text box blank.

      • Select the Use Single Sign-On option, and specify an affiliate Enterprise Single Sign-on (SSO) application.

    5. To return to the Send Port Properties dialog box, click OK.

  9. From the Send handler list, select BizTalkServerApplication.

  10. If you chose Static One-Way Send Port in step 5, specify a send pipeline. From the Send pipeline list, select the pipeline that corresponds to XMLTransmit.

  11. If you chose Static Solicit-Response Port in step 4, specify send and receive pipelines.

    1. From the Send pipeline drop-down list, select the pipeline that corresponds to XMLTransmit.

    2. From the Receive pipeline drop-down list, select the pipeline that corresponds to XMLReceive.

  12. Click OK.

To deploy adapters for receiving messages from Oracle Database

  1. Start the BizTalk Server Administration console.

  2. Add the WCF-OracleDB adapter to the BizTalk Server Administration console. For instructions, see Adding the Oracle Database Adapter to BizTalk Server Administration Console.

  3. In the console tree, expand BizTalk Group, and then expand Applications.

  4. Expand the application under which you want to deploy the Oracle Database adapter.

  5. Right-click Receive Ports, point to New, and click One-way Receive Port or Request Response Receive Port, depending on the mode of communication between BizTalk Server and the Oracle database.

  6. In the Receive Port Properties dialog box, on the General tab, type a name for the receive port.

  7. On the Receive Locations tab, click New. The Receive Location Properties dialog box appears.

  8. In the Receive Location Properties dialog box, do the following:

    1. Specify a name for the receive location.

    2. From the Type drop-down list, select WCF-OracleDB, and then click Configure.

  9. In the transport properties dialog box, do the following:

    1. Click the General tab, click the Configure button, and provide values for the connection parameters. For more information about the connection URI, see The Oracle Database Connection URI.

    2. Click the Binding tab and specify values for binding properties exposed by the Oracle Database adapter. For more information about binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

      Note
      The binding properties are displayed based on whether you are configuring a send port or a receive port. For example, binding properties related to notifications are not available while configuring a send port because notifications are inbound operations and require a receive port configuration.

    3. Click the Behavior tab to set the transaction isolation level. For more information about setting transaction isolation level, see Configure Transaction Isolation Level and Transaction Timeout.

    4. Click the Others tab, and do one of the following:

      • Select User account option, and specify the user name and password to connect to the Oracle database.

        • To connect using the Oracle database credentials, type the database credentials in the User name and Password text boxes.

        • To connect using Windows Authentication, type / in the User name text box and leave the Password text box blank.

      • Select Get credentials from affiliate application option, and specify an affiliate SSO application.

    5. To return to the Receive Location Properties dialog box, click OK.

  10. From the Receive handler drop-down list, select BizTalkServerApplication.

  11. If you chose One-way Receive Port in step 5, specify a receive pipeline. From the Receive pipeline list, select the pipeline corresponding to XMLReceive.

  12. If you chose Request Response Receive Port in step 5, specify send and receive pipelines.

    1. From the Receive pipeline drop-down list, select the pipeline that corresponds to XMLReceive.

    2. From the Send pipeline drop-down list, select the pipeline that corresponds to XMLTransmit.

  13. In the Receive Location Properties dialog box, click OK.

  14. In the Receive Port Properties dialog box, click OK.

See Also

Tasks

Manually Configuring a Physical Port Binding to the Oracle Database Adapter

Concepts

Connecting to the Oracle Database Using Windows Authentication


Configuring a Physical Port Binding by Using a Port Binding File

When you use the Consume Adapter Service BizTalk Project Add-in to generate metadata for an Oracle database artifact, other than the schema files, the Consume Adapter Service Add-in also generates a port binding file. You can import this binding file into your BizTalk application to create a physical send or receive port. For instructions on importing binding files, see Importing Bindings. If you import this binding file, you do not have to manually create a physical send or receive port.

Important
While using the Consume Adapter Service BizTalk Project Add-in, if you do not specify a value for a binding property of type string and whose default value is null then that binding property will not be available in the binding file. You must manually add the binding property and its value in the binding file, if required.

Creating a port using a port binding file always creates a two-way send or receive ports. If you want to create one-way send or receive ports, you can create it manually by following the procedure mentioned in Manually Configuring a Physical Port Binding to the Oracle Database Adapter. Or, you can follow the workarounds documented in this topic to modify the port binding file to create one-way send or receive ports.

Following are some key points that you must understand with respect to the binding file generated by the Consume Adapter Service Add-in:

  • The files are created with a specific naming convention. If you generated metadata for outbound operations, that is to send messages to the Oracle database, the name of the file is WcfSendPort_OracleDBBinding_Custom.bindinginfo.xml.

    If you generated metadata for inbound operations, that is to receive messages from the Oracle database, the name of the file is WcfReceivePort_OracleDBBinding_Custom.bindinginfo.xml.

  • The file contains information about the binding configuration, the binding type, the endpoint URI, and the port action based on the operations for which metadata was generated. When you import this binding file to create a port, all the relevant information required to configure a physical port is automatically set on the port.

    Important
    By default, the action on the send port is mapped to the operation name for which you generate metadata. For example, if you generate metadata for a Select operation on the ACCOUNTACTIVITY table, the action on the port is set to <Operation Name="Select" Action="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/ACCOUNTACTIVITY/Select" />. However, the operation name on the logical send port you create in the BizTalk orchestration might not be the same. You must ensure that the operation name in the logical port (in the BizTalk orchestration) and the physical send port (in BizTalk Server Administration console) are the same. If not, you will receive an error while sending messages to the Oracle database through the send port.

  • You only need to provide the credentials for the port to connect to the Oracle database. While the binding file does retain the username with which to connect, for security reasons the binding file does not contain the password.

Key Considerations for Using the Port Binding File

  • When you import the binding file, you might get a dialog message informing that the BizTalk application name in the binding file does not match the application name to which you are importing the binding file. You can safely ignore this message and continue.

  • The binding file also contains names of ports and receive locations. If the BizTalk application to which you are importing the binding file creates a port or a receive location that has the same name as an already existing port in the same BizTalk application, you will get an error. You must manually edit the bindings file to specify a unique name for the ports or receive locations.

  • The binding file also contains information about the connection URI. If the binding file creates a receive location that has the same receive URI as an already existing receive location in the same BizTalk application, you will get an error. You must manually edit the binding file to specify a unique URI. You can specify a unique URI by including a polling ID.

  • By default, the port binding file always contains definitions for two-way ports (send or receive). When you import this file in a BizTalk application, it creates a two-way send or receive port. However, you may have an orchestration that has a one-way send or receive port. So, when you configure such an orchestration and use the port created by importing the binding file, the port is not available in the list. This happens because the logical port you created as part of the orchestration is a one-way port while the physical port created in the orchestration is a two-way port. In such cases, you can edit the bindings file to make the following changes:

    For this Do this

    To edit the port bindings file to configure a one-way send port

    1. In the following excerpt, change the value of IsTwoWay property to false. Originally, this is set to true.

      Copy Code
      <SendPort Name="port_name" IsStatic="true" IsTwoWay="false" BindingOption="0">
    2. Comment out the following excerpts:

      Copy Code
      <ReceivePipeline Name="Microsoft.BizTalk.DefaultPipelines.XMLReceive"
  FullyQualifiedName="Microsoft.BizTalk.DefaultPipelines.XMLReceive,
  Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral,
  PublicKeyToken=token" Type="1" TrackingOption="None" Description=""/>
      Copy Code
      <ReceivePipelineData xsi:nil="true" />

    To edit the port bindings file to configure a one-way receive port

    1. In the following excerpt, change the value of IsTwoWay property to false. Originally, this is set to true.

      Copy Code
      <ReceivePort Name="port_name" IsTwoWay="false" BindingOption="1">
    2. Comment out the following excerpts:

      Copy Code
      <SendPipeline Name="Microsoft.BizTalk.DefaultPipelines.XMLTransmit"
  FullyQualifiedName="Microsoft.BizTalk.DefaultPipelines.XMLTransmit,
  Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral,
  PublicKeyToken=token" Type="2" TrackingOption="None" Description="" />
      Copy Code
      <SendPipelineData xsi:nil="true" />
      Copy Code
      <SendPipelineData xsi:nil="true" />

Configuring a WCF-OracleDB Port Using the Port Binding File Generated Using Consume Adapter Service Add-in

The Consume Adapter Service Add-in creates a port binding file that you can import in BizTalk Server Administration console. You can use the same port binding file to also create the BizTalk WCF-OracleDB port in BizTalk Server Administration console. However, before creating WCF-OracleDB port you must perform the following tasks to modify the port binding file.

  1. Open the port binding file in a text editor.

  2. Search and replace “WCF-Custom” with the name with which you added the WCF-OracleDB adapter in BizTalk Server Administration console. For example, if you added the WCF-OracleDB adapter as “OracleDBAdapter”, replace “WCF-Custom” with “OracleDBAdapter”.

  3. Search for the “ConfigurationClsid” attribute, and replace the existing value of the attribute with “D7127586-E851-412e-8A8A-2428AEDDC219”.

  4. Save and close the binding file.

  5. Import the binding file in BizTalk Server Administration console. For instructions on how to import the binding file, see Importing Bindings.

See Also

Tasks

Building Blocks for Developing BizTalk Applications


Configuring Dynamic Ports

In BizTalk Server, you can configure dynamic ports for a WCF-Custom adapter. Because the Oracle Database adapter is a WCF-based adapter, you can dynamically configure a port for the Oracle Database adapter by using message context properties.

For the Oracle Database adapter, the URI, action, and binding may be determined from a property on an incoming message, and then specified in the Expression shape, as shown in the following example:

Copy Code
Request2=Request1;
Request2(WCF.Action)="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/ACCOUNTACTIVITY/Select";
Request2(WCF.BindingType)="oracleDBBinding";
Request2(WCF.UserName)="SCOTT";
Request2(WCF.Password)="TIGER";
SendPort(Microsoft.XLANGs.BaseTypes.Address)="oracledb://adapdoc/";
SendPort(Microsoft.XLANGs.BaseTypes.TransportType)="WCF-Custom";
Note
If you are using a WCF-OracleDB adapter in BizTalk Server Administration console, you can also specify the transport type as SendPort(Microsoft.XLANGs.BaseTypes.TransportType)="OracleDatabaseAdapter", where OracleDatabaseAdapter is the name with which you added the WCF-OracleDB adapter in BizTalk Server Administration console.

In the above example,

  • Request2 message is being created from Request1 message. Both the messages map to an operation schema, which is generated using the Consume Adapter Service BizTalk Project Add-in.

  • SendPort is the name of the logical send port in the BizTalk orchestration.

The Expression shape is part of the BizTalk orchestration. When you deploy the orchestration, the WCF-custom send port is also created.

For more information on configuring dynamic ports, see http://go.microsoft.com/fwlink/?LinkId=106735.

See Also

Tasks

Building Blocks for Developing BizTalk Applications


Reusing Adapter Bindings

A binding creates a mapping between a logical endpoint (such as an orchestration port or a role link) and a physical endpoint (such as a send and receive port). This enables communication between different components of a BizTalk business solution. You can create bindings by using the BizTalk Server Administration console.

What Is a Binding File?

A binding file is an XML file that contains binding information for each BizTalk orchestration in the scope of a BizTalk assembly, application, or group. The binding file describes:

  • The host to which each orchestration is bound.

  • The trust level of the host.

  • The settings for each send port, receive port, receive location, and party that has been configured.

You can generate binding files and then apply the bindings that they contain to an assembly, application, or group. This prevents having to manually configure bindings in different deployment environments and speeds up application deployment.

A binding file is not automatically generated for a BizTalk assembly, application, or group. However, you can generate a binding file by exporting bindings, as described in Exporting Bindings. You can then import the binding file into an application or group, as described in Importing Bindings.

For more information about bindings and about binding files, see the BizTalk Server Help documentation at http://go.microsoft.com/fwlink/?LinkID=101130.

In This Section

  • Exporting Bindings

  • Importing Bindings


Exporting Bindings

This section describes how to export bindings for a BizTalk application into an XML file. You can then import the bindings from the XML file into another BizTalk application. Importing bindings overwrites any existing bindings of the same name in the application. You can also add bindings to an application, which does not overwrite existing bindings. The bindings that you add do not take effect until you import the application.

Prerequisites

To perform the procedures in this topic, you must be logged on with an account that is a member of the BizTalk Server Administrators or BizTalk Operators group. For more detailed information about permissions, see the BizTalk Server Help documentation at http://go.microsoft.com/fwlink/?LinkID=101130.

To export bindings using the BizTalk Server Administration console

  1. Start the BizTalk Server Administration console.

  2. In the console tree, expand BizTalk Group, and then expand Applications.

  3. Right-click the application whose bindings you want to export, point to Export, and then click Bindings.

  4. On the Export Bindings page, in Export to file, type the absolute path of the XML file to which to export the bindings.

    Example: C:\Bindings\Application1Bindings.Binding1.xml

  5. Ensure that Export all bindings from the current application is selected.

  6. To export all party information for the group, select the Export Global Party information check box.

  7. Click OK.

    The bindings are exported into an XML file in the location that you specified.

Note
For security reasons, when you export a binding file, BizTalk Server removes the passwords for the bindings from the file. After importing the bindings, you must reconfigure passwords for send ports and receive locations before they will function. You configure passwords in the Transport Properties dialog box of the BizTalk Server Administration console for the send port or receive location. For information about specifying user name and passwords, see Specifying Credentials for the Oracle Database.

See Also

Tasks

Importing Bindings

Concepts

Reusing Adapter Bindings


Importing Bindings

This topic describes how to use the BizTalk Server Administration console to import bindings into a BizTalk application from an XML file.

Prerequisites

To perform the procedures in this topic, you must be logged on with an account that is a member of the BizTalk Server Administrators or BizTalk Operators group. For more detailed information about permissions, see the BizTalk Server Help documentation at http://go.microsoft.com/fwlink/?LinkID=101130.

To import bindings using the BizTalk Server Administration console

  1. Start the BizTalk Server Administration console.

  2. In the console tree, expand BizTalk Group, and then expand Applications.

  3. Right-click the application into which you want to import bindings, point to Import, and then click Bindings.

  4. Click the binding file, and then click Open.

    The artifacts in the binding file are written to the application. They display in appropriate folders of the application. For example, the send ports imported as part of the bindings display under the Send Ports folder.

Note
For security reasons, when you export a binding file, BizTalk Server removes the passwords for the bindings from the file. After importing the bindings, you must reconfigure passwords for send ports and receive locations before they will function. You configure passwords in the Transport Properties dialog box of the BizTalk Server Administration console for the send port or receive location. For information about specifying user name and passwords, see Specifying Credentials for the Oracle Database.

See Also

Tasks

Exporting Bindings

Concepts

Reusing Adapter Bindings


Performing Basic Insert, Update, Delete, and Select Operations by Using BizTalk Server

The Microsoft BizTalk Adapter for Oracle Database surfaces a set of standard operations on Oracle database tables and views. These are called data manipulation language operations (DML) operations using which you can perform simple INSERT, UPDATE, SELECT, and DELETE statements qualified by a WHERE clause on tables and views. For more information about how the adapter supports these operations, see Performing Basic Insert, Update, Delete, and Select Operations on Oracle Tables and Views. For information about the structure of the SOAP message for DML operations, see Message Schemas for the Basic Insert, Update, Delete, and Select Operations on Tables and Views.

Note
To perform more complex operations, for example running a parameterized SQL SELECT query, you can use the SQLEXECUTE operation. For more information about using the SQLEXECUTE operation with BizTalk Server, see Performing a SQLEXECUTE Operation by Using BizTalk Server.

How to Perform Basic Operations on an Oracle Database?

Performing an operation on an Oracle database using Oracle Database adapter with BizTalk Server involves procedural tasks described in Building Blocks for Developing BizTalk Applications. To perform Insert, Update, Delete, or Select operations on tables and views in an Oracle database, these tasks are:

  1. Create a BizTalk project and generate schema for the operation you want to invoke on an Oracle database table or view.

  2. Create messages in the BizTalk project for sending and receiving messages from the Oracle database.

  3. Create an orchestration to invoke the operation on the Oracle database table or view.

  4. Build and deploy the BizTalk project.

  5. Configure the BizTalk application by creating physical send and receive ports.

  6. Start the BizTalk application.

This topic provides instructions to perform these tasks.

Sample Based On This Topic

A sample, SelectAccTable, based on this topic is also provided with the BizTalk Adapter Pack. For more information, see Samples.

Generating Schema

In this topic, to demonstrate how to perform basic DML operations, we will select records from the ACCOUNTACTIVITY table under the SCOTT schema in the Oracle database. This table is created under the SCOTT schema by running the SQL scripts provided with the samples. To know more about the samples, see Samples.

To demonstrate how to select records, we generate schema for Select operation for the ACCOUNTACTIVITY table under the SCOTT schema. See Retrieving Metadata for Oracle Operations in Visual Studio for more information about how to generate schema.

Defining Messages and Message Types

The schema that you generated earlier describes the "types" required for the messages in the orchestration. A message is typically a variable, the type for which is defined by the corresponding schema. You must link the schema you generated in the first step to the messages from the Orchestration View window of the BizTalk project.

For this topic, you must create two messages—one to send a request to the Oracle database and the other to receive a response.

Perform the following steps to create messages and link them to the schema.

To create messages and link to schema

  1. Open the Orchestration View window of the BizTalk project, if it is not already open. To do so, click View, point to Other Windows, and then click Orchestration View.

  2. In Orchestration View, right-click Messages, and then click New Message.

  3. Right-click the newly created message and then select Properties Window.

  4. In the Properties pane for Message_1, do the following:

    Use this To do this

    Identifier

    Type Request.

    Message Type

    From the drop-down list, expand Schemas, and then select SelectAccTable.OracleDBBindingSchema.Select, where SelectAccTable is the name of your BizTalk project. OracleDBBindingSchema is the schema generated for the Select operation on the ACCOUNTACTIVITY table.

  5. Repeat step 2 to create a new message. In the Properties pane for the new message, do the following:

    Use this To do this

    Identifier

    Type Response.

    Message Type

    From the drop-down list, expand Schemas, and then select SelectAccTable.OracleDBBindingSchema.SelectResponse.

Setting up the Orchestration

You must create a BizTalk orchestration to use BizTalk Server for performing an operation on the Oracle database. In this orchestration, you drop a request message at a defined receive location. The Oracle Database adapter consumes this message and passes it on to the Oracle database via ODP. The response from the Oracle database is saved to another location. A typical orchestration for performing basic table operations on Oracle database would contain:

  • Send and Receive shapes to send messages to Oracle database and receive responses.

  • A one-way receive port to receive request messages to send to the Oracle database.

  • A two-way send port to send request messages to Oracle database and receive responses.

  • A one-way send port to send the responses from Oracle database to a folder.

A sample orchestration for the Select operation resembles the following:

Orchestration for Select operation on Oracle

Adding Message Shapes

Make sure you specify the following properties for each of the message shapes. The names listed in the Shape column are the names of the message shapes as displayed in the just-mentioned orchestration.

Shape Shape Type Properties

ReceiveMessage

Receive

  • Set Name to ReceiveMessage

  • Set Activate to True

SendMessage

Send

  • Set Name to SendMessage

ReceiveResponse

Receive

  • Set Name to ReceiveResponse

  • Set Activate to False

SendResponse

Send

  • Set Name to SendResponse

Adding Ports

Make sure you specify the following properties for each of the logical ports. The names listed in the Port column are the names of the ports as displayed in the orchestration.

Port Properties

FileIn

  • Set Identifier to FileIn

  • Set Type to FileInPort

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Receive

LOBPort

  • Set Identifier to LOBPort

  • Set Type to LOBPortType

  • Set Communication Pattern to Request-Response

  • Set Communication Direction to Send-Receive

SaveResponse

  • Set Identifier to SaveResponse

  • Set Type to SaveResponseType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Send

Specify Messages for Action Shapes, and Connect Them to Ports

The following table specifies the properties and their values that you should set to specify messages for action shapes and to link the messages to the ports. The names listed in the Shape column are the names of the message shapes as displayed in the orchestration mentioned earlier.

Shape Properties

ReceiveMessage

  • Set Message to Request

  • Set Operation to FileIn.Select.Request

SendMessage

  • Set Message to Request

  • Set Operation to LOBPort.Select.Request

ReceiveResponse

  • Set Message to Response

  • Set Operation to LOBPort.Select.Response

SendResponse

  • Set Message to Response

  • Set Operation to SaveResponse.Select.Request

After you have specified these properties, the message shapes and ports are connected and your orchestration is complete.

You must now build the BizTalk solution and deploy it to a BizTalk Server. For more information, see http://go.microsoft.com/fwlink/?LinkId=102359.

Configuring the BizTalk Application

After you have deployed the BizTalk project, the orchestration you created earlier is listed under the Orchestrations pane in the BizTalk Server Administration console. You must use the BizTalk Server Administration console to configure the application. For more information about configuring an application, see http://go.microsoft.com/fwlink/?LinkID=196961.

Configuring an application involves:

  • Selecting a host for the application.

  • Mapping the ports that you created in your orchestration to physical ports in the BizTalk Server Administration console. For this orchestration you must:

    • Define a location on the hard disk and a corresponding file port where you will drop a request message. The BizTalk orchestration will consume the request message and send it to the Oracle database.

    • Define a location on the hard disk and a corresponding file port where the BizTalk orchestration will drop the response message containing the response from the Oracle database.

    • Define a physical WCF-Custom or WCF-OracleDB send port to send messages to the Oracle database. You must also specify the action in the send port. For information about how to create WCF-Custom or WCF-OracleDB ports, see Manually Configuring a Physical Port Binding to the Oracle Database Adapter.

      Note
      Generating the schema using the Consume Adapter Service BizTalk Project Add-in also creates a binding file that contains information about the ports and the actions to be set for those ports. You can import this binding file from the BizTalk Server Administration console to create send ports (for outbound calls) or receive ports (for inbound calls). For more information, see Configuring a Physical Port Binding by Using a Port Binding File.

Starting the Application

You must start the BizTalk application for selecting records from an Oracle database table. For instructions on starting a BizTalk application, see http://go.microsoft.com/fwlink/?LinkId=102387.

At this stage, make sure:

  • The FILE receive port to receive request messages for the orchestration is running.

  • The FILE send port to receive the response messages from the orchestration is running.

  • The WCF-Custom or WCF-OracleDB send port to send messages to the Oracle database is running.

  • The BizTalk orchestration for the operation is running.

Executing the Operation

After you run the application, you must drop a request message to the FILE receive location. The schema for the request message must conform to the schema for the Select operation you generated earlier. For example, the request message to select records from ACCOUNTACTIVITY table having the ACCOUNT field equal to 100001 is:

Copy Code
<Select xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/ACCOUNTACTIVITY">
  <COLUMN_NAMES>*</COLUMN_NAMES>
  <FILTER>ACCOUNT=100001</FILTER>
</Select>

See Message Schemas for the Basic Insert, Update, Delete, and Select Operations on Tables and Views for more information about the request message schema for performing basic DML operations on Oracle database tables and views using the Oracle Database adapter.

The orchestration consumes the message and sends it to the Oracle database. The response from the Oracle database is saved at the other FILE location defined as part of the orchestration. For example, the response from Oracle database for the above request message is:

Copy Code
<?xml version="1.0" encoding="utf-8" ?>
  <SelectResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/ACCOUNTACTIVITY">
    <SelectResult>
      <ACCOUNTACTIVITYRECORDSELECT>
        <TID>1</TID>
        <ACCOUNT>100001</ACCOUNT>
        <AMOUNT>500</AMOUNT>
        <DESCRIPTION />
        <TRANSDATE>2007-10-16T16:58:44</TRANSDATE>
        <PROCESSED>n</PROCESSED>
        </ACCOUNTACTIVITYRECORDSELECT>
      <ACCOUNTACTIVITYRECORDSELECT>
        ….
        ….
      <ACCOUNTACTIVITYRECORDSELECT>
      ….
      ….
    </SelectResult>
  </SelectResponse>

Possible Exceptions

For information about the exceptions you might encounter while performing a DML operation using BizTalk Server, see Exceptions and Error Handling.

Best Practices

After you have deployed and configured the BizTalk project, you can export configuration settings to an XML file called the bindings file. Once you generate a bindings file, you can import the configuration settings from the file so that you do not need to create the send ports, receive ports, etc. for the same orchestration. For more information about binding files, see Reusing Adapter Bindings.

See Also

Other Resources

Developing BizTalk Applications


Performing Operations on Tables with Large Object Types Data by Using BizTalk Server

The Microsoft BizTalk Adapter for Oracle Database provides support for the Oracle large object (LOB) data types:

  • Binary large object (BLOB)

  • Character large object (CLOB)

  • National character large object (NCLOB)

  • Binary file (BFILE). For more information, see Performing Operations on Tables with BFILE Data Types by Using BizTalk Server.

The Microsoft BizTalk Adapter for Oracle Database does this by surfacing the ReadLOB and UpdateLOB operations for tables that contain LOB columns. For more information about these operations see Operations on Tables and Views That Contain LOB Data. For more information about the structure of the SOAP message for invoking these operations, see Message Schemas for Special LOB Operations.

Note
When using the Oracle Database adapter with BizTalk Server, the ReadLOB operation does not support streaming LOB type data from an Oracle database. To stream LOB data from an Oracle database using BizTalk Server you should instead use the Select operation. For more information about streaming, see Streaming Support for LOB Data Types. Also, the response from the Oracle database for the ReadLOB operation will fail validation against the WSDL. For instructions on how to workaround the failure, see Troubleshooting Operational Issues.

How to Perform Operations on LOB Data?

Performing an operation on an Oracle database using Oracle Database adapter with BizTalk Server involves procedural tasks described in Building Blocks for Developing BizTalk Applications. To invoke both ReadLOB and UpdateLOB operations on a table in an Oracle database, these tasks are:

  1. Create a BizTalk project and generate schema for both ReadLOB and UpdateLOB operations.

  2. Create messages in the BizTalk project for sending and receiving messages from the Oracle database. You must create messages for both the sending request and receiving responses for both the operations.

  3. Create an orchestration to invoke both ReadLOB and UpdateLOB operations.

  4. Build and deploy the BizTalk project.

  5. Configure the BizTalk application by creating physical send and receive ports.

  6. Start the BizTalk application.

This topic provides instructions to perform these tasks.

Sample Based On This Topic

A sample, Operate_LOB, based on this topic is also provided with the BizTalk Adapter Pack. For more information, see Samples.

Generating Schema

In this topic, to demonstrate how to perform ReadLOB and UpdateLOB operations, we will generate metadata for these operations surfaced for the CUSTOMER table under the SCOTT schema in the Oracle database. This table is created under the SCOTT schema by running the SQL scripts provided with the samples. To know more about the samples, see Samples.

Defining Messages and Message Types

The schema that you generated earlier describes the "types" required for the messages in the orchestration. A message is typically a variable, the type for which is defined by the corresponding schema. You must link the schema you generated in the first step to the messages from the Orchestration View window of the BizTalk project.

For this topic, you must create two request-response message sets—one request-response set for the ReadLOB operation and the second request-response set for the UpdateLOB operation.

Perform the following steps to create messages and link them to the schema.

To create messages and link to schema

  1. Open the Orchestration View window of the BizTalk project, if it is not already open. To do this, click View, point to Other Windows, and then click Orchestration View.

  2. In Orchestration View, right-click Messages, and then click New Message.

  3. Right-click the newly created message, and then select Properties Window.

  4. In the Properties pane for Message_1, do the following:

    Use this To do this

    Identifier

    Type Request.

    Message Type

    From the drop-down list, expand Schemas, and select Operate_LOB.OracleDBBindingSchema.ReadLOB, where Operate_LOB is the name of your BizTalk project. OracleDBBindingSchema is the schema generated for the ReadLOB and UpdateLOB operations on the CUSTOMER table.

  5. Repeat the previous step to create three more messages. In the Properties pane for the new messages, do the following:

    Set Identifier to Set Message Type to

    Response

    Operate_LOB.OracleDBBindingSchema.ReadLOBResponse

    Request2

    Operate_LOB.OracleDBBindingSchema.UpdateLOB

    Response2

    Operate_LOB.OracleDBBindingSchema.UpdateLOBResponse

Setting up the Orchestration

You must create a BizTalk orchestration to use BizTalk Server for invoking ReadLOB and UpdateLOB operations on a table. In this orchestration, you drop two request messages, one for the ReadLOB operation and the other for the UpdateLOB operation. These messages are dropped at a receive location. The Oracle Database adapter consumes the messages and passes them on to the Oracle database via ODP. The response from the Oracle database is saved to another location.

Because the orchestration picks two requests simultaneously, you need to include a Parallel Actions shape in the orchestration. For each parallel action, you must include Send and Receive shapes to send messages to Oracle database and receive responses. However, you could use the same ports for sending and receiving messages for both operations. A typical orchestration for performing the ReadLOB and UpdateLOB operations simultaneously would contain:

  • Send and Receive shapes to send messages to Oracle database and receive responses.

  • A one-way receive port to receive request messages to send to the Oracle database.

  • A two-way send port to send request messages to Oracle database and receive responses.

  • A one-way send port to send the responses from Oracle database to a folder.

A sample orchestration resembles the following:

Orchestration for reading and updating LOB data

Adding Message Shapes

Make sure you specify the following properties for each of the message shapes. The names listed in the Shape column are the names of the message shapes as displayed in the just-mentioned orchestration. The following table lists the shapes you must include for one of the parallel actions.

Shape Shape Type Properties

ReceiveMessage

Receive

  • Set Name to ReceiveMessage

  • Set Activate to True

SendMessage

Send

  • Set Name to SendMessage

ReceiveResponse

Receive

  • Set Name to ReceiveResponse

  • Set Activate to False

SendResponse

Send

  • Set Name to SendResponse

The following table lists the shapes that you must include for the other parallel action.

Shape Shape Type Properties

ReceiveMessage2

Receive

  • Set Name to ReceiveMessage2

  • Set Activate to True

SendMessage2

Send

  • Set Name to SendMessage2

ReceiveResponse2

Receive

  • Set Name to ReceiveResponse2

  • Set Activate to False

SendResponse2

Send

  • Set Name to SendResponse2

Adding Ports

Make sure you specify the following properties for each of the logical ports. The names listed in the Port column are the names of the ports as displayed in the orchestration.

Port Properties

FileIn

  • Set Identifier to FileIn

  • Set Type to FileInType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Receive

LOBPort

  • Set Identifier to LOBPort

  • Set Type to LOBPortType

  • Set Communication Pattern to Request-Response

  • Set Communication Direction to Send-Receive

SaveResponse

  • Set Identifier to SaveResponse

  • Set Type to SaveResponseType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Send

Because you will be processing two request and response messages using these ports, you must create two operations for each port, where each operation corresponds to one message type. To create an operation, right-click the port shape, and then select New Operation. Name the first operation for each port as ReadLOB and the second operation for each port as UpdateLOB.

Using Correlation

Correlation is the process of matching an incoming message with the appropriate instance of an orchestration. In the orchestration you will be dropping two request messages, one for each overload. Using correlation, you associate a request message with the right orchestration. For more information about correlation, see http://go.microsoft.com/fwlink/?LinkId=103055.

To use correlations

  1. Promote a property from the schema generated for each operation. For example, promote the LOB_COLUMN property from the ReadLOB operation schema; promote the FILTER property from the UpdateLOB operation schema. To promote a property, right-click the property in the schema view, point to Promote, and then select Quick Promotion. This adds a PropertySchema.xsd file to your BizTalk project.

    For information about promoting a property, see http://go.microsoft.com/fwlink/?LinkId=102358.

  2. From the Orchestration View, right-click Correlation Types, and then select New Correlation Type.

  3. The Correlation Properties dialog box lists the properties you promoted in step 1. Select a property, and then click Add.

  4. Click OK.

  5. To create correlation types for the other promoted property, repeat these steps.

  6. Rename the correlation types based on the operation they are associated with. You could rename the correlation types to CorrelationType_ReadLOB (for the ReadLOB operation) and CorrelationType_UpdateLOB (for the UpdateLOB operation).

  7. From Orchestration View, right-click Correlation Sets, and then select New Correlation Set.

  8. Right-click the newly added correlation set, and then click Properties. In the Properties pane, do the following:

    Use this To do this

    Correlation Type

    Operate_LOB.CorrelationType_ReadLOB

    Identifier

    Correlation_ReadLOB

  9. Add another correlation set and specify the following properties from the Properties pane.

    Use this To do this

    Correlation Type

    Operate_LOB.CorrelationType_UpdateLOB

    Identifier

    Correlation_UpdateLOB

Specify Messages for Action Shapes, and Connect Them to Ports

The following table specifies the properties and their values that you should set to specify messages for action shapes and to link them to the ports. The names listed in the Shape column are the names of the message shapes as displayed in the orchestration mentioned earlier.

Shape Properties

ReceiveMessage

  • Set Initializing Correlation Sets to Correlation_ReadLOB

  • Set Message to Request

  • Set Operation to FileIn.ReadLOB.Request

SendMessage

  • Set Message to Request

  • Set Operation to LOBPort.ReadLOB.Request

ReceiveResponse

  • Set Message to Response

  • Set Operation to LOBPort.ReadLOB.Response

SendResponse

  • Set Message to Response

  • Set Operation to SaveResponse.ReadLOB.Request

ReceiveMessage2

  • Set Initializing Correlation Sets to Correlation_UpdateLOB

  • Set Message to Request2

  • Set Operation to FileIn.UpdateLOB.Request

SendMessage2

  • Set Message to Request2

  • Set Operation to LOBPort.UpdateLOB.Request

ReceiveResponse2

  • Set Message to Response2

  • Set Operation to LOBPort.UpdateLOB.Response

SendResponse2

  • Set Message to Response

  • Set Operation to SaveResponse.UpdateLOB.Request

After you have specified these properties, the message shapes and ports are connected and your orchestration is complete.

You must now build the BizTalk solution and deploy it to a BizTalk Server. For more information, see http://go.microsoft.com/fwlink/?LinkId=102359.

Configuring the BizTalk Application

After you have deployed the BizTalk project, the orchestration you created earlier is listed under the Orchestrations pane in the BizTalk Server Administration console. You must use the BizTalk Server Administration console to configure the application. For more information about configuring an application, see http://go.microsoft.com/fwlink/?LinkID=196961.

Configuring an application involves:

  • Selecting a host for the application.

  • Mapping the ports that you created in your orchestration to physical ports in the BizTalk Server Administration console. For this orchestration you must:

    • Define a location on the hard disk and a corresponding file port where you will drop the request messages, one each for ReadLOB and UpdateLOB operations. The BizTalk orchestration will consume the request messages and send it to the Oracle database.

    • Define a location on the hard disk and a corresponding file port where the BizTalk orchestration will drop the response messages, one for each operation, containing the response from the Oracle database.

    • Define a physical WCF-Custom or WCF-OracleDB send port to send messages to the Oracle database. You must also specify the action in the send port. For information about how to create WCF-Custom or WCF-OracleDB ports, see Manually Configuring a Physical Port Binding to the Oracle Database Adapter. Because the WCF-Custom or WCF-OracleDB send port sends and receive messages conforming to more than one schema and performs two operations, you must set dynamic action for both the operations. For more information about actions, see Specifying SOAP Action. For this orchestration, the action should be set as follows:

      Copy Code
      <BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Operation Name="ReadLOB" Action="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/CUSTOMER/ReadLOB" />
  <Operation Name="UpdateLOB" Action="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/CUSTOMER/UpdateLOB" />
</BtsActionMapping>
      Note
      Generating the schema using the Consume Adapter Service BizTalk Project Add-in also creates a binding file containing information about the ports and the actions to be set for those ports. You can import this binding file from the BizTalk Server Administration console to create send ports (for outbound calls) or receive ports (for inbound calls). For more information, see Configuring a Physical Port Binding by Using a Port Binding File.

Starting the Application

You must start the BizTalk application for performing an operation on the Oracle database. For instructions on starting a BizTalk application, see http://go.microsoft.com/fwlink/?LinkId=102387.

At this stage, make sure:

  • The FILE receive port to receive request messages for the orchestration is running.

  • The FILE send port to receive the response messages from the orchestration is running.

  • The WCF-Custom send port or WCF-OracleDB to send messages to the Oracle database is running.

  • The BizTalk orchestration for the operation is running.

Executing the Operation

After you run the application, you must drop request messages to the FILE receive location. The schema for the request messages must conform to the schema for the operations you generated earlier. See Message Schemas for Special LOB Operations for more information about the request message schema for invoking operations on LOB data types using the Oracle Database adapter.

The orchestration consumes the request messages and sends them to the Oracle database. The response from the Oracle database is saved at other FILE location defined as part of the orchestration.

For this orchestration, we first drop a request message for the UpdateLOB operation to update the PHOTO column (of BLOB data type) of the CUSTOMER table. The request message to invoke the update the PHOTO column for a specific customer is:

Copy Code
<UpdateLOB xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/CUSTOMER">
  <LOB_COLUMN>PHOTO</LOB_COLUMN>
  <FILTER>Name='Mindy Martin'</FILTER>
  <Stream>YWJjZA==</Stream>
</UpdateLOB>
Note
The filter string must always fetch one matching row otherwise the Oracle Database adapter throws an XmlReaderParsingException. Also the value for the <Stream> element must be of base64Binary type.

The response for the UpdateLOB operation is:

Copy Code
<?xml version="1.0" encoding="utf-8"?>
<UpdateLOBResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/CUSTOMER"></UpdateLOBResponse>

We now drop a request message for the ReadLOB operation to read the data that was updated by the UpdateLOB operation. The request message to invoke the ReadLOB operation on the PHOTO column for a specific customer is:

Copy Code
<ReadLOB xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/CUSTOMER">
  <LOB_COLUMN>PHOTO</LOB_COLUMN>
  <FILTER>NAME='Mindy Martin'</FILTER>
</ReadLOB>
Note
The filter string must always fetch one matching row. If there is more than one matching row, the Oracle Database adapter only returns the LOB column for the first (matching) row.

The response for the ReadLOB operation is:

Copy Code
<?xml version="1.0" encoding="utf-8"?>
<ReadLOBResponse mlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/CUSTOMER">
  <ReadLOBResult>YWJjZA==</ReadLOBResult>
</ReadLOBResponse>
Note
The response for the ReadLOB operation may fail to validate against the WSDL. You must perform certain tasks to validate the ReadLOB against the WSDL. For more information see Troubleshooting Operational Issues.

Possible Exceptions

For information about the exceptions you might encounter while performing operations on table containing LOB data using BizTalk Server, see Exceptions and Error Handling.

Best Practices

After you have deployed and configured the BizTalk project, you can export configuration settings to an XML file called the bindings file. Once you generate a bindings file, you can import the configuration settings from the file so that you do not need to create the send ports, receive ports, etc. for the same orchestration. For more information about binding files, see Reusing Adapter Bindings.

See Also

Other Resources

Developing BizTalk Applications


Invoking Functions and Procedures by Using BizTalk Server

Adapter clients can invoke functions and procedures in an Oracle database by using the Oracle Database adapter with BizTalk Server. The Oracle Database adapter surfaces procedures, functions, and packages as operations. The Oracle Database adapter also enables adapter clients to invoke:

  • Overloaded functions and stored procedures. See Invoking Overloaded Functions and Procedures by Using BizTalk Server.

  • Functions and procedures having IN, OUT, and IN OUT REF CURSOR parameters. See Invoking Functions and Procedures with REF CURSORS by Using BizTalk Server.

  • Functions and procedures having IN, OUT, and IN OUT RECORD type parameters. See Invoking Functions and Procedures with RECORD Types by Using BizTalk Server.

For more information about working with functions and stored procedures by using the Oracle Database adapter, see Operations on Functions and Stored Procedures. For information about the structure of the SOAP message for invoking functions and procedures, see Message Schemas for Functions and Procedures.

How to Invoke Functions in an Oracle Database?

Performing an operation on an Oracle database using Oracle Database adapter with BizTalk Server involves procedural tasks described in Building Blocks for Developing BizTalk Applications. To invoke a function in an Oracle database, these tasks are:

  1. Create a BizTalk project and generate schema for the function you want to invoke in an Oracle database.

  2. Create messages in the BizTalk project for sending and receiving messages from the Oracle database.

  3. Create an orchestration to invoke the function in the Oracle database.

  4. Build and deploy the BizTalk project.

  5. Configure the BizTalk application by creating physical send and receive ports.

  6. Start the BizTalk application.

This topic provides instructions to perform these tasks.

Sample Based On This Topic

A sample, InvokeFunction, based on this topic is also provided with the BizTalk Adapter Pack. For more information, see Samples.

Generating Schema

In this topic, to demonstrate how to invoke a function, we will invoke the CREATE_ACCOUNT function under the SCOTT\Package\ACCOUNT_PKG schema. This package is created under the SCOTT schema by running the SQL scripts provided with the samples. The CREATE_ACCOUNT function takes account and addresses information as inputs and creates records in the ACCOUNT and CUSTOMER tables. IF the record already exists, the function returns zero; otherwise, the function returns the account ID. To know more about the samples and the SQL scripts, see Samples.

To invoke the CREATE_ACCOUNT function, we must generate schema for the same function under the SCOTT\Package\ACCOUNT_PKG schema. See Retrieving Metadata for Oracle Operations in Visual Studio for more information about how to generate schema.

Defining Messages and Message Types

The schema that you generated earlier describes the "types" required for the messages in the orchestration. A message is typically a variable, the type for which is defined by the corresponding schema. You must link the schema you generated in the first step to the messages from the Orchestration View window of the BizTalk project.

For this topic, you must create two messages—one to send a request to the Oracle database and the other to receive a response.

Perform the following steps to create messages and link them to the schema:

To create messages and link to schema

  1. Open the Orchestration View window of the BizTalk project, if it is not already open. To do so, click View, point to Other Windows, and then click Orchestration View.

  2. In Orchestration View, right-click Messages, and then click New Message.

  3. Right-click the newly created message, and then select Properties Window.

  4. In the Properties pane for Message_1, do the following:

    Use this To do this

    Identifier

    Type Request.

    Message Type

    From the drop-down list, expand Schemas, and then select InvokeFunction.OracleDBBindingSchema.CREATE_ACCOUNT, where InvokeFunction is the name of your BizTalk project. OracleDBBindingSchema is the schema generated for the CREATE_ACCOUNT function.

  5. Repeat the previous step to create a new message. In the Properties pane for the new message, do the following:

    Use this To do this

    Identifier

    Type Response.

    Message Type

    From the drop-down list, expand Schemas, and then select InvokeFunction.OracleDBBindingSchema.CREATE_ACCOUNTResponse.

Setting up the Orchestration

You must create a BizTalk orchestration to use BizTalk Server for invoking functions on an Oracle database. In this orchestration, you drop a request message at a defined receive location. The Oracle Database adapter consumes this message and passes it on to the Oracle database via ODP. The response from the Oracle database is saved to another location. A typical orchestration for invoking functions and procedures in an Oracle database would contain:

  • Send and Receive shapes to send messages to Oracle database and receive responses.

  • A one-way receive port to receive request messages to send to the Oracle database.

  • A two-way send port to send request messages to Oracle database and receive responses.

  • A one-way send port to send the responses from Oracle database to a folder.

A sample orchestration resembles the following:

Orchestration to invoke a function in Oracle

Adding Message Shapes

Make sure you specify the following properties for each of the message shapes. The names listed in the Shape column are the names of the message shapes as displayed in the just-mentioned orchestration.

Shape Shape Type Properties

ReceiveMessage

Receive

  • Set Name to ReceiveMessage

  • Set Activate to True

SendMessage

Send

  • Set Name to SendMessage

ReceiveResponse

Receive

  • Set Name to ReceiveResponse

  • Set Activate to False

SendResponse

Send

  • Set Name to SendResponse

Adding Ports

Make sure you specify the following properties for each of the logical ports. The names listed in the Port column are the names of the ports as displayed in the orchestration.

Port Properties

FileIn

  • Set Identifier to FileIn

  • Set Type to FileInType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Receive

LOBPort

  • Set Identifier to LOBPort

  • Set Type to LOBPortType

  • Set Communication Pattern to Request-Response

  • Set Communication Direction to Send-Receive

SaveResponse

  • Set Identifier to SaveResponse

  • Set Type to SaveResponseType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Send

Specify Messages for Action Shapes, and Connect Them to Ports

The following table specifies the properties and their values that you should set to specify messages for action shapes and to link the messages to the ports. The names listed in the Shape column are the names of the message shapes as displayed in the orchestration mentioned earlier.

Shape Properties

ReceiveMessage

  • Set Message to Request

  • Set Operation to FileIn.Function.Request

SendMessage

  • Set Message to Request

  • Set Operation to LOBPort.Function.Request

ReceiveResponse

  • Set Message to Response

  • Set Operation to LOBPort.Function.Response

SendResponse

  • Set Message to Response

  • Set Operation to SaveResponse.Function.Request

After you have specified these properties, the message shapes and ports are connected and your orchestration is complete.

You must now build the BizTalk solution and deploy it to a BizTalk Server. For more information, see http://go.microsoft.com/fwlink/?LinkId=102359.

Configuring the BizTalk Application

After you have deployed the BizTalk project, the orchestration you created earlier is listed under the Orchestrations pane in the BizTalk Server Administration console. You must use the BizTalk Server Administration console to configure the application. For more information about configuring an application, see http://go.microsoft.com/fwlink/?LinkID=196961.

Configuring an application involves:

  • Selecting a host for the application.

  • Mapping the ports that you created in your orchestration to physical ports in the BizTalk Server Administration console. For this orchestration you must:

    • Define a location on the hard disk and a corresponding file port where you will drop a request message. The BizTalk orchestration will consume the request message and send it to the Oracle database.

    • Define a location on the hard disk and a corresponding file port where the BizTalk orchestration will drop the response message containing the response from the Oracle database.

    • Define a physical WCF-Custom or WCF-OracleDB send port to send messages to the Oracle database. You must also specify the action in the send port. For information about how to create WCF-Custom or WCF-OracleDB ports, see Manually Configuring a Physical Port Binding to the Oracle Database Adapter.

      Note
      Generating the schema using the Consume Adapter Service BizTalk Project Add-in also creates a binding file that contains information about the ports and the actions to be set for those ports. You can import this binding file from the BizTalk Server Administration console to create send ports (for outbound calls) or receive ports (for inbound calls). For more information, see Configuring a Physical Port Binding by Using a Port Binding File.

Starting the Application

You must start the BizTalk application for invoking a function in an Oracle database table. For instructions on starting a BizTalk application, see http://go.microsoft.com/fwlink/?LinkId=102387.

At this stage, make sure:

  • The FILE receive port to receive request messages for the orchestration is running.

  • The FILE send port to receive the response messages from the orchestration is running.

  • The WCF-Custom or WCF-OracleDB send port to send messages to the Oracle database is running.

  • The BizTalk orchestration for the operation is running.

Executing the Operation

After you run the application, you must drop a request message to the FILE receive location. The schema for the request message must conform to the schema for the function you generated earlier. See Message Schemas for Functions and Procedures for more information about the request message schema for invoking functions using the Oracle Database adapter.

For example, the request message to invoke the CREATE_ACCOUNT function is:

Copy Code
<CREATE_ACCOUNT xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">
  <ACCT>
    <ACCTID xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT"></ACCTID>
    <NAME xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT">John Smith</NAME>
    <BALANCE xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT">10000</BALANCE>
  </ACCT>
  <ADDR>
    <STREET xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT">BelRed Road</STREET>
    <CITY xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT">Redmond</CITY>
    <STATE xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT">WA</STATE>
  </ADDR>
</CREATE_ACCOUNT>

The orchestration consumes the message and sends it to the Oracle database. The response from the Oracle database is saved at the other FILE location defined as part of the orchestration. For example, the response from Oracle database for the above request message is:

Copy Code
<?xml version="1.0" encoding="utf-8"?>
<CREATE_ACCOUNTResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">
<CREATE_ACCOUNTResult>[ID]</CREATE_ACCOUNTResult>
</CREATE_ACCOUNTResponse>

Where, [ID] is the ID of the account created by the function.

Possible Exceptions

For information about the exceptions you might encounter while invoking functions and procedures using BizTalk Server, see Exceptions and Error Handling.

Best Practices

After you have deployed and configured the BizTalk project, you can export configuration settings to an XML file called the bindings file. Once you generate a bindings file, you can import the configuration settings from the file so that you do not need to create the send ports, receive ports, etc. for the same orchestration. For more information about binding files, see Reusing Adapter Bindings.

See Also

Other Resources

Developing BizTalk Applications


Invoking Overloaded Functions and Procedures by Using BizTalk Server

Stored procedures and functions can be overloaded in an Oracle database. The Oracle Database adapter supports overloaded functions and procedures by changing the target namespace of the operation. For example, the message structure for two overloaded procedures looks like:

Copy Code
Stored Procedure Overload 1:
<[SP_NAME] xmlns="http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Package/[PACKAGE_NAME]/[SP_NAME]/overload1">
  <[PRM1_NAME]>value1</[PRM1_NAME]>
  <[PRM2_NAME]>value1</[PRM2_NAME]>
  …
</[SP_NAME]>

Stored Procedure Overload 2:
<[SP_NAME] xmlns="http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Package/[PACKAGE_NAME]/[SP_NAME]/overload2">
  <[PRM1_NAME]>value1</I_[PRM1_NAME]>
  <[PRM2_NAME]>value1</I_[PRM2_NAME]>
  …
</[SP_NAME]>

The SOAP message structure and the SOAP action required to invoke an overloaded function or procedure is similar to invoking a function and procedure, as described under Message Schemas for Functions and Procedures.

Invoking an overloaded procedure is similar to invoking any other function as described in Invoking Functions and Procedures by Using BizTalk Server. However to differentiate overloaded functions, the Oracle Database adapter appends a unique string to the node ID and the namespace that it surfaces for overloaded artifact. This string is "overload1" for the first overload, "overload2" for the next overload, and so on.

How to Invoke Overloaded Functions and Procedures?

Performing an operation on an Oracle database using Oracle Database adapter with BizTalk Server involves procedural tasks described in Building Blocks for Developing BizTalk Applications. To invoke a function in an Oracle database, these tasks are:

  1. Create a BizTalk project and generate schema for the overloaded function you want to invoke in an Oracle database.

  2. Create messages in the BizTalk project for sending and receiving messages from the Oracle database. You must create messages for each overload.

  3. Create an orchestration to invoke the overloaded function in the Oracle database.

  4. Build and deploy the BizTalk project.

  5. Configure the BizTalk application by creating physical send and receive ports.

  6. Start the BizTalk application.

This topic provides instructions to perform these tasks.

Sample Based On This Topic

A sample, InvokeOverloadedProc, based on this topic is also provided with the BizTalk Adapter Pack. For more information, see Samples.

Generating Schema

In this topic, to demonstrate how to invoke an overloaded function or procedure, we will invoke the GET_ACCOUNT procedure under the SCOTT\Package\ACCOUNT_PKG schema. This package is created under the SCOTT schema by running the SQL scripts provided with the samples. This is an overloaded procedure where:

  • One overload takes the account ID as the IN parameter and returns an ACCOUNT%ROWTYPE as OUT parameter.

  • Second overload takes the account name as the IN parameter and returns an ACCOUNT%ROWTYPE as OUT parameter.

To know more about the samples and the SQL scripts, see Samples.

To invoke an overloaded function, we generate schema for both the overloaded procedures, GET_ACCOUNT.1 and GET_ACCOUNT.2. See Retrieving Metadata for Oracle Operations in Visual Studio for more information about how to generate schema.

Defining Messages and Message Types

The schema that you generated earlier describes the "types" required for the messages in the orchestration. A message is typically a variable, the type for which is defined by the corresponding schema. You must link the schema you generated in the first step to the messages from the Orchestration View window of the BizTalk project.

For this topic, you must create two request-response message sets—one request-response set for the first overloaded procedure and the second request-response set for the second overloaded procedure.

Perform the following steps to create messages and link them to the schema.

To create messages and link to schema

  1. Open the Orchestration View window of the BizTalk project, if it is not already open. To do so, click View, point to Other Windows, and then click Orchestration View.

  2. In Orchestration View, right-click Messages, and then click New Message.

  3. Right-click the newly created message, and then select Properties Window.

  4. In the Properties pane for Message_1, do the following:

    Use this To do this

    Identifier

    Type Request.

    Message Type

    From the drop-down list, expand Schemas, and select InvokeOverloadedProc.OracleDBBindingSchema.GET_ACCOUNT, where InvokeOverloadedProc is the name of your BizTalk project. OracleDBBindingSchema is the schema generated for the GET_ACCOUNT procedure.

  5. Repeat the previous step to create three more messages. In the Properties pane for the new messages, do the following:

    Set Identifier to Set Message Type to

    Response

    InvokeOverloadedProc.OracleDBBindingSchema.GET_ACCOUNTResponse

    Request2

    InvokeOverloadedProc.OracleDBBindingSchema1.GET_ACCOUNT

    Response2

    InvokeOverloadedProc.OracleDBBindingSchema1.GET_ACCOUNTResponse

Setting up the Orchestration

You must create a BizTalk orchestration to use BizTalk Server for invoking an overloaded procedure in an Oracle database. In this orchestration, you drop two request messages, one corresponding to each overloaded procedure, at the defined receive location. The Oracle Database adapter consumes the messages and passes them on to the Oracle database via ODP. The response from the Oracle database is saved to another location.

Because the orchestration picks two requests simultaneously, you need to include a Parallel Actions shape in the orchestration. For each parallel action, you must include Send and Receive shapes to send messages to the Oracle database and receive responses. However, you could use the same ports for sending and receiving messages for both operations. A typical orchestration for invoking the overloaded procedures simultaneously would contain:

  • Send and Receive shapes to send messages to Oracle database and receive responses.

  • A one-way receive port to receive request messages to send to the Oracle database.

  • A two-way send port to send request messages to Oracle database and receive responses.

  • A one-way send port to send the responses from Oracle database to a folder.

A sample orchestration to invoke the first and second overloads for GET_ACCOUNT procedure resembles the following:

Orchestration for invoking overloaded packages

Adding Message Shapes

Make sure you specify the following properties for each of the message shapes. The names listed in the Shape column are the names of the message shapes as displayed in the just-mentioned orchestration. The following table lists the shapes you must include for one of the parallel actions.

Shape Shape Type Properties

ReceiveMessage

Receive

  • Set Name to ReceiveMessage

  • Set Activate to True

SendMessage

Send

  • Set Name to SendMessage

ReceiveResponse

Receive

  • Set Name to ReceiveResponse

  • Set Activate to False

SendResponse

Send

  • Set Name to SendResponse

The following table lists the shapes that you must include for the other parallel action.

Shape Shape Type Properties

ReceiveMessage2

Receive

  • Set Name to ReceiveMessage2

  • Set Activate to True

SendMessage2

Send

  • Set Name to SendMessage2

ReceiveResponse2

Receive

  • Set Name to ReceiveResponse2

  • Set Activate to False

SendResponse2

Send

  • Set Name to SendResponse2

Adding Ports

Make sure that you specify the following properties for each of the logical ports. The names listed in the Port column are the names of the ports as displayed in the orchestration.

Port Properties

FileIn

  • Set Identifier to FileIn

  • Set Type to FileInType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Receive

LOBPort

  • Set Identifier to LOBPort

  • Set Type to LOBPortType

  • Set Communication Pattern to Request-Response

  • Set Communication Direction to Send-Receive

SaveResponse

  • Set Identifier to SaveResponse

  • Set Type to SaveResponseType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Send

Because you will be processing two request and response messages using these ports, you must create two operations for each port, where each operation corresponds to one message type. To create an operation, right-click the port shape, and then select New Operation. Name the first operation for each port as Overload1 and the second operation for each port as Overload2.

Using Correlation

Correlation is the process of matching an incoming message with the appropriate instance of an orchestration. In the orchestration you will be dropping two request messages, one for each overload. Using correlation, you associate a request message with the right orchestration. For more information about correlation, see http://go.microsoft.com/fwlink/?LinkId=103055.

To use correlations

  1. Promote a property from the schema generated for each overloaded function. For example, promote the AID property from the schema for the first overload; promote the ANAME property from the schema of the second overload. To promote a property, right-click the property in the schema view, point to Promote, and then select Quick Promotion. This adds a PropertySchema.xsd file to your BizTalk project.

    For information about promoting a property, see http://go.microsoft.com/fwlink/?LinkId=102358.

  2. From Orchestration View, right-click Correlation Types, and then select New Correlation Type.

  3. The Correlation Properties dialog box lists the properties that you promoted in step 1. Select a property, and then click Add.

  4. Click OK.

  5. To create correlation types for the other promoted property, repeat these steps.

  6. Rename the correlation types based on the property to which they are associated. You could rename the correlation types to CorrelationType_AID (for the AID property) and CorrelationType_ANAME (for the ANAME property).

  7. From Orchestration View, right-click Correlation Sets, and then select New Correlation Set.

  8. Right-click the newly added correlation set, and then click Properties. In the Properties pane, do the following:

    Use this To do this

    Correlation Type

    InvokeOverloadedProc.CorrelationType_AID

    Identifier

    Correlation_AID

  9. Add another correlation set, and specify the following properties from the Properties pane.

    Use this To do this

    Correlation Type

    InvokeOverloadedProc.CorrelationType_ANAME

    Identifier

    Correlation_ANAME

Specify Messages for Action Shapes, and Connect Them to Ports

The following table specifies the properties and their values that you should set to specify messages for action shapes and to link the messages to the ports. The names listed in the Shape column are the names of the message shapes as displayed in the orchestration mentioned earlier.

Shape Properties

ReceiveMessage

  • Set Initializing Correlation Sets to Correlation_AID

  • Set Message to Request

  • Set Operation to FileIn.Overload1.Request

SendMessage

  • Set Message to Request

  • Set Operation to LOBPort.Overload1.Request

ReceiveResponse

  • Set Message to Response

  • Set Operation to LOBPort.Overload1.Response

SendResponse

  • Set Message to Response

  • Set Operation to SaveResponse.Overload1.Request

ReceiveMessage2

  • Set Initializing Correlation Sets to Correlation_ANAME

  • Set Message to Request2

  • Set Operation to FileIn.Overload2.Request

SendMessage2

  • Set Message to Request2

  • Set Operation to LOBPort.Overload2.Request

ReceiveResponse2

  • Set Message to Response2

  • Set Operation to LOBPort.Overload2.Response

SendResponse2

  • Set Message to Response2

  • Set Operation to SaveResponse.Overload2.Request

After you have specified these properties, the message shapes and ports are connected and your orchestration is complete.

You must now build the BizTalk solution and deploy it to a BizTalk Server. For more information, see http://go.microsoft.com/fwlink/?LinkId=102359.

Configuring the BizTalk Application

After you have deployed the BizTalk project, the orchestration you created earlier is listed under the Orchestrations pane in the BizTalk Server Administration console. You must use the BizTalk Server Administration console to configure the application. For more information about configuring an application, see http://go.microsoft.com/fwlink/?LinkID=196961.

Configuring an application involves:

  • Selecting a host for the application.

  • Mapping the ports that you created in your orchestration to physical ports in the BizTalk Server Administration console. For this orchestration you must:

    • Define a location on the hard disk and a corresponding file port where you will drop the request messages, one for each overloaded procedure. The BizTalk orchestration will consume the request messages and send it to the Oracle database.

    • Define a location on the hard disk and a corresponding file port where the BizTalk orchestration will drop the response messages, one for each overloaded procedure, containing the response from the Oracle database.

    • Define a physical WCF-Custom or WCF-OracleDB send port to send messages to the Oracle database. You must also specify the action in the send port. For information about how to create WCF-Custom or WCF-OracleDB ports, see Manually Configuring a Physical Port Binding to the Oracle Database Adapter. Because the WCF-Custom or WCF-OracleDB send port sends and receive messages conforming to more than one schema and performs two operations, you must set dynamic action for both the operations. For more information about actions, see Specifying SOAP Action. For this orchestration, the action should be set as follows:

      Copy Code
      <BtsActionMapping>
  <Operation Name="Overload1" Action="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/GET_ACCOUNT/overload1" />
  <Operation Name="Overload2" Action="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/GET_ACCOUNT/overload2" />
</BtsActionMapping>
      Note
      Generating the schema using the Consume Adapter Service BizTalk Project Add-in also creates a binding file containing information about the ports and the actions to be set for those ports. You can import this binding file from the BizTalk Server Administration console to create send ports (for outbound calls) or receive ports (for inbound calls). For more information, see Configuring a Physical Port Binding by Using a Port Binding File.

Starting the Application

You must start the BizTalk application for invoking a function in an Oracle database table. For instructions on starting a BizTalk application, see http://go.microsoft.com/fwlink/?LinkId=102387.

At this stage, make sure:

  • The FILE receive port to receive request messages for the orchestration is running.

  • The FILE send port to receive the response messages from the orchestration is running.

  • The WCF-Custom or WCF-OracleDB send port to send messages to the Oracle database is running.

  • The BizTalk orchestration for the operation is running.

Executing the Operation

After you run the application, you must drop two request messages (one for each overloaded procedure) to the FILE receive location. The schema for the request messages must conform to the schema for the procedure you generated earlier. See Message Schemas for Functions and Procedures for more information about the request message schema for invoking functions using the Oracle Database adapter.

For example, the request message to invoke the first overload of the GET_ACCOUNT procedure is:

Copy Code
<GET_ACCOUNT xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/GET_ACCOUNT/overload1">
  <AID>100001</AID>
</GET_ACCOUNT>

Similarly, the request message to invoke the second overload of the GET_ACCOUNT procedure is:

Copy Code
<GET_ACCOUNT xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/GET_ACCOUNT/overload2">
  <ANAME>Mindy Martin</ANAME>
</GET_ACCOUNT>

The first request message invokes the GET_ACCOUNT procedure to retrieve record with account ID equal to 100020. The second request message invokes the GET_ACCOUNT procedure to retrieve records having the account name as "John Smith".

The orchestration consumes the request messages and sends them to the Oracle database. The response from the Oracle database is saved at other FILE location defined as part of the orchestration. For example, the response for invoking the first overloaded procedure is:

Copy Code
<?xml version="1.0" encoding="utf-8"?>
<GET_ACCOUNTResponse mlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/GET_ACCOUNT/overload1">
 <ACCT>
  <ACCTID>100001</ACCTID>
  <NAME>Ty Carlson</NAME>
  <BALANCE>9000</BALANCE>
 </ACCT>
</GET_ACCOUNTResponse>

Possible Exceptions

For information about the exceptions you might encounter while invoking overloaded packages using BizTalk Server, see Exceptions and Error Handling.

Best Practices

After you have deployed and configured the BizTalk project, you can export configuration settings to an XML file called the bindings file. Once you generate a bindings file, you can import the configuration settings from the file so that you do not need to create the send ports, receive ports, etc. for the same orchestration. For more information about binding files, see Reusing Adapter Bindings.

See Also

Other Resources

Developing BizTalk Applications


Invoking Functions and Procedures with REF CURSORS by Using BizTalk Server

A REF CURSOR is a PL/SQL data type that represents a pointer to a server-side result set generated by executing a query. A REF CURSOR type enables input and output streaming of data and is ideal for transferring large amounts of data to and from a PL/SQL code. The Oracle Database adapter provides support for strongly-typed and weakly-typed (SYS_REFCURSOR) REF CURSORs that can be passed to PL/SQL procedures and functions as IN, OUT, or IN OUT parameters. For more information about how the Oracle Database adapter supports REF CURSORs, see Operations on Functions and Procedures with REF CURSOR Parameters. For information about the XML structure for REF CURSORS, see Message Schemas for REF CURSORS.

How to Invoke Functions in an Oracle Database?

Performing an operation on an Oracle database using Oracle Database adapter with BizTalk Server involves procedural tasks described in Building Blocks for Developing BizTalk Applications. To invoke a function in an Oracle database that takes REF CURSOR as in parameters and gives REF CURSOR as out parameters, these tasks are:

  1. Create a BizTalk project and generate schema for the function you want to invoke in an Oracle database.

  2. Create messages in the BizTalk project for sending and receiving messages from the Oracle database.

  3. Create an orchestration to invoke the function in the Oracle database.

  4. Build and deploy the BizTalk project.

  5. Configure the BizTalk application by creating physical send and receive ports.

  6. Start the BizTalk application.

This topic provides instructions to perform these tasks.

Sample Based On This Topic

A sample, Func_RefCursor, based on this topic is also provided with the BizTalk Adapter Pack. For more information, see Samples.

Generating Schema

In this topic, to demonstrate how the Oracle Database adapter supports invoking function that takes REF CURSOR parameters we will invoke the GET_ACTIVITY procedure. This procedure takes a weakly-typed IN REF CURSOR and a strongly-typed IN OUT REF CURSOR as parameters. The function returns a status, a weakly-typed OUT REF CURSOR and a strongly-typed IN OUT REF CUROSR. The GET_ACTIVITY procedure is available as part of the ACCOUNT_PKG created by running the SQL scripts provided with the samples. To know more about the samples and the SQL scripts, see Samples.

So, to invoke the GET_ACTIVITY procedure, we generate schema for the same procedure under the SCOTT\Package\ACCOUNT_PKG schema. See Retrieving Metadata for Oracle Operations in Visual Studio for more information about how to generate schema.

Defining Messages and Message Types

The schema that you generated earlier describes the "types" required for the messages in the orchestration. A message is typically a variable, the type for which is defined by the corresponding schema. You must link the schema you generated in the first step to the messages from the Orchestration View window of the BizTalk project.

For this topic, you must create two messages—one to send a request to the Oracle database and the other to receive a response.

Perform the following steps to create messages and link them to the schema:

To create messages and link to schema

  1. Open the Orchestration View window of the BizTalk project, if it is not already open. To do this, click View, point to Other Windows, and then click Orchestration View.

  2. In Orchestration View, right-click Messages, and then click New Message.

  3. Right-click the newly created message, and then select Properties Window.

  4. In the Properties pane for Message_1, do the following:

    Use this To do this

    Identifier

    Type Request.

    Message Type

    From the drop-down list, expand Schemas, and select Func_RefCursor.OracleDBBindingSchema.GET_ACTIVITY, where Func_RefCursor is the name of your BizTalk project. OracleDBBindingSchema is the schema generated for the GET_ACTIVITY procedure.

  5. Repeat the previous step to create a new message. In the Properties pane for the new message, do the following:

    Use this To do this

    Identifier

    Type Response.

    Message Type

    Func_RefCursor.OracleDBBindingSchema.GET_ACTIVITYResponse

Setting up the Orchestration

You must create a BizTalk orchestration to use BizTalk Server for invoking a procedure with REF CURSOR parameters. In this orchestration, you drop a request message at a defined receive location. The Oracle Database adapter consumes this message and passes it on to the Oracle database via ODP. The response from the Oracle database is saved to another location. A typical orchestration for invoking functions and procedures with REF CURSORs would contain:

  • Send and Receive shapes to send messages to Oracle database and receive responses.

  • A one-way receive port to receive request messages to send to the Oracle database.

  • A two-way send port to send request messages to Oracle database and receive responses.

  • A one-way send port to send the responses from Oracle database to a folder.

A sample orchestration resembles the following:

Orchestrations for using Ref Cursors in Oracle

Adding Message Shapes

Make sure you specify the following properties for each of the message shapes. The names listed in the Shape column are the names of the message shapes as displayed in the just-mentioned orchestration.

Shape Shape Type Properties

ReceiveMessage

Receive

  • Set Name to ReceiveMessage

  • Set Activate to True

SendMessage

Send

  • Set Name to SendMessage

ReceiveResponse

Receive

  • Set Name to ReceiveResponse

  • Set Activate to False

SendResponse

Send

  • Set Name to SendResponse

Adding Ports

Make sure you specify the following properties for each of the logical ports. The names listed in the Port column are the names of the ports as displayed in the orchestration.

Port Properties

FileIn

  • Set Identifier to FileIn

  • Set Type to FileInType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Receive

LOBPort

  • Set Identifier to LOBPort

  • Set Type to LOBPortType

  • Set Communication Pattern to Request-Response

  • Set Communication Direction to Send-Receive

SaveResponse

  • Set Identifier to SaveResponse

  • Set Type to SaveResponseType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Send

Specify Messages for Action Shapes, and Connect Them to Ports

The following table specifies the properties and their values that you should set to specify messages for action shapes and to link them to the ports. The names listed in the Shape column are the names of the message shapes as displayed in the orchestration mentioned earlier.

Shape Properties

ReceiveMessage

  • Set Message to Request

  • Set Operation to FileIn.REFCURSOR.Request

SendMessage

  • Set Message to Request

  • Set Operation to LOBPort.REFCURSOR.Request

ReceiveResponse

  • Set Message to Response

  • Set Operation to LOBPort.REFCURSOR.Response

SendResponse

  • Set Message to Response

  • Set Operation to SaveResponse.REFCURSOR.Request

After you have specified these properties, the message shapes and ports are connected and your orchestration is complete.

You must now build the BizTalk solution and deploy it to a BizTalk Server. For more information, see http://go.microsoft.com/fwlink/?LinkId=102359.

Configuring the BizTalk Application

After you have deployed the BizTalk project, the orchestration you created earlier is listed under the Orchestrations pane in the BizTalk Server Administration console. You must use the BizTalk Server Administration console to configure the application. For more information about configuring an application, see http://go.microsoft.com/fwlink/?LinkID=196961.

Configuring an application involves:

  • Selecting a host for the application.

  • Mapping the ports that you created in your orchestration to physical ports in the BizTalk Server Administration console. For this orchestration you must:

    • Define a location on the hard disk and a corresponding file port where you will drop a request message. The BizTalk orchestration will consume the request message and send it to the Oracle database.

    • Define a location on the hard disk and a corresponding file port where the BizTalk orchestration will drop the response message containing the response from the Oracle database.

    • Define a physical WCF-Custom or WCF-OracleDB send port to send messages to the Oracle database. You must also specify the action in the send port. For information about how to create WCF-Custom or WCF-OracleDB ports, see Manually Configuring a Physical Port Binding to the Oracle Database Adapter.

      Note
      Generating the schema using the Consume Adapter Service BizTalk Project Add-in also creates a binding file containing information about the ports and the actions to be set for those ports. You can import this binding file from the BizTalk Server Administration console to create send ports (for outbound calls) or receive ports (for inbound calls). For more information, see Configuring a Physical Port Binding by Using a Port Binding File.

Starting the Application

You must start the BizTalk application for invoking a procedure in an Oracle database table. For instructions on starting a BizTalk application, see http://go.microsoft.com/fwlink/?LinkId=102387.

At this stage, make sure:

  • The FILE receive port to receive request messages for the orchestration is running.

  • The FILE send port to receive the response messages from the orchestration is running.

  • The WCF-Custom or WCF-OracleDB send port to send messages to the Oracle database is running.

  • The BizTalk orchestration for the operation is running.

Executing the Operation

After you run the application, you must drop a request message to the FILE receive location. The schema for the request message must conform to the schema for the procedure you generated earlier. See Message Schemas for Functions and Procedures for more information about the request message schema for invoking functions using the Oracle Database adapter.

To invoke the GET_ACTIVITY procedure, you must specify a weakly-typed IN REF CURSOR and a strongly-typed IN OUT REF CURSOR as parameters. So, the request message to invoke this procedure is:

Copy Code
<GET_ACTIVITY xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">
  <INRECS>BEGIN OPEN ? FOR SELECT * FROM ACCOUNTACTIVITY WHERE ACCOUNT=100001; END;</INRECS>
  <INOUTRECS_IN>BEGIN ACCOUNT_PKG.GET_ALL_ACTIVITY(?); END;</INOUTRECS_IN>
</GET_ACTIVITY>

The orchestration consumes the request message and sends it to the Oracle database. The response from the Oracle database is saved at the other FILE location defined as part of the orchestration.

The response for the above request message is:

Copy Code
<?xml version="1.0" encoding="utf-8" ?>
<GET_ACTIVITYResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">
  <STATUS>5</STATUS>
  <INOUTRECS>
    <INOUTRECSRECORD xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/GET_ACTIVITY">
      <TID>1</TID>
      <ACCOUNT>100001</ACCOUNT>
      <AMOUNT>500</AMOUNT>
      <DESCRIPTION />
      <TRANSDATE>2007-10-16T16:58:44</TRANSDATE>
      <PROCESSED>n</PROCESSED>
    </INOUTRECSRECORD>
    <INOUTRECSRECORD xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/GET_ACTIVITY">
      .....
      .....
    </INOUTRECSRECORD>
    ....
    ....
  </INOUTRECS>
  <OUTRECS>
    <GenRecordRow xmlns="http://Microsoft.LobServices.OracleDB/2007/03">
      <GenRecordColumn>
        <GenRecordColumn>
          <ColumnName>TID</ColumnName>
          <ColumnValue>1</ColumnValue>
          <ColumnType>System.Decimal</ColumnType>
        </GenRecordColumn>
        <GenRecordColumn>
          ....
        </GenRecordColumn>
        .....
        .....
      </GenRecordColumn>
    </GenRecordRow>
    <GenRecordRow xmlns="http://Microsoft.LobServices.OracleDB/2007/03">
      .....
      .....
    </GenRecordRow>
    .....
    .....
  </OUTRECS>
</GET_ACTIVITYResponse>

Note that the response contains a status, a weakly-typed OUT REF CURSOR and a strongly-typed IN OUT REF CUROSR.

Possible Exceptions

For information about the exceptions you might encounter while invoking functions and procedures using BizTalk Server, see Exceptions and Error Handling.

Best Practices

After you have deployed and configured the BizTalk project, you can export configuration settings to an XML file called the bindings file. Once you generate a bindings file, you can import the configuration settings from the file so that you do not need to create the send ports, receive ports, etc. for the same orchestration. For more information about binding files, see Reusing Adapter Bindings.

See Also

Other Resources

Developing BizTalk Applications


Invoking Functions and Procedures with RECORD Types by Using BizTalk Server

Oracle RECORD types are used to represent hierarchical information in parameters passed to PL/SQL functions and procedures. The Microsoft BizTalk Adapter for Oracle Database surfaces RECORD types as complex XML types. For more information about how the Oracle Database adapter supports RECORD Types, see Operations on Functions and Procedures with RECORD Types. For information about the XML structure for RECORD Types, see Message Schemas for RECORD Types.

How to Invoke Functions in an Oracle Database?

Performing an operation on an Oracle database using Oracle Database adapter with BizTalk Server involves procedural tasks described in Building Blocks for Developing BizTalk Applications. To invoke a function in an Oracle database that returns simple and nested RECORD types, these tasks are:

  1. Create a BizTalk project and generate schema for the function you want to invoke in an Oracle database.

  2. Create messages in the BizTalk project for sending and receiving messages from the Oracle database.

  3. Create an orchestration to invoke the function in the Oracle database.

  4. Build and deploy the BizTalk project.

  5. Configure the BizTalk application by creating physical send and receive ports.

  6. Start the BizTalk application.

This topic provides instructions to perform these tasks.

Sample Based On This Topic

A sample, Func_RecordTypes, based on this topic is also provided with the BizTalk Adapter Pack. For more information, see Samples.

Generating Schema

In this topic, to demonstrate how the Oracle Database adapter supports invoking function that return RECORD type parameters we will invoke:

  • The GET_ACCOUNTADDRESS function that returns a simple RECORD type.

  • The GET_ACCOUNTINFO function that returns a nested RECORD type.

These functions are available as part of the ACCOUNT_PKG created by running the SQL scripts provided with the samples. To know more about the samples and the SQL scripts, see Samples.

So, we must generate schema for the both the functions, GET_ACCOUNTADDRESS and GET_ACCOUNTINFO, available under the SCOTT\Package\ACCOUNT_PKG schema. See Retrieving Metadata for Oracle Operations in Visual Studio for more information about how to generate schema.

Defining Messages and Message Types

The schema that you generated earlier describes the "types" required for the messages in the orchestration. A message is typically a variable, the type for which is defined by the corresponding schema. You must link the schema you generated in the first step to the messages from the Orchestration View window of the BizTalk project.

For this topic, you must create two request-response message sets—one request-response set to invoke the GET_ACCOUNTADDRESS function and receive a response; the other request-response message set to invoke the GET_ACCOUNTINFO function and receive a response.

Perform the following steps to create messages and link them to the schema.

To create messages and link to schema

  1. Open the Orchestration View window of the BizTalk project, if it is not already open. To do so, click View, point to Other Windows, and then click Orchestration View.

  2. In Orchestration View, right-click Messages, and then click New Message.

  3. Right-click the newly created message, and then select Properties Window.

  4. In the Properties pane for Message_1, do the following:

    Use this To do this

    Identifier

    Type Request.

    Message Type

    From the drop-down list, expand Schemas, and select Func_RecordTypes.OracleDBBindingSchema.GET_ACCOUNTINFO, where Func_RecordTypes is the name of your BizTalk project. OracleDBBindingSchema is the schema generated for the GET_ACCOUNTADDRESS function.

  5. Repeat the previous step to create three more messages. In the Properties pane for the new messages, do the following:

    Set Identifier to Set Message Type to

    Response

    Func_RecordTypes.OracleDBBindingSchema.GET_ACCOUNTINFOResponse

    Request2

    Func_RecordTypes.OracleDBBindingSchema.GET_ACCOUNTADDRESS

    Response2

    Func_RecordTypes.OracleDBBindingSchema.GET_ACCOUNTADDRESSResponse

Setting up the Orchestration

You must create a BizTalk orchestration to use BizTalk Server for invoking a function returns simple and complex RECORD types. In this orchestration, you drop two request messages:

  • One for the GET_ACCOUNTADDRESS function that returns a simple RECORD type.

  • One for the GET_ACCOUNTINFO function that returns a nested RECORD type.

These messages are dropped at a receive location. The Oracle Database adapter consumes the messages and passes them on to the Oracle database via ODP. The response from the Oracle database is saved to another location. Because the orchestration picks two requests simultaneously, you need to include a Parallel Actions shape in the orchestration. For each parallel action, you must include Send and Receive shapes to send messages to Oracle database and receive responses, respectively. However, you could use the same ports for sending and receiving messages for both operations. A typical orchestration for performing both operations simultaneously would contain:

  • Send and Receive shapes to send messages to Oracle database and receive responses.

  • A one-way receive port to receive request messages to send to the Oracle database.

  • A two-way send port to send request messages to Oracle database and receive responses.

  • A one-way send port to send the responses from Oracle database to a folder.

A sample orchestration resembles the following:

Orchestration for using Record Types in Oracle

Adding Message Shapes

Make sure you specify the following properties for each of the message shapes. The names listed in the Shape column are the names of the message shapes as displayed in the just-mentioned orchestration. The following table lists the shapes you must include for one of the parallel actions.

Shape Shape Type Properties

ReceiveMessage

Receive

  • Set Name to ReceiveMessage

  • Set Activate to True

SendMessage

Send

  • Set Name to SendMessage

ReceiveResponse

Receive

  • Set Name to ReceiveResponse

  • Set Activate to False

SendResponse

Send

  • Set Name to SendResponse

The following table lists the shapes that you must include for the other parallel action.

Shape Shape Type Properties

ReceiveMessage2

Receive

  • Set Name to ReceiveMessage2

  • Set Activate to True

SendMessage2

Send

  • Set Name to SendMessage2

ReceiveResponse2

Receive

  • Set Name to ReceiveResponse2

  • Set Activate to False

SendResponse2

Send

  • Set Name to SendResponse2

Adding Ports

Make sure you specify the following properties for each of the logical ports. The names listed in the Port column are the names of the ports as displayed in the orchestration.

Port Properties

FileIn

  • Set Identifier to FileIn

  • Set Type to FileInType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Receive

LOBPort

  • Set Identifier to LOBPort

  • Set Type to LOBPortType

  • Set Communication Pattern to Request-Response

  • Set Communication Direction to Send-Receive

SaveResponse

  • Set Identifier to SaveResponse

  • Set Type to SaveResponseType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Send

Because you will be processing two request and response messages using these ports, you must create two operations for each port, where each operation corresponds to one message type. To create an operation, right-click the port shape and select New Operation. Name the first operation for each port as NestedRecType and the second operation for each port as SimpleRecType.

Using Correlations

Correlation is the process of matching an incoming message with the appropriate instance of an orchestration. In the orchestration you will be dropping two request messages, one for each overload. Using correlation, you associate a request message with the right orchestration. For more information about correlation, see http://go.microsoft.com/fwlink/?LinkId=103055.

To use correlations

  1. Promote a property from the schema generated for each function. For example, promote the CUSTNAME property from the schema of GET_ACCOUNTADDRESS function; promote the AID property from the schema of GET_ACCOUNTINFO function. To promote a property, right-click the property in the schema view, point to Promote, and then select Quick Promotion. This adds a PropertySchema.xsd file to your BizTalk project.

    For information about promoting a property, see http://go.microsoft.com/fwlink/?LinkId=102358.

  2. From Orchestration View, right-click Correlation Types, and then select New Correlation Type.

  3. The Correlation Properties dialog box lists the properties you promoted in step 1. Select a property, and then click Add.

  4. Click OK.

  5. To create correlation types for the other promoted property, repeat these steps.

  6. Rename the correlation types based on the property to which they are associated. You could rename the correlation types to CorrelationType_CUSTNAME (for CUSTNAME property) and CorrelationType_AID (for AID property).

  7. From Orchestration View, right-click Correlation Sets, and then select New Correlation Set.

  8. Right-click the newly added correlation set, and then click Properties. In the Properties pane, do the following:

    Use this To do this

    Correlation Type

    Func_RecordTypes.CorrelationType_CUSTNAME

    Identifier

    Correlation_CUSTNAME

  9. Add another correlation set and specify the following properties from the Properties pane.

    Use this To do this

    Correlation Type

    Func_RecordTypes.CorrelationType_AID

    Identifier

    Correlation_AID

Specify Messages for Action Shapes, and Connect Them to Ports

The following table specifies the properties and their values that you should set to specify messages for action shapes and to link them to the ports. The names listed in the Shape column are the names of the message shapes as displayed in the orchestration mentioned earlier.

Shape Properties

ReceiveMessage

  • Set Initializing Correlation Sets to Correlation_AID

  • Set Message to Request

  • Set Operation to FileIn.NestedRecType.Request

SendMessage

  • Set Message to Request

  • Set Operation to LOBPort.NestedRecType.Request

ReceiveResponse

  • Set Message to Response

  • Set Operation to LOBPort.NestedRecType.Response

SendResponse

  • Set Message to Response

  • Set Operation to SaveResponse.NestedRecType.Request

ReceiveMessage2

  • Set Initializing Correlation Sets to Correlation_CUSTNAME

  • Set Message to Request2

  • Set Operation to FileIn.SimpleRecType.Request

SendMessage2

  • Set Message to Request2

  • Set Operation to LOBPort.SimpleRecType.Request

ReceiveResponse2

  • Set Message to Response2

  • Set Operation to LOBPort.SimpleRecType.Response

SendResponse2

  • Set Message to Response

  • Set Operation to SaveResponse.SimpleRecType.Request

After you have specified these properties, the message shapes and ports are connected and your orchestration is complete.

You must now build the BizTalk solution and deploy it to a BizTalk Server. For more information, see http://go.microsoft.com/fwlink/?LinkId=102359.

Configuring the BizTalk Application

After you have deployed the BizTalk project, the orchestration you created earlier is listed under the Orchestrations pane in the BizTalk Server Administration console. You must use the BizTalk Server Administration console to configure the application. For more information about configuring an application, see http://go.microsoft.com/fwlink/?LinkID=196961.

Configuring an application involves:

  • Selecting a host for the application.

  • Mapping the ports that you created in your orchestration to physical ports in the BizTalk Server Administration console. For this orchestration you must:

  • Define a location on the hard disk and a corresponding file port where you will drop the request messages, one for each overloaded procedure. The BizTalk orchestration will consume the request messages and send it to the Oracle database.

  • Define a location on the hard disk and a corresponding file port where the BizTalk orchestration will drop the response messages, one for each function, containing the response from the Oracle database.

    • Define a physical WCF-Custom or WCF-OracleDB send port to send messages to the Oracle database. You must also specify the action in the send port. For information about how to create WCF-Custom or WCF-OracleDB ports, see Manually Configuring a Physical Port Binding to the Oracle Database Adapter. Because the WCF-Custom or WCF-OracleDB send port sends and receive messages conforming to more than one schema and performs two operations, you must set dynamic action for both the operations. For more information about actions, see Specifying SOAP Action. For this orchestration, the action should be set as follows:

      Copy Code
      <BtsActionMapping>
  <Operation Name="NestedRecType" Action="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/GET_ACCOUNTINFO" />
  <Operation Name="SimpleRecType" Action="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/GET_ACCOUNTADDRESS" />
</BtsActionMapping>
      Note
      Generating the schema using the Consume Adapter Service BizTalk Project Add-in also creates a binding file containing information about the ports and the actions to be set for those ports. You can import this binding file from the BizTalk Server Administration console to create send ports (for outbound calls) or receive ports (for inbound calls). For more information, see Configuring a Physical Port Binding by Using a Port Binding File.

Starting the Application

You must start the BizTalk application for invoking a function in an Oracle database table. For instructions on starting a BizTalk application, see http://go.microsoft.com/fwlink/?LinkId=102387.

At this stage, make sure:

  • The FILE receive port to receive request messages for the orchestration is running.

  • The FILE send port to receive the response messages from the orchestration is running.

  • The WCF-Custom or WCF-OracleDB send port to send messages to the Oracle database is running.

  • The BizTalk orchestration for the operation is running.

Executing the Operation

After you run the application, you must drop two request messages (one for each function) to the FILE receive location. The schema for the request messages must conform to the schema for the functions you generated earlier. The orchestration consumes the request messages and sends them to the Oracle database. The response from the Oracle database is saved at other FILE location defined as part of the orchestration.

See Message Schemas for Functions and Procedures for more information about the request message schema for invoking functions using the Oracle Database adapter.

For example, the request message to invoke the GET_ACCOUNINFO function is:

Copy Code
<GET_ACCOUNTINFO xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">
  <AID>100000</AID>
</GET_ACCOUNTINFO>

Similarly, the request message to invoke the GET_ACCOUNTADDRESS function is:

Copy Code
<GET_ACCOUNTADDRESS xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">
  <CUSTNAME>Mindy Martin</CUSTNAME>
</GET_ACCOUNTADDRESS>

The first request message invokes the GET_ACCOUNTINFO function that returns a nested record type. The response message for invoking the GET_ACCOUNTINFO function is:

Copy Code
<?xml version="1.0" encoding="utf-8" ?>
<GET_ACCOUNTINFOResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">
  <GET_ACCOUNTINFOResult>
    <ACCT xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/GET_ACCOUNTINFO">
      <ACCTID>100000</ACCTID>
      <NAME>Kim Ralls</NAME>
      <BALANCE>10000</BALANCE>
    </ACCT>
    <ADDRESS xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/GET_ACCOUNTINFO">
      <STREET>1234 Main St.</STREET>
      <CITY>Seattle</CITY>
      <STATE>WA</STATE>
    </ADDRESS>
  </GET_ACCOUNTINFOResult>
</GET_ACCOUNTINFOResponse>

The second request message invokes the GET_ACCOUNTADDRESS function that returns a simple record type. The response message for invoking the GET_ACCOUNTADDRESS function is:

Copy Code
<?xml version="1.0" encoding="utf-8"?>
<GET_ACCOUNTADDRESSResponse mlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">
  <GET_ACCOUNTADDRESSResult>
    <ID xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/GET_ACCOUNTADDRESS">100004</ID>
    <NAME xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/GET_ACCOUNTADDRESS">Mindy Martin</NAME>
    <STREET xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/GET_ACCOUNTADDRESS">6789 Cherry St.</STREET>
    <CITY xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/GET_ACCOUNTADDRESS">New York</CITY>
    <STATE xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/GET_ACCOUNTADDRESS">NY</STATE>
  </GET_ACCOUNTADDRESSResult>
</GET_ACCOUNTADDRESSResponse>

Possible Exceptions

For information about the exceptions you might encounter while invoking functions or procedures using BizTalk Server, see Exceptions and Error Handling.

Best Practices

After you have deployed and configured the BizTalk project, you can export configuration settings to an XML file called the bindings file. Once you generate a bindings file, you can import the configuration settings from the file so that you do not need to create the send ports, receive ports, etc. for the same orchestration. For more information about binding files, see Reusing Adapter Bindings.

See Also

Other Resources

Developing BizTalk Applications


Performing Operations on Tables with BFILE Data Types by Using BizTalk Server

The Oracle Database adapter supports the BFILE data type in tables and stored procedures. This section provides information on how to perform operations on tables that have a column of BFILE data type. For more information about how the Oracle Database adapter supports BFILE, see Operations on Tables With BFILE Data Types.

Setting Up Your Oracle Database Server for Operations on BFILE

This section demonstrates how to invoke a procedure that inserts a record into the SCOTT.CUSTOMERDOC table. This table contains a column of BFILE data type and is created by running the SQL scripts shipped with the BizTalk Adapter Pack samples. To know more about the samples and the SQL scripts, see Samples.

After you have run the script to create the CUSTOMERDOC table, you must perform certain actions on the computer running the Oracle database to enable operations on BFILE data types. The tasks that you must perform on the Oracle database are:

  1. Create a directory C:\MYDIR on the computer running the Oracle database.

  2. Create a logical directory in the Oracle database. This usually requires a user with SYSDBA privileges. For example:

    Copy Code
    CREATE OR REPLACE DIRECTORY MYDIR AS 'C:\MYDIR';
  3. Add privileges to the user to access the logical directory in Oracle. For example:

    Copy Code
    GRANT READ, WRITE ON DIRECTORY MYDIR to SCOTT;
  4. Copy the files to be accessed into the physical directory location, on the computer running the Oracle database, associated with the logical directory in Oracle. You created this directory in step 1.

    Based on the example above, copy a file, customer_profile.txt into directory C:\MYDIR. This file is now available for BFILE operations. For more information about performing operations, see Performing Operations on Tables with Large Object Types Data by Using BizTalk Server.

    Important
    The ReadLOB operation is supported on tables with the BFILE data type. The UpdateLOB operation is NOT supported. However, users can alternately use the UPDATE operation.

How to Perform Operations Using BFILE Data Types

Performing an operation on an Oracle database using Oracle Database adapter with BizTalk Server involves procedural tasks described in Building Blocks for Developing BizTalk Applications. To invoke a procedure that inserts a record into the SCOTT.CUSTOMERDOC table, these tasks are:

  1. Create a BizTalk project and generate schema for the CREATE_CUSTOMERDOC stored procedure.

  2. Create messages in the BizTalk project for sending and receiving messages from the Oracle database.

  3. Create an orchestration to invoke the operation on the Oracle database table or view.

  4. Build and deploy the BizTalk project.

  5. Configure the BizTalk application by creating physical send and receive ports.

  6. Start the BizTalk application.

This topic provides instructions to perform these tasks.

Sample Based On This Topic

A sample, Operate_BFILE, based on this topic is also provided with the BizTalk Adapter Pack. For more information, see Samples.

Generating Schema

In this topic, to demonstrate how to perform operations on a table with BFILE columns, we will invoke the CREATE_CUSTOMERDOC procedure. This procedure is created under the SCOTT\Package\ACCOUNT_PKG schema by running the SQL scripts provided with the samples. This procedure takes BFILE record type and adds a record in the CUSTOMERDOC table. For more information about the SQL scripts, see Samples.

See Retrieving Metadata for Oracle Operations in Visual Studio for more information about how to generate schema.

Defining Messages and Message Types

The schema that you generated earlier describes the "types" required for the messages in the orchestration. A message is typically a variable, the type for which is defined by the corresponding schema. You must link the schema you generated in the first step to the messages from the Orchestration View window of the BizTalk project.

For this topic, you must create two messages—one to send a request to the Oracle database and the other to receive a response.

Perform the following steps to create messages and link them to the schema.

To create messages and link to schema

  1. Open the Orchestration View window of the BizTalk project, if it is not already open. To do so, click View, point to Other Windows, and then click Orchestration View.

  2. In Orchestration View, right-click Messages, and then click New Message.

  3. Right-click the newly created message and then select Properties Window.

  4. In the Properties pane for Message_1, do the following:

    Use this To do this

    Identifier

    Type Request.

    Message Type

    From the drop-down list, expand Schemas, and then select BFILE_Operations.OracleDBBindingSchema.CREATE_CUSTOMERDOC, where BFILE_Operations is the name of your BizTalk project. OracleDBBindingSchema is the schema generated for the CREATE_CUSTOMERDOC procedure.

  5. Repeat step 2 to create a new message. In the Properties pane for the new message, do the following:

    Use this To do this

    Identifier

    Type Response.

    Message Type

    From the drop-down list, expand Schemas, and then select BFILE_Operations.OracleDBBindingSchema.CREATE_CUSTOMERDOCResponse.

Setting up the Orchestration

You must create a BizTalk orchestration to use BizTalk Server for executing a procedure. In this orchestration, you drop a request message at a defined receive location. The Oracle Database adapter consumes this message and passes it on to the Oracle database via ODP. The response from the Oracle database is saved to another location. A typical orchestration for performing operations on BFILE columns in an Oracle database table would contain:

  • Send and Receive shapes to send messages to Oracle database and receive responses.

  • A one-way receive port to receive request messages to send to the Oracle database.

  • A two-way send port to send request messages to Oracle database and receive responses.

  • A one-way send port to send the responses from Oracle database to a folder.

A sample orchestration resembles the following:

Orchestration to perform operations with BFILE

Adding Message Shapes

Make sure you specify the following properties for each of the message shapes. The names listed in the Shape column are the names of the message shapes as displayed in the just-mentioned orchestration.

Shape Shape Type Properties

ReceiveMessage

Receive

  • Set Name to ReceiveMessage

  • Set Activate to True

SendMessage

Send

  • Set Name to SendMessage

ReceiveResponse

Receive

  • Set Name to ReceiveResponse

  • Set Activate to False

SendResponse

Send

  • Set Name to SendResponse

Adding Ports

Make sure you specify the following properties for each of the logical ports. The names listed in the Port column are the names of the ports as displayed in the orchestration.

Port Properties

FileIn

  • Set Identifier to FileIn

  • Set Type to FileInType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Receive

LOBPort

  • Set Identifier to LOBPort

  • Set Type to LOBPortType

  • Set Communication Pattern to Request-Response

  • Set Communication Direction to Send-Receive

SaveResponse

  • Set Identifier to SaveResponse

  • Set Type to SaveResponseType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Send

Specify Messages for Action Shapes, and Connect Them to Ports

The following table specifies the properties and their values that you should set to specify messages for action shapes and to link the messages to the ports. The names listed in the Shape column are the names of the message shapes as displayed in the orchestration mentioned earlier.

Shape Properties

ReceiveMessage

  • Set Message to Request

  • Set Operation to FileIn.Create_BFILE.Request

SendMessage

  • Set Message to Request

  • Set Operation to LOBPort.Create_BFILE.Request

ReceiveResponse

  • Set Message to Response

  • Set Operation to LOBPort.Create_BFILE.Response

SendResponse

  • Set Message to Response

  • Set Operation to SaveResponse.Create_BFILE.Request

After you have specified these properties, the message shapes and ports are connected and your orchestration is complete.

You must now build the BizTalk solution and deploy it to a BizTalk Server. For more information, see http://go.microsoft.com/fwlink/?LinkId=102359.

Configuring the BizTalk Application

After you have deployed the BizTalk project, the orchestration you created earlier is listed under the Orchestrations pane in the BizTalk Server Administration console. You must use the BizTalk Server Administration console to configure the application. For more information about configuring an application, see http://go.microsoft.com/fwlink/?LinkID=196961.

Configuring an application involves:

  • Selecting a host for the application.

  • Mapping the ports that you created in your orchestration to physical ports in the BizTalk Server Administration console. For this orchestration you must:

    • Define a location on the hard disk and a corresponding file port where you will drop a request message. The BizTalk orchestration will consume the request message and send it to the Oracle database.

    • Define a location on the hard disk and a corresponding file port where the BizTalk orchestration will drop the response message containing the response from the Oracle database.

    • Define a physical WCF-Custom or WCF-OracleDB send port to send messages to the Oracle database. You must also specify the action in the send port. For information about how to create WCF-Custom or WCF-OracleDB ports, see Manually Configuring a Physical Port Binding to the Oracle Database Adapter.

      Note
      Generating the schema using the Consume Adapter Service BizTalk Project Add-in also creates a binding file that contains information about the ports and the actions to be set for those ports. You can import this binding file from the BizTalk Server Administration console to create send ports (for outbound calls) or receive ports (for inbound calls). For more information, see Configuring a Physical Port Binding by Using a Port Binding File.

Starting the Application

You must start the BizTalk application for invoking the procedure that creates a record in the CUSTOMERDOC table. For instructions on starting a BizTalk application, see http://go.microsoft.com/fwlink/?LinkId=102387.

At this stage, make sure:

  • The FILE receive port to receive request messages for the orchestration is running.

  • The FILE send port to receive the response messages from the orchestration is running.

  • The WCF-Custom or WCF-OracleDB send port to send messages to the Oracle database is running.

  • The BizTalk orchestration for the operation is running.

Executing the Operation

After you run the application, you must drop a request message to the FILE receive location. The schema for the request message must conform to the schema for the procedure you generated earlier. See Message Schemas for Functions and Procedures for more information about the request message schema for invoking procedure using the Oracle Database adapter.

For example, the request message to invoke the CREATE_CUSTOMERDOC procedure is:

Copy Code
<CREATE_CUSTOMERDOC xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">
  <CNAME>John Smith</CNAME>
  <CDOC>MYDIR/John_Smith_profile.txt</CDOC>
</CREATE_CUSTOMERDOC>
Note
The text file, John_Smith_profile.txt must be present in the physical directory location associated with the logical directory in Oracle. For this example, the text file must be present in C:\MYDIR

The orchestration consumes the message and sends it to the Oracle database. The response from the Oracle database is saved at the other FILE location defined as part of the orchestration. For example, the response from Oracle database for the above request message is:

Copy Code
<?xml version="1.0" encoding="utf-8"?>
<CREATE_CUSTOMERDOCResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG"></CREATE_CUSTOMERDOCResponse>
Note
You can create a similar orchestration to read data from tables that have BFILE type fields. The SQL script shipped with the BizTalk Adapter Pack creates an ACCOUNT_PKG that contains a GET_CUSTOMERDOC procedure. You can use this procedure to retrieve BFILE data from the SCOTT.CUSTOMERDOC table.

A sample, Operate_BFILE, is also included with the samples for BizTalk Adapter Pack. This sample demonstrates how to insert records into the SCOTT.CUSTOMERDOC table using the CREATE_CUSTOMERDOC stored procedure (as described in this topic.) The sample also demonstrates how to read BFILE data from the SCOTT.CUSTOMERDOC table using GET_CUSTOMERDOC stored procedure.

Possible Exceptions

For information about the exceptions you might encounter while performing a DML operation using BizTalk Server, see Exceptions and Error Handling.

Best Practices

After you have deployed and configured the BizTalk project, you can export configuration settings to an XML file called the bindings file. Once you generate a bindings file, you can import the configuration settings from the file so that you do not need to create the send ports, receive ports, etc. for the same orchestration. For more information about binding files, see Reusing Adapter Bindings.

See Also

Other Resources

Developing BizTalk Applications


Performing a SQLEXECUTE Operation by Using BizTalk Server

The Oracle Database adapter enables clients to run parameterized SQL statement on an Oracle database. To support such operations, the Oracle Database adapter surfaces a SQLEXECUTE operation. SQLEXECUTE operation supports an input parameter block comprised of parameter sets that enable you to execute the same SQL statement once for each set. The SQLEXECUTE operation returns the results of the SQL statement in a generic record set. For more information about the operation, see SQLEXECUTE Operation. For information about the structure of the SOAP message for SQLEXECUTE operation, see Message Schemas for the SQLEXECUTE Operation.

How to Perform a SQLEXECUTE operation on an Oracle Database?

Performing an operation on an Oracle database using Oracle Database adapter with BizTalk Server involves procedural tasks described in Building Blocks for Developing BizTalk Applications. To perform a SQLEXECUTE operation, these tasks are:

  1. Create a BizTalk project and generate schema for the SQLEXECUTE operation. The SQLEXECUTE operation is surfaced under the root node (/) in the Select a category pane in the Consume Adapter Service BizTalk Project Add-in.

  2. Create messages in the BizTalk project for sending and receiving messages from the Oracle database.

  3. Create an orchestration to invoke the operation on the Oracle database table or view.

  4. Build and deploy the BizTalk project.

  5. Configure the BizTalk application by creating physical send and receive ports.

  6. Start the BizTalk application.

This topic provides instructions to perform these tasks.

Sample Based On This Topic

A sample, SqlExec, based on this topic is also provided with the BizTalk Adapter Pack. For more information, see Samples.

Generating Schema

In this topic, to demonstrate how to run a parameterized SQL query, we will generate schema for SQLEXECUTE operation available at the root node (/) in the Select a category pane in the Consume Adapter Service Add-in. See Retrieving Metadata for Oracle Operations in Visual Studio for more information about how to generate schema.

Defining Messages and Message Types

The schema that you generated earlier describes the "types" required for the messages in the orchestration. A message is typically a variable, the type for which is defined by the corresponding schema. You must link the schema you generated in the first step to the messages from the Orchestration View window of the BizTalk project.

For this topic, you must create two messages—one to send a request to the Oracle database and the other to receive a response.

Perform the following steps to create messages and link them to the schema.

To create messages and link to schema

  1. Open the Orchestration View window of the BizTalk project, if it is not already open. To do so, click View, point to Other Windows, and then click Orchestration View.

  2. In Orchestration View, right-click Messages, and then click New Message.

  3. Right-click the newly created message and then select Properties Window.

  4. In the Properties pane for Message_1, do the following:

    Use this To do this

    Identifier

    Type Request.

    Message Type

    From the drop-down list, expand Schemas, and then select SqlExec.OracleDBBindingSchema.SQLEXECUTE, where SqlExec is the name of your BizTalk project. OracleDBBindingSchema is the schema generated for the SQLEXECUTE operation.

  5. Repeat step 2 to create a new message. In the Properties pane for the new message, do the following:

    Use this To do this

    Identifier

    Type Response.

    Message Type

    From the drop-down list, expand Schemas, and then select SqlExec.OracleDBBindingSchema.SQLEXECUTEResponse.

Setting up the Orchestration

You must create a BizTalk orchestration to use BizTalk Server for running a parameterized SQL query using the SQLEXECUTE operation. In this orchestration, you drop a request message at a defined receive location. The Oracle Database adapter consumes this message and passes it on to the Oracle database via ODP. The response from the Oracle database is saved to another location. A typical orchestration for performing SQLEXECUTE operation on Oracle database would contain:

  • Send and Receive shapes to send messages to Oracle database and receive responses.

  • A one-way receive port to receive request messages to send to the Oracle database.

  • A two-way send port to send request messages to Oracle database and receive responses.

  • A one-way send port to send the responses from Oracle database to a folder.

A sample orchestration for the SQLEXECUTE operation resembles the following:

Orchestration to invoke the SQLEXECUTE operation

Adding Message Shapes

Make sure you specify the following properties for each of the message shapes. The names listed in the Shape column are the names of the message shapes as displayed in the just-mentioned orchestration.

Shape Shape Type Properties

ReceiveMessage

Receive

  • Set Name to ReceiveMessage

  • Set Activate to True

SendMessage

Send

  • Set Name to SendMessage

ReceiveResponse

Receive

  • Set Name to ReceiveResponse

  • Set Activate to False

SendResponse

Send

  • Set Name to SendResponse

Adding Ports

Make sure you specify the following properties for each of the logical ports. The names listed in the Port column are the names of the ports as displayed in the orchestration.

Port Properties

FileIn

  • Set Identifier to FileIn

  • Set Type to FileInType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Receive

LOBPort

  • Set Identifier to LOBPort

  • Set Type to LOBPortType

  • Set Communication Pattern to Request-Response

  • Set Communication Direction to Send-Receive

SaveResponse

  • Set Identifier to SaveResponse

  • Set Type to SaveResponseType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Send

Specify Messages for Action Shapes, and Connect Them to Ports

The following table specifies the properties and their values that you should set to specify messages for action shapes and to link the messages to the ports. The names listed in the Shape column are the names of the message shapes as displayed in the orchestration mentioned earlier.

Shape Properties

ReceiveMessage

  • Set Message to Request

  • Set Operation to FileIn.SQLEXECUTE.Request

SendMessage

  • Set Message to Request

  • Set Operation to LOBPort.SQLEXECUTE.Request

ReceiveResponse

  • Set Message to Response

  • Set Operation to LOBPort.SQLEXECUTE.Response

SendResponse

  • Set Message to Response

  • Set Operation to SaveResponse.SQLEXECUTE.Request

After you have specified these properties, the message shapes and ports are connected and your orchestration is complete.

You must now build the BizTalk solution and deploy it to a BizTalk Server. For more information, see http://go.microsoft.com/fwlink/?LinkId=102359.

Configuring the BizTalk Application

After you have deployed the BizTalk project, the orchestration you created earlier is listed under the Orchestrations pane in the BizTalk Server Administration console. You must use the BizTalk Server Administration console to configure the application. For more information about configuring an application, see http://go.microsoft.com/fwlink/?LinkID=196961.

Configuring an application involves:

  • Selecting a host for the application.

  • Mapping the ports that you created in your orchestration to physical ports in the BizTalk Server Administration console. For this orchestration you must:

    • Define a location on the hard disk and a corresponding file port where you will drop a request message. The BizTalk orchestration will consume the request message and send it to the Oracle database.

    • Define a location on the hard disk and a corresponding file port where the BizTalk orchestration will drop the response message containing the response from the Oracle database.

    • Define a physical WCF-Custom or WCF-OracleDB send port to send messages to the Oracle database. You must also specify the action in the send port. For information about how to create WCF-Custom or WCF-OracleDB ports, see Manually Configuring a Physical Port Binding to the Oracle Database Adapter.

      Note
      Generating the schema using the Consume Adapter Service BizTalk Project Add-in also creates a binding file that contains information about the ports and the actions to be set for those ports. You can import this binding file from the BizTalk Server Administration console to create send ports (for outbound calls) or receive ports (for inbound calls). For more information, see Configuring a Physical Port Binding by Using a Port Binding File.

Starting the Application

You must start the BizTalk application for performing the SQLEXECUTE operation. For instructions on starting a BizTalk application, see http://go.microsoft.com/fwlink/?LinkId=102387.

At this stage, make sure:

  • The FILE receive port to receive request messages for the orchestration is running.

  • The FILE send port to receive the response messages from the orchestration is running.

  • The WCF-Custom or WCF-OracleDB send port to send messages to the Oracle database is running.

  • The BizTalk orchestration for the operation is running.

Executing the Operation

After you run the application, you must drop a request message to the FILE receive location. The schema for the request message must conform to the schema for the SQLEXECUTE operation you generated earlier. The orchestration consumes the message and sends it to the Oracle database. The response from the Oracle database is saved at the other FILE location defined as part of the orchestration. See Message Schemas for the SQLEXECUTE Operation for more information about the request message schema for invoking a SQLEXECUTE operation.

Because the SQLEXECUTE operation is not surfaced under any Oracle database artifact, you can use the same schema to perform a parameterized SQL query on a view or execute a procedure that operates on some other table.

For example, the following request message performs a parameterized SELECT statement on the ACCOUNT table using the SQLEXECUTE operation. The ACCOUNT table is created under the SCOTT schema by running the SQL scripts provided with the samples. To know more about the samples, see Samples.

Copy Code
<SQLEXECUTE xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SQLEXECUTE">
  <SQLSTATEMENT>select * from ACCOUNT where ACCTID=:num</SQLSTATEMENT>
  <PARAMETERSCHEMA>num number</PARAMETERSCHEMA>
  <PARAMETERSET>
    <PARAMETERDATA xmlns="http://Microsoft.LobServices.OracleDB/2007/03">
      <PARAMETER>
        <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">100000</string>
      </PARAMETER>
    </PARAMETERDATA>
  </PARAMETERSET>
</SQLEXECUTE>

The response from Oracle database for the above request message is:

Copy Code
<?xml version="1.0" encoding="utf-8" ?>
<SQLEXECUTEResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SQLEXECUTE">
  <SQLEXECUTEResult>
    <GenRecordRow xmlns="http://Microsoft.LobServices.OracleDB/2007/03">
      <GenRecordColumn>
        <GenRecordColumn>
          <ColumnName>ACCTID</ColumnName>
          <ColumnValue>100000</ColumnValue>
          <ColumnType>System.Decimal</ColumnType>
        </GenRecordColumn>
        <GenRecordColumn>
          <ColumnName>NAME</ColumnName>
          <ColumnValue>Kim Ralls</ColumnValue>
          <ColumnType>System.String</ColumnType>
        </GenRecordColumn>
        <GenRecordColumn>
          <ColumnName>BALANCE</ColumnName>
          <ColumnValue>10000</ColumnValue>
          <ColumnType>System.Decimal</ColumnType>
        </GenRecordColumn>
      </GenRecordColumn>
    </GenRecordRow>
  </SQLEXECUTEResult>
</SQLEXECUTEResponse>

Possible Exceptions

For information about the exceptions you might encounter while performing a DML operation using BizTalk Server, see Exceptions and Error Handling.

Best Practices

After you have deployed and configured the BizTalk project, you can export configuration settings to an XML file called the bindings file. Once you generate a bindings file, you can import the configuration settings from the file so that you do not need to create the send ports, receive ports, etc. for the same orchestration. For more information about binding files, see Reusing Adapter Bindings.

See Also

Other Resources

Developing BizTalk Applications


Polling Oracle Database by Using BizTalk Server

You can configure the Oracle Database adapter to receive polling-based messages from Oracle database. The adapter provides two ways of polling the Oracle database:

  • Using SELECT statements. You can specify a simple SELECT statement to poll the tables and views in the Oracle database. The adapter executes the SELECT statement at specified intervals and returns the result to the adapter clients.

  • Using stored procedures, functions, or procedures or functions within a package. You can specify a stored procedure, function, or procedure or function within a package to poll the Oracle database. The adapter executes the request message at specified intervals and returns the result to the adapter clients.

The key difference in the two approaches is the way adapter clients specify a polling statement that the adapter uses to poll the Oracle database. While the polling statement for the first approach is a simple SELECT statement, the polling statement for the other approach is a request message that executes the stored procedure, function, or procedure or function within a package. Adapter clients specify the polling statement, for either approach, in the PollingStatement binding property. For more information about the binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

The topics in this section provide instructions on how to poll using a SELECT statement and a stored procedure, function, or procedure or function within a package.

In This Section

  • Polling Oracle DatabaseUsing the SELECT Statement

  • Polling Oracle Database Using Stored Procedures, Functions, or Packaged Procedures and Functions

See Also

Other Resources

Developing BizTalk Applications


Polling Oracle DatabaseUsing the SELECT Statement

You can configure the Oracle Database adapter to receive periodic data-change messages by using a SELECT statement to continuously poll the tables and views in Oracle the Oracle database. You can specify a SELECT statement as a polling statement that the adapter executes periodically to poll the Oracle database. Optionally, you can also specify a post-poll PL/SQL code block that the adapter executes if there is a change in data. This block is often used to update a field on the queried records in the target or to move the queried records to another table or view.

To enable this, you must specify certain binding properties on the Oracle Database adapter. You can also modify the target namespace for the POLLINGSTMT operation by setting the PollingId property in the connection URI. For more information, see Support for Receiving Polling-based Data-changed Messages and Receiving Polling-based Data-changed Messages. For information about the structure of the SOAP message for polling operations, see Message Schemas for the Polling Operations.

Configuring a Polling Operation with Oracle Database Adapter Binding Properties

The following table summarizes the Oracle Database adapter binding properties that you use to configure the adapter to receive data change messages. You must specify these binding properties while configuring the receive port in BizTalk Server Administration console.

Binding Property Description

InboundOperationType

Specifies whether you want to perform Polling or Notification inbound operation. Default is Polling.

PolledDataAvailableStatement

Specifies the SQL statement that the adapter executes to determine whether any data is available for polling. Only if a record is available, the SELECT statement you specify for the PollingStatement binding property will be executed. The default is SELECT 1 FROM DUAL, which implies that the adapter must continue polling irrespective of whether the table being polled has data or not.

PollingInterval

Specifies the interval, in seconds, at which the Oracle Database adapter executes the statement specified for the PolledDataAvailableStatement binding property. The default is 500 seconds. The polling interval determines the time interval between successive polls. If the statement is executed within the specified interval, the adapter sleeps for the remaining time in the interval.

PollingStatement

Specifies the polling statement. To poll using a SELECT statement, you must specify a SELECT statement for this binding property. The default is null.

You must specify a value for PollingStatement binding property to enable polling. The polling statement is executed only if there is data available for polling, which is determined by the PolledDataAvailableStatement binding property.

PollingAction

Specifies the action for the polling operation. You can determine the polling action for a specific operation from the metadata you generate for the operation using the Consume Adapter Service Add-in.

PostPollStatement

Specifies a statement block that is executed after the statement specified by the PollingStatement binding property is executed.

PollWhileDataFound

Specifies whether the Oracle Database adapter ignores the polling interval and continuously executes the polling statement, if data is available in the table being polled. If no data is available in the table, the adapter reverts to execute the polling statement at the specified polling interval. Default is false.

For a more complete description of these properties, see Working with BizTalk Adapter for Oracle Database Binding Properties. For a complete description of how to use the Oracle Database adapter to poll the Oracle database, read further.

How This Topic Demonstrates Polling

In this topic, to demonstrate how the Oracle Database adapter supports receiving data change messages using SELECT statements, create a BizTalk project and generate schema for the POLLINGSTMT operation by setting the PollingStatement binding property to the following:

Copy Code
SELECT * FROM ACCOUNTACTIVITY FOR UPDATE

The ACCOUNTACTIVITY table is created when you run the SQL scripts provided with the samples to create these objects in the database.

Note
The orchestration in this topic polls the ACCOUNTACTIVITY table, which is a base database table created by running the scripts provided with the samples. You must perform similar procedures as described in this topic to poll any other table.

To demonstrate a polling operation, we do the following:

  • Specify a SELECT statement for the PolledDataAvailableStatement binding property to determine where the table being polled (ACCOUNTACTIVITY) has any data. In this example, you can set this binding property as:

    Copy Code
    SELECT COUNT (*) FROM ACCOUNTACTIVITY
    This ensures that the adapter executes the polling statement only when the ACCOUNTACTIVITY table has some records.

  • Specify the SELECT statement as stated earlier for the PollingStatement binding property. This statement retrieves all the rows in the ACCOUNTACTIVITY table.

  • EXECUTE a PL/SQL block as part of the PostPollStatement binding property. This statement will move all data from ACCOUNTACTIVITY table to another table in the database. Once this happens, the next time the statement specified for PollingStatement will be executed, it will not fetch any data.

  • Until more data is added to the ACCOUNTACTIVITY table, you will not get any polling messages. So, you must repopulate the ACCOUNTACTIVITY table with new records. You can do so by running the more_activity_data.sql script provided with the samples. After you run this script, the next polling operation will fetch the new records inserted into the table.

How to Receive Data-change Messages from Oracle

Performing an operation on Oracle database using Oracle Database adapter with BizTalk Server involves the following procedural tasks described in Building Blocks for Developing BizTalk Applications. To configure the adapter to poll Oracle database using a SELECT statement, these tasks are:

  1. Create a BizTalk project, and generate schema for the POLLINGSTMT operation for the table you want to poll.

  2. Create a message in the BizTalk project for receiving messages from Oracle database.

  3. Create an orchestration to receive messages from Oracle and save them to a folder.

  4. Build and deploy the BizTalk project.

  5. Configure the BizTalk application by creating physical send and receive ports.

    Important
    For inbound polling scenarios you must always configure a one-way receive port. Two-way receive ports are not supported for inbound operations.

  6. Start the BizTalk application.

This topic provides instructions to perform these tasks.

Generating Schema

You must generate the schema for the POLLINGSTMT operation. Perform the following tasks while generating the schema using the Consume Adapter Service Add-in.

  • Specify a value for PollingStatement binding property while generating the schema. For more information about this binding property, see Working with BizTalk Adapter for Oracle Database Binding Properties. For example, specify the following as a polling statement:

    Copy Code
    SELECT * FROM ACCOUNTACTIVITY FOR UPDATE
  • Select the contract type as Service (Inbound operation).

  • Generate schema for the POLLINGSTMT operation.

For more information about how to generate schema, see Browsing, Searching, and Retrieving Metadata for Oracle Operations.

Defining Messages and Message Types

The schema that you generated earlier describes the "types" required for the messages in the orchestration. A message is typically a variable, the type for which is defined by the corresponding schema. Once the schema is generated, you must link it to the messages from the Orchestration view of the BizTalk project.

For this topic, you must create one message to receive messages from Oracle.

Perform the following steps to create messages and link them to schema.

To create messages and link to schema

  1. Add an orchestration to the BizTalk project. From the Solution Explorer, right-click the BizTalk project name, point to Add, and then click New Item. Type a name for the BizTalk orchestration and then click Add.

  2. Open the orchestration view window of the BizTalk project, if it is not already open. Click View, point to Other Windows, and then click Orchestration View.

  3. In the Orchestration View, right-click Messages, and then click New Message.

  4. Right-click the newly created message, and then select Properties Window.

  5. In the Properties pane for Message_1, do the following:

    Use this To do this

    Identifier

    Type Receive.

    Message Type

    From the drop-down list, expand Schemas, and select TablePolling.OracleDBBinding, where TablePolling is the name of your BizTalk project. OracleDBBindingSchema is the response schema generated for the POLLINGSTMT operation on ACCOUNTACTIVITY table.

    Important
    Because polling is a one way operation, the schema generated by the adapter does not contain a response node, and hence there is only one root node in the schema. If you use such schemas for a message type, you must identify the schema by the filename of the generated schema.

    For example, if you create schema for a two-way operation, the nodes in the schema file with a name OracleDBBindingSchema may look like “Request” and “Response”. If you want to create a message in the orchestration that maps to the request schema, you can identify the schema in the list by looking for OracleDBBindingSchema.Request. However, in the case of polling operation, because the only node is “POLLINGSTMT”, it is not easy to identify the schema you want to map to because schemas with single nodes are not listed as <schemafilename>.<rootnodename>. Instead, such schemas are listed by only the filename. In such a case, the only way to identify the schema is by the schema filename, for example, OracleDBBindingSchema.

Setting up the Orchestration

You must create a BizTalk orchestration to use BizTalk Server for receiving polling-based data-change messages from Oracle. In this orchestration, the adapter receives the response by executing the SELECT statement specified for the PollingStatement binding property. The response message for the SELECT statement is saved to a FILE location. A typical orchestration for polling Oracle database would contain:

  • Receive and Send shapes to receive messages from Oracle and send to a FILE port, respectively.

  • A one-way receive port to receive messages from Oracle database.

    Important
    For inbound polling scenarios you must always configure a one-way receive port. Two-way receive ports are not supported for inbound operations.

  • A one-way send port to send polling responses from Oracle database.

A sample orchestration resembles the following.

Orchestration for a polling query for Oracle

Adding Message Shapes

Make sure you specify the following properties for each of the message shapes. The names listed in the Shape column are the names of the message shapes as displayed in the just-mentioned orchestration.

Shape Shape Type Properties

ReceiveMessage

Receive

  • Set Name to ReceiveMessage

  • Set Activate to True

SaveMessage

Send

  • Set Name to SaveMessage

Adding Ports

Make sure you specify the following properties for each of the logical ports. The names listed in the Port column are the names of the ports as displayed in the orchestration.

Port Properties

OracleReceivePort

  • Set Identifier to OracleReceivePort

  • Set Type to OracleReceivePortType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Receive

SaveMessagePort

  • Set Identifier to SaveMessagePort

  • Set Type to SaveMessagePortType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Send

Specify Messages for Action Shapes and Connect to Ports

The following table specifies the properties and their values that you should set to specify messages for action shapes and to link the messages to the ports. The names listed in the Shape column are the names of the message shapes as displayed in the orchestration mentioned earlier.

Shape Properties

ReceiveMessage

  • Set Message to Receive

  • Set Operation to OracleReceivePort.Polling.Request

SaveMessage

  • Set Message to Receive

  • Set Operation to SaveMessagePort.Polling.Request

After you have specified these properties, the message shapes and ports are connected and your orchestration is complete.

You must now build the BizTalk solution and deploy it to a BizTalk Server. For more information, see "Building and Running Orchestrations" at http://go.microsoft.com/fwlink/?LinkId=102359.

Configuring the BizTalk Application

After you have deployed the BizTalk project, the orchestration you created earlier is listed under the Orchestrations pane in the BizTalk Server Administration console. You must use the BizTalk Server Administration console to configure the application. For more information about configuring an application, see "How to Configure an Application" at http://go.microsoft.com/fwlink/?LinkID=196961.

Configuring an application involves:

  • Selecting a host for the application.

  • Mapping the ports that you created in your orchestration to physical ports in the BizTalk Server Administration console. For this orchestration you must:

    • Define a location on the hard disk and a corresponding FILE port where the BizTalk orchestration will drop the messages from Oracle. These messages will be in response to the polling statement that you specify for the receive port.

    • Define a physical WCF-Custom or WCF-OracleDB one-way receive port. This port polls the Oracle database. For information about how to create receive ports, see Manually Configuring a Physical Port Binding to the Oracle Database Adapter. Make sure you specify the following binding properties for the receive port.

      Binding Property Value

      InboundOperationType

      Set this to Polling.

      PolledDataAvailableStatement

      For this example, set this binding property to:

      Copy Code
      SELECT COUNT (*) FROM ACCOUNTACTIVITY

      This ensures that the adapter executes the polling statement only when the ACCOUNTACTIVITY table has some records.

      PollingStatement

      For this binding property, specify a SELECT statement to retrieve all records from ACCOUNTACTIVITY table. For this example, set this binding property to:

      Copy Code
      SELECT * FROM ACCOUNTACTIVITY FOR UPDATE

      PostPollStatement

      Specify the post-poll statement to move all data from ACCOUNTACTIVITY table to another table. For this example, set this binding property to:

      Copy Code
      BEGIN ACCOUNT_PKG.PROCESS_ACTIVITY(); END;

      For more information about the different binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

      Note
      We recommend configuring the transaction isolation level and the transaction timeout while performing inbound operations using the Oracle Database adapter. You can do so by adding the service behavior while configuring the receive port. For instruction on how to add the service behavior, see Configure Transaction Isolation Level and Transaction Timeout.

Starting the Application

You must start the BizTalk application for polling Oracle database. For instructions on starting a BizTalk application, see http://go.microsoft.com/fwlink/?LinkId=102387.

At this stage, make sure:

  • The WCF-Custom or WCF-OracleDB one-way receive port, which polls Oracle using the SELECT statement specified for the PollingStatement binding property, is running.

  • The FILE send port, which receives messages from Oracle database, is running.

  • The BizTalk orchestration for the operation is running.

Executing the Operation

After you run the application, the following set of actions take place, in the same sequence:

  • The adapter executes the PolledDataAvailableStatement which returns a positive value indicating the adapter to execute the statement specified for PollingStatement binding property.

  • The adapter executes the SELECT statement for the PollingStatement binding property and returns all the rows in the ACCOUNTACTIVITY table. The response from Oracle database resembles the following:

    Copy Code
    <?xml version="1.0" encoding="utf-8" ?>
<POLLINGSTMT xmlns="http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMT">
  <POLLINGSTMTRECORD>
    <POLLINGSTMTRECORD>
      <TID>1</TID>
      <ACCOUNT>100001</ACCOUNT>
      <AMOUNT>500</AMOUNT>
      <DESCRIPTION />
      <TRANSDATE>2008-08-03T20:10:28</TRANSDATE>
      <PROCESSED>n</PROCESSED>
    <POLLINGSTMTRECORD>
  <POLLINGSTMTRECORD>
      ......
      ......
  </POLLINGSTMTRECORD>
    ......
    ......
  </POLLINGSTMTRECORD>
</POLLINGSTMT>
  • The adapter executes the post-poll statement, which moves all the data from ACCOUNTACTIVITY table to another table.

  • After the polling interval, the adapter again executes PolledDataAvailableStatement. Because ACCOUNTACTIVITY table has no records now, PolledDataAvailableStatement does not return a positive value and hence the adapter does not execute the statement specified for the PollingStatement binding property. As a result, adapter client does not get any polling message.

  • The adapter client will not get any more polling messages until some records are explicitly inserted into the ACCOUNTACTIVITY table. To insert more records, you can run the more_activity_data.sql script provided with the samples. After you run this script, the next time PolledDataAvailableStatement is executed, it returns a positive value. As a result, the adapter executes the polling statement and adapter clients again receive a polling message.

Note
The Oracle Database adapter will continue to poll until you explicitly disable the receive port from the BizTalk Server Administration console.

Possible Exceptions

For information about the exceptions you might encounter while running a polling query on the Oracle database using BizTalk Server, see Exceptions and Error Handling.

Best Practices

After you have deployed and configured the BizTalk project, you can export configuration settings to an XML file called the bindings file. Once you generate a bindings file, you can import the configuration settings from the file so that you do not need to create the send ports and receive ports for the same orchestration. For more information about binding files, see Reusing Adapter Bindings.

See Also

Other Resources

Polling Oracle Database by Using BizTalk Server


Polling Oracle Database Using Stored Procedures, Functions, or Packaged Procedures and Functions

You can configure the Oracle Database adapter to receive periodic data-change messages by using stored procedures, functions, or packaged procedures and functions to periodically poll the Oracle database. You can specify a stored procedure, function, or packaged procedure and function as a polling statement that the adapter executes periodically to poll the Oracle database.

To enable this, you must specify certain binding properties on the Oracle Database adapter. You can also modify the target namespace for the POLLINGSTMT operation by setting the PollingId property in the connection URI. For more information, see Support for Receiving Polling-based Data-changed Messages and Receiving Polling-based Data-changed Messages. For information about the structure of the SOAP message for polling operations, see Message Schemas for the Polling Operations.

Configuring a Polling Operation with Oracle Database Adapter Binding Properties

The Oracle Database adapter executes the polling query and any post-poll PL/SQL code block inside a transaction. The following table summarizes the Oracle Database adapter binding properties that you use to configure the adapter to receive data change messages. You must specify these binding properties while configuring the WCF-Custom or WCF-OracleDB receive port in the BizTalk Server Administration console.

Binding Property Description

InboundOperationType

Specifies whether you want to perform the Polling or Notification inbound operation. Default is Polling.

PolledDataAvailableStatement

Specifies the SQL statement that the adapter executes to determine whether any data is available for polling. Only if a record is available, the stored procedure you specified for the PollingStatement binding property will be executed.

PollingInterval

Specifies the interval, in seconds, at which the Oracle Database adapter executes the statement specified for the PolledDataAvailableStatement binding property. The default is 500 seconds. The polling interval determines the time interval between successive polls. If the statement is executed within the specified interval, the adapter sleeps for the remaining time in the interval. The default is SELECT 1 FROM DUAL, which implies that the adapter must continue polling irrespective of whether the table being polled has data or not.

PollingStatement

Specifies the polling statement. To poll using a stored procedure, function, or packaged procedure or function, you must specify the entire request message for the respective operation in this binding property. The request message must be the same that you send to the adapter for invoking the respective operations as an outbound operation. The default is null.

You must specify a value for PollingStatement binding property to enable polling. The polling statement is executed only if there is data available for polling, which is determined by the PolledDataAvailableStatement binding property.

PollingAction

Specifies the action for the polling operation. You can determine the polling action for a specific operation from the metadata you generate for the operation using the Consume Adapter Service Add-in.

PostPollStatement

Specifies a statement block that is executed after the statement specified by the PollingStatement binding property is executed.

PollWhileDataFound

Specifies whether the Oracle Database adapter ignores the polling interval and continuously executes the polling statement, if data is available in the table being polled. If no data is available in the table, the adapter reverts to execute the polling statement at the specified polling interval. Default is false.

For a more complete description of these properties, see Working with BizTalk Adapter for Oracle Database Binding Properties. For a complete description of how to use the Oracle Database adapter to poll the Oracle database, read further.

How This Topic Demonstrates Polling

This topic demonstrates how you can poll the Oracle database using a stored procedure. Create a BizTalk project and generate schema for the stored procedure you want to use to poll the Oracle database. In this topic, we use the GET_ACTIVITYS stored procedure to poll the ACCOUNTACTIVITY table. This stored procedure is available with the ACCOUNT_PKG package in the SCOTT schema. You can run the SQL scripts provided with the samples to create these objects in the database.

Note
The orchestration in this topic polls the ACCOUNTACTIVITY table, which is a database table created by running the scripts provided with the samples. You must perform similar procedures as described in this topic to poll any other table.

To demonstrate a polling operation, we do the following:

  • Specify a SELECT statement for the PolledDataAvailableStatement binding property to determine where the table being polled (ACCOUNTACTIVITY) has any data. In this example, you can set this binding property as:

    Copy Code
    SELECT COUNT (*) FROM ACCOUNTACTIVITY
    This ensures that the adapter executes the polling statement only when the ACCOUNTACTIVITY table has some records.

  • Execute a stored procedure, GET_ACTIVITYS, by providing the request message as part of the PollingStatement binding property. This stored procedure will retrieve all the rows in the ACCOUNTACTIVITY table and you will get a response message from the adapter.

  • EXECUTE a PL/SQL block as part of the PostPollStatement binding property. This statement will move all data from ACCOUNTACTIVITY table to another table in the database. Once this happens, the next time PollingStatement will be executed, it will not fetch any data and hence the GET_ACTIVITYS stored procedure will return an empty response message.

  • Until more data is added to the ACCOUNTACTIVITY table, you will continue to get empty response messages. So, you must repopulate the ACCOUNTACTIVITY table with new records. You can do so by running the more_activity_data.sql script provided with the samples. After you run this script, the next polling operation will fetch the new records inserted into the table.

How to Receive Data-change Messages from Oracle

Performing an operation on Oracle database using Oracle Database adapter with BizTalk Server involves the following procedural tasks described in Building Blocks for Developing BizTalk Applications. To configure the adapter to poll Oracle database using a stored procedure:

  1. Create a BizTalk project, and generate schema for the stored procedure you want to use for polling.

  2. Create a message in the BizTalk project for receiving messages from Oracle database.

  3. Create an orchestration to receive messages from Oracle database and save them to a folder.

  4. Build and deploy the BizTalk project.

  5. Configure the BizTalk application by creating physical send and receive ports.

    Important
    For inbound polling scenarios you must always configure a one-way receive port. Two-way receive ports are not supported for inbound operations.

  6. Start the BizTalk application.

This topic provides instructions to perform these tasks.

Generating Schema

You must generate the schema for the GET_ACTIVITYS operation. Perform the following tasks while generating the schema using the Consume Adapter Service Add-in.

  • Select the contract type as Service (Inbound operation).

  • Generate schema for the GET_ACTIVITYS procedure.

For more information about how to generate schema, see Browsing, Searching, and Retrieving Metadata for Oracle Operations.

Defining Messages and Message Types

The schema that you generated earlier describes the "types" required for the messages in the orchestration. A message is typically a variable, the type for which is defined by the corresponding schema. Once the schema is generated, you must link it to the messages from the Orchestration view of the BizTalk project.

For this topic, you must create one message to receive messages from Oracle.

Perform the following steps to create messages and link them to schema.

To create messages and link to schema

  1. Add an orchestration to the BizTalk project. From the Solution Explorer, right-click the BizTalk project name, point to Add, and then click New Item. Type a name for the BizTalk orchestration and then click Add.

  2. Open the orchestration view window of the BizTalk project, if it is not already open. Click View, point to Other Windows, and then click Orchestration View.

  3. In the Orchestration View, right-click Messages, and then click New Message.

  4. Right-click the newly created message, and then select Properties Window.

  5. In the Properties pane for Message_1, do the following:

    Use this To do this

    Identifier

    Type Receive.

    Message Type

    From the drop-down list, expand Schemas, and select Polling.OracleEBSBindingSchema, where Polling is the name of your BizTalk project. OracleEBSBindingSchema is the response schema generated for the GET_ACTIVITYS stored procedure.

    Important
    Because polling is a one way operation, the schema generated by the adapter does not contain a response node, and hence there is only one root node in the schema. If you use such schemas for a message type, you must identify the schema by the filename of the generated schema.

    For example, if you create schema for a two-way operation, the nodes in the schema file with a name OracleEBSBindingSchema may look like “Request” and “Response”. If you want to create a message in the orchestration that maps to the request schema, you can identify the schema in the list by looking for OracleEBSBindingSchema.Request. However, in the case of polling operation, because the only node is “Poll”, it is not easy to identify the schema you want to map to because schemas with single nodes are not listed as <schemafilename>.<rootnodename>. Instead, such schemas are listed by only the filename. In such a case, the only way to identify the schema is by the schema filename, for example, OracleEBSBindingSchema.

    The Consume Adapter Service Add-in generates schema for both inbound and outbound operations for the GET_ACTIVITYS stored procedure. You must use the schema for inbound operation to:

    • Map the message created as part of the orchestration.

    • To retrieve the action you must specify for the PollingAction binding property at run-time.

    You must use the schema for the outbound operation to get the request message you must specify as part of the PollingStatement binding property.

Setting up the Orchestration

You must create a BizTalk orchestration to use BizTalk Server for receiving polling-based data-change messages from Oracle. In this orchestration, the adapter receives the response by executing the stored procedure for which you specified the request message as part of the PollingStatement binding property. The response message for the stored procedure is saved to a FILE location. A typical orchestration for polling Oracle database would contain:

  • Receive and Send shapes to receive messages from Oracle and send to a FILE port, respectively.

  • A one-way receive port to receive messages from Oracle database.

    Important
    For inbound polling scenarios you must always configure a one-way receive port. Two-way receive ports are not supported for inbound operations.

  • A one-way send port to send polling responses from Oracle database.

A sample orchestration resembles the following.

Orchestration for a polling query for Oracle

Adding Message Shapes

Make sure you specify the following properties for each of the message shapes. The names listed in the Shape column are the names of the message shapes as displayed in the just-mentioned orchestration.

Shape Shape Type Properties

ReceiveMessage

Receive

  • Set Name to ReceiveMessage

  • Set Activate to True

SaveMessage

Send

  • Set Name to SaveMessage

Adding Ports

Make sure you specify the following properties for each of the logical ports. The names listed in the Port column are the names of the ports as displayed in the orchestration.

Port Properties

OracleReceivePort

  • Set Identifier to OracleReceivePort

  • Set Type to OracleReceivePortType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Receive

SaveMessagePort

  • Set Identifier to SaveMessagePort

  • Set Type to SaveMessagePortType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Send

Specify Messages for Action Shapes and Connect to Ports

The following table specifies the properties and their values that you should set to specify messages for action shapes and to link the messages to the ports. The names listed in the Shape column are the names of the message shapes as displayed in the orchestration mentioned earlier.

Shape Properties

ReceiveMessage

  • Set Message to Receive

  • Set Operation to OracleReceivePort.Polling.Request

SaveMessage

  • Set Message to Receive

  • Set Operation to SaveMessagePort.Polling.Request

After you have specified these properties, the message shapes and ports are connected and your orchestration is complete.

You must now build the BizTalk solution and deploy it to a BizTalk Server. For more information, see "Building and Running Orchestrations" at http://go.microsoft.com/fwlink/?LinkId=102359.

Configuring the BizTalk Application

After you have deployed the BizTalk project, the orchestration you created earlier is listed under the Orchestrations pane in the BizTalk Server Administration console. You must use the BizTalk Server Administration console to configure the application. For more information about configuring an application, see "How to Configure an Application" at http://go.microsoft.com/fwlink/?LinkID=196961.

Configuring an application involves:

  • Selecting a host for the application.

  • Mapping the ports that you created in your orchestration to physical ports in the BizTalk Server Administration console. For this orchestration you must:

    • Define a location on the hard disk and a corresponding FILE port where the BizTalk orchestration will drop the messages from Oracle. These messages will be in response to the polling statement that you specify for the receive port.

    • Define a physical WCF-Custom or WCF-OracleDB one-way receive port. This port polls the Oracle database. For information about how to create receive ports, see Manually Configuring a Physical Port Binding to the Oracle Database Adapter. Make sure you specify the following binding properties for the receive port.

      Binding Property Value

      InboundOperationType

      Set this to Polling.

      PolledDataAvailableStatement

      For this example, set this binding property to:

      Copy Code
      SELECT COUNT (*) FROM ACCOUNTACTIVITY

      This ensures that the adapter executes the polling statement only when the ACCOUNTACTIVITY table has some records.

      PollingAction

      Retrieve the polling action from the schema generated for the inbound message for the GET_ACTIVITYS procedure. For this example, set this binding property to http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/PollingPackage/ /ACCOUNT_PKG/GET_ACTIVITYS.

      PollingStatement

      For this binding property, specify the request message to invoke the GET_ACTIVITYS stored procedure. You can get the request message from the schema for the outbound operation generated by the Consume Adapter Service Add-in. You must provide the entire XML message as an input for this binding property. For this example, set this binding property to:

      Copy Code
      <GET_ACTIVITYS xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/GET_ACTIVITY">
  <INRECS>OPEN ? FOR SELECT * FROM ACCOUNTACTIVITY</INRECS>
</GET_ACTIVITYS>

      The GET_ACTIVITYS stored procedure takes an input REF CURSOR as parameter.

      PostPollStatement

      Specify the post-poll statement to move all data from ACCOUNTACTIVITY table to another table. For this example, set this binding property to:

      Copy Code
      BEGIN ACCOUNT_PKG.PROCESS_ACTIVITY(); END;

      For more information about the different binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

      Note
      We recommend configuring the transaction isolation level and the transaction timeout while performing inbound operations using the Oracle Database adapter. You can do so by adding the service behavior while configuring the receive port. For instruction on how to add the service behavior, see Configure Transaction Isolation Level and Transaction Timeout.

Starting the Application

You must start the BizTalk application for polling Oracle database. For instructions on starting a BizTalk application, see http://go.microsoft.com/fwlink/?LinkId=102387.

At this stage, make sure:

  • The WCF-Custom or WCF-OracleDB one-way receive port, which polls Oracle using the stored procedure specified for the PollingStatement binding property, is running.

  • The FILE send port, which receives messages from Oracle database, is running.

  • The BizTalk orchestration for the operation is running.

Executing the Operation

After you run the application, the following set of actions take place, in the same sequence:

  • The adapter executes the PolledDataAvailableStatement which returns a positive value indicating the adapter to execute the statement specified for PollingStatement binding property.

  • The adapter executes the GET_ACTIVITYS stored procedure specified for the PollingStatement binding property and returns all the rows in the ACCOUNTACTIVITY table. The response from Oracle database resembles the following:

    Copy Code
    <?xml version="1.0" encoding="utf-8" ?>
<GET_ACTIVITYS xmlns=" http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/PollingPackage/ACCOUNT_PKG">
  <OUTRECS>
    <OUTRECSRecord xmlns=" http://Microsoft.LobServices.OracleDB/2007/03/ReferencedRecordTypes/SCOTT/ACCOUNT_PKG/GET_ACTIVITYS/SCOTT/GET_ACTIVITYS">
      <TID>1</TID>
      <ACCOUNT>100001</ACCOUNT>
      <AMOUNT>500</AMOUNT>
      <DESCRIPTION />
      <TRANSDATE>2008-06-21T15:52:19</TRANSDATE>
      <PROCESSED>n</PROCESSED>
    </OUTRECSRecord>
    <OUTRECSRecord xmlns=" http://Microsoft.LobServices.OracleDB/2007/03/ReferencedRecordTypes/SCOTT/ACCOUNT_PKG/GET_ACTIVITYS/SCOTT/GET_ACTIVITYS">
      ......
      ......
    </OUTRECSRecord>
    ......
    ......
  </OUTRECS>
</GET_ACTIVITYS>
  • The adapter executes the post-poll statement, which moves all the data from ACCOUNTACTIVITY table to another table.

  • After the polling interval, the adapter again executes PolledDataAvailableStatement. Because ACCOUNTACTIVITY table has no records now, PolledDataAvailableStatement does not return a positive value and hence the adapter does not execute the statement specified for the PollingStatement binding property. As a result, adapter client does not get any polling message.

  • The adapter client will not get any more polling messages until some records are explicitly inserted into the ACCOUNTACTIVITY table. To insert more records, you can run the more_activity_data.sql script provided with the samples. After you run this script, the next time PolledDataAvailableStatement is executed, it returns a positive value. As a result, the adapter executes the polling statement and adapter clients again receive a polling message.

Note
The Oracle Database adapter will continue to poll until you explicitly disable the receive port from the BizTalk Server Administration console.

Best Practices

After you have deployed and configured the BizTalk project, you can export configuration settings to an XML file called the bindings file. Once you generate a bindings file, you can import the configuration settings from the file so that you do not need to create the send ports and receive ports for the same orchestration. For more information about binding files, see Reusing Adapter Bindings.

See Also

Other Resources

Polling Oracle Database by Using BizTalk Server


Performing Composite Operations on Oracle Database by Using BizTalk Server

The Oracle Database adapter enables adapter clients to perform composite operations on Oracle database. A composite operation can include:

  • Insert, Update, Delete, and Select operations on tables and views.

  • Stored procedures and functions, inside or outside a package.

A single composite operation can have any number of these operations, in any order. For example, you can have two inserts followed by a delete, and finally a stored procedure execution. Also, you can have different operations targeting different database tables or views. For more information about how the adapter supports composite operations, see Performing Composite Operations. For information about the structure of the SOAP message for composite operations, see Message Schemas for the Composite Operation.

How to Perform Composite Operations on Oracle Database?

Performing an operation on Oracle database using Oracle Database adapter with BizTalk Server involves procedural tasks described in Building Blocks for Developing BizTalk Applications. To perform composite operations on Oracle database, these tasks are:

  1. Create a BizTalk project in Visual Studio and generate schema for all the operations you want to invoke.

  2. Manually create a schema file that includes references to all the schemas you generated in the previous step.

  3. Create messages in the BizTalk project for sending and receiving messages from Oracle database. These messages must conform to the request and response schema you created in the previous step.

  4. Create an orchestration to invoke the composite operation on Oracle database.

  5. Build and deploy the BizTalk project.

  6. Configure the BizTalk application by creating physical send and receive ports.

  7. Start the BizTalk application.

This topic provides instructions on how to perform these tasks.

Generating Schema

In this topic, to demonstrate how to perform composite operations, we will perform the following tasks in the same order:

  • Insert record into the ACCOUNTACTIVITY table.

  • Retrieve all the records in the ACCOUNTACTIVITY table by invoking the GET_ALL_ACTIVITY procedure within the ACCOUNT_PKG package.

  • Delete the record from the ACCOUNTACTIVITY table.

Run the scripts provided with the samples to create the ACCOUNTACTIVITY table. For more information about the samples, see Samples.

You must create a BizTalk project and use the Consume Adapter Service Add-in to generate the schema. See Retrieving Metadata for Oracle Operations in Visual Studio for more information about how to generate schemas.

Creating a Composite Schema Definition

You must now create a composite schema in the Visual Studio BizTalk project that references the schemas you created for the individual operations. Perform the following steps to create a composite schema definition.

To add a composite schema definition

  1. Add a schema file to the BizTalk project in Visual Studio. Right-click the solution name, point to Add, and then click New Item. In the Add New Item dialog box, from the Categories box, click Schema Files. From the Templates box, click Schema. Specify a name for the schema file and click OK.

    For this example, specify the schema file name as CompositeSchema.xsd.

  2. Add references to the schema generated for the different operations that you want to perform. In this example, the different schemas generated for operations are:

    • OracleDBBinding.xsd, for Insert and Delete operations on ACCOUNTACTIVITY table.

    • OracleDBBinding2.xsd, for the GET_ALL_ACTIVITY procedure.

    To add references:

    1. Right-click the root <Schema> node in the CompositeSchema.xsd, and click Properties.

    2. In the Property box, click the ellipsis button (…) against the Imports property.

      Import schema definitions
    3. In the Imports dialog box, from the Import new schema as list, select XSD Import, and then click Add.

    4. In the BizTalk Type Picker dialog box, expand the BizTalk project name node, expand Schemas, and then select the schema you want to import. For this example, select <BizTalk_project_name>.OracleDBBinding.xsd. Click OK.

      Repeat this step to import <BizTalk_project_name>.OracleDBBinding2.xsd too.

    5. In the Imports dialog box, click OK.

  3. Add two child nodes to the root schema node. One child node corresponds to the request schema for performing the composite operation. The other child node corresponds to the response schema. The node that corresponds to the request schema can have any name. The node that corresponds to the response schema must be called <request_schema_node>Response. For this example, we will call the request schema node as Request. So, the response schema node is called RequestResponse.

    Note
    By default, a Root node is also added to a new schema file. You can rename the Root node to Request. To rename a node, right-click the node name and click Rename.

    To add a node under the <Schema> node:

    1. Right-click the <Schema> node, point to Insert Schema Node, and click Child Record.

    2. Rename the new node to RequestResponse.

  4. Add child nodes under the Request node that correspond to the request schema for each operation that you will perform as part of the composite operation. For this example, you must add child nodes corresponding to the following:

    • Insert and Delete operations on the ACCOUNTACTIVITY table.

    • GET_ALL_ACTIVITY procedure.

    Important
    You must add the nodes in the same order in which you want to perform the operations. For example, if you want to insert a record, then execute a stored procedure, and then delete a record you must first add a node for the Insert operation, followed by a node for the stored procedure, and finally a node for the Delete operation.

    To add child nodes to the Request node:

    1. Right-click the Request node, point to Insert Schema Node, and then click Child Record.

      Insert child nodes for a schema
    2. Rename the record to correspond to a request schema for an operation that you perform as part of the composite operation. For example, rename the node to “Insert”.

    3. Map the Insert node to the request schema for the Insert operation on the ACCOUNTACTIVITY table. To do so, right-click the Insert node, and click Properties. In the Properties box, from the Data Structure Type list, select Insert (Reference).

      Map child nodes to request schema
    4. Repeat these steps to add nodes for the request schemas for GET_ALL_ACTIVITY stored procedure and the Delete operation. Specify the node names and map them to the corresponding schema as mentioned in the following table.

      Node name Mapped to schema

      GET_ALL_ACTIVITY

      GET_ALL_ACTIVITY (Reference)

      Delete

      Delete (Reference)

  5. Add child nodes under the RequestResponse node that correspond to the response schema for each operation that you will perform as part of the composite operation. For this example, you must add child nodes corresponding to the following:

    • Insert and Delete operations on the ACCOUNTACTIVITY table.

    • GET_ALL_ACTIVITY stored procedure.

    Important
    You must add the child nodes in the same order as the child nodes under the Request node.

    To add child nodes to the RequestResponse node:

    1. Right-click the RequestResponse node, point to Insert Schema Node, and click Child Record.

    2. Rename the record to correspond to a response schema for an operation that you perform as part of the composite operation. For example, rename the node to “InsertResponse”.

    3. Map the InsertResponse node to the response schema for the Insert operation on the ACCOUNTACTIVITY table. To do so, right-click the InsertResponse node, and click Properties. In the Properties box, from the Data Structure Type list, select InsertResponse (Reference).

    4. Repeat these steps to add nodes for the response schemas for the GET_ALL_ACTIVITY stored procedure and the Delete operation. Specify the node names and map them to the corresponding schema as mentioned in the following table.

      Node name Mapped to schema

      GET_ALL_ACTIVITYResponse

      GET_ALL_ACTIVITYResponse (Reference)

      DeleteResponse

      DeleteResponse (Reference)

  6. Save the CompositeSchema.xsd file.

Defining Messages and Message Types

The composite schema that you created in the last step describes the “types” required for the messages in an orchestration. A message is typically a variable, the type for which is defined by the corresponding schema. You must now create messages for the orchestration and link them to schema you created in the previous step.

To create messages and link to schema

  1. Add an orchestration to the BizTalk project in Visual Studio. From Solution Explorer, right-click the BizTalk project name, point to Add, and then click New Item. Type a name for the BizTalk orchestration, and then click Add.

  2. Open the Orchestration View window of the BizTalk project, if it is not already open. To do so, click View, point to Other Windows, and then click Orchestration View.

  3. In Orchestration View, right-click Messages, and then click New Message.

  4. Right-click the newly created message, and then select Properties Window.

  5. In the Properties pane for the Message_1, do the following:

    Use this To do this

    Identifier

    Type Request

    Message Type

    From the drop-down list, expand Schemas, and then select Composite_Op.CompositeSchema.Request, where Composite_Op is the name of your BizTalk project. CompositeSchema is the schema you created manually for the composite operations.

  6. Repeat step 2 to create a new message. In the Properties pane for the new message, do the following:

    Use this To do this

    Identifier

    Type Response

    Message Type

    From the drop-down list, expand Schemas, and then select Composite_Op.CompositeSchema.RequestResponse.

Setting up the Orchestration

You must create a BizTalk orchestration to use BizTalk Server for performing composite operations on Oracle database. In this orchestration, you drop a request message at a defined receive location. The request message must conform to the composite schema you created earlier. The Oracle Database adapter consumes this message and passes it on to Oracle database. The response from Oracle database is saved to another location. You must include Send and Receive shapes to send messages to Oracle database and receive responses, respectively. A basic orchestration for performing composite operations resembles the following:

Orchestration to peform composite operations

Adding Message Shapes

Make sure you specify the following properties for each of the message shapes. The names listed in the Shape column are the names of the message shapes as displayed in the just-mentioned orchestration.

Shape Shape Type Properties

ReceiveMessage

Receive

  • Set Name to ReceiveMessage

  • Set Activate to True

SendMessage

Send

  • Set Name to SendMessage

ReceiveResponse

Receive

  • Set Name to ReceiveResponse

  • Set Activate to False

SendResponse

Send

  • Set Name to SendResponse

Adding Ports

Make sure you specify the following properties for each of the logical ports. The names listed in the Port column are the names of the ports as displayed in the orchestration.

Port Properties

MessageIn

  • Set Identifier to MessageIn

  • Set Type to MessageInType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Receive

LOBPort

  • Set Identifier to LOBPort

  • Set Type to LOBPortType

  • Set Communication Pattern to Request-Response

  • Set Communication Direction to Send-Receive

ResponseOut

  • Set Identifier to ResponseOut

  • Set Type to ResponseOutType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Send

Specify Messages for Action Shapes, and Connect Them to Ports

The following table specifies the properties and their values that you should set to specify messages for action shapes and to link the messages to the ports. The names listed in the Shape column are the names of the message shapes as displayed in the orchestration mentioned earlier.

Shape Properties

ReceiveMessage

  • Set Message to Request

  • Set Operation to MessageIn.CompositeOp.Request

SendMessage

  • Set Message to Request

  • Set Operation to LOBPort.CompositeOp.Request

ReceiveResponse

  • Set Message to Response

  • Set Operation to LOBPort.CompositeOp.Response

SendResponse

  • Set Message to Response

  • Set Operation to ResponseOut.CompositeOp.Request

After you have specified these properties, the message shapes and ports are connected and your orchestration is complete.

You must now build the BizTalk solution and deploy it to a BizTalk Server. For more information, see http://go.microsoft.com/fwlink/?LinkId=102359.

Configuring the BizTalk Application

After you have deployed the BizTalk project, the orchestration you created earlier is listed under the Orchestrations pane in the BizTalk Server Administration console. You must use the BizTalk Server Administration console to configure the application. For more information about configuring an application, see http://go.microsoft.com/fwlink/?LinkID=196961.

Configuring an application involves:

  • Selecting a host for the application.

  • Mapping the ports that you created in your orchestration to physical ports in the BizTalk Server Administration console. For this orchestration you must:

    • Define a location on the hard disk and a corresponding file port where you will drop a request message. The BizTalk orchestration will consume the request message and send it to Oracle database.

    • Define a location on the hard disk and a corresponding file port where the BizTalk orchestration will drop the response message containing the response from Oracle database.

    • Define a physical WCF-Custom or WCF-OracleDB send port to send messages to Oracle database. Because the operations that are being as part of the composite operation are executed in a single transaction, make sure the UseAmbientTransaction binding property is set to True.

      You must also specify the action in the send port. The action for a composite operation is “http://Microsoft.LobServices.OracleDB/2007/03/CompositeOperation”. For information about how to create ports, see Manually Configuring a Physical Port Binding to the Oracle Database Adapter. For more information about how to specify actions for ports, see Specifying SOAP Action.

      Note
      Generating the schema using the Consume Adapter Service BizTalk Project Add-in also creates a binding file that contains information about the ports and the actions to be set for those ports. You can import this binding file from the BizTalk Server Administration console to create send ports (for outbound calls) or receive ports (for inbound calls). For more information, see Configuring a Physical Port Binding by Using a Port Binding File. If you import this binding file, the action on the send port is set to a dynamic action involving all the operations you selected in the Consume Adapter Service Add-in while generating the schema. For a composite operation, you must replace the dynamic action with “http://Microsoft.LobServices.OracleDB/2007/03/CompositeOperation”.

Starting the Application

You must start the BizTalk application for performing composite operations on Oracle database. For instructions on starting a BizTalk application, see http://go.microsoft.com/fwlink/?LinkId=102387.

At this stage, make sure:

  • The FILE receive port to receive request messages for the orchestration is running.

  • The FILE send port to receive the response messages from the orchestration is running.

  • The WCF-Custom or WCF-OracleDB send port to send messages to Oracle database is running.

  • The BizTalk orchestration for the operation is running.

Executing the Operation

After you run the application, you must drop a request message to the FILE receive location. The schema for the request message must conform to the schema for the composite operations you created earlier. For example, a request message that inserts a record in the ACCOUNTACTIVITY table, invokes the GET_ALL_ACTIVITY stored procedure, and deletes a record from the ACCOUNTACTIVITY table is:

Copy Code
<Request xmlns="http://Composite_Op.CompositeSchema">
  <Insert xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/ACCOUNTACTIVITY">
    <RECORDSET>
      <ACCOUNTACTIVITYRECORDINSERT>
        <TID>1</TID>
        <ACCOUNT>100001</ACCOUNT>
        <AMOUNT>1500</AMOUNT>
        <DESCRIPTION></DESCRIPTION>
        <TRANSDATE>2008-06-21T15:52:19</TRANSDATE>
        <PROCESSED>n</PROCESSED>
      </ACCOUNTACTIVITYRECORDINSERT >
    </RECORDSET>
  </Insert>
  <GET_ALL_ACTIVITY xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG"/>
  <Delete xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/ACCOUNTACTIVITY">
    <FILTER>WHERE AMOUNT = 1500</FILTER>
  </Delete>
</Request>

The preceding request message first inserts a record and then invokes the GET_ALL_ACTIVITY procedure to get all the records in the ACCOUNTACTIVITY table. Then, the inserted record is deleted by specifying a FILTER clause. See Message Schemas for the Composite Operation for more information about the request message schema for performing composite operations on Oracle database using the Oracle Database adapter.

The orchestration consumes the message and sends it to Oracle database. The response from Oracle database is saved at the other FILE location defined as part of the orchestration. For example, the response from Oracle database for the preceding request message resembles the following:

Copy Code
<?xml version="1.0" encoding="utf-8" ?>
<RequestResponse xmlns="http://Composite_Op.CompositeSchema">
  <InsertResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOOT/Table/ACCOUNTACTIVITY">
    <InsertResult>1</InsertResult>
  </InsertResponse>
  <GET_ALL_ACTIVITYResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">
    <ALLRECS>
      <xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
        <xs:element msdata:IsDataSet="true" name="NewDataSet">
          <xs:complexType>
            <xs:sequence>
              <xs:element minOccurs="0" maxOccurs="unbounded" name="NewTable">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element minOccurs="0" name="TID" type="xs:decimal" />
                    <xs:element minOccurs="0" name="ACCOUNT" type="xs:decimal" />
                    <xs:element minOccurs="0" name="AMOUNT" type="xs:decimal" />
                    <xs:element minOccurs="0" name="DESCRIPTION" type="xs:string" />
                    <xs:element minOccurs="0" name="TRANSDATE" type="xs:dateTime" />
                    <xs:element minOccurs="0" name="PROCESSED" type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:schema>
      <diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
        <NewDataSet xmlns="">
          <NewTable>
            ......
            ......
          </NewTable>
          ......
          ......
          <NewTable>
            <TID>10</TID>
            <ACCOUNT>100001</ACCOUNT>
            <AMOUNT>1000</AMOUNT>
            <TRANSDATE>2008-07-28T21:39:57</TRANSDATE>
            <PROCESSED>n</PROCESSED>
          </NewTable>
        </NewDataSet>
      </diffgr:diffgram>
    </ALLRECS>
  </GET_ALL_ACTIVITYResponse>
  <DeleteResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/ACCOUNTACTIVITY">
    <DeleteResult>1</DeleteResult>
  </DeleteResponse>
</RequestResponse>

The preceding response contains multiple result sets corresponding the different operations performed as part of the composite operation. For example, the InsertResult element contains ‘1’, indicating the number of rows inserted by the Insert operation. Similarly, the DeleteResult element contains ‘1’, indicating the number of rows deleted by the Delete operation.

Important
If you experience time-out issues while executing a composite operation then it could be because the number of connections is less than the number of operations in a composite operation involving:

  • Stored procedures containing BFILE, BLOB, CLOB, NCLOB, and REF CURSOR as OUT or IN OUT parameters.

  • Select operation.

To resolve this issue, you must ensure that if there are “n” number of such operations in a composite operation, the value specified for the MinPoolSize binding property is “n+1” or greater. For more information about the MinPoolSize binding property, see Working with BizTalk Adapter for Oracle Database Binding Properties.

Best Practices

After you have deployed and configured the BizTalk project, you can export configuration settings to an XML file called the binding file. Once you generate a binding file, you can import the configuration settings from the file, so that you do not need to create items such as send ports and receive ports for the same orchestration. For more information about binding files, see Reusing Adapter Bindings.

See Also

Other Resources

Developing BizTalk Applications


Receiving Database Change Notifications Using BizTalk Server

You can configure the Oracle Database adapter to receive database change notification messages from the Oracle database. You can specify a SELECT statement that the adapter uses to register for notifications with the Oracle database. The adapter receives a notification message when the result set for the SELECT statement, registered for notification, changes. For more information about how the adapter supports notification, see Receiving Database Change Notifications.

Following are some scenarios in which you can configure the Oracle Database adapter with BizTalk Server to receive notifications from the Oracle database:

  • Adapter clients get only “incremental” notification, for example, only for those changes that were made to a database table since the last notification.

  • If large number of rows are inserted into a database table, the adapter clients can configure multiple receive locations to load-balance receiving notifications.

Once the adapter clients receive a notification message, they can perform specific tasks based on the kind of notification received. For example, a BizTalk orchestration can be designed in such a way that it performs one set of tasks if an insert notification is received and another set of tasks if an update notification is received.

Caution
If there is a network outage between the Oracle database and the adapter client, the notifications will not be sent to the adapter clients for the changes done on the Oracle database during the period of network outage, and thereafter. Therefore, you must use the Polling operation instead of the Notification operation for critical scenarios.

The topics in this section provide information on how to configure the adapter for each of these scenarios. To start getting notifications from the Oracle database using the Oracle Database adapter, you must specify certain binding properties. For more information about the binding properties related to notifications, see Working with BizTalk Adapter for Oracle Database Binding Properties. For more information about structure of notification messages, see Message Schemas for the Notification Operation.

For receiving notifications from the Oracle database, make sure:

  • You use the adapter to connect to Oracle database version 10.2 or later. Oracle database versions prior to 10.2 do not support notifications.

  • The credentials you use to connect to Oracle for notifications has change notification privilege. This privilege is required for receiving database change notifications. To do so, connect to Oracle database using administrative privileges and then type the following command on the SQL prompt.

    Copy Code
    grant change notification to <user name>
  • Decide on a TCP port you want ODP.NET to use for receiving database change notifications from Oracle database. Add that port to Windows Firewall exceptions list. For instructions on how to add ports to Windows Firewall exceptions list, see http://go.microsoft.com/fwlink/?LinkID=196959. You must provide the same port number for the NotificationPort binding property. For more information about the binding property, see Working with BizTalk Adapter for Oracle Database Binding Properties.

In This Section

  • Considerations for Receiving Database Change Notifications Using the Adapter

  • Processing Notification Messages to Perform Specific Tasks

  • Receiving Database Change Notifications Incrementally Using BizTalk Server

  • Receiving Database Change Notifications On Multiple Receive Locations

  • Receiving Database Change Notifications After a Receive Location Breakdown

See Also

Other Resources

Developing BizTalk Applications


Considerations for Receiving Database Change Notifications Using the Adapter

This topic provides some considerations and best practices that you must keep in mind while using the Oracle Database adapter to receive database notifications from an Oracle database.

Considerations While Using the Adapter to Receive Notifications

You must consider the following while using the Oracle Database adapter to receive query notifications.

  • The Oracle Database adapter simply passes on the notification, which it receives from the Oracle database, to the adapter clients. The adapter does not distinguish between the notifications for different operations, i.e., the adapter does not have any information whether a particular notification is for an Insert operation or an Update operation.

  • The notification message for an operation is not affected by the number of records affected by that operation. For example, irrespective of the number of records inserted in an Oracle database table, the adapter clients receive only one notification message.

  • We recommend that the adapter client application contain the logic to interpret the kind of notification received from the Oracle database. The adapter client applications can do so by extracting the information in the <Info> element of the received notification message. Here’s an example of a notification message received for an Insert operation.

    Copy Code
    <?xml version="1.0" encoding="utf-8" ?>
<Notification xmlns="http://Microsoft.LobServices.OracleDB/2007/03/Notification/">
  <Details>
    <NotificationDetails>
      <ResourceName>SCOTT.ACCOUNTACTIVITY</ResourceName>
      <Info>1</Info>
      <QueryId>0</QueryId>
    </NotificationDetails>
  </Details>
  <Info>Insert</Info>
  <ResourceNames>
    <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">SCOTT.ACCOUNTACTIVITY</string>
  </ResourceNames>
  <Source>Data</Source>
  <Type>Change</Type>
</Notification>
    Notice the value within the <Info> element. This value provides information on the operation for which the notification message was received. Your application should have the functionality to extract the value within the <Info> element and then based on the value, perform subsequent tasks. The topic Processing Notification Messages to Perform Specific Tasks has instructions on how to extract the value within the <Info> element.

  • Ideally, after the client application receives a notification, it should update the record for which the notification is already received so that the subsequent notifications are not for the same record. For example, consider an ACCOUNTACTIVITY table that has a Processed column. For all new records inserted into the ACCOUNTACTIVITY table, the value in the Processed column is always ‘n’. For example, after an insert operation, the records in the ACCOUNTACTIVITY table will look like the following:

    Account Transaction ID Processed

    10001

    n

    To get notifications for the newly inserted record, the adapter client will set the NotificationStatement binding property as:

    Copy Code
    SELECT * FROM SCOTT.ACCOUNTACTIVITY WHERE PROCESSED = ‘n’
    After, receiving the notification, the client application must set the value of the Processed column to ‘y’ so that the notification statement does not operate on the record that was already notified for. So, to achieve this, the client application must perform an Update operation on the ACCOUNTACTIVITY table. After the Update operation, the same record in the ACCOUNTACTIVITY table will look like the following:

    Account Transaction ID Processed

    10001

    y

    Interestingly, the Update operation will again send a notification to the adapter client and the whole process will be repeated again. So, the client application must have the required logic to discard such unwanted notifications.

  • If the NotifyOnListenerStart binding property is true, the adapter will send a notification to the adapter client every time the receive location starts. For more information on how to use the binding property and interpret the notification message, see Receiving Database Change Notifications After a Receive Location Breakdown.

Typical Orchestration for Receiving Notifications

This section outlines the typical orchestration flow for receiving notifications using the Oracle Database adapter.

  1. The first thing that the orchestration must do is to check the kind of notification received. The things to check for are:

    • Whether the notification was received for the receive location restart.

    • Whether the notification was received for an operation on a database table, such as Insert, Update, or Delete.

    The orchestration must include an Expression shape, and within that an xpath query, to decide what kind of message is received.

  2. After the notification type is available, the orchestration must include a decision block to perform specific actions based on the type of notification received. To achieve this, the orchestration must include a Decide shape. The Decide shape consists of a Rule block and an Else block. Within the Rule block, you must specify the condition and then include orchestration shapes to perform certain operations if the condition is met. Within the Else block, you must include orchestration shapes to perform certain operations if the condition is not met.

The preceding recommendations are described in detail in Processing Notification Messages to Perform Specific Tasks.

See Also

Other Resources

Receiving Database Change Notifications Using BizTalk Server


Processing Notification Messages to Perform Specific Tasks

You can use the Oracle Database adapter to receive notifications for changes to the Oracle database tables. However, the adapter only sends you a notification that some records were inserted, updated, or deleted in a certain database table. Any post-processing on those records must be handled by the client applications themselves. This topic presents a scenario-based description on how to process the records in the table based on the kind of notification received from the Oracle database.

Scenarios for Performing Subsequent Actions After Receiving Notification

Following are a couple of scenarios in which the adapter clients must perform certain post-notification tasks.

  • Scenario 1. Consider a scenario where the adapter client must perform certain tasks based on the kind of notification you receive from the Oracle database. For example, the client application must update the records in table “A” if records are inserted in table “B”. Similarly, the client application must delete records from table “A” if records are deleted from table “B”.

    In this scenario, from the notification message received, the adapter clients must extract the type of notification to decide whether the notification was for an insert operation or a delete operation. Once the notification type is ascertained, the adapter clients must perform subsequent actions to insert or update the relevant tables.

  • Scenario 2. Consider a scenario where the receive location that receives notification messages for changes to a table goes down. While the receive location is down, some records are added to the table. However, for these records the adapter client does not receive any notification. When the receive location is back up, the adapter notifies the client by sending a specific message, and then the client application must look for all the records that were inserted in the database table while the receive location was down.

    In this scenario, from the notification message received, the adapter clients must extract the information regarding whether the notification is for a change to a database table or for the receive location starting. If the notification is for the receive location starting, the adapter clients must implement the logic to process the records that might have been inserted, updated, or deleted while the receive location was down.

Note
These are just some example scenarios that are listed for a better understanding of how to use the notification feature in the Oracle Database adapter. However, the basic set of tasks required to extract the type of notification received will be similar for all scenarios. This topic provides instructions on how to extract the type of notification from a notification message.

How This Topic Demonstrates Receiving Notification Messages

In this topic, to demonstrate how to process notification messages to perform subsequent tasks, we consider a basic scenario where an adapter client uses BizTalk application to receive notification messages for changes to the ACCOUNTACTIVITY table. After the notification is received, the client filters the type of notification received and performs subsequent action. To demonstrate a very basic scenario, let us consider that the adapter client copies the notification messages to different folders based on the kind of notification received. Therefore:

  • If the notification message is for an Insert or Update operation, the adapter client copies the message to C:\TestLocation\UpsertNotification folder.

  • If the notification message is for any other operation, for example Delete, the adapter client copies the message to C:\TestLocation\OtherNotificaiton folder.

To achieve this as part of a BizTalk application, the orchestration must contain the following:

  • A one-way receive port to receive notification messages.

  • An Expression shape that contains an xpath query to extract the information about the kind of notification message received.

  • A Decide shape to include a decision block in the orchestration. In this decision block, the application decides on what subsequent operations to perform based on the notification message received.

  • Two one-way send ports that finally receive the notification messages.

Configuring Notifications with the Oracle Database Binding Properties

The following table summarizes the Oracle Database adapter binding properties that you use to configure receiving notifications from the Oracle database. You must specify these binding properties while configuring the receive port in the BizTalk Server Administration console.

Note
You may choose to specify these binding properties when generating the schema for the Notification operation, even though it is not mandatory. If you do so, the port binding file that the Consume Adapter Service Add-in generates as part of the metadata generation also contains the values you specify for the binding properties. You can later import this binding file in the BizTalk Server Administration console to create the WCF-custom or WCF-OracleDB receive port with the binding properties already set. For more information about creating a WCF-custom or WCF-OracleDB port using the binding file, see Configuring a Physical Port Binding by Using a Port Binding File.

Binding Property | Description
InboundOperationType | Specifies the inbound operation that you want to perform. To receive notification messages, set this to Notification.
NotificationPort | Specifies the port number that ODP.NET must open to listen for database change notification from Oracle database.
NotificationStatement | Specifies the SELECT statement used to register for query notifications. The adapter gets a notification message only when the result set for the specified SELECT statement changes.
NotifyOnListenerStart | Specifies whether the adapter sends a notification to the adapter clients when the listener is started.

For a more complete description of these properties, see Working with BizTalk Adapter for Oracle Database Binding Properties. For a complete description of how to use the Oracle Database adapter to receive notifications from the Oracle database, read further.

How to Receive Notification Messages from Oracle Database

Performing an operation on the Oracle database using Oracle Database adapter with BizTalk Server involves the procedural tasks described in Building Blocks for Developing BizTalk Applications. To configure the adapter to receive notification messages, these tasks are:

  1. Create a BizTalk project, and then generate schema for the Notification inbound operation. Optionally, you can specify values for the InboundOperationType, NotificationPort, and NotificationStatement binding properties.

  2. Create a message in the BizTalk project for receiving notification from the Oracle database.

  3. Create an orchestration as described in the preceding section.

  4. Build and deploy the BizTalk project.

  5. Configure the BizTalk application by creating physical send and receive ports.

    Note
    For inbound operations, like receiving notification messages, you must only configure a one-way WCF-Custom or WCF-OracleDB receive port. Two-way receive ports are not supported for inbound operations.

  6. Start the BizTalk application.

This topic provides instructions to perform these tasks.

Generating Schema

You must generate the schema for the Notification inbound operation. See Retrieving Metadata for Oracle Operations in Visual Studio for more information about how to generate the schema. Perform the following tasks when generating the schema. Skip the first step if you do not want to specify the binding properties at design-time.

  1. Specify a value for InboundOperationType, NotificationPort, and NotificationStatement binding properties while generating the schema. For more information about this binding property, see Working with BizTalk Adapter for Oracle Database Binding Properties. For instructions on how to specify binding properties, see Specifying Binding Properties.

  2. Select the contract type as Service (Inbound operations).

  3. Generate schema for the Notification operation.

Defining Messages and Message Types

The schema that you generated earlier describes the "types" required for the messages in the orchestration. A message is typically a variable, the type for which is defined by the corresponding schema. Once the schema is generated, you must link it to the messages from the Orchestration view of the BizTalk project.

For this topic, you must create one message to receive notifications from the Oracle database.

Perform the following steps to create messages and link them to schema.

To create messages and link to schema

  1. Add an orchestration to the BizTalk project. From the Solution Explorer, right-click the BizTalk project name, point to Add, and then click New Item. Type a name for the BizTalk orchestration and then click Add.

  2. Open the orchestration view window of the BizTalk project, if it is not already open. Click View, point to Other Windows, and then click Orchestration View.

  3. In the Orchestration View, right-click Messages, and then click New Message.

  4. Right-click the newly created message, and then select Properties Window.

  5. In the Properties pane for Message_1, do the following:

    Use this To do this

    Identifier

    Type NotifyReceive.

    Message Type

    From the drop-down list, expand Schemas, and select Process_Notification.OracleDBBinding.Notification, where Process_Notification is the name of your BizTalk project. OracleDBBinding is the schema generated for the Notification operation.

Setting up the Orchestration

You must create a BizTalk orchestration to use BizTalk Server for receiving notification messages from the Oracle database and then performing tasks based on the type of notification received. In this orchestration, the adapter receives the notification message based on the SELECT statement specified for the NotificationStatement binding property. The xpath query specified within the Expression shape extracts the type of notification into a variable, say NotificationType. The Decide shape uses the value in this variable to decide on the kind of notification received and takes the appropriate “path” to perform subsequent operations. As mentioned in the preceding section, the orchestration will perform the following operations based on the kind of notification message received.

  • If the notification message is for an Insert or Update operation, the adapter client copies the message to C:\TestLocation\UpsertNotification folder.

  • If the notification message is for any other operation, for example Delete, the adapter client copies the message to C:\TestLocation\OtherNotificaiton folder.

So, your orchestration must contain the following:

  • A one-way receive port to receive notification messages.

  • An Expression shape that contains an xpath query to extract the kind of notification received.

  • A Decide shape to include a decision block in the orchestration. In this decision block, the application decides on what subsequent operations to perform based on the notification message received.

  • Two one-way send ports that finally receive the notification messages.

  • Receive shape.

A sample orchestration resembles the following.

Orchestration to perform post-notification task

Adding Message Shapes

Make sure you specify the following properties for each of the message shapes. The names listed in the Shape column are the names of the message shapes as displayed in the just-mentioned orchestration.

Shape Shape Type Properties

ReceiveNotification

Receive

  • Set Name to ReceiveNotification

  • Set Activate to True

Adding an Expression Shape

The purpose of including an Expression shape in the orchestration is to have an xpath query to extract the kind of notification message received. Before creating an xpath query, let us look at the format of a notification message. A typical notification message resembles the following:

Copy Code
<?xml version="1.0" encoding="utf-8" ?>
<Notification xmlns="http://Microsoft.LobServices.OracleDB/2007/03/Notification/">
  <Details>
    <NotificationDetails>
      <ResourceName>SCOTT.ACCOUNTACTIVITY</ResourceName>
      <Info>1</Info>
      <QueryId>0</QueryId>
    </NotificationDetails>
  </Details>
  <Info>Insert</Info>
  <ResourceNames>
    <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">SCOTT.ACCOUNTACTIVITY</string>
  </ResourceNames>
  <Source>Data</Source>
  <Type>Change</Type>
</Notification>

As you see, the information about the type of the notification is available within the <info> tag, within the parent <Notification> tag. So, as part of this expression shape you must:

  • Create a variable that contains the value within the <Info> tag and set its type to System.String. For more information about creating variables, see http://go.microsoft.com/fwlink/?LinkId=102357.

    For this topic, name the variable as NotificationType.

  • Create an xpath query to extract the value from the <Info> tag. The xpath query will resemble the following:

    Copy Code
    NotificationType = xpath(NotifyReceive,"string(/*[local-name()='Notification']/*[local-name()='Info']/text())");
    In this xpath query, NotifyReceive is the message you created for receiving notification messages. The excerpt within the string function indicates that the query must extract the value within the <Info> tag, which in turn is within the <Notification> tag. Finally, the value extracted by the query is assigned to the NotificaitonType variable.

Adding a Decide Shape

The purpose of adding a Decide shape is to include a decision block in the orchestration to decide what subsequent operations to perform based on the kind of notification message received. The decision is made on the basis of the value of the NotificationType variable. In this topic, the orchestration makes a decision based on the kind of notification message received. So, the condition in the Rule shape is specified as follows:

Copy Code
NotificationType.Equals("Insert") | NotificationType.Equals("Update")

This condition suggests that if the value for NotificaitonType variable is Insert or Update, the orchestration will perform one set of tasks. If the value of NotificationType variable is anything else, the orchestration will perform other set of tasks.

As mentioned in the preceding sections, to demonstrate a simple approach, the orchestration will copy messages to different folders based on the notification message type. So, within the Rule and Else blocks, you must add Send shapes to send the messages to different ports. For this topic, name the Send shape in the Rule block as SendUpsertNotification and the Send shape in the Else block as SendOtherNotification.

Adding Ports

You must now add the following logical ports to the orchestration:

  • One-way receive port to receive notification messages from the Oracle database.

  • One-way send port to send notification messages for Insert and Update operations to a specific folder.

  • One-way send port to send notification messages for any other operations to a specific folder.

Make sure you specify the following properties for each of the logical ports. The names listed in the Port column are the names of the ports as displayed in the orchestration.

Port Properties

OracleNotifyPort

  • Set Identifier to OracleNotifyPort

  • Set Type to OracleNotifyPortType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Receive

NotificationUpsertPort

  • Set Identifier to NotificationUpsertPort

  • Set Type to NotificationUpsertPortType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Send

OtherNotificationPort

  • Set Identifier to OtherNotificationPort

  • Set Type to OtherNotificationPortType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Send

Specify Messages for Action Shapes and Connect to Ports

The following table specifies the properties and their values that you should set to specify messages for action shapes and to link the messages to the ports. The names listed in the Shape column are the names of the message shapes as displayed in the orchestration mentioned earlier.

Shape Properties

ReceiveNotification

  • Set Message to NotifyReceive

  • Set Operation to OracleNotifyPort.Notify.Request

SendUpsertNotification

  • Set Message to NotifyReceive

  • Set Operation to NotificationUpsertPort.Upsert.Request

SendOtherNotification

  • Set Message to Select

  • Set Operation to OtherNotificationPort.Other.Request

After you have specified these properties, the message shapes and ports are connected and your orchestration is complete.

You must now build the BizTalk solution and deploy it to a BizTalk Server. For more information, see "Building and Running Orchestrations" at http://go.microsoft.com/fwlink/?LinkId=102359.

Configuring the BizTalk Application

After you have deployed the BizTalk project, the orchestration you created earlier is listed under the Orchestrations pane in the BizTalk Server Administration console. You must use the BizTalk Server Administration console to configure the application. For more information about configuring an application, see "How to Configure an Application" at http://go.microsoft.com/fwlink/?LinkId=196961.

Configuring an application involves:

  • Selecting a host for the application.

  • Mapping the ports that you created in your orchestration to physical ports in the BizTalk Server Administration console. For this orchestration you must:

    • Define a physical WCF-Custom or WCF-OracleDB one-way receive port. This port listens for notifications coming from the Oracle database. For information about how to create receive ports, see Manually Configuring a Physical Port Binding to the Oracle Database Adapter. Make sure you specify the following binding properties for the receive port.

      Important
      You do not need to perform this step if you specified the binding properties at design-time. In such a case, you can create a WCF-custom or WCF-OracleDB receive port, with the required binding properties set, by importing the binding file created by the Consume Adapter Service Add-in. For more information, see Configuring a Physical Port Binding Using a Port Binding File.

      Binding Property Value

      InboundOperationType

      Set this to Notification.

      NotificationPort

      Specifies the port number that ODP.NET must open to listen for database change notification from Oracle database. Set this to the same port number that you must have added to the Windows Firewall exceptions list. For instructions on how to add ports to Windows Firewall exceptions list, see http://go.microsoft.com/fwlink/?LinkID=196959.

      Important
      If you set this to the default value of -1, you will have to completely disable Windows Firewall to receive notification messages.

      NotificationStatement

      Set this to:

      Copy Code
      SELECT TID,ACCOUNT,PROCESSED FROM SCOTT.ACCOUNTACTIVITY WHERE PROCESSED = ‘n’
      Note
      You must specify the table name along with the schema name. For example, SCOTT.ACCOUNTACTIVITY.

      NotifyOnListenerStart

      Set this to True.

      For more information about the different binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

      Note
      We recommend configuring the transaction isolation level and the transaction timeout while performing inbound operations using the Oracle Database adapter. You can do so by adding the service behavior while configuring the WCF-Custom or WCF-OracleDB receive port. For instruction on how to add the service behavior, see Configure Transaction Isolation Level and Transaction Timeout.

    • Define a location on the hard disk and a corresponding file port where the BizTalk orchestration will drop the notification messages from the Oracle database for Insert and Update operations. Configure this port to drop notification messages to the folder C:\TestLocation\UpsertNotification.

    • Define a location on the hard disk and a corresponding file port where the BizTalk orchestration will drop the notification messages from the Oracle database for all other operations. Configure this port to drop notification messages to the folder C:\TestLocation\OtherNotification.

Starting the Application

You must start the BizTalk application for receiving notification messages from the Oracle database and for performing the subsequent Select and Update operations. For instructions on starting a BizTalk application, see “How to Start an Orchestration” at http://go.microsoft.com/fwlink/?LinkId=102387.

At this stage, make sure:

  • The WCF-Custom or WCF-OracleDB one-way receive port, which receives the notification messages from the Oracle database is running.

  • The two FILE send ports, which receive messages from Oracle database, are running.

  • The BizTalk orchestration for the operation is running.

Executing the Operation

After you start the BizTalk orchestration, the following set of actions take place:

  • Because the NotifyOnListenerStart binding property is set to True, you receive the following message:

    Copy Code
    <?xml version="1.0" encoding="utf-8" ?>
<Notification xmlns="http://Microsoft.LobServices.OracleDB/2007/03/Notification/">
  <Info>ListenerStarted</Info>
  <Source>OracleDBBinding</Source>
  <Type>Startup</Type>
</Notification>
    Note that the value in the <Info> tag is “ListnerStarted”. Hence, this message is received in C:\TestLocation\OtherNotification folder.

  • Insert a record in the ACCOUNTACTIVITY table. You will receive a notification message resembling the following:

    Copy Code
    <?xml version="1.0" encoding="utf-8" ?>
<Notification xmlns="http://Microsoft.LobServices.OracleDB/2007/03/Notification/">
  <Details>
    <NotificationDetails>
      <ResourceName>SCOTT.ACCOUNTACTIVITY</ResourceName>
      <Info>1</Info>
      <QueryId>0</QueryId>
    </NotificationDetails>
  </Details>
  <Info>Insert</Info>
  <ResourceNames>
    <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">SCOTT.ACCOUNTACTIVITY</string>
  </ResourceNames>
  <Source>Data</Source>
  <Type>Change</Type>
</Notification>
    Note that the value in the <Info> tag is “Insert”. Hence, this message is received in C:\TestLocation\UpsertNotification folder.

  • Update a record in the ACCOUNTACTIVITY table. You will receive a notification message resembling the following:

    Copy Code
    <?xml version="1.0" encoding="utf-8" ?>
<Notification xmlns="http://Microsoft.LobServices.OracleDB/2007/03/Notification/">
  <Details>
    <NotificationDetails>
      <ResourceName>SCOTT.ACCOUNTACTIVITY</ResourceName>
      <Info>32</Info>
      <QueryId>0</QueryId>
    </NotificationDetails>
  </Details>
  <Info>Update</Info>
  <ResourceNames>
    <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">SCOTT.ACCOUNTACTIVITY</string>
  </ResourceNames>
  <Source>Data</Source>
  <Type>Change</Type>
</Notification>
    Note that the value in the <Info> tag is “Update”. Hence, this message is received in C:\TestLocation\UpsertNotification folder.

  • Delete a record from the ACCOUNTACTIVITY table. You will receive a notification message resembling the following:

    Copy Code
    <?xml version="1.0" encoding="utf-8" ?>
<Notification xmlns="http://Microsoft.LobServices.OracleDB/2007/03/Notification/">
  <Details>
    <NotificationDetails>
      <ResourceName>SCOTT.ACCOUNTACTIVITY</ResourceName>
      <Info>16</Info>
      <QueryId>0</QueryId>
    </NotificationDetails>
  </Details>
  <Info>Delete</Info>
  <ResourceNames>
    <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">SCOTT.ACCOUNTACTIVITY</string>
  </ResourceNames>
  <Source>Data</Source>
  <Type>Change</Type>
</Notification>
    Note that the value in the <Info> tag is “Delete”. Hence, this message is received in C:\TestLocation\OtherNotification folder.

Best Practices

After you have deployed and configured the BizTalk project, you can export configuration settings to an XML file called the binding file. Once you generate a binding file, you can import the configuration settings from the file, so that you do not need to create the send ports and receive ports for the same orchestration. For more information about binding files, see Reusing Adapter Bindings.

Performing Complex Operations After Receiving Notification Messages

For simplicity and better understanding, the orchestration in this topic copies messages to different folders based on the notification type. However, in real-world scenarios you might want to perform more complex operations. You can perform similar procedures as provided in this topic and build on them to perform the operations you wish. For example, you can change the orchestration to insert records in another table if you get a notification message for an Insert operation on the ACCOUNTACTIVITY table. In such a case, you can make appropriate changes within the Decide shape.

See Also

Other Resources

Receiving Database Change Notifications Using BizTalk Server


Receiving Database Change Notifications Incrementally Using BizTalk Server
Important
For the sake of brevity, this topic only describes how to receive notifications incrementally. In business scenarios, the orchestration must ideally include the logic to extract the kind of notification message received and then perform any subsequent operations. In other words, the orchestration described in this topic must be built on top of the orchestration described in Processing Notification Messages to Perform Specific Tasks.

This topic demonstrates how to configure the Oracle Database adapter to receive incremental query notification messages from Oracle. To demonstrate incremental notifications, we consider a table, ACCOUNTACTIVITY, with a “Processed” column. When a new record is inserted to this table, the value of the “Processed” column is set to ‘n’. You can configure the adapter to receive incremental notifications by doing the following:

  • Register for notifications using a SELECT statement that retrieves all records that have “Processed” column as ‘n’. You can do so by specifying the SELECT statement for the NotificationStatement binding property.

  • For rows which have been notified for, update the “Processed” column to ‘y’.

This topic demonstrates how to create a BizTalk orchestration and configure a BizTalk application to achieve this.

Configuring Notifications with the Oracle Database Adapter Binding Properties

The following table summarizes the Oracle Database adapter binding properties that you use to configure receiving notifications from the Oracle database. You must specify these binding properties while configuring the receive port in the BizTalk Server Administration console.

Note
You may choose to specify these binding properties when generating the schema for the Notification operation, even though it is not mandatory. If you do so, the port binding file that the Consume Adapter Service Add-in generates as part of the metadata generation also contains the values you specify for the binding properties. You can later import this binding file in the BizTalk Server Administration console to create the WCF-custom or WCF-OracleDB receive port with the binding properties already set. For more information about creating a receive port using the binding file, see Configuring a Physical Port Binding by Using a Port Binding File.

Binding Property | Description
InboundOperationType | Specifies the inbound operation that you want to perform. To receive notification messages, set this to Notification.
NotificationPort | Specifies the port number that ODP.NET must open to listen for database change notification from Oracle database.
NotificationStatement | Specifies the SELECT statement used to register for query notifications. The adapter gets a notification message only when the result set for the specified SELECT statement changes.
NotifyOnListenerStart | Specifies whether the adapter sends a notification to the adapter clients when the listener is started.

For a more complete description of these properties, see Working with BizTalk Adapter for Oracle Database Binding Properties. For a complete description of how to use the Oracle Database adapter to receive notifications from the Oracle database, read further.

How This Topic Demonstrates Receiving Notification Messages

In this topic, to demonstrate how the Oracle Database adapter supports receiving incremental database change notification messages from the Oracle database, we will configure the adapter to receive notifications for changes to the ACCOUNTACTIVTY table. Let us assume that the ACCOUNTACTIVITY table has columns “TID”, “Account”, and “Processed”. Whenever a new record is added, the value of the “Processed” column is set to ‘n’. So, to get incremental notifications you will have to do the following tasks as part of the BizTalk orchestration:

  • Get notification for all records where “Processed” is ‘n’. You can do this by specifying a SELECT statement as a notification statement.

  • After the notification is received for a certain record, set “Processed” to ‘y’. You can do this by executing a stored procedure, PROCESS_RECORDS, which updates the “Processed” column.

To demonstrate receiving incremental notifications, we do the following:

  • Generate schema for the Notification (inbound operation), and PROCESS_RECORDS (outbound operation) on the ACCOUNTACTIVITY table.

  • Create an orchestration that has the following:

    • A receive location to receive notification messages. You can configure for notification by specifying the SELECT statement as:

      Copy Code
      SELECT TID,ACCOUNT,PROCESSED FROM SCOTT.ACCOUNTACTIVITY WHERE PROCESSED = ‘n’
      Note
      You must specify the table name along with the schema name. For example, SCOTT.ACCOUNTACTIVITY.

    • A send port to update the rows for which notification has already been sent. You will execute the PROCESS_RECORDS stored procedure on this port to set the value of “Processed” column to ‘y’ for the records for which notification is received.

      Note that this operation must be executed after receiving the notification messages so that the processed rows are updated. To do away with the overhead of waiting to get the notification response and then manually dropping a request message to execute the PROCESS_RECORDS procedure, you will generate the request message for PROCESS_RECORDS procedure within the orchestration itself. You can do so by using the Construct Message shape within an orchestration.

How to Receive Notification Messages from the Oracle database

Performing an operation on the Oracle database using Oracle Database adapter with BizTalk Server involves the procedural tasks described in Building Blocks for Developing BizTalk Applications. To configure the adapter to receive notification messages, these tasks are:

  1. Create a BizTalk project, and then generate schema for the Notification (inbound operation) and PROCESS_RECORDS procedure (outbound operation) on the ACCOUNTACTIVITY table. Optionally, you can specify values for the InboundOperationType, NotificationPort, and NotificationStatement binding properties.

  2. Create a message in the BizTalk project for receiving notification from the Oracle database.

  3. Create messages in the BizTalk project for executing the PROCESS_RECORDS stored procedure and receiving response messages.

  4. Create an orchestration that does the following:

    • Receives notification message from the Oracle database.

    • Creates a message to execute the PROCESS_RECORDS procedure.

    • Sends this message to the Oracle database to select and update the records and receive a response.

  5. Build and deploy the BizTalk project.

  6. Configure the BizTalk application by creating physical send and receive ports.

    Note
    For inbound operations, like receiving notification messages, you must only configure a one-way WCF-Custom or WCF-OracleDB receive port. Two-way receive ports are not supported for inbound operations.

  7. Start the BizTalk application.

This topic provides instructions to perform these tasks.

Generating Schema

You must generate the schema for the Notification operation and PROCESS_RECORDS procedure. See Retrieving Metadata for Oracle Operations in Visual Studio for more information about how to generate the schema. Perform the following tasks when generating the schema. Skip the first step if you do not want to specify the binding properties at design-time.

  1. Specify a value for InboundOperationType, NotificationPort, and NotificationStatement binding properties while generating the schema. For more information about this binding property, see Working with BizTalk Adapter for Oracle Database Binding Properties. For instructions on how to specify binding properties, see Specifying Binding Properties.

  2. Select the contract type as Service (Inbound operations).

  3. Generate schema for the Notification operation.

  4. Select the contract type as Client (Outbound operations).

  5. Generate schema for the PROCESS_RECORDS procedure. This procedure is available under the ACCOUNT_PKG package.

Defining Messages and Message Types

The schema that you generated earlier describes the "types" required for the messages in the orchestration. A message is typically a variable, the type for which is defined by the corresponding schema. Once the schema is generated, you must link it to the messages from the Orchestration view of the BizTalk project.

For this topic, you must create three messages—one to receive notifications from the Oracle database, one to execute the PROCESS_RECORDS procedure, and one to receive the response for the procedure.

Perform the following steps to create messages and link them to schema.

To create messages and link to schema

  1. Add an orchestration to the BizTalk project. From the Solution Explorer, right-click the BizTalk project name, point to Add, and then click New Item. Type a name for the BizTalk orchestration and then click Add.

  2. Open the orchestration view window of the BizTalk project, if it is not already open. Click View, point to Other Windows, and then click Orchestration View.

  3. In the Orchestration View, right-click Messages, and then click New Message.

  4. Right-click the newly created message, and then select Properties Window.

  5. In the Properties pane for Message_1, do the following:

    Use this To do this

    Identifier

    Type NotifyReceive.

    Message Type

    From the drop-down list, expand Schemas, and select OracleNotifyIncremental.OracleDBBinding.Notification, where OracleNotifyIncremental is the name of your BizTalk project. OracleDBBinding is the schema generated for the Notification operation.

  6. Repeat step 3 to create two new messages. In the Properties pane for the new message, do the following:

    Set Identifier to Set Message Type to

    Procedure

    OracleNotifyIncremental.OracleDBBinding1.PROCESS_RECORDS, where OracleDBBinding1 is the schema generated for the PROCESS_RECORDS procedure.

    ProcedureResponse

    OracleNotifyIncremental.OracleDBBinding1.PROCESS_RECORDSResponse

Setting up the Orchestration

You must create a BizTalk orchestration to use BizTalk Server for receiving notification messages from the Oracle database and then updating the rows for which notification was received. In this orchestration, the adapter receives the notification message based on the SELECT statement specified for the NotificationStatement binding property. The notification message is received at a FILE location. Once the response is received, the orchestration constructs a message to invoke the PROCESS_RECORDS procedure, which updates the rows for which notification is received. The response for this message is also received at the same FILE location.

So, your orchestration must contain the following:

  • A one-way WCF-Custom or WCF-OracleDB receive port to receive notification messages.

  • A two-way WCF-Custom or WCF-OracleDB send port to send messages to execute the PROCESS_RECORDS procedure.

  • A Construct Message shape to construct messages, to execute PROCESS_RECORDS procedure, within the orchestration.

  • A FILE send port to save the notification message and the response for the PROCESS_RECORDS procedure.

  • Receive and send shapes.

A sample orchestration resembles the following.

Orchestration to receive notifications from Oracle

Adding Message Shapes

Make sure you specify the following properties for each of the message shapes. The names listed in the Shape column are the names of the message shapes as displayed in the just-mentioned orchestration.

Shape Shape Type Properties

ReceiveNotification

Receive

  • Set Name to ReceiveNotification

  • Set Activate to True

SaveNotification

Send

  • Set Name to SaveNotification

SendProcMessage

Send

  • Set Name to SendProcMessage

ReceiveProcResponse

Receive

  • Set Name to ReceiveProcResponse

SaveProcResponse

Send

  • Set Name to SaveProcResponse

Adding Construct Message Shape

You can use the Construct Message shape to generate a request message within the orchestration to execute the PROCESS_RECORDS procedure. To do so, you must add a Construct Message shape and within that a Message Assignment shape to your orchestration. For this example, the Message Assignment shape invokes code that generates a message that is sent to the Oracle database to execute the procedure. The Message Assignment shape also sets the action for the message to be sent to the Oracle database.

For the construct message shape, set the Message Constructed property to Procedure.

The code to generate the response could be part of the same Visual Studio solution as your BizTalk project. A sample code for generating a response message looks like this.

Copy Code
namespace SampleMessageCreator
{
    public class SampleMessageCreator
    {
        private static XmlDocument Message;
        private static string XmlFileLocation;
        private static string ResponseDoc;

        public static XmlDocument XMLMessageCreator()
        {
            XmlFileLocation = "C:\\TestLocation\\MessageIn";
            try
            {
                ResponseDoc = (Directory.GetFiles(XmlFileLocation, "*.xml", SearchOption.TopDirectoryOnly))[0];
            }
            catch (Exception ex)
            {
                Console.WriteLine("Trying to get XML from: " + XmlFileLocation);
                Console.WriteLine("EXCEPTION: " + ex.ToString());
                throw ex;
            }
            //Create Message From XML
            Message = new XmlDocument();
            Message.PreserveWhitespace = true;
            Message.Load(ResponseDoc);
            return Message;
        }
    }
}

For the above code excerpt to be able to generate a request message, you must have an XML request message (for the PROCESS_RECORDS procedure) in the location specified for the XmlFileLocation variable.

Note
After you build the project, MessageCreator.dll will be created in the project directory. You must add this DLL to the global assembly cache (GAC). Also, you must add the MessageCreator.dll as a reference in the BizTalk project.

Add the following expression to invoke this code from the Message Assignment shape and to set the action for message. To add an expression, double-click the Message Assignment shape to open the Expression Editor.

Copy Code
Procedure = SampleMessageCreator.SampleMessageCreator.XMLMessageCreator();
Procedure(WCF.Action) = "http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/PROCESS_RECORDS";

Adding Ports

Make sure you specify the following properties for each of the logical ports. The names listed in the Port column are the names of the ports as displayed in the orchestration.

Port Properties

OracleNotifyPort

  • Set Identifier to OracleNotifyPort

  • Set Type to OracleNotifyPortType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Receive

SaveMessagePort

  • Set Identifier to SaveMessagePort

  • Set Type to SaveMessagePortType

  • Set Communication Pattern to One-Way

  • Set Communication Direction to Send

  • Create an operation Notify. This operation is used for notification messages.

  • Create an operation Procedure. This operation is used for select response messages.

OracleOutboundPort

  • Set Identifier to OracleOutboundPort

  • Set Type to OracleOutboundPortType

  • Set Communication Pattern to Request-Response

  • Set Communication Direction to Send-Receive

Specify Messages for Action Shapes and Connect to Ports

The following table specifies the properties and their values that you should set to specify messages for action shapes and to link the messages to the ports. The names listed in the Shape column are the names of the message shapes as displayed in the orchestration mentioned earlier.

Shape Properties

ReceiveNotification

  • Set Message to NotifyReceive

  • Set Operation to OracleNotifyPort.Notify.Request

SaveNotification

  • Set Message to NotifyReceive

  • Set Operation to SaveMessagePort.Notify.Request

SendProcMessage

  • Set Message to Procedure

  • Set Operation to OracleOutboundPort.Procedure.Request

ReceiveProcResponse

  • Set Message to ProcedureResponse

  • Set Operation to OracleOutboundPort.Procedure.Response

SaveProcResponse

  • Set Message to ProedureResponse

  • Set Operation to SaveMessagePort.Procedure.Request

After you have specified these properties, the message shapes and ports are connected and your orchestration is complete.

You must now build the BizTalk solution and deploy it to a BizTalk Server. For more information, see "Building and Running Orchestrations" at http://go.microsoft.com/fwlink/?LinkId=102359.

Configuring the BizTalk Application

After you have deployed the BizTalk project, the orchestration you created earlier is listed under the Orchestrations pane in the BizTalk Server Administration console. You must use the BizTalk Server Administration console to configure the application. For more information about configuring an application, see "How to Configure an Application" at http://go.microsoft.com/fwlink/?LinkID=196961.

Configuring an application involves:

  • Selecting a host for the application.

  • Mapping the ports that you created in your orchestration to physical ports in the BizTalk Server Administration console. For this orchestration you must:

    • Define a physical WCF-Custom or WCF-OracleDB one-way receive port. This port listens for notifications coming from the Oracle database. For information about how to create receive ports, see Manually Configuring a Physical Port Binding to the Oracle Database Adapter. Make sure you specify the following binding properties for the receive port.

      Important
      You do not need to perform this step if you specified the binding properties at design-time. In such a case, you can create a receive port, with the required binding properties set, by importing the binding file created by the Consume Adapter Service Add-in. For more information see Configuring a Physical Port Binding by Using a Port Binding File.

      Binding Property Value

      InboundOperationType

      Set this to Notification.

      NotificationPort

      Specifies the port number that ODP.NET must open to listen for database change notification from Oracle database. Set this to the same port number that you must have added to the Windows Firewall exceptions list. For instructions on how to add ports to Windows Firewall exceptions list, see http://go.microsoft.com/fwlink/?LinkID=196959.

      Important
      If you set this to the default value of -1, you will have to completely disable Windows Firewall to receive notification messages.

      NotificationStatement

      Set this to:

      Copy Code
      SELECT TID,ACCOUNT,PROCESSED FROM SCOTT.ACCOUNTACTIVITY WHERE PROCESSED = ‘n’
      Note
      You must specify the table name along with the schema name. For example, SCOTT.ACCOUNTACTIVITY.

      NotifyOnListenerStart

      Set this to True.

      For more information about the different binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

      Note
      We recommend configuring the transaction isolation level and the transaction timeout while performing inbound operations using the Oracle Database adapter. You can do so by adding the service behavior while configuring the WCF-Custom or WCF-OracleDB receive port. For instruction on how to add the service behavior, see Configure Transaction Isolation Level and Transaction Timeout.

    • Define a physical WCF-Custom or WCF-OracleDB send port to send messages to the Oracle database to execute the PROCESS_REOCRDS procedure. You must also specify the action in the send port.

    • Define a location on the hard disk and a corresponding file port where the BizTalk orchestration will drop the messages from the Oracle database. These will be the notification messages received from the Oracle database and messages for the PROCESS_RECORDS procedure you execute through the WCF-Custom or WCF-OracleDB send port.

Starting the Application

You must start the BizTalk application for receiving notification messages from the Oracle database and for executing the PROCESS_RECORDS procedure. For instructions on starting a BizTalk application, see “How to Start an Orchestration” at http://go.microsoft.com/fwlink/?LinkId=102387.

At this stage, make sure:

  • The WCF-Custom or WCF-OracleDB one-way receive port, which receives the notification messages from the Oracle database is running.

  • The WCF-Custom or WCF-OracleDB send port to execute the PROCESS_RECORDS procedure is running.

  • The FILE send port, which receives messages from the Oracle database, is running.

  • The BizTalk orchestration for the operation is running.

Executing the Operation

Assume that the ACCOUNTACTIVITY table already has some records. Also, make sure the XML message to execute PROCESS_RECORDS procedure is available at C:\TestLocation\MessageIn. The XML file should resemble the following:

Copy Code
<PROCESS_RECORDS xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG"/>

Once the BizTalk orchestration is started, the following set of actions take place, in the same sequence:

  • The adapter receives a notification message that resembles the following:

    Copy Code
    <?xml version="1.0" encoding="utf-8" ?>
<Notification xmlns="http://Microsoft.LobServices.OracleDB/2007/03/Notification/">
  <Info>ListenerStarted</Info>
  <Source>OracleDBBinding</Source>
  <Type>Startup</Type>
</Notification>
    This message notifies that the receive port for receiving the notification messages is started. Note that the value for the <Info> element is “ListnerStarted”.

  • The adapter executes the PROCESS_RECORDS procedure. The next response from the Oracle database is for the procedure.

    Copy Code
    <?xml version="1.0" encoding="utf-8" ?>
<PROCESS_RECORDSResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">
  <TABLE_DATA>
    <xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
      <xs:element msdata:IsDataSet="true" name="NewDataSet">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="unbounded" name="NewTable">
              <xs:complexType>
                <xs:sequence>
                  <xs:element minOccurs="0" name="TID" type="xs:decimal" />
                  <xs:element minOccurs="0" name="ACCOUNT" type="xs:decimal" />
                  <xs:element minOccurs="0" name="PROCESSED" type="xs:string" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
    <diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
    <NewDataSet xmlns="">
      <NewTable>
        <TID>1</TID>
        <ACCOUNT>100001</ACCOUNT>
        <PROCESSED>n</PROCESSED>
      </NewTable>
      <NewTable>
        ......
        ......
      </NewTable>
      ......
      ......
    </NewDataSet>
    </diffgr:diffgram>
  </TABLE_DATA>
</PROCESS_RECORDSResponse>

    This is the response for the SELECT statement execute as part of the PROCESS_RECORDS procedure.

  • The PROCESS_RECORDS procedure also updates the rows to set PROCESSED to ‘y’. Hence, the adapter receives another notification for the Update operation.

    Copy Code
    <?xml version="1.0" encoding="utf-8" ?>
<Notification xmlns="http://Microsoft.LobServices.OracleDB/2007/03/Notification/">
  <Details>
    <NotificationDetails>
      <ResourceName>SCOTT.ACCOUNTACTIVITY</ResourceName>
      <Info>32</Info>
      <QueryId>0</QueryId>
    </NotificationDetails>
  </Details>
  <Info>Update</Info>
  <ResourceNames>
    <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">SCOTT.ACCOUNTACTIVITY</string>
  </ResourceNames>
  <Source>Data</Source>
  <Type>Change</Type>
</Notification>
    Note that the Info element contains “Update”.

  • After the second notification, the adapter again executes the PROCESS_RECORDS procedure. However, now because there are no records where PROCESSED column is set to ‘n’, the procedure returns an empty response resembling the following.

    Copy Code
    <?xml version="1.0" encoding="utf-8" ?>
<PROCESS_RECORDSResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">
  <TABLE_DATA>
    <xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
      <xs:element msdata:IsDataSet="true" name="NewDataSet">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="unbounded" name="NewTable">
              <xs:complexType>
                <xs:sequence>
                  <xs:element minOccurs="0" name="TID" type="xs:decimal" />
                  <xs:element minOccurs="0" name="ACCOUNT" type="xs:decimal" />
                  <xs:element minOccurs="0" name="PROCESSED" type="xs:string" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
    <diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
      <NewDataSet xmlns="" />
    </diffgr:diffgram>
  </TABLE_DATA>
</PROCESS_RECORDSResponse>

Best Practices

After you have deployed and configured the BizTalk project, you can export configuration settings to an XML file called the binding file. Once you generate a binding file, you can import the configuration settings from the file, so that you do not need to create the send ports and receive ports for the same orchestration. For more information about binding files, see Reusing Adapter Bindings.

See Also

Other Resources

Receiving Database Change Notifications Using BizTalk Server


Receiving Database Change Notifications On Multiple Receive Locations

Consider a scenario where you have multiple receive locations created as part of different BizTalk applications configured to receive query notifications for the same table (e.g. ACCOUNTACTIVITY) in the same database. If a hundred records are inserted into the same table, all the receive locations will get the notification message. To effectively receive notifications across multiple receive locations, you can call operations from your BizTalk application in such a way that if a notification is received by one receive location, the other receive location does not get the same notification. So, you can effectively load-balance notifications received on multiple locations.

The tasks required to set up an orchestration to load-balance receiving notifications are same as that for Receiving Database Change Notifications Incrementally Using BizTalk Server. This topic lists the only the difference between the two approaches.

Load-Balancing Query Notifications Across Multiple Receive Locations

Like in the topic Receiving Database Change Notifications Incrementally Using BizTalk Server, you configured incremental notifications by executing a PROCESS_RECORDS procedure. To configure load-balancing, you could execute a stored procedure that deletes the records that have been notified for. For example, consider a stored procedure NOTIFY_LOAD_BALANCE with the following definition:

Copy Code
PROCEDURE NOTIFY_LOAD_BALANCE (TABLE_DATA OUT SYS_REFCURSOR) IS
  var int;
BEGIN
  SELECT TID INTO var FROM ACCOUNTACTIVITY WHERE ROWNUM = 1 FOR UPDATE;
  OPEN TABLE_DATA FOR SELECT * FROM ACCOUNTACTIVITY WHERE TID = var;
  DELETE FROM ACCOUNTACTIVITY WHERE TID = var;
END NOTIFY_LOAD_BALANCE;

When you execute this stored procedure as part of the BizTalk application, the record for which notification is already received gets deleted. So, the other receive location gets notification for the next record.

Here are the high-level steps you must perform to configure load-balancing for receiving notifications.

  1. Create schema for Notification (inbound operation) and NOTIFY_LOAD_BALANCE procedure (outbound operation).

  2. Add an orchestration and add three messages for receiving notification, executing the procedure, and getting response for the procedure.

  3. Create an orchestration by adding Send and Receive shapes, Construct Message shape, and ports. You can use the same sample code for constructing a message to invoke the NOTIFY_LOAD_BALANCE stored procedure. Note that while performing the operation in BizTalk Server Administration console, you must have the request message for the NOTIFY_LOAD_BALANCE procedure in the location C:\TestLocation\MessageIn. You do so because the code snippet you invoke as part of the orchestration created in Receiving Database Change Notifications Incrementally Using BizTalk Server creates a request message based on the request XML present in C:\TestLocation\MessageIn.

  4. Build and deploy the application. To demonstrate load-balancing, you must deploy this orchestration at least on two different computers that have BizTalk Server and Oracle Database adapter installed.

  5. In the BizTalk Server Administration console on both the computers, specify the following binding properties for the WCF-Custom or WCF-OracleDB receive location:

    Binding Property Value

    InboundOperationType

    Set this to Notification.

    NotificationPort

    Specifies the port number that ODP.NET must open to listen for database change notification from Oracle database. Set this to the same port number that you must have added to the Windows Firewall exceptions list. For instructions on how to add ports to Windows Firewall exceptions list, see http://go.microsoft.com/fwlink/?LinkID=196959.

    Important
    If you set this to the default value of -1, you will have to completely disable Windows Firewall to receive notification messages.

    NotificationStatement

    Set this to:

    Copy Code
    SELECT TID,ACCOUNT,PROCESSED FROM SCOTT.ACCOUNTACTIVITY WHERE PROCESSED = ‘n’
    Note
    You must specify the table name along with the schema name. For example, SCOTT.ACCOUNTACTIVITY.

    NotifyOnListenerStart

    Set this to True.

  6. Start the BizTalk application.

  7. To start receiving notifications, insert a hundred records into the ACCOUNTACTIVITY table. While doing so, make sure the request XML for invoking the NOTIFY_LOAD_BALANCE procedure is available in C:\TestLocation\MessageIn.

  8. Monitor the location (on both the computers) where the BizTalk application will be dropping the notification messages. You will notice that of the hundred records inserted, one location gets notifications for some records while the other location gets notification for the remaining records. Together, both the locations will get notification for all the hundred records.

See Also

Other Resources

Receiving Database Change Notifications Using BizTalk Server


Receiving Database Change Notifications After a Receive Location Breakdown

Consider a scenario where you have a BizTalk application that receives database change notification messages when changes are made to the ACCOUNTACTIVITY table. If the receive location configured as part of the BizTalk application breaks down, and simultaneously records are added into the ACCOUNTACTIVITY table, you will not receive notifications for the recently added records. You will also not know when the receive location is available again. The Oracle Database adapter exposes a binding property, NotifyOnListenerStart, that you can configure to get a notification that the receive location has recovered. You can specify the following values for the NotifyOnListenerStart binding property:

  • Set this property to True, to receive a notification informing that the receive location is available, as soon as the receive location recovers.

  • Set this property to False, to not receive a notification informing that the receive location has recovered, after the receive location recovers.

Default is True.

Configuring the Oracle Database Adapter Behavior

For either of the approaches, you do not need to perform any specific tasks while generating metadata or while configuring the BizTalk application. You only need to set the NotifyOnListenerStart binding property accordingly on the WCF-Custom or WCF-OracleDB receive location. To create the BizTalk application, you must perform the same set of tasks as described in Receiving Database Change Notifications Incrementally Using BizTalk Server. However, when configuring the BizTalk application using BizTalk Server, you can try changing the value of NotifyOnListenerStart binding property and see the difference in the two configurations.

The following figure demonstrates how the notifications are received based on the value of the NotifyOnListenerStart binding property.

Configure SQL Adapter for notifications

Note that in the first scenario, when the NotifyOnListenerStart is set to True and records are inserted into the database table while the receive location was down, the adapter only sends you a notification message when the receive location comes up. The adapter does not perform any operation to process the records that were inserted while the receive location was down. The adapter client must implement the relevant logic in their application to process the records that were inserted while the receive location was down.

See Also

Other Resources

Receiving Database Change Notifications Using BizTalk Server


Developing Applications by Using the WCF Service Model

At the lowest level, the Windows Communication Foundation (WCF) presents a programming model in which clients invoke operations on a service by exchanging SOAP messages over a channel established between client and service endpoints. This model, known as the WCF channel model, exposes data types and methods that enable you to operate directly on the WCF channel architecture. The WCF channel model provides you with direct control over the contents of the SOAP messages you create and over the way both your application and the Oracle Database adapter consume them; however, creating well-formed SOAP messages to send over a channel and validating the reply messages returned can be a detailed and exacting task.

For this reason, WCF provides another programming model called the WCF service model. The WCF service model involves the use of proxy classes to invoke operations on a target service or to receive operations from a client.

  • The proxy class used to invoke operations on a target service is called a WCF client class. This class models the operations exposed by a service as .NET methods with strongly-typed parameters. By using the WCF service model, you can invoke the operations exposed by the Oracle Database adapter as .NET methods on the WCF client. For more information about WCF clients, see "WCF Client Overview" at http://go.microsoft.com/fwlink/?LinkId=91458.

  • In the WCF service model, the service contract exposed by a service is represented by an interface. This managed code representation of the service contract is called a WCF service contract. The WCF service contract models operations as methods with strongly-typed parameters. To receive an operation from a client you implement a class, the WCF service, from this interface. You can then host an instance of this class in a System.ServiceModel.ServiceHost to enable a client to invoke the operation on your code. By using the WCF service model and a WCF service contract targeted to the POLLINGSTMT operation, you can receive the results of a polling operation on the Oracle database using Oracle Database adapter.

You use tools to generate a WCF client class or a WCF service contract and associated helper code from the service metadata that the Oracle Database adapter exposes. You can use either of the following tools:

  • The ServiceModel Metadata Utility Tool (svcutil.exe), which ships with WCF

  • The Add Adapter Service Reference Visual Studio Plug-in, which ships with the Oracle Database adapter

The Add Adapter Service Reference Plug-in is integrated with the Visual Studio design experience and presents a standard Microsoft Windows interface that provides powerful browsing and searching capabilities on operations exposed by the adapter. For more information about how to generate a WCF client or a WCF service contract, see Generating a WCF Client or a WCF Service Contract for Oracle Database Artifacts.

Because it presents a model that is familiar to .NET programmers and that hides the underlying complexities of SOAP message exchange over a channel, the WCF service model is often the best choice to develop programming solutions for the Oracle Database adapter. However, there are scenarios in which the WCF channel model might be a better choice. For example, the WCF service model only supports streaming for the ReadLOB operation. This is because serializing and de-serializing between the XML representation of objects in a SOAP message and the .NET types used to represent them in the service model involves reading the entire message into memory. (The result of a ReadLOB operation is an exception to this rule.)

The WCF channel model provides support for XML node-level streaming on all operations and data-level streaming on the ReadLOB and UpdateLOB operations. If you are dealing with queries that return large result sets or are attempting to update an LOB field in a table, the WCF channel model might be a better choice. For more information about using the WCF channel model, see Developing Applications by Using the WCF Channel Model.

The topics in this section contain information, procedures, and examples to help you create and use the WCF service model to develop applications by using the Oracle Database adapter.

In This Section

  • Overview of Using the WCF Service Model with the Adapter

  • Metadata and the WCF Service Model

  • Generating a WCF Client or a WCF Service Contract for Oracle Database Artifacts

  • Specifying a Client Binding for the Oracle Database

  • Performing Basic Insert, Update, Delete, and Select Operations by Using the WCF Service Model

  • Performing Operations on Tables with Large Object Types by Using the WCF Service Model

  • Invoking Functions and Procedures by Using the WCF Service Model

  • Performing Operations Using REF CURSORS in the WCF Service Model

  • Performing Operations Using RECORD Types in the WCF Service Model

  • Performing a SQLEXECUTE Operation by Using the WCF Service Model

  • Receiving Polling-based Data-changed Messages by Using the WCF Service Model

  • Receiving Database Change Notifications Using the WCF Service Model


Overview of Using the WCF Service Model with the Adapter

When you consume operations that the Microsoft BizTalk Adapter for Oracle Database surfaces, your code acts either as a client or a service to the adapter. For almost all of the operations that the Oracle Database adapter surfaces, your code is the client. That is, your application invokes the operation on the adapter; for example to insert records into an Oracle table. The only operation for which your code acts as a service to the Oracle Database adapter is for the POLLINGSMT operation. In this case, the adapter sends the results of the polling query operation to your application.

In the Windows Communication Foundation (WCF) service model, the service contract that exists between a client and a service is represented as a .NET interface, and operations are represented as methods on this interface. The Oracle Database adapter and WCF provide tools that enable you to generate this interface for targeted operations from the metadata that the adapter exposes. These tools also create a WCF client class that can be used to invoke the operations exposed in the service interface. A client application can call the methods of the WCF client class to invoke operations on the adapter. To implement a service to receive the POLLINGSTMT operation from the Oracle Database adapter, you implement the interface generated for the POLLINGSTMT operation.

The following sections explain how to use the WCF service model to create client and service code for the Oracle Database adapter.

Creating and Invoking Operations on a WCF Client by Using the Oracle Database Adapter

To use the WCF service model to invoke operations on the Oracle Database adapter, you must first generate a WCF client class for the target operations. You can then create an instance of this class, a WCF client, and call its methods to perform operations on the Oracle database.

To invoke operations on the Oracle Database adapter

  1. Generate a WCF client class and helper code. Use the Add Adapter Service Reference Visual Studio Plug-in or the ServiceModel Metadata Utility Tool (svcutil.exe) to generate a WCF client class targeted at the Oracle database artifacts with which you want to work. For more information about how to generate a WCF client, see Generating a WCF Client or a WCF Service Contract for Oracle Database Artifacts.

  2. Create a WCF client instance by specifying a client binding. Specifying a client binding involves specifying the binding and endpoint address that the WCF client will use. You can do this either imperatively in code or declaratively in configuration. For more information about how to specify a client binding, see Specifying a Client Binding for the Oracle Database. The following code creates a WCF client that can be used to perform data manipulation language (DML) operations on an Oracle database table (/SCOTT/ACCOUNTACTIVITY). It also sets the credentials for the Oracle database. The WCF client is initialized from configuration.

    Copy Code
    SCOTTTableACCOUNTACTIVITYClient aaTableClient =
    new SCOTTTableACCOUNTACTIVITYClient("OracleDBBinding_SCOTT.Table.ACCOUNTACTIVITY");

aaTableClient.ClientCredentials.UserName.UserName = "SCOTT";
aaTableClient.ClientCredentials.UserName.Password = "TIGER";

  3. Open the WCF client.

    Copy Code
    aaTableClient.Open();

  4. Invoke methods on the WCF client created in step 2 to perform operations on the Oracle database. The following code invokes the Select method of the WCF client to perform the following SQL SELECT query on the ACCOUNTACTIVITY table: SELECT * FROM ACCOUNTACTIVITY.

    Copy Code
    // create a record set parameter to hold the SELECT query result set and invoke the Select operation;
microsoft.lobservices.oracledb._2007._03.SCOTT.Table.ACCOUNTACTIVITY.ACCOUNTACTIVITYRECORDSELECT[] selectRecords;
selectRecords = aaTableClient.Select("*", null);

  5. Close the WCF client.

    Copy Code
    aaTableClient.Close();

For more information about performing DML operations on tables and views, including the Select operation used above, see Performing Basic Insert, Update, Delete, and Select Operations by Using the WCF Service Model.

Creating and Implementing a WCF Service by Using the Oracle Database Adapter

The Oracle Database adapter can perform polling on an Oracle database table or view. This functionality lets you specify a SQL SELECT query that the adapter should execute periodically against the Oracle database. The results of this query are returned to your application through a special operation, the POLLINGSTMT operation. To receive the results of the polling query, your application must implement the service contract that the Oracle Database adapter exposes for the POLLINGSTMT operation.

To implement a service to receive the POLLINGSTMT operation, you must first generate the .NET interface (also called the WCF service contract) that represents the service contract exposed by the Oracle Database adapter for the POLLINGSTMT operation. For more information about how to do this, see Generating a WCF Client or a WCF Service Contract for Oracle Database Artifacts.

Then you implement a WCF service by implementing the generated interface. This class contains the business logic to process the POLLINGSTMT message and return a response to the adapter. Then you use a service host (System.ServiceModel.ServiceHost) to host an instance of this service. For more detailed information, see Receiving Polling-based Data-changed Messages by Using the WCF Service Model.

See Also

Other Resources

Developing Applications by Using the WCF Service Model


Metadata and the WCF Service Model

In the WCF service model, you use the Add Adapter Service Reference Visual Studio Plug-in.or the ServiceModel Metadata Utility Tool (svcutile.exe) to generate proxy classes through which your code can either:

  • Invoke operations on the adapter (a WCF client class)

  • Receive operations from the adapter (a WCF service contract)

These tools generate .NET classes that represent a service contract for target operations (as well as the supporting message contracts, operation contracts, and data contracts) from the metadata exposed by the Oracle Database adapter. For help in understanding the structure of this generated code, see "Understanding Generated Client Code" at http://go.microsoft.com/fwlink/?LinkId=98365. This topic specifically describes code that svcutil.exe generates, but its content is also applicable to the code that the Add Adapter Service Reference Plug-in generates. For information about how to generate a WCF client class or WCF service contract for target operations and about the differences between svcutil.exe and the Add Adapter Service Reference Plug-in, see Generating a WCF Client or a WCF Service Contract for Oracle Database Artifacts.

See Also

Other Resources

Developing Applications by Using the WCF Service Model


Generating a WCF Client or a WCF Service Contract for Oracle Database Artifacts

You can use the Add Adapter Service Reference Visual Studio Plug-in to generate a WCF client class or a WCF service contract (interface) targeted at selected operations on Oracle database artifacts. You can also use the ServiceModel Metadata Utility Tool (svcutil.exe) to generate the WCF client class or WCF service contract; however, the Add Adapter Service Reference Plug-in exposes the functionality of the ServiceModel Metadata Utility Tool through a standard Microsoft Windows interface. It also provides browse and search capabilities that are not available with the svcutil.exe tool, and it generates a configuration file based on the binding properties that you select when you connect to the Oracle database.

Generating a Client Class by Using the Add Adapter Service Reference Plug-in

Perform the following steps to generate a WCF client class by using the Add Adapter Service Reference Plug-in.

To generate a WCF client class

  1. In Visual Studio Solution Explorer, right-click your project, and then click Add Adapter Service Reference.

  2. After the Add Adapter Service Reference dialog box opens, follow the steps in Retrieving Metadata for Oracle Operations in Visual Studio to connect to the Oracle database and browse and search for operations. To create a WCF client class for the operations that you select, be sure that Client (Outbound operations) is selected from the Select contract type drop-down list (this is the default).

  3. After you select all of the operations that you want to target, click OK to generate the WCF client class.

The Add Adapter Service Reference Plug-in adds two files to your project:

  • OracleDBBindingClient.cs. This file contains the generated WCF client class and helper code for the operations that you selected.

  • App.config. This file contains a binding configuration and client endpoint configurations. These configurations are based on the selections you made when you configured the binding and connection for the Add Adapter Service Reference Plug-in.

    Important
    While using the Add Adapter Service Reference Visual Studio Plug-in, if you do not specify a value for a binding property of type string and whose default value is null then that binding property will not be available in the app.config file. You must manually add the binding property and its value in the app.config file, if required.

Generating a WCF Service Contract by Using the Add Adapter Service Reference Plug-in

The adapter exposes inbound operations to enable Oracle database to send messages to an adapter client. For such operations you must generate a WCF service contract. For example, the adapter exposes an inbound POLLINGSTMT operation to poll the Oracle database. The Oracle Database adapter executes the query specified by the PollingStatement binding property and sends the result set to the consuming application in a POLLINGSTMT message. In this scenario, the consuming application acts as a service and the Oracle Database adapter acts as the client. You must, therefore, implement a WCF service that can receive the POLLINGSTMT operation from the adapter. To do this, you use the Add Adapter Service Reference Plug-in to generate a .NET interface that represents the service contract that is surfaced by the adapter for the POLLINGSTMT operation. This .NET interface is also called a WCF service contract. You then implement this interface to create the WCF service that you can use to receive the POLLINGSTMT operation.

This section provides information on how to generate a WCF service contract using the Add Adapter Service Reference Plug-in for inbound operations exposed by the adapter.

To generate a WCF service contract for inbound operations

  1. In Visual Studio Solution Explorer, right-click your project, and then click Add Adapter Service Reference.

  2. After the Add Adapter Service Reference dialog box opens, follow the steps in Retrieving Metadata for Oracle Operations in Visual Studio to connect to the Oracle database. There are several binding properties and a URI property that you may want to set when you connect to the Oracle database for inbound operations. For example, for the inbound polling operation (POLLINGSTMT), you must specify the PollingStatement binding property when you configure the connection to the Oracle database. The Oracle Database adapter uses the SQL SELECT statement specified in this property to generate the class that represents the result set returned by the POLLINGSTMT operation.

  3. After you have connected to the Oracle database, select Service (Inbound operations) from the Select contract type drop-down list.

  4. In the Select a category box, click the root node (/), and browse to the operation for which you want to generate the service contract. For example, for the polling operation, select POLLINGSTMT from the Available categories and operations box, and then click Add.

  5. To generate the WCF service contract for the POLLINGSTMT operation, click OK.

The Add Adapter Service Reference Plug-in adds three files to your project:

  • OracleDBBindingInterface.cs. This file contains the generated WCF service contract (interface) and helper code for the POLLINGSTMT operation.

  • OracleDBBindingService.cs. This file contains a class that implements the interface defined in OracleDBBindingInterface.cs. You can implement the business logic that processes the records returned by the polling query in the POLLINGSTMT method in this class.

  • App.config. This file contains a binding configuration, endpoint behaviors, and service endpoint configuration that are based on the selections you made when you configured the binding and connection for the Add Adapter Service Reference Plug-in.

    Important
    While using the Add Adapter Service Reference Visual Studio Plug-in, if you do not specify a value for a binding property of type string and whose default value is null then that binding property will not be available in the app.config file. You must manually add the binding property and its value in the app.config file, if required.

Using svcutil.exe to Generate a WCF Client Class or a WCF Service Contract

You can use svcutil.exe to generate a WCF client class or a WCF service interface for your application. You must configure svcutil.exe to use it with the Oracle Database adapter. For more information about configuring and using svcutil.exe with the Oracle Database adapter, see Using the ServiceModel Metadata Utility Tool with the BizTalk Adapter for Oracle Database.

Svcutil.exe generates the WCF client class or WCF service contract in an output file. The default file name is output.cs. You must manually include this file in your Visual Studio project.

See Also

Concepts

Performing Basic Insert, Update, Delete, and Select Operations by Using the WCF Service Model

Other Resources

Developing Applications by Using the WCF Service Model


Specifying a Client Binding for the Oracle Database

After you have generated the WCF client class, you can create a WCF client (instance) and invoke its methods to consume the Oracle Database adapter. For information about how to generate the WCF client class and helper code for operations that the Microsoft BizTalk Adapter for Oracle Database exposes, see Generating a WCF Client or a WCF Service Contract for Oracle Database Artifacts.

To create the WCF client, you must specify an endpoint address and a binding. The endpoint address must contain a valid Oracle connection URI, and the binding must be an instance of an Oracle DB Binding (OracleDBBinding). For more information about the Oracle connection URI, see The Oracle Database Connection URI. We recommend that you do not specify the user credentials as part of the connection URI. You may instead use the ClientCredentials property of the WCF client, as explained in this topic.

You can specify the Oracle DB Binding and the endpoint address in your code or in a configuration file. When you use the Add Adapter Service Reference Visual Studio Plug-in to generate the WCF client class, a configuration file (app.config) is also created for your project. This file contains configuration settings that reflect the binding properties and connection information (except credentials) that you specified when you connected to the Oracle database with the Add Adapter Service Reference Plug-in.

Specifying the Binding and Endpoint Address in Code

The following code shows how to create a WCF client by specifying the binding and endpoint address in code. It is good practice to specify the Oracle credentials by using the ClientCredentials property of the WCF client rather than in the connection URI supplied for the endpoint address.

Copy Code
// A WCF client that targets the /SCOTT/EMP table is created
// by using a binding object and endpoint address
OracleDBBinding odbBinding = new OracleDBBinding();
EndpointAddress odbAddress = new EndpointAddress("OracleDb://ADAPTER");

SCOTTTableEMPClient empClient = new SCOTTTableEMPClient(odbBinding, odbAddress);

empClient.ClientCredentials.UserName.UserName = "SCOTT";
empClient.ClientCredentials.UserName.Password = "TIGER";

empClient.Open();

Specifying the Binding and Endpoint Address in a Configuration File

The following code shows how to create a WCF client by specifying the binding and endpoint address in an app.config file.

Copy Code
// A WCF client that targets the /SCOTT/EMP table is created
// by specifying the client endpoint information in app.config
SCOTTTableEMPClient empClient = new SCOTTTableEMPClient("OracleDBBinding_SCOTT.Table.EMP");

empClient.ClientCredentials.UserName.UserName = "SCOTT";
empClient.ClientCredentials.UserName.Password = "TIGER";

empClient.Open();

The following XML shows the configuration file created for the EMP table by the Add Adapter Service Reference Plug-in. This file contains the client endpoint configuration referenced in the preceding example.

Copy Code
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
    <system.serviceModel>
        <bindings>
            <oracleDBBinding>
                <binding name="OracleDBBinding" closeTimeout="00:01:00" openTimeout="00:01:00"
                    receiveTimeout="00:10:00" sendTimeout="00:01:00"
                    dataFetchSize="65536" metadataPooling="true" statementCachePurge="false"
                    statementCacheSize="10" longDatatypeColumnSize="32767" pollingStatement=""
                    postPollStatement="" pollingInterval="500" useOracleConnectionPool="false"
                    minPoolSize="1" maxPoolSize="100" incrPoolSize="5" decrPoolSize="1"
                    connectionLifetime="0" transactionIsolationLevel="ReadCommitted"
                    enablePerformanceCounters="false" acceptCredentialsInUri="false"
                    enableBizTalkCompatibilityMode="false" />
            </oracleDBBinding>
        </bindings>
        <client>
            <endpoint address="oracledb://adapter/" binding="oracleDBBinding"
                bindingConfiguration="OracleDBBinding" contract="SCOTTTableEMP"
                name="OracleDBBinding_SCOTT.Table.EMP" />
        </client>
    </system.serviceModel>
</configuration>

If a project has more than one WCF client, there will be multiple client endpoint entries defined in the configuration file. Each WCF client entry will have a unique name based on its binding configuration and target Oracle database artifact; for example, "OracleDBBinding_SCOTT.Table.EMP". If you connect multiple times to create the WCF clients in your project, multiple binding configuration entries will be created, one for each connection. These binding configuration entries will be named in the following manner: OracleDBBinding1, OracleDBBinding2, and so on. Each client endpoint entry created during a specific connection will reference the binding entry created during that connection.

See Also

Concepts

Generating a WCF Client or a WCF Service Contract for Oracle Database Artifacts
The Oracle Database Connection URI

Other Resources

Developing Applications by Using the WCF Service Model
Developing Applications by Using the WCF Channel Model


Performing Basic Insert, Update, Delete, and Select Operations by Using the WCF Service Model

The Microsoft BizTalk Adapter for Oracle Database surfaces a set of basic Insert, Update, Delete, and Select operations on Oracle database tables and views. By using these operations, you can perform simple SQL INSERT, UPDATE, SELECT, and DELETE statements qualified by a WHERE clause on a target table or view. To perform more complex operations, for example a SQL SELECT query that uses the JOIN operator, you can use the SQLEXECUTE operation. For more information about the SQLEXECUTE operation, see Performing a SQLEXECUTE Operation by Using the WCF Service Model.

The following table summarizes the basic SQL operations that the Oracle Database adapter surfaces on tables and views. For a complete description of these operations, see Message Schemas for the Basic Insert, Update, Delete, and Select Operations on Tables and Views.

Operation Description

Insert

The Insert operation supports multiple record or bulk inserts into the target table or view:

  • A multiple record Insert operation inserts rows into a table or view based on a supplied record set.

  • A bulk Insert operation inserts rows into a table or view based on a supplied SQL SELECT query and column list. The records that the query returns are inserted into the target table based on the column list.

Select

Performs a SQL SELECT query on the target table based on a supplied list of column names and a filter string that specifies a SQL WHERE clause.

Update

Performs an UPDATE on the target table. The records to be updated are specified by a filter string that specifies a SQL WHERE clause. The values for the update are specified in a template record.

Delete

Performs a DELETE on the target table based on a SQL WHERE clause that is specified in a filter string.

About the Examples Used in this Topic

The examples in this topic use the /SCOTT/ACCOUNTACTIVITY table. A script to generate this table is supplied with the SDK samples. For more information about the SDK samples, see Samples.

The WCF Client Class

The name of the WCF client generated for the basic SQL operations that the Oracle Database adapter surfaces is based on the name of the table or view, as in the following table.

Oracle Database Artifact | WCF Client Name
Table | [SCHEMA]Table[TABLE_NAME]Client
View | [SCHEMA]View[VIEW_NAME]Client

[SCHEMA] = Collection of Oracle artifacts; for example, SCOTT.

[TABLE_NAME] = The name of the table; for example, ACCOUNTACTIVITY.

[VIEW_NAME] = The name of the view.

The following table shows the method signatures for the basic SQL operations on a table. The signatures are the same for a view, except that the view namespace and name replace those of the table.

Operation | Method Signature
Insert | long Insert([TABLE_NS].[TABLE_NAME]RECORDINSERT[] RECORDSET, string COLUMN_NAMES, string QUERY);
Select | [TABLE_NS].[TABLE_NAME]RECORDSELECT[] Select(string COLUMN_NAMES, string FILTER);
Update | long Update([TABLE_NS].[TABLE_NAME]RECORDUPDATE RECORDSET, string FILTER);
Delete | Long Delete(string FILTER);

[TABLE_NS] = The name of the table namespace; for example, microsoft.lobservices.oracledb._2007._03.SCOTT.Table.ACCOUNTACTIVITY.

[TABLE_NAME] = The name of the table; for example, ACCOUNTACTIVITY.

The record types used by the Insert, Update, and Select operations are all defined in the table or view namespace.

The following code shows the method signatures for a WCF client class generated for the Delete, Insert, Select and Update operations on the /SCOTT/ACCOUNTACTIVITY table.

Copy Code
public partial class SCOTTTableACCOUNTACTIVITYClient : System.ServiceModel.ClientBase<SCOTTTableACCOUNTACTIVITY>, SCOTTTableACCOUNTACTIVITY {

    public long Delete(string FILTER);

    public long Insert(microsoft.lobservices.oracledb._2007._03.SCOTT.Table.ACCOUNTACTIVITY.ACCOUNTACTIVITYRECORDINSERT[] RECORDSET, string COLUMN_NAMES, string QUERY);

    public microsoft.lobservices.oracledb._2007._03.SCOTT.Table.ACCOUNTACTIVITY.ACCOUNTACTIVITYRECORDSELECT[] Select(string COLUMN_NAMES, string FILTER);

    public long Update(microsoft.lobservices.oracledb._2007._03.SCOTT.Table.ACCOUNTACTIVITY.ACCOUNTACTIVITYRECORDUPDATE RECORDSET, string FILTER);
}

Invoking the Basic SQL Operations

To invoke the basic SQL operations on a table or view by using a WCF client, perform the following steps.

  1. Generate a WCF client class for the target table or view. This class should contain methods for the operations that you will invoke on the target artifact.

  2. Create an instance of the WCF client class and invoke its methods to perform operations on the table or view.

For more detailed information about how to create a WCF client class and invoke operations on the Oracle Database adapter, see Overview of Using the WCF Service Model with the Adapter.

The Oracle Database adapter executes each operation inside of a transaction on the Oracle database. You can control the isolation level of this transaction by setting the TransactionIsolationLevel binding property. For more information about the Oracle Database adapter binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

The following sections provide details about how to invoke each basic SQL operation in your code.

Insert Operation

The following table shows how to set parameters for multiple record Insert and bulk Insert operations.

Insert operation type | RECORDSET | COLUMN_NAMES | QUERY
Multiple record | A collection of INSERTRECORDS that should be inserted into the target. | null | null
Bulk | null | A comma-delimited list of column names in the target; for example, "TID, ACCOUNT". The column list specifies the columns into which the query results should be placed in each inserted row. The query must return a result set that matches the columns specified in the column list in both number and type. | A SQL SELECT query on a database table or view that returns a result set to insert into the target; for example, "SELECT (TID, ACCOUNT) FROM NEW_TRANSACTIONS WHERE ACCOUNT = 100001". The result set must match the column list in both number and type.

The Insert operation returns the number of records inserted into the target.

Important
In the WCF service model, the record set used in the Insert operation is strongly-typed. You can set the value of a nillable column to null in a record to exclude that column from the Insert operation; however, you cannot set the value of a non-nillable column to null. This means that in a multiple record Insert operation, you must supply values for all non-nillable columns in each record. In addition, there is no streaming support for the basic SQL operations when you use the WCF service model. If your multiple record Insert operation involves a large record set, this may be an important consideration. For more information, see Limitations of Invoking the Basic SQL Operations by Using the WCF Service Model.

The following code shows a multiple record Insert operation (two records) that targets the ACCOUNTACTIVITY table.

Copy Code
// Insert records
                using (SCOTTTableACCOUNTACTIVITYClient aaTableClient =
                    new SCOTTTableACCOUNTACTIVITYClient("OracleDBBinding_SCOTT.Table.ACCOUNTACTIVITY"))
                {
                    long recsInserted;

                    aaTableClient.ClientCredentials.UserName.UserName = "SCOTT";
                    aaTableClient.ClientCredentials.UserName.Password = "TIGER";

                    try
                    {
                        aaTableClient.Open();
                    }
                    catch (Exception ex)
                    {
                        // handle exception
                        Console.WriteLine("Exception: " + ex.Message);
                        throw;
                    }

                    // Do a multiple record Insert of 2 records for account 100001

                    microsoft.lobservices.oracledb._2007._03.SCOTT.Table.ACCOUNTACTIVITY.ACCOUNTACTIVITYRECORDINSERT[] insertRecs =
                        new microsoft.lobservices.oracledb._2007._03.SCOTT.Table.ACCOUNTACTIVITY.ACCOUNTACTIVITYRECORDINSERT[2];

                                  TID__COMPLEX_TYPE tid = new TID__COMPLEX_TYPE();
                                  tid.InlineValue = "tidSequence.NextVal()";

                                  ACCOUNT__COMPLEX_TYPE account = new ACCOUNT__COMPLEX_TYPE();
                                  account.Value = 100001;

                    AMOUNT__COMPLEX_TYPE amount = new AMOUNT__COMPLEX_TYPE();
                    amount.Value = 400;

                    TRANSDATE__COMPLEX_TYPE transdate = new TRANSDATE__COMPLEX_TYPE();
                    transdate.Value = DateTime.Now.Date;

                    PROCESSED__COMPLEX_TYPE processed = new PROCESSED__COMPLEX_TYPE();
                    processed.Value = "n";

                    DESCRIPTION__COMPLEX_TYPE description1 = new DESCRIPTION__COMPLEX_TYPE();
                    description1.Value = "Inserted Record #1";

                    DESCRIPTION__COMPLEX_TYPE description2 = new DESCRIPTION__COMPLEX_TYPE();
                    description2.Value = "Inserted Record #2";

                    insertRecs[0] =
                        new microsoft.lobservices.oracledb._2007._03.SCOTT.Table.ACCOUNTACTIVITY.ACCOUNTACTIVITYRECORDINSERT();
                    insertRecs[0].TID = tid;
                    insertRecs[0].ACCOUNT = account;
                    insertRecs[0].AMOUNT = amount;
                    insertRecs[0].TRANSDATE = transdate;
                    insertRecs[0].DESCRIPTION = description1;
                    insertRecs[0].PROCESSED = processed;

                    insertRecs[1] =
                        new microsoft.lobservices.oracledb._2007._03.SCOTT.Table.ACCOUNTACTIVITY.ACCOUNTACTIVITYRECORDINSERT();
                    insertRecs[1].TID = tid;
                    insertRecs[1].ACCOUNT = account;
                    insertRecs[1].AMOUNT = amount;
                    insertRecs[1].TRANSDATE = transdate;
                    insertRecs[1].DESCRIPTION = description2;
                    insertRecs[1].PROCESSED = processed;

                    try
                    {
                        recsInserted = aaTableClient.Insert(insertRecs, null, null);
                    }
                    catch (Exception ex)
                    {
                        // handle exception
                        Console.WriteLine("Exception: " + ex.Message);
                        throw;
                    }

                    Console.WriteLine("Insert Done: {0} records inserted", recsInserted);

Select Operation

The following table shows the parameters for the Select operation.

COLUMN_NAMES | FILTER
A comma-delimited list of column names in the target; for example, "TID, ACCOUNT". The column list specifies the columns of the target that should be returned in the result set. Columns not specified in the column list will be set to their .NET default values in the returned record set. For nillable columns, this value is null. | The contents of a SQL WHERE clause that specifies the target rows of the query; for example, "DESCRIPTION = 'Insert Record #1'". You can set this parameter to null to return all rows of the target.

The Select operation returns a strongly-typed record set based on the row type of the target.

Important
There is no streaming support for the basic SQL operations when you use the WCF service model. If your query returns a large record set, you might be able to improve performance by using the WCF channel model. For more information, see Limitations of Invoking the Basic SQL Operations by Using the WCF Service Model.

The following code shows a Select operation that targets the ACCOUNTACTIVITY table. The returned records are written to the console.

Copy Code
// Declare a variable to hold the result set
microsoft.lobservices.oracledb._2007._03.SCOTT.Table.ACCOUNTACTIVITY.ACCOUNTACTIVITYRECORDSELECT[] selectRecords;

// Select all records and write them to the console
try
{
    selectRecords = aaTableClient.Select("*", null);
}
catch (Exception ex)
{
    // handle exception
}

Console.WriteLine("ACCOUNTACTIVITY before any operations");
for (int i = 0; i < selectRecords.Length; i++)
{
    Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}", selectRecords[i].TID,
    selectRecords[i].ACCOUNT,
    selectRecords[i].AMOUNT,
    selectRecords[i].TRANSDATE,
    selectRecords[i].DESCRIPTION);
}
Note
This code omits steps to create, configure, and open the WCF client instance. For an example that includes these steps, see Insert Operation.

Update Operation

The following table shows the parameters for the Update operation.

RECORDSET | FILTER
A strongly-typed template record based on the row type of the target. The template record specifies the update values for the target rows. For nillable row columns, you can specify a null value to indicate that the column should not be updated in the target rows. | The contents of a SQL WHERE clause that specifies the rows to be updated in the target. For example, "DESCRIPTION= 'Inserted Record #1'".

The Update operation returns the number of rows deleted from the target.

Important
In the WCF service model, the template record used in the Update operation is strongly-typed. If a column is nillable, you can omit the column from the Update operation by setting its value to null in the template record; however, if a column is not nillable, then you must set its value in the template record. For example, if a column is a primary key, it must contain a value. For more information, see Limitations of Invoking the Basic SQL Operations by Using the WCF Service Model.

The following code shows an Update operation that targets the ACCOUNTACTIVITY table.

Copy Code
long recsUpdated;

...

// Create updated template. The TID, TIME, AMOUNT, and DESCRIPTION fields will be updated
microsoft.lobservices.oracledb._2007._03.SCOTT.Table.ACCOUNTACTIVITY.ACCOUNTACTIVITYRECORDUPDATE updateRecord =
    new microsoft.lobservices.oracledb._2007._03.SCOTT.Table.ACCOUNTACTIVITY.ACCOUNTACTIVITYRECORDUPDATE();
        updateRecord.TID = tidSequence.NextVal();
        updateRecord.ACCOUNT = null;
        updateRecord.AMOUNT = 300;
        updateRecord.TRANSDATE = DateTime.Now.Date;
        updateRecord.DESCRIPTION = "Updated Record #2";
        updateRecord.PROCESSED = null;

// Set filter string to specify the target record by using the DESCRIPTION field
string filter = "DESCRIPTION = 'Inserted Record #2'";

try
{
    recsUpdated = aaTableClient.Update(updateRecord, filter);
}
catch (Exception ex)
{
    // handle exception
    ...
}

Console.WriteLine("{0} records updated", recsUpdated);
Note
This code omits steps to create, configure, and open the WCF client instance. For an example that includes these steps, see Insert Operation.

Delete Operation

The following table shows the parameters for the Delete operation.

FILTER

The contents of a SQL WHERE clause that specifies the rows to be deleted from the target. For example, "DESCRIPTION= 'Inserted Record #1'".

The Delete operation returns the number of rows deleted from the target. The following code shows a Delete operation that targets the ACCOUNTACTIVITY table.

Copy Code
// Set filter string equal to the DESCRIPTION field of the target record
string filter = "DESCRIPTION = 'Inserted Record #1'";

try
{
    recsDeleted = aaTableClient.Delete(filter);
}
catch (Exception ex)
{
    // handle exception

    ...
}
Console.WriteLine("{0} records deleted", recsDeleted);
Note
This code omits steps to create, configure, and open the WCF client instance. For an example that includes these steps, see the Insert Operation.

Limitations of Invoking the Basic SQL Operations by Using the WCF Service Model

The following limitations exist when you invoke the basic SQL operations by using a WCF client:

  • Insert operation. The record set used in a multiple record Insert operation is strongly-typed and therefore includes all row columns. The Oracle Database adapter interprets a null value in a record to mean that the column should be excluded from the Insert operation; however, non-nillable columns cannot be excluded because you cannot set them to a null value. Therefore, you must specify values for non-nillable columns when you perform a multiple record Insert operation.

  • Insert operation. The Oracle Database adapter interprets a DbNull value in a nillable data column to mean that the column should be excluded from a multiple record Insert operation. This means that you cannot set a nillable column to DbNull on the Oracle database in a multiple record Insert operation.

  • Insert operation. There is no streaming support for multiple record insert operations that involve a large record set.

  • Update operation. The template record used in an Update operation is strongly-typed and therefore includes all row columns. The Oracle Database adapter interprets a null value in this record to mean that the column should be excluded from the Update operation; however, non-nillable columns cannot be excluded because you cannot them to a null value. Therefore, you must specify values for non-nillable columns when you perform an Update operation.

  • Update operation. The Oracle Database adapter interprets a DbNull value in a nillable data column in the template record to mean that the column should be excluded from the operation. This means that you cannot set a nillable column to DbNull on the Oracle database by using the Update operation.

  • Select operation. There is no streaming support for SELECT queries that return a large record set.

For scenarios where these limitations present challenges, you can invoke the operation by using the WCF channel model because:

  • By using the WCF channel model, you can exclude specific data columns from Update and Insert operations.

  • The WCF channel model provides node-level streaming support for the basic SQL operations that the Oracle Database adapter exposes.

For more information about using the WCF channel model with the Oracle Database adapter, see Developing Applications by Using the WCF Channel Model.

See Also

Other Resources

Developing Applications by Using the WCF Service Model


Performing Operations on Tables with Large Object Types by Using the WCF Service Model

This section contains information about how to invoke the ReadLOB and UpdateLOB operations from the WCF service model. The ReadLOB and UpdateLOB operations are surfaced for tables and views that contain LOB columns; that is columns that are used to store Oracle large object (LOB) data. For an overview of the Oracle LOB data types supported by the Microsoft BizTalk Adapter for Oracle Database and of the ReadLOB and UpdateLOB operations, see Operations on Tables and Views That Contain LOB Data.

Important
LOB data columns can contain large amounts of data—up to 4 gigabytes (GB). A significant limitation of using a WCF client to operate on LOB columns is that the WCF service model only supports data streaming on the ReadLOB operation, not on the UpdateLOB operation. This is because WCF requires that for streaming to work from service model, the parameter to be streamed must be the only parameter in its direction. The UpdateLOB operation has two other IN parameters (a column name and row filter) in addition to the LOB data; for this reason, streaming is not supported on it in the WCF service model. Therefore, if you are updating a LOB column with a large amount of data, you might want to use the WCF channel model. For more information on how to use the WCF channel model to stream LOB data using the UpdateLOB operation, see Streaming Oracle LOB Data Types by Using the WCF Channel Model.

About the Examples Used in this Topic

The examples in this topic use the /SCOTT/CUSTOMER table. This table contains a BLOB column named PHOTO.A script to generate this table is supplied with the SDK samples. For more information about the SDK samples, see Samples.

The WCF Client Class

The following example shows the method signatures for a WCF client class generated for the ReadLOB and UpdateLOB operations on the /SCOTT/CUSTOMER table.

Copy Code
public partial class SCOTTTableCUSTOMERClient : System.ServiceModel.ClientBase<SCOTTTableCUSTOMER>,
                                                SCOTTTableCUSTOMER
{
    public System.IO.Stream ReadLOB(string LOB_COLUMN, string FILTER);

    public void UpdateLOB(string LOB_COLUMN, string FILTER, byte[] Stream);
}
Note
Note that ReadLOB returns a data stream, but that UpdateLOB does not operate on a stream.

Invoking the ReadLOB and UpdateLOB Operations

Both the ReadLOB and UpdateLOB methods can operate only on a single LOB column in a single database row. You set the following parameters to identify the target column/row.

Parameter Definition

LOB_COLUMN

The name of the target column within the row identified by the FILTER parameter; for example, "PHOTO".

FILTER

The contents of a SQL SELECT statement WHERE clause that specifies the target row; for example, "NAME='Kim Ralls'". The filter must specify one and only one row. If the filter matches more than one row:

  • ReadLOB returns LOB data for the first matching row.

  • UpdateLOB throws an exception.

Note
The stream returned by ReadLOB does not support Seek. This means that properties such as Length are not supported, either.

Caution
The UpdateLOB operation must be performed within a transaction scope. Also, the UseAmbientTransaction binding property must be set to true before performing the UpdateLOB operation.

The following code shows how to use a WCF client to update the BLOB PHOTO column in the /SCOTT/CUSTOMER table from a file and read the new column data back to a file. You can find a full sample in the SDK samples. For more information about the SDK samples, see Samples.

Copy Code
using System;
using System.Collections.Generic;
using System.Text;
using System.Transaction;

// Include for file streaming
using System.IO;

// Add WCF, WCF LOB Adapter SDK, and Oracle Database adapter namepaces
using System.ServiceModel;
using Microsoft.ServiceModel.Channels;
using Microsoft.Adapters.OracleDB;

// Include this namespace for the WCF channel model
using System.ServiceModel.Channels;

// Include this namespace for the WCF LOB Adapter SDK and Oracle Database adapter exceptions
using Microsoft.ServiceModel.Channels.Common;

using CustomerTablens = microsoft.lobservices.oracledb._2007._03;

namespace OracleLobOpsSnippetSM
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                OracleDBBinding binding = new OracleDBBinding();
                binding.UseAmbientTransaction = true; //set this to true for UpdateLOB operation

                EndpointAddress endpointAddress = new EndpointAddress("oracleDB://ADAPTER");

                using (SCOTTTableCUSTOMERClient customerTableClient =
                    new SCOTTTableCUSTOMERClient(binding, endpointAddress))
                {
                    customerTableClient.ClientCredentials.UserName.UserName = "SCOTT";
                    customerTableClient.ClientCredentials.UserName.Password = "TIGER";

                    // Open the client to read the LOB data back
                    customerTableClient.Open();

                    // Add a photo to the customer record
                    using (FileStream fs = new FileStream("SamplePhoto.jpg", FileMode.Open))
                    {
                        Console.WriteLine("Updating photo");
                        int count = 0;
                        byte[] photo = new byte[fs.Length];
                        while ((count += fs.Read(photo, count, (int) (((fs.Length-count)>4096)? 4096:fs.Length-count))) < fs.Length) ;

                        // UpdateLOB operation must be performed within a transaction scope
                        using(TransactionScope tx = new TransactionScope())
                        {
                           customerTableClient.UpdateLOB("PHOTO", "NAME='Kim Ralls'", photo);
                           Console.WriteLine("Photo updated");
                           tx.Complete();
                        }
                    }

                    // Read the data back and store it to another file
                    using (FileStream fs = new FileStream("PhotoCopy.jpg", FileMode.Create))
                    {
                        Console.WriteLine("Reading photo data");
                        Stream photoStream = customerTableClient.ReadLOB("PHOTO", "NAME='Kim Ralls'");
                        Console.WriteLine("Photo data read -- writing to PhotoCopy.jpg");

                        int count;
                        int length = 0;
                        byte[] buffer = new byte[4096];
                        while ((count = photoStream.Read(buffer, 0, 4096)) > 0)
                        {
                            fs.Write(buffer, 0, count);
                            length+=count;
                        }
                        Console.WriteLine("{0} bytes written to PhotoCopy.jpg", length);
                    }

                }

                Console.WriteLine("Photo updated and read back -- Hit <RETURN> to end");
                Console.ReadLine();

            }
            catch (Exception ex)
            {
                // handle exception
                Console.WriteLine("Exception caught: " + ex.Message);
            }
        }
    }
}

See Also

Other Resources

Developing Applications by Using the WCF Service Model


Invoking Functions and Procedures by Using the WCF Service Model

The Microsoft BizTalk Adapter for Oracle Database surfaces procedures, functions, and packages as operations. In the WCF service model these operations are represented as methods on a WCF client. The WCF service model and the Oracle Database adapter:

  • Support functions. The RETURN value of the Oracle function is surfaced as the return value of the WCF client method. Oracle parameters are surfaced as parameters (with the appropriate direction as defined below) to the WCF client method.

  • Support procedures. The first OUT parameter of the Oracle procedure is surfaced as the return value of the WCF client method. All other Oracle parameters are surfaced as parameters (with the appropriate direction as defined below) to the WCF client method.

  • Support Oracle packages. The name of the operation and the namespace of its parameter types are qualified by the package name.

  • Support overloaded functions and procedures.

  • Support IN, OUT and IN OUT parameters for basic Oracle data types for both procedures and functions. OUT parameters are surfaced as out parameters on the WCF client method and IN OUT parameters are surfaced as ref parameters.

  • Support IN, OUT, and IN OUT REF CURSOR parameters for procedures and functions, as well as function RETURN values. For more information, see Performing Operations Using REF CURSORS in the WCF Service Model.

  • Support IN, OUT, and IN OUT RECORD type parameters for procedures and functions, as well as function RETURN values. For more information, see Performing Operations Using RECORD Types in the WCF Service Model.

About the Examples Used in this Topic

The examples in this topic use the /SCOTT/Package/ACCOUNT_PKG/GET_ACCOUNT overloaded procedure. This procedure reads a record from the SCOTT/ACCOUNT table based on either an account ID or an account name. A script to generate this procedure and table is supplied with the SDK samples. For more information about the SDK samples, see Samples.

The WCF Client Class

The following table shows the name of the WCF client and the method generated for procedures, functions and packages that the Oracle Database adapter surfaces. Unless a function or procedure is overloaded, a single WCF client is used to invoke all of the functions in a schema, all of the procedures in a schema, or all of the functions and procedures in a package.

Oracle Artifact | WCF Client Operation Name | Example
Procedure | [SCHEMA]ProcedureClient.[PROC_NAME] | SCOTTProcedureClient.MYPROC
Function | [SCHEMA]FunctionClient.[FUNC_NAME] | SCOTTProcedureClient.MYFUNC
Package (procedure or function) | [SCHEMA]Package[PACKAGE_NAME]Client.[PROC_NAME or FUNC_NAME] | SCOTTPackageMYPACKAGEClient.MYPROC

[SCHEMA] = Collection of Oracle artifacts; for example, SCOTT.

[PROC_NAME] = The name of an Oracle procedure; for example, MYPROC.

[FUNC_NAME] = The name of an Oracle function; for example, MYFUNC.

[PACKAGE_NAME] = The name of an Oracle package.

The Oracle Database adapter represents Oracle RECORD type parameters and return values as well as the result sets returned by REF CURSOR parameters as complex XML types that contain the row data (or fields) of an Oracle record. In the WCF service model, each of these XML types is represented as a .NET class; the properties of the class represent the fields of the RECORD type or REF CURSOR result set. Oracle RECORD types are always represented as strongly-typed .NET classes. A REF CURSOR result set, however, can be represented as either strongly-typed or weakly-typed records based on whether the REF CURSOR itself is declared as strongly-typed or weakly-typed. The classes that represent REF CURSOR or RECORD type parameters (or return values) are generated in a unique namespace based on the procedure, function, or package. The following table shows these namespaces.

Oracle Artifact | Namespace | Example
Procedure | [BASE_NS]. [SCHEMA].Procedure.[PROC_NAME] | microsoft.lobservices.oracledb._2007._03.SCOTT.Procedure.MYPROC
Function | [BASE_NS]. [SCHEMA].Function.[FUNC_NAME] | microsoft.lobservices.oracledb._2007._03.SCOTT.Function.MYFUNC
Package (Procedure) | [BASE_NS]. [SCHEMA].Package.[PACKAGE_NAME].[PROC_NAME] | microsoft.lobservices.oracledb._2007._03.SCOTT.Package.MYPACKAGE.MYPROC
Package (Function) | [BASE_NS]. [SCHEMA].Package.[PACKAGE_NAME].[FUNC_NAME] | microsoft.lobservices.oracledb._2007._03.SCOTT.Package.MYPACKAGE.MYFUNC
Generic Record Set (weakly-typed) | [BASE_NS] | microsoft.lobservices.oracledb._2007._03

[BASE_NS] = The base adapter namespace; microsoft.lobservices.oracledb._2007._03.

[SCHEMA] = Collection of Oracle artifacts; for example, SCOTT.

[PROC_NAME] = The name of an Oracle procedure; for example; MYPROC.

[FUNC_NAME] = The name of an Oracle function; for example MYFUNC.

[PACKAGE_NAME] = The name of an Oracle package.

For information about how these namespaces are used for RECORD parameters, see Performing Operations Using RECORD Types in the WCF Service Model. For information about how these namespaces are used for REF CURSOR parameters, see Performing Operations Using REF CURSORS in the WCF Service Model.

In general, the Oracle parameters and return values are mapped as follows in the WCF client method:

  • Oracle IN parameters are mapped to .NET (input) parameters.

  • Oracle OUT parameters are mapped to .NET out parameters.

  • Oracle IN OUT parameters are mapped to .NET ref parameters.

  • Function RETURN values are mapped to the method return value.

However, two important exceptions exist:

  • Oracle IN OUT REF CURSOR parameters are split into an input string and an output (out) record set. This is because the Oracle Database adapter represents IN REF CUSROR parameters as strings and OUT REF CURSOR parameters as complex types (record sets), these cannot be combined into a single parameter.

  • The first OUT parameter in an Oracle procedure is mapped to the return value of the WCF client method. This is standard WCF behavior.

The following example shows part of a simple Oracle procedure (loaded in the SCOTT schema) and the signature of the WCF client method that is generated to invoke it. The Oracle procedure has three IN parameters, three IN OUT parameters, and three OUT parameters; however, the WCF client method does not map a parameter for the first OUT parameter. Instead it is mapped to the method return value.

Copy Code
CREATE or REPLACE PROCEDURE Sample_Procedure
    (
     INNUMBER      IN         NUMBER,
     INVARCHAR     IN         VARCHAR2,
     INDATE        IN         DATE,
     INOUTNUMBER   IN OUT     NUMBER,
     INOUTVARCHAR  IN OUT     VARCHAR,
     INOUTDATE     IN OUT     DATE,
     OUTNUMBER     OUT        NUMBER,
     OUTVARCHAR    OUT        VARCHAR2,
     OUTDATE       OUT        DATE
    ) AS
    BEGIN

        ...

    END;
    /

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
public partial class SCOTTProcedureClient : System.ServiceModel.ClientBase<SCOTTProcedure>, SCOTTProcedure {

    public System.Nullable<decimal> SAMPLE_PROCEDURE
       (
        System.Nullable<decimal> INNUMBER,
        string INVARCHAR,
        System.Nullable<System.DateTime> INDATE,
        ref System.Nullable<decimal> INOUTNUMBER,
        ref string INOUTVARCHAR,
        ref System.Nullable<System.DateTime> INOUTDATE,
        out string OUTVARCHAR,
        out System.Nullable<System.DateTime> OUTDATE
        );
}

Support for Overloaded Procedures, Functions and Packages

The Oracle Database adapter supports overloaded procedures, functions, and packages by appending a unique string to the node ID and the namespace that it surfaces for each overloaded artifact. This string is "overload1" for the first overload, "overload2" for the next overload, and so on.

In the WCF service model each overloaded procedure or function is represented by a unique WCF client. This is different from the non-overloaded case in which all of the functions in a SCHEMA, all of the procedures in a SCHEMA, or all of the procedures and functions in a PACKAGE are invoked by the same WCF client. The following table shows the WCF client name and method generated for overloaded procedures, functions, and packages.

Oracle Artifact | WCF Client Name | Example
Overloaded Package (Procedure) | [SCHEMA]Package[PACKAGE_NAME][PROC_NAME] ][OVERLOAD_ID]Client.[PROC_NAME] | SCOTTPackageMYPACKAGEMYPROCoverload1Client.MYPROC
Overloaded Package (Function) | [SCHEMA]Package[PACKAGE_NAME][FUNC_NAME] ][OVERLOAD_ID]Client.[FUNC_NAME] | SCOTTPackageMYPACKAGEMYFUNCoverload1Client.MYFUNC

[SCHEMA] = Collection of Oracle artifacts; for example, SCOTT.

[PROC_NAME] = The name of an Oracle procedure; for example; MYPROC.

[FUNC_NAME] = The name of an Oracle function; for example MYFUNC.

[PACKAGE_NAME] = The name of an Oracle package.

[OVERLOAD_ID] = The unique string that identifies the overloaded artifact; "overload1", "overload2", and so on.

The following table shows the namespace generated for overloaded procedures, functions, and packages.

Oracle Artifact | Namespace | Example
Package (Procedure) | [BASE_NS]. [SCHEMA].Package.[PACKAGE_NAME].[PROC_NAME] [OVERLOAD_ID] | microsoft.lobservices.oracledb._2007._03.SCOTT.Package.MYPACKAGE.MYPROC.overload1
Package (Function) | [BASE_NS]. [SCHEMA].Package.[PACKAGE_NAME].[FUNC_NAME].[OVERLOAD_ID] | microsoft.lobservices.oracledb._2007._03.SCOTT.Package.MYPACKAGE.MYFUNC.overload1
Generic Record Set (weakly-typed) | [BASE_NS] | microsoft.lobservices.oracledb._2007._03

[BASE_NS] = The base adapter namespace; microsoft.lobservices.oracledb._2007._03.

[SCHEMA] = Collection of Oracle artifacts; for example, SCOTT.

[PROC_NAME] = The name of an Oracle procedure; for example; MYPROC.

[FUNC_NAME] = The name of an Oracle function; for example MYFUNC.

[PACKAGE_NAME] = The name of an Oracle package.

[OVERLOAD_ID] = The unique string that identifies the overloaded artifact; "overload1", "overload2", and so on. The numeric value in the string is the overload ID for the artifact maintained by the Oracle database.

The following example shows the WCF clients and the method signatures generated for the overloaded GET_ACCOUNT procedure in the ACCOUNT_PKG package. (The Oracle declarations are included.) This example shows how a unique WCF client is generated for each overload and how the method generated for each client returns a record set in a unique namespace.

Copy Code
/* Procedure that takes account ID and returns record for existing account in the ACCOUNT table */
PROCEDURE get_account(aid IN account.acctid%TYPE, acct OUT account%ROWTYPE) ;

/* Procedure that takes account name and returns record for existing account in the ACCOUNT table */
PROCEDURE get_account(aname IN account.name%TYPE, acct OUT account%ROWTYPE) ;

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
public partial class SCOTTPackageACCOUNT_PKGGET_ACCOUNToverload1Client : System.ServiceModel.ClientBase<SCOTTPackageACCOUNT_PKGGET_ACCOUNToverload1>, SCOTTPackageACCOUNT_PKGGET_ACCOUNToverload1 {

    public microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.GET_ACCOUNT.overload1.ACCTRECORD GET_ACCOUNT(System.Nullable<decimal> AID);
}

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
public partial class SCOTTPackageACCOUNT_PKGGET_ACCOUNToverload2Client : System.ServiceModel.ClientBase<SCOTTPackageACCOUNT_PKGGET_ACCOUNToverload2>, SCOTTPackageACCOUNT_PKGGET_ACCOUNToverload2 {

    public microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.GET_ACCOUNT.overload2.ACCTRECORD GET_ACCOUNT(string ANAME);
}

Invoking Functions and Procedures

To invoke a function or a procedure by using a WCF client, perform the following steps.

  1. Generate a WCF client class for the target function, procedure, or package. This class should contain methods for the operations that you will invoke on the target artifact.

    Note
    In the Add Adapter Service Reference Visual Studio Plug-in, overloaded functions and procedures appear in the Available categories and operations box as [NAME].1, [NAME].2, [NAME].3, and so on, where [NAME] is the name of the overloaded artifact and the numeric value is the overload ID on the Oracle database.

  2. Create an instance of the WCF client class and call its methods to invoke the function or procedure.

For more detailed information about how to create a WCF client class and invoke operations on the Oracle Database adapter, see Overview of Using the WCF Service Model with the Adapter.

The Oracle Database adapter executes each operation inside of a transaction on the Oracle database.

Important
The classes that represent REF CURSOR and RECORD type parameters or return values in functions or procedures (and packages) are declared in a unique namespace for each function or procedure. This means, for example, that a PACKAGE REF CURSOR type that is used as a return value in two different functions will be declared in a unique namespace for each WCF client method. You must either declare separate variables to hold these different return values or appropriately cast the variable when you invoke one of the WCF client methods.

The following example demonstrates calling the overloaded /SCOTT/Package/ACCOUNT_PKG/GET_ACCOUNT procedure to get account records from the /SCOTT/ACCOUNT table. First a new record is created by calling the /SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT procedure. Then the new record is read back twice by calling different overloads of GET_ACCOUNT. This example uses three WCF clients, one for the CREATE_ACCOUNT procedure and one each for the GET_ACCOUNT overloads. Aliases are used to distinguish between namespaces used for the return value of GET_ACCOUNT. A full sample is available in the SDK samples. For more information about the SDK samples, see Samples.

Copy Code
using System;
using System.Collections.Generic;
using System.Text;

// Add WCF, WCF Adapter LOB SDK, and Oracle Database adapter namepaces
using System.ServiceModel;
using Microsoft.ServiceModel.Channels;
using Microsoft.Adapters.OracleDB;

// Include this namespace for WCF Adapter LOB SDK and Oracle Database adapter exceptions
using Microsoft.ServiceModel.Channels.Common;

// Alias client namespaces to shorten declarations of "shared" types
using CREATE_ACCOUNTns = microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.CREATE_ACCOUNT;
using GET_ACCOUNT_BY_IDns = microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.GET_ACCOUNT.overload1;
using GET_ACCOUNT_BY_NAMEns = microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.GET_ACCOUNT.overload2;

// This sample demonstrates calling overloaded packaged procedures on Oracle
// First a new account is created by calling CREATE_ACCOUNT which takes two record parameters
// Then the information for the new account is returned by calling an overloaded procedure GET_ACCOUNT
// The first overload returns the account information by account ID
// The second overload returns the account information by account name
// Notice that different clients (and namespaces) are created for overloaded procedures and functions
namespace OracleOverloadsSM
{
    class Program
    {
        static void Main(string[] args)
        {
            decimal acctId;
            string newAccountName = "Paula Bento";

            Console.WriteLine("Creating clients");
            // Create Client for CREATE_ACCOUNT Function
            SCOTTPackageACCOUNT_PKGClient createAccountClient =
                new SCOTTPackageACCOUNT_PKGClient("OracleDBBinding_SCOTT.Package.ACCOUNT_PKG");
            // NOTE: user name and password are case-sensitive
            createAccountClient.ClientCredentials.UserName.UserName = "SCOTT";
            createAccountClient.ClientCredentials.UserName.Password = "TIGER";

            // Create Client for GET_ACCOUNT Overload 1 -- takes ACCOUNT ID parameter
            SCOTTPackageACCOUNT_PKGGET_ACCOUNToverload1Client getAccountByIdClient =
                new SCOTTPackageACCOUNT_PKGGET_ACCOUNToverload1Client("OracleDBBinding_SCOTT.Package.ACCOUNT_PKG.GET_ACCOUNT.overload1");
            // NOTE: user name and password are case-sensitive
            getAccountByIdClient.ClientCredentials.UserName.UserName = "SCOTT";
            getAccountByIdClient.ClientCredentials.UserName.Password = "TIGER";

            // Create Client for GET_ACCOUNT Overload 2 -- takes ACCOUNT NAME parameter
            // NOTE: this client can be created from configuration; detail provided here
            // for demonstration
            OracleDBBinding overload2Binding = new OracleDBBinding();
            EndpointAddress overload2EndpointAddress = new EndpointAddress("oracleDB://ADAPTER");
            SCOTTPackageACCOUNT_PKGGET_ACCOUNToverload2Client getAccountByNameClient =
                new SCOTTPackageACCOUNT_PKGGET_ACCOUNToverload2Client(overload2Binding, overload2EndpointAddress);
            // NOTE: user name and password are case-sensitive
            getAccountByNameClient.ClientCredentials.UserName.UserName = "SCOTT";
            getAccountByNameClient.ClientCredentials.UserName.Password = "TIGER";

            try
            {
                Console.WriteLine("Opening clients -- please wait");
                // Open clients
                createAccountClient.Open();
                getAccountByIdClient.Open();
                getAccountByNameClient.Open();

                Console.WriteLine("Creating new account");
                // Create an account record
                // NOTE: ACCTRECORD is defined in all three namespaces so specify the definition
                // that corresponds to the client.
                CREATE_ACCOUNTns.ACCTRECORD acctRec = new CREATE_ACCOUNTns.ACCTRECORD();

                // Set any value for ACCTID -- new account ID is returned by CREATE_ACCOUNT
                acctRec.ACCTID = 0;
                acctRec.NAME = newAccountName;
                acctRec.BALANCE = 10537;

                // Create address record
                CREATE_ACCOUNTns.ACCOUNT_PKGADDRESS_REC_TYPERECORD addrRec = new CREATE_ACCOUNTns.ACCOUNT_PKGADDRESS_REC_TYPERECORD();
                addrRec.STREET = "456 Valley Rd";
                addrRec.CITY = "New York";
                addrRec.STATE = "NY";

                // Create account
                acctId = (decimal)createAccountClient.CREATE_ACCOUNT(acctRec, addrRec);
                Console.WriteLine("New Account Created: AccountId = {0}, Name = {1}, Balance = {2:C}",
                   acctId, acctRec.NAME, acctRec.BALANCE);

                /* Get new account by Id */
                GET_ACCOUNT_BY_IDns.ACCTRECORD acctById = getAccountByIdClient.GET_ACCOUNT(acctId);
                Console.WriteLine("Account Returned by Id: AccountId={0}, Name={1}, Balance={2:C}",
                    acctById.ACCTID, acctById.NAME, acctById.BALANCE);

                /* Get new account by Name */
                GET_ACCOUNT_BY_NAMEns.ACCTRECORD acctByName = getAccountByNameClient.GET_ACCOUNT(newAccountName);
                Console.WriteLine("Account Returned by Name: AccountId={0}, Name={1}, Balance={2:C}",
                    acctByName.ACCTID, acctByName.NAME, acctByName.BALANCE);

                Console.WriteLine("Hit <RETURN> to finish");
                Console.ReadLine();
            }
            catch (TargetSystemException tex)
            {
                Console.WriteLine("Exception occurred on the Oracle Database");
                Console.WriteLine(tex.InnerException.Message);
            }
            catch (ConnectionException cex)
            {
                Console.WriteLine("Exception occurred connecting to the Oracle Database");
                Console.WriteLine(cex.InnerException.Message);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception is: " + ex.Message);
                if (ex.InnerException != null)
                {
                    Console.WriteLine("Inner Exception is: " + ex.InnerException.Message);
                }
                throw ex;
            }
            finally
            {
                // Close all the clients
                createAccountClient.Close();
                getAccountByIdClient.Close();
                getAccountByNameClient.Close();
            }

        }
    }
}

See Also

Other Resources

Developing Applications by Using the WCF Service Model


Performing Operations Using REF CURSORS in the WCF Service Model

A REF CURSOR is an Oracle PL/SQL data type that represents a pointer to a result set in the Oracle database. The Microsoft BizTalk Adapter for Oracle Database supports REF CURSOR parameters in procedures, functions, and packages. REF CURSOR parameters can be strongly-typed or weakly-typed depending on how they are declared in the procedure or function. For a detailed explanation of how REF CURSOR parameters are represented by the Oracle Database adapter, see Message Schemas for REF CURSORS.The following table summarizes how REF CURSOR parameters are represented in the WCF service model.

Parameter Direction Strongly-typed REF CURSOR Weakly-typed REF CURSOR

IN

Copy Code
string [PARAM_NAME]

String that contains a PL/SQL block. The PL/SQL block must return an opened REF CURSOR either by executing an "OPEN FOR SELECT" statement or by invoking a function or procedure. A question mark (?) indicates the position of the REF CURSOR that returns the parameter. For example, "BEGIN OPEN ? FOR SELECT * FROM MY_TABLE; END", or "BEGIN MY_PROC(PARM1, ?, PARM2); END;".

Same as strongly-typed

OUT

Copy Code
out [PROC_NS].[PARAM_NAME]RECORD[] [PARAM_NAME]

A strongly-typed record set.

Copy Code
out [GENERIC_NS].GenRecordRow[] [PARAM_NAME]

A weakly-typed generic record set.

IN OUT

IN OUT REF CURSOR parameters are split into an IN and an OUT parameter. The IN parameter is appended with "_IN" in the method signature to distinguish it from the OUT parameter. The OUT parameter is represented by a strongly-typed record set.

Copy Code
string [PARAM_NAME]_IN
Copy Code
out [PROC_NS].[PARAM_NAME]RECORD[] [PARAM_NAME]

IN OUT REF CURSOR parameters are split into an IN and an OUT parameter. The IN parameter is appended with "_IN" to distinguish it from the OUT parameter. The OUT parameter is represented by a weakly-typed record set.

Copy Code
string [PARAM_NAME]_IN
Copy Code
out [GENERIC_NS].GenRecordRow[] [PARAM_NAME]

[PARAM_NAME] = the name of the parameter in the function or procedure definition on the Oracle database; for example, MYREFCURSOR.

[PROC_NS] = The unique namespace generated to contain parameters of the package, procedure, or function; for example, "microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.GET_ACTIVITY".

[GENERIC_NS] = The namespace in which the generic record set is defined, "microsoft.lobservices.oracledb._2007._03".

About the Examples Used in this Topic

The examples in this topic use the /SCOTT/Package/ACCOUNT_PKG Oracle PACKAGE. The following procedure is used from ACCOUNT_PKG:

Copy Code
PROCEDURE get_activity(inrecs IN SYS_REFCURSOR, status OUT NUMBER, inoutrecs IN OUT activity_ref_type, outrecs OUT SYS_REFCURSOR);

A script to generate this package is supplied with the SDK samples. For more information about the SDK samples, see .Samples.

REF CURSOR Parameters in the WCF Service Model

The following examples show the classes and WCF client generated for the /SCOTT/Package/ACCOUNT_PKG/GET_ACTIVITY procedure. This procedure has weakly-typed IN and OUT REF CURSOR parameters and a strongly-typed IN OUT REF CURSOR parameter.

Here is the signature of the method that is generated in the WCF client to invoke GET_ACTIVITY.

Copy Code
public System.Nullable<decimal> GET_ACTIVITY(string INRECS, string INOUTRECS_IN, out microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.GET_ACTIVITY.INOUTRECSRECORD[] INOUTRECS, out microsoft.lobservices.oracledb._2007._03.GenRecordRow[] OUTRECS);

In the GET_ACTIVITY method, the IN OUT parameter INOUTRECS is split into two parameters:

  • INOUTRECS_IN is a string that represents an IN REF CURSOR parameter.

  • INOUTRECS is a strongly-typed record set that represents an OUT REF CURSOR parameter.

The weakly-typed OUT parameter, OUTRECS, is represented as a generic record set. The weakly-typed IN parameter, INRECS, is represented as a string.

Strongly-Typed OUT REF CURSOR Parameters

Strongly-typed OUT (or IN OUT) REF CURSOR parameters are generated in a unique namespace based on the SCHEMA, PACKAGE, and name of the procedure or function in which they are used. For the /SCOTT/Package/ACCOUNT_PKG/GET_ACTIVITY procedure, this namespace is microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.GET_ACTIVITY. The class name is formed by appending the name of the parameter with "RECORD" and the class is composed of properties that represent the Oracle fields. The following shows a part of the class that represents the strongly-typed records generated for the INOUTRECS REF CURSOR parameter.

Copy Code
namespace microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.GET_ACTIVITY {
    using System.Runtime.Serialization;

    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute()]
    public partial class INOUTRECSRECORD : object, System.Runtime.Serialization.IExtensibleDataObject {

        ...

        private System.Nullable<decimal> TIDField;

        ...

        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Nullable<decimal> TID {
            get {
                return this.TIDField;
            }
            set {
                this.TIDField = value;
            }
        }

        ...

    }
}

Weakly-Typed OUT REF CURSOR Parameters

Weakly-typed OUT (or IN OUT) REF CURSOR parameters are represented by the generic record class. The generic record set is always generated in the same namespace and with the same class name regardless of the function or procedure. The following code shows the generic record class, microsoft.lobservices.oracledb._2007._03.GenRecordRow, which represents the records for the OUTRECS OUT SYS_REFCURSOR parameter (weakly-typed).

Copy Code
namespace microsoft.lobservices.oracledb._2007._03 {
    using System.Runtime.Serialization;

    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute()]
    public partial class GenRecordRow : object, System.Runtime.Serialization.IExtensibleDataObject {

        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;

        private microsoft.lobservices.oracledb._2007._03.GenRecordColumn[] GenRecordColumnField;

        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public microsoft.lobservices.oracledb._2007._03.GenRecordColumn[] GenRecordColumn {
            get {
                return this.GenRecordColumnField;
            }
            set {
                this.GenRecordColumnField = value;
            }
        }
    }

    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute()]
    public partial class GenRecordColumn : object, System.Runtime.Serialization.IExtensibleDataObject {

        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;

        private string ColumnNameField;

        private string ColumnValueField;

        private string ColumnTypeField;

        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false)]
        public string ColumnName {
            get {
                return this.ColumnNameField;
            }
            set {
                this.ColumnNameField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public string ColumnValue {
            get {
                return this.ColumnValueField;
            }
            set {
                this.ColumnValueField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false, Order=2)]
        public string ColumnType {
            get {
                return this.ColumnTypeField;
            }
            set {
                this.ColumnTypeField = value;
            }
        }
    }
}

Using REF CURSOR Parameters with a WCF Client

To invoke a procedure or function with REF CURSOR parameters by using a WCF client, you do the following:

  1. Pass a string for each IN or IN OUT REF CURSOR parameter that contains the PL/SQL block to open the REF CURSOR. This block can either execute an OPEN FOR SELECT statement or invoke a function or procedure that returns an opened REF CURSOR in an OUT parameter.

  2. When the procedure or function returns, operate on the data in the record sets returned for any OUT or IN OUT REF CURSOR parameters. The record set will be a generic record set for weakly-typed REF CURSOR parameters or a strongly-typed record set for strongly-typed REF CURSOR parameters.

For more information about how to invoke procedures and functions by using the WCF service model, see Invoking Functions and Procedures by Using the WCF Service Model.

The following example calls the GET_ACTIVITY procedure. It demonstrates both ways of specifying an IN REF CURSOR parameter:

  • For the IN REF CURSOR parameter, an OPEN FOR SELECT statement is specified to return activity for ACCOUNT 100001.

  • For the IN OUT REF CURSOR parameter, the /SCOTT/Package/ACCOUNT_PKG/GET_ALL_ACTIVITY procedure is invoked. This procedure opens a REF CURSOR that contains all of the activity in the ACCOUNTACTIVITY table and returns it as an OUT parameter.

The example also demonstrates how to read data from the record set returned for both strongly-typed and weakly-typed REF CURSOR parameters.

Copy Code
using System;
using System.Collections.Generic;
using System.Text;

// Add WCF, WCF LOB Adapter SDK, and Oracle Database adapter namepaces
using System.ServiceModel;
using Microsoft.ServiceModel.Channels;
using Microsoft.Adapters.OracleDB;

// Include this namespace for WCF LOB Adapter SDK and Oracle Database adapter exceptions
using Microsoft.ServiceModel.Channels.Common;

// namespaces for strongly-typed and weakly typed REF CURSOR records
using GET_ACTIVITYns = microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.GET_ACTIVITY;
using GENERICns = microsoft.lobservices.oracledb._2007._03;

// In this sample, INRECS is opened by using an OPEN FOR statement, and
// INOUTRECS_IN is opened by calling the GET_ALL_ACTIVITY procedure on Oracle.

namespace OracleRefCursorsSM
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create the client
            SCOTTPackageACCOUNT_PKGClient accountPkgClient =
                new SCOTTPackageACCOUNT_PKGClient("OracleDBBinding_SCOTT.Package.ACCOUNT_PKG");
            // Set credentials
            accountPkgClient.ClientCredentials.UserName.UserName = "SCOTT";
            accountPkgClient.ClientCredentials.UserName.Password = "TIGER";

            try
            {

                GET_ACTIVITYns.INOUTRECSRECORD[] strongCursor;
                GENERICns.GenRecordRow[] weakCursor;

                Console.WriteLine("Opening client");
                // Open the client
                accountPkgClient.Open();

                Console.WriteLine("Invoking ACCOUNT_PKG.GET_ACTIVITY");
                // Get  ACCOUNTACTIVITY records
                // The IN REF CURSOR is set to all activity for account 100001
                // The input part of the IN OUT ref cursor calls GET_ALL_ACTIVITY
                // The weakly-typed OUT REF CURSOR parameter returns a list of activity for account 100001
                // The strongly-typed IN OUT REF CURSOR parameter returns a list of all activity
                string inRecsString = "BEGIN OPEN ? FOR SELECT * FROM ACCOUNTACTIVITY WHERE ACCOUNT=100001; END;";
                string inoutRecsString = "BEGIN ACCOUNT_PKG.GET_ALL_ACTIVITY(?); END;";

                accountPkgClient.GET_ACTIVITY(
                                inRecsString,
                                inoutRecsString,
                                out strongCursor,
                                out weakCursor);

                // Display strong ref cursor (all activity)
                Console.WriteLine("\nList of all activity returned (strong ref cursor)");
                Console.WriteLine("Tx Id\tAccount\tAmount\tDate\t\t\tDescription");
                for (int i = 0; i < strongCursor.Length; i++)
                {
                    Console.WriteLine("{0}\t{1}\t{2:C}\t{3}\t{4}",strongCursor[i].TID,
                        strongCursor[i].ACCOUNT,
                        strongCursor[i].AMOUNT,
                        strongCursor[1].TRANSDATE,
                        strongCursor[i].DESCRIPTION);
                }

                // Display weak ref cursor (account 100001)
                Console.WriteLine("\nList of activity for account 100001 returned (weak ref cursor)");
                Console.WriteLine("Tx Id\tAmount\tDate\t\t\tDescription");
                for (int i = 0; i < weakCursor.Length; i++)
                {
                    Console.WriteLine("{0}\t{1:C}\t{2}\t{3}", weakCursor[i].GenRecordColumn[0].ColumnValue,
                        weakCursor[i].GenRecordColumn[2].ColumnValue,
                        weakCursor[i].GenRecordColumn[4].ColumnValue,
                        weakCursor[i].GenRecordColumn[3].ColumnValue);
                }

                Console.WriteLine("\nHit <RETURN> to finish");
                Console.ReadLine();
            }
            catch (TargetSystemException tex)
            {
                Console.WriteLine("Exception occurred on the Oracle Database");
                Console.WriteLine(tex.InnerException.Message);
            }
            catch (ConnectionException cex)
            {
                Console.WriteLine("Exception occurred connecting to the Oracle Database");
                Console.WriteLine(cex.InnerException.Message);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception is: " + ex.Message);
                if (ex.InnerException != null)
                {
                    Console.WriteLine("Inner Exception is: " + ex.InnerException.Message);
                }
                throw ex;
            }
            finally
            {
                // Close the client
                accountPkgClient.Close();
            }
        }
    }
}

See Also

Other Resources

Developing Applications by Using the WCF Service Model


Performing Operations Using RECORD Types in the WCF Service Model

Oracle RECORD types are used to represent hierarchical information in parameters passed to PL/SQL functions and procedures. The Microsoft BizTalk Adapter for Oracle Database surfaces RECORD types as complex XML types. In the WCF service model, RECORD types are deserialized to strongly-typed .NET classes. The record fields are represented as properties on the class.

The Oracle Database adapter supports the following kinds of RECORD types:

  • RECORD types that are declared as TABLE%ROWTYPE parameters in stored procedures and functions.

  • RECORD types that are declared as TYPE of RECORD parameters in PL/SQL packages for example, TYPE rec_type1 IS RECORD(name varchar2(100), age number(3));

  • RECORD types that contain nested records.

  • RECORD types that appear as IN, OUT, or IN OUT parameters to procedures or functions.

  • RECORD types that are RETURN values of functions.

This topic shows how RECORD types are represented in the WCF service model. For information about how to call Oracle procedures and functions, see Invoking Functions and Procedures by Using the WCF Service Model.

About the Examples Used in this Topic

The examples in this topic use the /SCOTT/ACCOUNT_PKG Oracle PL/SQL PACKAGE. The following elements are used from ACCOUNT_PKG.

Copy Code
TYPE address_rec_type IS RECORD (street customer.street%TYPE, city customer.city%TYPE, state customer.state%TYPE);

FUNCTION create_account(acct IN ACCOUNT%ROWTYPE, addr IN address_rec_type) RETURN NUMBER;

TYPE acctinfo_rec_type IS RECORD (acct account%ROWTYPE, address address_rec_type);

FUNCTION get_accountinfo(aid NUMBER) RETURN acctinfo_rec_type;

A script to generate this package is supplied with the BizTalk Adapter Pack samples. For more information, see the script

For more information about the samples, see Samples.

RECORD Types in the WCF Service Model

Oracle RECORD types are represented as complex XML types by the Oracle Database adapter. In the WCF service model, complex XML types are represented by a class, and the properties of this class represent the fields of the Oracle RECORD type. The class that represents a RECORD type parameter is generated in a namespace that is qualified by the PACKAGE (if any) and SCHEMA of the function or procedure. This namespace uniquely identifies the function or procedure of the parameter. For example, the RECORD type parameters to the CREATE_ACCOUNT procedure in the Oracle PACKAGE ACCOUNT_PKG are created in the following namespace: microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.CREATE_ACCOUNT. For more information about the namespaces used in the WCF service model to represent complex types in procedures and functions, see Invoking Functions and Procedures by Using the WCF Service Model.

While the namespace of a RECORD type parameter is determined by the procedure or function, the name of the class generated for the RECORD type parameter is determined by the way in which the RECORD type is declared. The following table shows how the name of the class is generated based on the two different ways of declaring the Oracle RECORD type parameter.

Oracle RECORD type | Name | Example
TABLE%ROWTYPE procedure or function parameter | [PARAMETER_NAME]RECORD | ACCTRECORD
TYPE of RECORD package parameter | [PACKAGE_NAME][RECORD_TYPE_NAME]RECORD | ACCOUNT_PKGACCTINFO_REC_TYPERECORD

[PARAMETER_NAME] = the name of the procedure or function parameter; for example, ACCT.

[PACKAGE_NAME] = the name of the Oracle package.

[RECORD_TYPE_NAME] = the name specified in the RECORD TYPE declaration; for example, ACCTINFO_REC_TYPE.

The following code shows the method signatures of the WCF client generated for two Oracle functions. The /SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT function takes two simple RECORD type IN parameters, and the /SCOTT/Package/ACCOUNT_PKG/GET_ACCOUNTINFO function returns a RECORD type parameter that contains two nested RECORD types. The Oracle function declarations are included at the top of the code. The parameters of each function are qualified by a unique namespace.

Copy Code
FUNCTION create_account(acct IN ACCOUNT%ROWTYPE, addr IN address_rec_type) RETURN NUMBER;
FUNCTION get_accountinfo(aid NUMBER) RETURN acctinfo_rec_type;

public partial class SCOTTPackageACCOUNT_PKGClient : System.ServiceModel.ClientBase<SCOTTPackageACCOUNT_PKG>, SCOTTPackageACCOUNT_PKG {

    ...

    public System.Nullable<decimal> CREATE_ACCOUNT(microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.CREATE_ACCOUNT.ACCTRECORD ACCT, microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.CREATE_ACCOUNT.ACCOUNT_PKGADDRESS_REC_TYPERECORD ADDR);

    public microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.GET_ACCOUNTINFO.ACCOUNT_PKGACCTINFO_REC_TYPERECORD GET_ACCOUNTINFO(System.Nullable<decimal> AID);
}

The following code shows the classes generated for the parameters of the CREATE_ACCOUNT function: FUNCTION create_account(acct IN ACCOUNT%ROWTYPE, addr IN address_rec_type) RETURN NUMBER;

This function has a parameter declared with a TABLE%ROWTYPE and a parameter declared with a TYPE of RECORD package type (TYPE acctinfo_rec_type IS RECORD (acct account%ROWTYPE, address address_rec_type);).

Copy Code
namespace microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.CREATE_ACCOUNT {

    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute()]
    public partial class ACCTRECORD : object, System.Runtime.Serialization.IExtensibleDataObject {…}

    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute()]
    public partial class ACCOUNT_PKGADDRESS_REC_TYPERECORD : object, System.Runtime.Serialization.IExtensibleDataObject {…}

}

Representation of a Simple Record Type

The following code shows how a simple RECORD type is represented in the WCF service model. This code shows the expanded view of the ACCOUNTRECORD class that represents the ACCOUNT%ROWTYPE parameter in the CREATE_ACCOUNT function. In this class, the record fields (row columns) are represented as properties.

Copy Code
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute()]
    public partial class ACCTRECORD : object, System.Runtime.Serialization.IExtensibleDataObject {

        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;

        private System.Nullable<decimal> ACCTIDField;

        private string NAMEField;

        private System.Nullable<decimal> BALANCEField;

        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Nullable<decimal> ACCTID {
            get {
                return this.ACCTIDField;
            }
            set {
                this.ACCTIDField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string NAME {
            get {
                return this.NAMEField;
            }
            set {
                this.NAMEField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute(Order=2)]
        public System.Nullable<decimal> BALANCE {
            get {
                return this.BALANCEField;
            }
            set {
                this.BALANCEField = value;
            }
        }
    }

Representation of a Record Type that Contains Nested Records

The following code shows the representation of a RECORD type that contains nested records. This particular RECORD type is the RETURN value of the GET_ACCOUNTINFO function (FUNCTION get_accountinfo(aid NUMBER) RETURN acctinfo_rec_type;). The ACCTINFO_REC_TYPE is a package parameter declared using a TYPE of RECORD construct (TYPE acctinfo_rec_type IS RECORD (acct account%ROWTYPE, address address_rec_type);). It contains two nested simple record types, a TABLE%ROW record and a package TYPE of RECORD record. These two simple records are declared in the same namespace as their parent record and follow the expected naming convention.

Copy Code
namespace microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.GET_ACCOUNTINFO {
    using System.Runtime.Serialization;

    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute()]
    public partial class ACCOUNT_PKGACCTINFO_REC_TYPERECORD : object, System.Runtime.Serialization.IExtensibleDataObject {

        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;

        private microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.GET_ACCOUNTINFO.ACCTRECORD ACCTField;

        private microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.GET_ACCOUNTINFO.ACCOUNT_PKGADDRESS_REC_TYPERECORD ADDRESSField;

        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.GET_ACCOUNTINFO.ACCTRECORD ACCT {
            get {
                return this.ACCTField;
            }
            set {
                this.ACCTField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.GET_ACCOUNTINFO.ACCOUNT_PKGADDRESS_REC_TYPERECORD ADDRESS {
            get {
                return this.ADDRESSField;
            }
            set {
                this.ADDRESSField = value;
            }
        }
    }

Using RECORD Types in Your Code

Using RECORD types in your code is straightforward. To invoke a procedure or function with a RECORD type parameter, you create an instance of the RECORD type or types and pass it to the appropriate method on the WCF client. When the procedure or function returns, you can read properties on any OUT or IN OUT parameters or function RETURN values that are declared as RECORD types. For more information about how to invoke procedures and functions by using the WCF service model, see Invoking Functions and Procedures by Using the WCF Service Model.

Important
Oracle RECORD type parameters (and function returns) are qualified by the namespace of their function or procedure (and package). This means that a RECORD type that is used in two different procedures or functions will have a different namespace for each procedure or function. You must be sure to qualify the RECORD type correctly when you use it for a specific procedure or function. For example, a package RECORD type (RECORD of TYPE declaration) that is used as an IN parameter to two different functions will be declared twice in the WCF client code with each declaration corresponding to the unique namespace generated for each function. You must be sure to use the correct namespace on the parameter that you pass to each respective function.

In the following example, the CREATE_ACCOUNT function is called with two simple record parameters. Next, the GET_ACCOUNTINFO function is called. This function returns a RECORD type that contains nested records. Selected field values from the returned RECORD are written to the console. Steps to set credentials for the Oracle database and to open the WCF client are omitted from this example.

Copy Code
// Add WCF, WCF Adapter LOB SDK, and Oracle Database adapter namepaces
using System.ServiceModel;
using Microsoft.ServiceModel.Channels;
using Microsoft.Adapters.OracleDB;

// Include this namespace for WCF Adapter LOB SDK and Oracle Database adapter exceptions
using Microsoft.ServiceModel.Channels.Common;

…

// Create the client from configuration
using (SCOTTPackageACCOUNT_PKGClient accountPkgClient = new SCOTTPackageACCOUNT_PKGClient("OracleDBBinding_SCOTT.Package.ACCOUNT_PKG"))
{

    ...

    decimal acctId;

    // Create an account record
    // Note: ACCTRECORD is defined in both namespaces so specify the definition
    // that corresponds to the client.

    microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.CREATE_ACCOUNT.ACCTRECORD acctRec =
        new microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.CREATE_ACCOUNT.ACCTRECORD();

    // Set any value for ACCTID -- new account ID is returned by CREATE_ACCOUNT
    acctRec.ACCTID = 0;
    acctRec.NAME = "Anton Kirilov";
    acctRec.BALANCE = 9583;

    // Create address record
    microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.CREATE_ACCOUNT.ACCOUNT_PKGADDRESS_REC_TYPERECORD addrRec = new microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.CREATE_ACCOUNT.ACCOUNT_PKGADDRESS_REC_TYPERECORD();
    addrRec.STREET = "234 Main St";
    addrRec.CITY = "Boston";
    addrRec.STATE = "MA";

    // Create account
    try
    {
        acctId = (decimal)accountPkgClient.CREATE_ACCOUNT(acctRec, addrRec);
    }
    catch (Exception ex)
    {
        // handle exception
        ...
    }

    ...

    // Account info record
    microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.GET_ACCOUNTINFO.ACCOUNT_PKGACCTINFO_REC_TYPERECORD acctInfo =
    new microsoft.lobservices.oracledb._2007._03.SCOTT.Package.ACCOUNT_PKG.GET_ACCOUNTINFO.ACCOUNT_PKGACCTINFO_REC_TYPERECORD();

    // Get account info for the account just created
    // acctInfo is returned as a nested record type
    try
    {
     acctInfo = accountPkgClient.GET_ACCOUNTINFO(acctId);
    }
    catch (Exception ex)
    {
    // handle exception
    ...
    }

    // Write the account info to the console
    Console.WriteLine("The account info is:");
    Console.WriteLine("Name:\t\t\t{0}", acctInfo.ACCT.NAME);
    Console.WriteLine("Street:\t\t\t{0}", acctInfo.ADDRESS.STREET);
    Console.WriteLine("City:\t\t\t{0}", acctInfo.ADDRESS.CITY);
    Console.WriteLine("State:\t\t\t{0}", acctInfo.ADDRESS.STATE);
    Console.WriteLine("Account Id:\t\t{0}", acctInfo.ACCT.ACCTID);
    Console.WriteLine("Account Balance:\t{0:C}", acctInfo.ACCT.BALANCE);

    Console.WriteLine("\nHit <RETURN> to finish");
    Console.ReadLine();
    }
}

See Also

Other Resources

Developing Applications by Using the WCF Service Model


Performing a SQLEXECUTE Operation by Using the WCF Service Model

The Microsoft BizTalk Adapter for Oracle Database surfaces a standard set of operations on Oracle database artifacts. By using these operations, you can do things like call an Oracle function or procedure, or perform basic SQL data manipulation language (DML) operations on tables. However, there may be scenarios driven by your business logic that require you to perform operations that the Oracle Database adapter does not surface. For example, you may want to:

  • Perform an operation on database artifacts that are not surfaced by the Oracle Database adapter; for example, get the CURVAL or NEXTVAL of an Oracle SEQUENCE.

  • Perform Data Definition Language operations; for example, create a table.

  • Perform operations on a database artifact that was not present at design time; for example, update records in a temporary table that is created by your business logic.

  • Perform more complex DML operations on tables than the operations that the Oracle Database adapter surfaces; for example, to perform a query that includes a JOIN clause.

For these kinds of scenarios, the Oracle Database adapter surfaces the SQLEXECUTE operation. By using the SQLEXECUTE operation, you can perform a parameterized SQL statement on the Oracle database. The SQLEXECUTE operation supports an input parameter block comprised of parameter sets that enable you to execute the same SQL statement once for each set. The SQLEXECUTE operation returns the results of the SQL statement in a generic record set.

About the Examples Used in this Topic

The examples in this topic use an Oracle SEQUENCE named TID_SEQ. A script to generate this SEQUENCE is supplied with the SDK samples. For more information about the SDK samples, see Samples.

The WCF Client Class

The WCF service model generates a dedicated WCF client, SQLEXECUTEClient, for the SQLEXECUTE operation. The following code shows the SQLEXECUTEClient and the signature of the method that you call to invoke the SQLEXECUTE operation.

Copy Code
public partial class SQLEXECUTEClient : System.ServiceModel.ClientBase<SQLEXECUTE>, SQLEXECUTE {

    ...

    public microsoft.lobservices.oracledb._2007._03.GenRecordRow[] SQLEXECUTE(string SQLSTATEMENT, string PARAMETERSCHEMA, microsoft.lobservices.oracledb._2007._03.PARAMETERDATA[] PARAMETERSET);
}

The SQLEXECUTE operation returns a generic record set. This record set contains the values (if any) that are returned by the statements that the SQLEXECUTE operation executes. You can pass sets of input parameters to the SQLEXECUTE operation in a collection of PARAMETERDATA objects, each of which contains a collection of input parameters represented as strings. The following code shows the definition of a PARAMETERDATA set.

Copy Code
namespace microsoft.lobservices.oracledb._2007._03 {
    using System.Runtime.Serialization;

    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute()]
    public partial class PARAMETERDATA : object, System.Runtime.Serialization.IExtensibleDataObject {

        ...

        private string[] PARAMETERField;

        ...

        [System.Runtime.Serialization.DataMemberAttribute()]
        public string[] PARAMETER {
            get {
                return this.PARAMETERField;
            }
            set {
                this.PARAMETERField = value;
            }
        }
    }
}

Invoking the SQLEXECUTE Operation

To invoke the SQLEXECUTE operation by using a WCF client, perform the following steps.

  1. Generate a SQLEXECUTEClient class for the target table or view.

    Important
    The SQLEXECUTE operation is surfaced under the root node (/) in the Select a category pane in the Add Adapter Service Reference dialog box.

  2. Create an instance of the SQLEXECUTEClient class, and invoke the SQLEXECUTE method to execute SQL statements on the Oracle database.

For more detailed information about how to create a WCF client class and invoke operations on the Oracle Database adapter, see Overview of Using the WCF Service Model with the Adapter.

The following example uses the SQLEXECUTEClient to get the next value of an Oracle SEQUENCE, TID_SEQ, by executing the following SQL statement: SELECT tid_seq.nextval id from DUAL. The output is then written to the console.

Copy Code
using (SQLEXECUTEClient sqlClient = new SQLEXECUTEClient("OracleDBBinding_SQLEXECUTE"))
{
    sqlClient.ClientCredentials.UserName.UserName = "SCOTT";
    sqlClient.ClientCredentials.UserName.Password = "TIGER";
    try
    {
        sqlClient.Open();
    }
    catch (Exception ex)
    {
        Console.WriteLine("Error opening SQL client " + ex.Message);
        throw;
    }
    microsoft.lobservices.oracledb._2007._03.GenRecordRow[] sequenceRec =
        new microsoft.lobservices.oracledb._2007._03.GenRecordRow[0];

    try
    {
        sequenceRec = sqlClient.SQLEXECUTE("SELECT tid_seq.nextval id from DUAL", null, null);
    }
    catch (Exception ex)
    {
        Console.WriteLine("Error executing SQL client " + ex.Message);
        throw;
    }

    if (sequenceRec.Length > 0)
    {
        Console.WriteLine("TID_SEQUENCE value is {0}", sequenceRec[0].GenRecordColumn[0].ColumnValue);
    }
    else
    {
    Console.WriteLine("Couldn't get next TID_SEQUENCE value");
    }
}

See Also

Other Resources

Developing Applications by Using the WCF Service Model


Receiving Polling-based Data-changed Messages by Using the WCF Service Model

You can configure the Microsoft BizTalk Adapter for Oracle Database to receive polling-based data changed messages against an Oracle table or view. To receive data-changed messages, the adapter periodically executes a SQL query against an Oracle table or view followed by an optional PL/SQL code block. The results of the SQL query are then returned by the Oracle Database adapter to your application as a strongly-typed result set in an inbound POLLINGSTMT operation. For more information about the mechanism used to configure and perform polling on an Oracle database using the Oracle Database adapter, see Receiving Polling-based Data-changed Messages. We strongly recommended that you read this topic before proceeding.

To receive the POLLINGSTMT operation when you use the WCF service model, you must:

  • Generate a WCF service contract (interface) for the POLLINGSTMT operation from the metadata exposed by the adapter. To do this, you use the Add Adapter Service Reference Visual Studio Plug-in or the ServiceModel Metadata Utility Tool (svcutil.exe).

  • Implement a WCF service from this interface.

  • Host this WCF service using a service host (System.ServiceModel.ServiceHost).

The topics in this section provide information and procedures to help you perform polling on Oracle database tables and views in the WCF service model.

About the Examples Used in this Topic

The examples in this topic use the /SCOTT/ACCOUNTACTIVITY table and the /SCOTT/Package/ACCOUNT_PKG/PROCESS_ACTIVITY function. A script to generate these artifacts is supplied with the BizTalk Adapter Pack samples. For more information about the samples, see Samples.

Configuring Polling in the WCF Service Model

You configure the Oracle Database adapter to perform polling on Oracle database tables and views by setting binding properties and an optional connection property (parameter). Some of these properties are mandatory, and some, to have an effect, must be set both at design-time and run-time.

  • At design-time, you set connection parameters and binding properties when you connect to the Oracle Database to generate a WCF service contract.

  • At runtime you set binding properties on the OracleDBBinding object that you use to create the service host. You set the connection parameter when you add a service listener to the service host.

The following list provides a brief overview of the binding properties and connection parameters used to configure polling:

  • The PollingStatement binding property. You must set this binding property both at design-time and at run-time.

  • Optional binding properties. These only have to be set at run-time.

  • The AcceptCredentialsInUri binding property. You must set this binding property to true during run-time if you want to enable credentials in the connection URI. The user name and password must be present in the connection URI when you add a service endpoint to the service host.

  • The PollingId query string parameter in the connection URI. If you want to change the namespace of the POLLINGSTMT operation, you must set this connection property both at design-time and run-time.

For a complete description of the binding properties and connection parameters used to configure polling, see Receiving Polling-based Data-changed Messages.

The WCF Service Contract and Class

You use either the Add Adapter Service Reference Visual Studio Plug-in or the ServiceModel Metadata Utility Tool (svcutil.exe) to create a WCF service contract (interface) and supporting classes for the POLLINGSTMT operation.

When you connect to the Oracle database with either of these tools to generate a service contract for the POLLINGSTMT operation:

  • You must specify the PollingStatement binding property. The adapter uses the SELECT statement in this binding property to generate the correct metadata for the strongly-typed result set returned by the POLLINGSTMT operation.

  • You can optionally specify a PollingId parameter in the connection URI. The adapter uses this parameter to generate the namespace for the POLLINGSTMT operation.

In the following examples:

  • PollingStatement is set to "SELECT * FROM ACCOUNTACTIVITY FOR UPDATE".

  • PollingId is set to "AcctActivity".

The WCF Service Contract (Interface)

The following code shows the WCF service contract (interface) generated for the POLLINGSTMT operation.

Copy Code
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(Namespace="http://Microsoft.LobServices.OracleDB/2007/03", ConfigurationName="POLLINGSTMT_OperationGroup")]
public interface POLLINGSTMT_OperationGroup {

    // CODEGEN: Generating message contract since the wrapper namespace (http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTAcctActivity)
    // of message POLLINGSTMT does not match the default value (http://Microsoft.LobServices.OracleDB/2007/03)
    [System.ServiceModel.OperationContractAttribute(IsOneWay=true, Action="http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMT")]
    void POLLINGSTMT(POLLINGSTMT request);
}

The Message Contracts

The message contract namespace is modified by the PollingId parameter in the connection URI. The request message returns a set of strongly-typed records.

Copy Code
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.MessageContractAttribute(WrapperName="POLLINGSTMT", WrapperNamespace="http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTAcctActivity", IsWrapped=true)]
public partial class POLLINGSTMT {

    [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTAcctActivity", Order=0)]
    public microsoft.lobservices.oracledb._2007._03.POLLINGSTMTAcctActivity.POLLINGSTMTRECORD[] POLLINGSTMTRECORD;

    public POLLINGSTMT() {
    }

    public POLLINGSTMT(microsoft.lobservices.oracledb._2007._03.POLLINGSTMTAcctActivity.POLLINGSTMTRECORD[] POLLINGSTMTRECORD) {
        this.POLLINGSTMTRECORD = POLLINGSTMTRECORD;
    }
}

The Data Contract Namespace

A data contract is a formal agreement between a service and a client that abstractly describes the data to be exchanged. That is, in order to communicate, the client and the service do not have to share the same types, only the same data contracts.

In case of data change messages, the data contract namespace is also modified by the PollingId parameter (if specified) in the connection URI. The data contract is composed of a class that represents a strongly-typed record in the query result set. The details of the class definition are omitted in this example. The class contains properties that represent the columns in the result set.

In the following example, the PollingId “AcctActivity” is used.

Copy Code
namespace microsoft.lobservices.oracledb._2007._03.POLLINGSTMTAcctActivity {
    using System.Runtime.Serialization;

    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="POLLINGSTMTRECORD", Namespace="http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTAcctActivity")]
    public partial class POLLINGSTMTRECORD : object, System.Runtime.Serialization.IExtensibleDataObject {…}
     }
}

WCF Service Class

The Add Adapter Service Reference Plug-in also generates a file that has a stub for the WCF service class implemented from the service contract (interface). The name of the file is OracleDBBindingService.cs. You can insert the logic to process the POLLINGSTMT operation directly into this class. If you use svcutil.exe to generate the service contract interface, you must implement this class yourself. The following code shows the WCF service class generated by the Add Adapter Service Reference Plug-in.

Copy Code
namespace OracleDBBindingNamespace {

    public class OracleDBBindingService : POLLINGSTMT_OperationGroup {

        // CODEGEN: Generating message contract since the wrapper namespace (http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMTAcctActivity)
        // of message POLLINGSTMT does not match the default value (http://Microsoft.LobServices.OracleDB/2007/03)
        public virtual void POLLINGSTMT(POLLINGSTMT request) {
            throw new System.NotImplementedException("The method or operation is not implemented.");
        }
    }
}

Receiving the POLLINGSTMT Operation

To receive polling data from the Oracle Database adapter

  1. Use the Add Adapter Service Reference Plug-in or svcutil.exe to generate a WCF service contract (interface) and helper classes for the POLLINGSTMT operation. For more information, see Generating a WCF Client or a WCF Service Contract for Oracle Database Artifacts. At a minimum, you must set the PollingStatement binding property when you connect to the adapter. You can optionally specify a PollingId parameter in the connection URI. If you are using the Add Adapter Service Reference Plug-in, you should set all of the binding parameters necessary for your configuration. This guarantees that they are properly set in the generated configuration file.

  2. Implement a WCF service from the interface and helper classes generated in step 1. The POLLINGSTMT method of this class can throw an exception to abort the polling transaction, if an error is encountered processing the data received from the POLLINGSTMT operation; otherwise the method does not return anything. You must attribute the WCF service class as follows:

    Copy Code
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
    1. If you used the Add Adapter Service Reference Plug-in to generate the interface, you can implement your logic directly in the POLLINGSTMT method in the generated OracleDBBindingService class. This class can be found in OracleDBBindingService.cs. This code in this example sub-classes the OracleDBBindingService class.

      Copy Code
          [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]

    public class PollingStmtService : OracleDBBindingService
    {
        public override void POLLINGSTMT(POLLINGSTMT request)
        {
            Console.WriteLine("\nNew Polling Records Received");
            Console.WriteLine("Tx Id\tAccount\tAmount\tDate\t\t\tDescription");
            for (int i = 0; i < request.POLLINGSTMTRECORD.Length; i++)
            {
                Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}", request.POLLINGSTMTRECORD[i].TID,
                                    request.POLLINGSTMTRECORD[i].ACCOUNT,
                                    request.POLLINGSTMTRECORD[i].AMOUNT,
                                    request.POLLINGSTMTRECORD[i].TRANSDATE,
                                    request.POLLINGSTMTRECORD[i].DESCRIPTION);
            }
        }
    }
    2. If you used svcutil.exe to generate the interface, you must create a WCF service that implements the interface and implement your logic in the POLLINGSTMT method of this class.

  3. Create an instance of the WCF service created in step 2.

    Copy Code
    // create service instance
PollingStmtService pollingInstance = new PollingStmtService();

  4. Create an instance of System.ServiceModel.ServiceHost by using the WCF service and a base connection URI. The base connection URI cannot contain userinfoparams or a query_string.

    Copy Code
    // Enable service host
Uri[] baseUri = new Uri[] { new Uri("oracledb://Adapter") };
ServiceHost srvHost = new ServiceHost(pollingInstance, baseUri);

  5. Create an OracleDBBinding and configure the polling operation by setting its binding properties. You can do this either explicitly in code or declaratively in configuration. At a minimum, you must specify the polling statement and polling interval. In this example, you specify the credentials as part of the URI so you must also set the AcceptCredentialsInUri to true.

    Copy Code
    // Create and configure a binding for the service endpoint. NOTE: binding
// parameters are set here for clarity, but these are already set in the
// the generated configuration file
OracleDBBinding binding = new OracleDBBinding();

// The credentials are included in the connection URI, so set this property to true
binding.AcceptCredentialsInUri = true;

// Same as statement specified in Configure Adapter dialog box
binding.PollingStatement = "SELECT * FROM ACCOUNTACTIVITY FOR UPDATE";
binding.PostPollStatement = "BEGIN ACCOUNT_PKG.PROCESS_ACTIVITY(); END;";

// Be sure to set the interval long enough to complete processing before
// the next poll
binding.PollingInterval = 15;
// Polling is transactional; be sure to set an adequate isolation level
// for your environment
binding.TransactionIsolationLevel = TransactionIsolationLevel.ReadCommitted;

  6. Add a service endpoint to the service host. To do this:

    • Use the binding created in step 5.

    • Specify a connection URI that contains credentials and, if needed, a PollingId.

    • Specify the contract as "POLLINGSTMT_OperationGroup".

    Copy Code
    // Add service endpoint: be sure to specify POLLINGSTMT_OperationGroup as the contract
Uri serviceUri = new Uri("oracledb://User=SCOTT;Password=TIGER@Adapter?PollingId=AcctActivity");
srvHost.AddServiceEndpoint("POLLINGSTMT_OperationGroup", binding, serviceUri);

  7. To receive polling data, open the service host. The adapter will return data whenever the query returns a result set.

    Copy Code
    // Open the service host to begin polling
srvHost.Open();

  8. To terminate polling, close the service host.

    Important
    The adapter will continue to poll until the service host is closed.

    Copy Code
    srvHost.Close();

Example

The following example shows a polling query that executes against the /SCOTT/ACCOUNTACTIVITY table. The post-poll statement invokes an Oracle function that moves the processed records to another table /SCOTT/ACCOUNTHISTORY. The namespace of the POLLINGSTMT operation is modified by setting the PollingId parameter to "AccountActivity" in the connection URI. In this example, the WCF service for the POLLINGSTMT operation is created by sub-classing the generated OracleDBBindingService class; however, you can implement your logic directly in the generated class.

Copy Code
using System;
using System.Collections.Generic;
using System.Text;

// Add these three references to use the Oracle adapter
using System.ServiceModel;
using Microsoft.ServiceModel.Channels;
using Microsoft.Adapters.OracleDB;

using microsoft.lobservices.oracledb._2007._03.POLLINGSTMTAcctActivity;
using OracleDBBindingNamespace;

namespace OraclePollingSM
{
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]

    public class PollingStmtService : OracleDBBindingService
    {
        public override void POLLINGSTMT(POLLINGSTMT request)
        {
            Console.WriteLine("\nNew Polling Records Received");
            Console.WriteLine("Tx Id\tAccount\tAmount\tDate\t\t\tDescription");
            for (int i = 0; i < request.POLLINGSTMTRECORD.Length; i++)
            {
                Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}", request.POLLINGSTMTRECORD[i].TID,
                                    request.POLLINGSTMTRECORD[i].ACCOUNT,
                                    request.POLLINGSTMTRECORD[i].AMOUNT,
                                    request.POLLINGSTMTRECORD[i].TRANSDATE,
                                    request.POLLINGSTMTRECORD[i].DESCRIPTION);

            }
            Console.WriteLine("\nHit <RETURN> to stop polling");
         }
    }

    class Program
    {
        static void Main(string[] args)
        {
            ServiceHost srvHost = null;

            // This URI is used to specify the address for the ServiceEndpoint
            // It must contain credentials and the PollingId (if any) that was used to generate
            // the WCF service callback interface
            Uri serviceUri = new Uri("OracleDb://User=SCOTT;Password=TIGER@Adapter?PollingId=AcctActivity");

            // This URI is used to initialize the ServiceHost. It cannot contain
            // userinfoparms (credentials) or a query_string (PollingId); otherwise,
            // an exception is thrown when the ServiceHost is initialized.
            Uri[] baseUri = new Uri[] { new Uri("OracleDb://Adapter") };

            Console.WriteLine("Sample started, initializing service host -- please wait");

            // create an instanc of the WCF service callback class
            PollingStmtService pollingInstance = new PollingStmtService();

            try
            {
                // Create a ServiceHost with the service callback instance and a base URI (address)
                srvHost = new ServiceHost(pollingInstance, baseUri);

                // Create and configure a binding for the service endpoint. Note: binding
                // parameters are set here for clarity but these are already set in the
                // generated configuration file
                //
                // The following properties are set
                //    AcceptCredentialsInUri (true) to enable credentials in the connection URI for AddServiceEndpoint
                //    PollingStatement
                //    PostPollStatement calls PROCESS_ACTIVITY on Oracle. This procedure moves the queried records to
                //                      the ACCOUNTHISTORY table
                //    PollingInterval (15 seconds)
                //    TransactionIsolationLevel

                OracleDBBinding binding = new OracleDBBinding();

                // The Credentials are included in the Connection Uri so set this property true
                binding.AcceptCredentialsInUri = true;

                // Same as statement specified in Configure Adapter dialog box
                binding.InboundOperationType = InboundOperation.Polling;
                binding.PollingStatement = "SELECT * FROM ACCOUNTACTIVITY FOR UPDATE";
                binding.PostPollStatement = "BEGIN ACCOUNT_PKG.PROCESS_ACTIVITY(); END;";

                // Be sure to set the interval long enough to complete processing before
                // the next poll
                binding.PollingInterval = 15;

                // Polling is transactional, be sure to set an adequate isolation level
                // for your environment
                binding.TransactionIsolationLevel = TransactionIsolationLevel.ReadCommitted;

                // Add service endpoint: be sure to specify POLLINGSTMT_OperationGroup as the contract
                srvHost.AddServiceEndpoint("POLLINGSTMT_OperationGroup", binding, serviceUri);

                Console.WriteLine("Opening the service host");
                // Open the service host to begin polling
                srvHost.Open();

                // Wait to receive request
                Console.WriteLine("\nPolling started. Returned records will be written to the console.");
                Console.WriteLine("Hit <RETURN> to stop polling");
                Console.ReadLine();
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception :" + e.Message);
                Console.ReadLine();

                /* If there is an Oracle Error it will be specified in the inner exception */
                if (e.InnerException != null)
                {
                    Console.WriteLine("InnerException: " + e.InnerException.Message);
                    Console.ReadLine();
                }
            }
            finally
            {
                // IMPORTANT: you must close the ServiceHost to stop polling
                if (srvHost.State == CommunicationState.Opened)
                    srvHost.Close();
                else
                    srvHost.Abort();
            }

        }
    }
}

See Also

Other Resources

Developing Applications by Using the WCF Service Model


Receiving Database Change Notifications Using the WCF Service Model

This topic demonstrates how to configure the Oracle Database adapter to receive query notification messages from an Oracle database. To demonstrate notifications, consider a table, ACCOUNTACTIVITY, with a “Processed” column. When a new record is inserted to this table, the value of the Status column is set to ‘n’. You can configure the adapter to receive notifications by registering for notifications using a SQL statement that retrieves all records that have “Processed” column as ‘n’. You can do so by specifying the SQL statement for the NotificationStatement binding property. Once the adapter client receives the notification, it can contain the logic to do any subsequent tasks on the Oracle database. In this example, for the sake of simplicity, the adapter client lists all the records in the table that have the “Processed” column as ‘n’.

Configuring Notifications with the Oracle Database Adapter Binding Properties

The table below summarizes the Oracle Database adapter binding properties that you use to configure receiving notifications from Oracle database. You must specify these binding properties while running the .NET application to receive notifications.

Binding Property | Description
InboundOperationType | Specifies the inbound operation that you want to perform. To receive notification messages, set this to Notification.
NotificationPort | Specifies the port number that ODP.NET must open to listen for database change notification from Oracle database.
NotificationStatement | Specifies the SELECT statement used to register for query notifications. The adapter gets a notification message only when the result set for the specified SELECT statement changes.
NotifyOnListenerStart | Specifies whether the adapter sends a notification to the adapter clients when the listener is started.

For a more complete description of these properties, see Working with BizTalk Adapter for Oracle Database Binding Properties. For a complete description of how to use the Oracle Database adapter to receive notifications from Oracle database, read further.

Configuring Notifications Using the WCF Service Model

To receive the notifications using the WCF service model, you must:

  • Generate a WCF service contract (interface) for the Notification operation from the metadata exposed by the adapter. To do this, you could use the Add Adapter Service Reference Plug-in.

  • Generate a WCF client for the Select operation on the ACCOUNTACTIVITY table. To do this, you could use the Add Adapter Service Reference Plug-in.

  • Implement a WCF service from this interface.

  • Host this WCF service using a service host (System.ServiceModel.ServiceHost).

The WCF Service Contract and Class

You can use the Add Adapter Service Reference Plug-in to create a WCF service contract (interface) and supporting classes for the Notification operation. For more information about generating a WCF service contract, see Generating a WCF Client or a WCF Service Contract for Oracle Database Artifacts.

The WCF Service Contract (Interface)

The following code shows the WCF service contract (interface) generated for the Notification operation.

Copy Code
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(Namespace="http://Microsoft.LobServices.OracleDB/2007/03", ConfigurationName="Notification_OperationGroup")]
public interface Notification_OperationGroup {

    // CODEGEN: Generating message contract since the wrapper namespace (http://Microsoft.LobServices.OracleDB/2007/03/Notification/) of message Notification
    // does not match the default value (http://Microsoft.LobServices.OracleDB/2007/03)
    [System.ServiceModel.OperationContractAttribute(IsOneWay=true, Action="http://Microsoft.LobServices.OracleDB/2007/03/Notification")]
    void Notification(Notification request);
}

The Message Contracts

Following is the message contract for the Notification operation.

Copy Code
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.MessageContractAttribute(WrapperName="Notification", WrapperNamespace="http://Microsoft.LobServices.OracleDB/2007/03/Notification/", IsWrapped=true)]
public partial class Notification {

    [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://Microsoft.LobServices.OracleDB/2007/03/Notification/", Order=0)]
    public microsoft.lobservices.oracledb._2007._03.Notification.NotificationDetails[] Details;

    [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://Microsoft.LobServices.OracleDB/2007/03/Notification/", Order=1)]
    public string Info;

    [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://Microsoft.LobServices.OracleDB/2007/03/Notification/", Order=2)]
    public string[] ResourceNames;

    [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://Microsoft.LobServices.OracleDB/2007/03/Notification/", Order=3)]
    public string Source;

    [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://Microsoft.LobServices.OracleDB/2007/03/Notification/", Order=4)]
    public string Type;

    public Notification() {
    }

    public Notification(microsoft.lobservices.oracledb._2007._03.Notification.NotificationDetails[] Details, string Info, string[] ResourceNames, string Source, string Type) {
        this.Details = Details;
        this.Info = Info;
        this.ResourceNames = ResourceNames;
        this.Source = Source;
        this.Type = Type;
    }
}

WCF Service Class

The Add Adapter Service Reference Plug-in also generates a file that has a stub for the WCF service class implemented from the service contract (interface). The name of the file is OracleDBBindingService.cs. You can insert the logic to process the Notification operation directly into this class. The following code shows the WCF service class generated by the Add Adapter Service Reference Plug-in.

Copy Code
namespace OracleDBBindingNamespace {

    public class OracleDBBindingService : Notification_OperationGroup {

        // CODEGEN: Generating message contract since the wrapper namespace (http://Microsoft.LobServices.OracleDB/2007/03/Notification/) of message Notification
        // does not match the default value (http://Microsoft.LobServices.OracleDB/2007/03)
        public virtual void Notification(Notification request) {
            throw new System.NotImplementedException("The method or operation is not implemented.");
        }
    }
}

Receiving Database Change Notifications Using WCF Service Model

This section provides instructions on how to write a .NET application to receive query notifications using the Oracle Database adapter.

To receive query notifications

  1. Use the Add Adapter Service Reference Plug-in to generate a WCF client for Select operation on the ACCOUNTACTIVITY table. You will use this client to perform Select operations after receiving a notification message. Add a new class, TableOperation.cs to your project and add the following code snippet to perform a Select operation.

    Copy Code
    using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Notification_ServiceModel
{
    class TableOperation
    {
        public void TableOp()
        {
            //////////////////////////////////////////////////////////////////////
            // CREATING THE CLIENT AND SETTING CLIENT CREDENTIALS
            //////////////////////////////////////////////////////////////////////

            SCOTT_Table_ACCOUNTACTIVITYClient client = new SCOTT_Table_ACCOUNTACTIVITYClient("OracleDBBinding_SCOTT_Table_ACCOUNTACTIVITY");
            client.ClientCredentials.UserName.UserName = "SCOTT";
            client.ClientCredentials.UserName.Password = "TIGER";

            ////////////////////////////////////////////////////////////////////
            // OPENING THE CLIENT
            //////////////////////////////////////////////////////////////////////
            try
            {
                Console.WriteLine("Opening the client ...");
                client.Open();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception: " + ex.Message);
                throw;
            }

            ////////////////////////////////////////////////////////////////////////////////////////
            // SELECTING THE LAST INSERTED VALUE
            ////////////////////////////////////////////////////////////////////////////////////////

            Console.WriteLine("The application will now select the last inserted record");

            microsoft.lobservices.oracledb._2007._03.SCOTT.Table.ACCOUNTACTIVITY.ACCOUNTACTIVITYRECORDSELECT[] selectRecords;

            try
            {
                selectRecords = client.Select("*", "WHERE PROCESSED = 'n'");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception: " + ex.Message);
                throw;
            }

            Console.WriteLine("The details of the newly added records are:");
            Console.WriteLine("********************************************");
            for (int i = 0; i < selectRecords.Length; i++)
            {
                Console.WriteLine("Transaction ID   : " + selectRecords[i].TID);
                Console.WriteLine("Account ID       : " + selectRecords[i].ACCOUNT);
                Console.WriteLine("Processed Status : " + selectRecords[i].PROCESSED);
                Console.WriteLine();
            }
            Console.WriteLine("********************************************");
        }
    }
}

  2. Use the Add Adapter Service Reference Plug-in to generate a WCF service contract (interface) and helper classes for the Notification operation.

    For more information, see Generating a WCF Client or a WCF Service Contract for Oracle Database Artifacts. You can optionally specify the binding properties while generating the service contract and helper classes. This guarantees that they are properly set in the generated configuration file.

  3. Implement a WCF service from the interface and helper classes generated in step 2. The Notification method of this class can throw an exception to abort the operation, if an error is encountered processing the data received from the Notification operation; otherwise the method does not return anything. You must attribute the WCF service class as follows:

    Copy Code
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]

    Within the Notification method, you can implement your application logic directly. This class can be found in OracleDBBindingService.cs. This code in this example sub-classes the OracleDBBindingService class. In this code, the notification message received is written to the console. Additionally, the TableOp method within the TableOperation class is invoked to perform the Select operation.

    Copy Code
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]

    public class NotificationService : OracleDBBindingNamespace.OracleDBBindingService
    {
        public override void Notification(Notification request)
        {
            Console.WriteLine("\nNew Notification Received");
            Console.WriteLine("*************************************************");
            Console.WriteLine(request.Info);
            Console.WriteLine(request.Source);
            Console.WriteLine(request.Type);
            Console.WriteLine("*************************************************");

            TableOperation Ops = new TableOperation();
            Ops.TableOp();

        }
    }

  4. You must implement the following class to pass credentials for the Oracle database. In the latter part of the application, you will instantiate this class to pass on the credentials.

    Copy Code
    class NotificationCredentials : ClientCredentials, IServiceBehavior
{
    public void AddBindingParameters(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase, Collection<ServiceEndpoint> endpoints, BindingParameterCollection bindingParameters)
    {
        bindingParameters.Add(this);
    }

    public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
    { }

    public void Validate(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
    { }

    protected override ClientCredentials CloneCore()
    {
        ClientCredentials clone = new NotificationCredentials();
        clone.UserName.UserName = this.UserName.UserName;
        clone.UserName.Password = this.UserName.Password;
        return clone;
    }
}

  5. Create an OracleDBBinding and configure the adapter to receive query notifications by specifying the binding properties. You can do this either explicitly in code or declaratively in configuration. At a minimum, you must specify the InboundOperationType and NotificationStatement binding properties.

    Copy Code
    OracleDBBinding binding = new OracleDBBinding();
binding.InboundOperationType = InboundOperation.Notification;
binding.NotificationStatement = "SELECT TID,ACCOUNT,PROCESSED FROM APPS.ACCOUNTACTIVITY WHERE PROCESSED = 'n'";
binding.NotifyOnListenerStart = true;
binding.NotificationPort = 10;
    Important
    The value for the NotificationPort binding property must be set to the same port number that you must have added to the Windows Firewall exceptions list. For instructions on how to add ports to Windows Firewall exceptions list, see http://go.microsoft.com/fwlink/?LinkId=196959.

    Important
    If you do not set the NotificationPort binding property, the adapter will assume the default value of -1 for this binding property. In such a case, you will have to completely disable Windows Firewall to receive notification messages.

  6. Specify Oracle database credentials by instantiating the NotificationCredentials class you created in Step 4.

    Copy Code
    NotificationCredentials credentials = new NotificationCredentials();
credentials.UserName.UserName = "SCOTT";
credentials.UserName.Password = "TIGER";

  7. Create an instance of the WCF service created in step 3.

    Copy Code
    // create service instance
NotificationService service = new NotificationService();

  8. Create an instance of System.ServiceModel.ServiceHost by using the WCF service and a base connection URI. You must also specify the credentials here.

    Copy Code
    // Enable service host
Uri[] baseUri = new Uri[] { new Uri("oracledb://adapter") };
ServiceHost serviceHost = new ServiceHost(service, baseUri);
serviceHost.Description.Behaviors.Add(credentials);

  9. Add a service endpoint to the service host. To do this:

    • Use the binding created in step 5.

    • Specify a connection URI that contains credentials and, if required, an inbound ID.

    • Specify the contract as "Notification_OperationGroup".

    Copy Code
    // Add service endpoint: be sure to specify Notification_OperationGroup as the contract
Uri ConnectionUri = new Uri("oracledb://adapter");
serviceHost.AddServiceEndpoint("Notification_OperationGroup", binding, ConnectionUri);

  10. To receive notification message, open the service host.

    Copy Code
    // Open the service host to begin receiving notifications
serviceHost.Open();

  11. To stop receiving notifications, close the service host.

    Copy Code
    serviceHost.Close();

Example

The following example shows a .NET application to receive notification messages for the ACCOUNTACTIVITY table.

Note
The following code snippet instantiates a TableOperation.cs class and invokes the TableOp method. The class and the method are described in Step 1.

Copy Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Adapters.OracleDB;
using Microsoft.ServiceModel.Channels;
using System.ServiceModel;
using System.ServiceModel.Description;
using System.ServiceModel.Channels;
using System.Collections.ObjectModel;

namespace Notification_ServiceModel
{
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]

    public class NotificationService : OracleDBBindingNamespace.OracleDBBindingService
    {
        public override void Notification(Notification request)
        {
            Console.WriteLine("\nNew Notification Received");
            Console.WriteLine("*************************************************");
            Console.WriteLine(request.Info);
            Console.WriteLine(request.Source);
            Console.WriteLine(request.Type);
            Console.WriteLine("*************************************************");

            TableOperation Ops = new TableOperation();
            Ops.TableOp();

        }
    }

    class NotificationCredentials : ClientCredentials, IServiceBehavior
    {
        public void AddBindingParameters(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase, Collection<ServiceEndpoint> endpoints, BindingParameterCollection bindingParameters)
        {
            bindingParameters.Add(this);
        }

        public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
        { }

        public void Validate(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
        { }

        protected override ClientCredentials CloneCore()
        {
            ClientCredentials clone = new NotificationCredentials();
            clone.UserName.UserName = this.UserName.UserName;
            clone.UserName.Password = this.UserName.Password;
            return clone;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            ServiceHost serviceHost = null;
            try
            {
                Console.WriteLine("Sample started...");
                Console.WriteLine("Press any key to start receiving notifications...");
                Console.ReadLine();

                OracleDBBinding binding = new OracleDBBinding();
                binding.InboundOperationType = InboundOperation.Notification;
                binding.NotificationStatement = "SELECT TID,ACCOUNT,PROCESSED FROM APPS.ACCOUNTACTIVITY WHERE PROCESSED = 'n'";
                binding.NotifyOnListenerStart = true;
                binding.NotificationPort = 10;

                // This URI is used to specify the address for the ServiceEndpoint
                // It must contain the InboundId that was used to generate
                // the WCF service callback interface
                Uri ConnectionUri = new Uri("oracledb://adapter");

                // This URI is used to initialize the ServiceHost. It cannot contain
                // an InboundID; otherwise,an exception is thrown when
                // the ServiceHost is initialized.
                Uri[] baseUri = new Uri[] { new Uri("oracledb://adapter") };

                NotificationCredentials credentials = new NotificationCredentials();
                credentials.UserName.UserName = "SCOTT";
                credentials.UserName.Password = "TIGER";

                Console.WriteLine("Opening service host...");
                NotificationService service = new NotificationService();
                serviceHost = new ServiceHost(service, baseUri);
                serviceHost.Description.Behaviors.Add(credentials);
                serviceHost.AddServiceEndpoint("Notification_OperationGroup", binding, ConnectionUri);
                serviceHost.Open();
                Console.WriteLine("Service host opened...");
                Console.WriteLine("Waiting for notification...");

                Console.WriteLine("\nHit <RETURN> to stop receiving notification");
                Console.ReadLine();
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception :" + e.Message);
                Console.ReadLine();

                /* If there is an error it will be specified in the inner exception */
                if (e.InnerException != null)
                {
                    Console.WriteLine("InnerException: " + e.InnerException.Message);
                    Console.ReadLine();
                }
            }
            finally
            {
                // IMPORTANT: you must close the ServiceHost to stop polling
                if (serviceHost.State == CommunicationState.Opened)
                    serviceHost.Close();
                else
                    serviceHost.Abort();
            }

        }
    }
}

See Also

Other Resources

Developing Applications by Using the WCF Service Model


Developing Applications by Using the WCF Channel Model

You can use the Windows Communication Foundation (WCF) channel model to consume the Microsoft BizTalk Adapter for Oracle Database by sending XML messages directly over a channel instance created with the Oracle DB Binding.

One advantage of using the WCF channel model over using the strongly-typed classes and methods that the WCF service model exposes is that the channel model provides more fine-grained control over the operations that you perform on the Oracle database. Why? In the WCF channel model you directly control the contents of the messages that you send over the channel.

In certain scenarios, this extra level of control can be beneficial. For example, when you use the WCF channel model to perform an Update operation on a table, you can selectively update columns in the target rows by omitting columns from the update template that you pass in the message. The update method exposed by a WCF client uses a strongly-typed record parameter for the template that includes every column in the table schema. If a column has “nillable=false” in the WSDL, it must be updated using the WCF service model.

Another key advantage that the WCF channel model provides over the WCF service model is more comprehensive support for end-to-end streaming of Oracle large object (LOB) data types. By using the WCF channel model you can perform end-to-end streaming:

  • To update an LOB column in a table or view using the UpdateLOB operation.

  • On OUT and IN OUT parameters containing LOB data that are returned by procedures and functions.

  • On LOB data that is contained in the result of a SQLEXECUTE operation.

  • On LOB data columns that are returned in the POLLINGSTMT operation.

  • On LOB data columns that are returned by a Select operation on a table or view.

This is because in the WCF channel model you directly control how you provide the message body on outgoing messages and how you process the message body on incoming messages.

In contrast, the WCF service model only provides:

  • End-to-end streaming for LOB data on one operation, the ReadLOB operation.

  • No capability to update LOB data on the Oracle database in a streamed fashion.

The sections in this topic explain how to perform operations on the Oracle Database adapter by using the WCF channel model.

In This Section

  • Overview of Using the WCF Channel Model with the Adapter

  • Creating a Channel

  • Invoking Operations on the Oracle Database by Using the WCF Channel Model

  • Performing a SQLEXECUTE Operation by Using the WCF Channel Model

  • Performing an Insert Operation by Using the WCF Channel Model

  • Invoking a Function by Using the WCF Channel Model

  • Receiving Polling-based Data-changed Messages by Using the WCF Channel Model

  • Streaming Oracle LOB Data Types by Using the WCF Channel Model


Overview of Using the WCF Channel Model with the Adapter

To invoke operations on the Microsoft BizTalk Adapter for Oracle Database, your code acts as a WCF client and sends outbound operations to the adapter. In the WCF channel model, your code invokes operations on the adapter by sending a request message over a channel.

To invoke inbound operations, such as receiveing polling-based data-changed messages using the POLLINGSTMT operation provided by the adapter, your code acts as a WCF service and receives the inbound operation from the adapter. In other words, your code receives a request message from the adapter over a channel.

The topics in this section provide an overview of using the Oracle Database adapter with the WCF channel model.

WCF Channel Model Overview

Clients and services communicate by exchanging SOAP messages. The WCF channel model is a low-level abstraction of this message exchange. It provides interfaces and types that enable you to send and receive messages by using a layered protocol stack called a channel stack. Each layer of the stack is composed of a channel, and each channel is created from a WCF binding. At the lowest layer is the transport channel. The transport channel implements the underlying transport mechanism between a service and a client and presents each message to the higher layers (and ultimately the consuming application) as a System.ServiceModel.Message. The WCF Message class is an abstraction of a SOAP message. WCF provides several channel interfaces, called channel shapes, that model the basic SOAP message exchange patterns, such as request-reply or one-way. A WCF transport binding provides an implementation of one or more channel shapes that higher layers can use to send and receive messages. For more information about the WCF channel model, see "Channel Model Overview" at http://go.microsoft.com/fwlink/?LinkId=82614.

The Oracle Database adapter is a WCF custom transport binding that exposes an Oracle database as a WCF service.

Supported Channel Shapes for the Oracle Database Adapter

The adapter implements the following WCF channel shapes:

  • IRequestChannel (System.ServiceModel.Channels.IRequestChannel). The IRequestChannel interface implements the client side of a request-reply message exchange. You can use an IRequestChannel to perform operations for which you want to consume a response, for example to perform a SELECT query on an Oracle table.

  • IOutputChannel (System.ServiceModel.Channels.IOutputChannel). This shape implements the client side of a one-way message exchange. You can use an IOutputChannel to invoke an operation for which you do not need to consume a response, for example to call an Oracle procedure that has no OUT parameters.

    Important
    All underlying calls by the adapter to the Oracle client are synchronous. This includes calls to the Oracle client that are the result of operations invoked over an IOutputChannel. When you use an IOutputChannel, the adapter discards the response received from the Oracle client.

  • IInputChannel (System.ServiceModel.Channels.IInputChannel). This shape implements the service side of a one-way message exchange. You use an IInputChannel to receive messages for inbound operations from the adapter.

Like any WCF binding, the Oracle Database adapter uses a factory pattern to provide channels to application code. You use a Microsoft.Adapters.OracleDBBinding object to create instances of:

  • System.ServiceModel.ChannelFactory<IRequestChannel> to provide IRequestChannel channels you can use to invoke request-response operations on the adapter.

  • System.ServiceModel.ChannelFactory<IOutputChannel> to provide IOutputChannel channels you can use to invoke one-way operations on the adapter.

  • System.ServiceModel.IChannelListener<IInputChannel> to provide IInputChannel channels you can use to receive inbound messages (e.g. POLLINGSTMT operation) from the adapter.

Creating Messages for the Oracle Database Adapter in the WCF Channel Model

In WCF the System.ServiceModel.Channels.Message class provides an in memory representation of a SOAP message. You create a Message instance by invoking the static Message.Create method.

There are two important parts to the SOAP message that you must specify when you create a Message instance to send to the Oracle Database adapter.

  • The message action is a string that is part of the SOAP message header. The message action identifies the operation that should be invoked on the Oracle database. The following shows the message action specified to invoke the Select operation on the /SCOTT/EMP table: http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Select.

  • The message body contains the parameter data for the operation. The message body is composed of well-formed XML that corresponds to the message schema expected by the Oracle Database adapter for the requested operation. The following message body specifies a Select operation on the SCOTT.EMP table (SELECT * FROM EMP).

    Copy Code
    <?xml version="1.0" encoding="utf-8" ?>
<Select xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP">
    <COLUMN_NAMES>*</COLUMN_NAMES>
</Select>

For information about the Oracle Database adapter message schemas and message actions for operations, see Messages and Message Schemas for BizTalk Adapter for Oracle Database.

This Create method is overloaded and offers many different options for providing the message body. The following code shows how to create a Message instance by using an XmlReader to supply the message body. In this code, the message body is read from a file.

Copy Code
XmlReader readerIn = XmlReader.Create("SelectAllActivity.xml");
Message messageIn = Message.CreateMessage(MessageVersion.Default,
    "http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Select",
    readerIn);
Important
You must provide a message action in your Message instance. This is typically done when the Message instance is created.

Streaming Support for LOB Data Types in the WCF Channel Model

End-to-end streaming of LOB data types is supported for some operations surfaced by the adapter. For these operations, how you create and consume the messages that you send and receive over the channel determines whether streaming is supported on the LOB data.

For more information about how the Oracle Database adapter supports streaming on LOB data, see Streaming and the Oracle Database Adapter.

For more information about implementing node-value streaming in your code to support end-to-end streaming of LOB data, see Streaming Oracle LOB Data Types by Using the WCF Channel Model.

See Also

Other Resources

Developing Applications by Using the WCF Channel Model


Creating a Channel

In the WCF channel model, you invoke operations on the Oracle database and receive the results of a polling query by exchanging SOAP messages with the Microsoft BizTalk Adapter for Oracle Database over a WCF channel.

  • You invoke operations (outbound operations) by using either an IRequestChannel or an IOutputChannel to send messages to the adapter.

  • You receive polling-based data-changed messages by receiving POLLINGSTMT messages over an IInputChannel.

The topics in this section provide information about how to create and configure channel shapes that are used for inbound and outbound operations.

Creating Outbound (Client) Channels

You can use either an IRequestChannel or an IOutputChannel to invoke operations on the Oracle database. In either case, you first create a System.ServiceModel.ChannelFactory using the appropriate interface. You then use the factory to create the channel. After you have created the channel you can use it to invoke operations on the adapter.

To create and open an outbound channel

  1. Create and initialize an instance of ChannelFactory for the desired channel shape by using an endpoint and a binding. The endpoint specifies an Oracle connection URI and the binding is an instance of OracleDBBinding.

  2. Provide Oracle credentials for the channel factory by using the Credentials property.

  3. Open the channel factory.

  4. Get an instance of the channel by invoking the CreateChannel method on the channel factory.

  5. Open the channel.

You can specify the binding and endpoint address in your code or from configuration.

Specifying the Binding and Endpoint Address in Code

The following code example shows how to create an IRequestChannel by specifying the binding and endpoint address in code. The code to create an IOutputChannel is the same except that you must specify an IOutputChannel interface for the ChannelFactory and channel type.

Copy Code
// Create binding -- set binding properties before you open the factory.
OracleDBBinding odbBinding = new OracleDBBinding();

// Create address.
EndpointAddress odbAddress = new EndpointAddress("oracledb://ADAPTER/");

// Create channel factory from binding and address.
ChannelFactory<IRequestChannel> factory =
    new ChannelFactory<IRequestChannel>(odbBinding, odbAddress);

// Specify credentials.
factory.Credentials.UserName.UserName = "SCOTT";
factory.Credentials.UserName.Password = "TIGER";

// Open factory
factory.Open();

// Get channel and open it
IRequestChannel channel = factory.CreateChannel();
channel.Open();

Specifying the Binding and Endpoint Address in Configuration

The following code example shows how to create a channel factory from a client endpoint specified in configuration.

Copy Code
// Create channel factory from configuration.
ChannelFactory<IRequestChannel> factory =
new ChannelFactory<IRequestChannel>("MyRequestChannel");

// Specify credentials.
factory.Credentials.UserName.UserName = "SCOTT";
factory.Credentials.UserName.Password = "TIGER";

// Open the factory.
factory.Open();

// Get a channel and open it.
IRequestChannel channel = factory.CreateChannel();
channel.Open();

The Configuration Settings

The following code shows the configuration settings used for the preceding example. The contract for the client endpoint must be "System.ServiceModel.Channels.IRequestChannel" or "System.ServiceModel.Channels.IRequestChannel" depending on the kind of channel shape that you want to create.

Copy Code
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
    <system.serviceModel>
        <bindings>
            <oracleDBBinding>
                <binding name="OracleDBBinding" closeTimeout="00:01:00" openTimeout="00:01:00"
                    receiveTimeout="00:10:00" sendTimeout="00:01:00" metadataPooling="true"
                    statementCachePurge="false" statementCacheSize="10" pollingInterval="500"
                    useOracleConnectionPool="true" minPoolSize="1" maxPoolSize="100"
                    incrPoolSize="5" decrPoolSize="1" connectionLifetime="0" acceptCredentialsInUri="false"
                    useAmbientTransaction="true" polledDataAvailableStatement="SELECT 1 FROM DUAL"
                    pollWhileDataFound="false" notifyOnListenerStart="true" notificationPort="-1"
                    inboundOperationType="Polling" dataFetchSize="65536" longDatatypeColumnSize="0"
                    skipNilNodes="true" maxOutputAssociativeArrayElements="32"
                    enableSafeTyping="false" insertBatchSize="1" useSchemaInNameSpace="true"
                    enableBizTalkCompatibilityMode="false" enablePerformanceCounters="false" />
            </oracleDBBinding>
        </bindings>
        <client>
            <endpoint address="oracledb://adapter/" binding="oracleDBBinding"
                bindingConfiguration="OracleDBBinding" contract="System.ServiceModel.Channels.IRequestChannel"
                name="MyRequestChannel" />
        </client>
    </system.serviceModel>
</configuration>

Creating Inbound (Service) Channels

You configure the Oracle Database adapter to poll the Oracle database tables and views by setting binding properties on an instance of OracleDBBinding. You then use this binding to build a channel listener from which you can get an IInputChannel channel to receive message for inbound operations from the adapter.

To create and open an IInputChannel to receive messages for inbound operations

  1. Create an instance of OracleDBBinding.

  2. Set the binding properties required for the inbound operation. For example, for the POLLINGSTMT operation, at a minimum you must set the InboundOperationType, PollingStatement, and PollingInterval binding properties to configure the Oracle Database adapter to poll the Oracle database.

  3. Create a binding parameter collection using the BindingParameterCollection class and set the credentials.

  4. Create a channel listener by invoking BuildChannelListener<IInputChannel> method on the OracleDBBinding. You specify the Oracle connection URI as one of the parameters to this method. For more information about the Oracle connection URI, see The Oracle Database Connection URI.

  5. Open the listener.

  6. Get an IInputChannel channel by invoking the AcceptChannel method on listener.

  7. Open the channel.

The following code shows how to create a channel listener and get an IInputChannel to inbound messages from the adapter using the POLLINGSTMT operation.

Note
The Oracle Database adapter only supports one-way receive. So, you must use IInputChannel to receive messages for inbound operations from Oracle database.

Copy Code
// Create a binding: specify the InboundOperationType, PollingInterval (in seconds), the PollingStatement, and
// the PostPollStatement.
OracleDBBinding binding = new OracleDBBinding();
binding.InboundOperationType = InboundOperation.Polling;
binding.PollingInterval = 30;
binding.PollingStatement = "SELECT * FROM ACCOUNTACTIVITY FOR UPDATE";
binding.PostPollStatement = "BEGIN ACCOUNT_PKG.PROCESS_ACTIVITY(); END;";

// Create a binding parameter collection and set the credentials
ClientCredentials credentials = new ClientCredentials();
credentials.UserName.UserName = "SCOTT";
credentials.UserName.Password = "TIGER";

BindingParameterCollection bindingParams = new BindingParameterCollection();
bindingParams.Add(credentials);

// Get a listener from the binding and open it.
Uri connectionUri = new Uri("oracleDB://ADAPTER");
IChannelListener<IInputChannel> listener = binding.BuildChannelListener<IInputChannel>(connectionUri, bindingParams);
listener.Open();

// Get a channel from the listener and open it.
channel = listener.AcceptChannel();
channel.Open();

See Also

Other Resources

Developing Applications by Using the WCF Channel Model


Invoking Operations on the Oracle Database by Using the WCF Channel Model

You can invoke operations on the Oracle Database adapter by using an IRequestChannel or IOutputChannel shape to send messages to the adapter. The basic pattern is to create a channel factory for the required channel shape by using a binding (OracleDBBinding) and an endpoint created from a connection URI. You then create a Message instance that represents a SOAP message that conforms to the message schema for your target operation. You can then send this Message to the Oracle Database adapter by using a channel created from the channel factory. If you are using an IRequestChannel, you receive a response. If there is a problem executing the operation on the Oracle database, the Oracle Database adapter throws a Microsoft.ServiceModel.Channels.Common.TargetSystemException.

For an overview of how to send operations using an IRequestChannel in WCF, see "Client Channel-Level Programming" at http://go.microsoft.com/fwlink/?LinkId=106081.

The sections in this topic provide information to help you invoke operations on the Oracle Database adapter using the WCF channel model.

Creating and Consuming Messages for Outbound Operations

To invoke an operation on the Oracle Database adapter, you send the request message for the target operation using either an IRequestChannel or an IOutputChannel. If you use an IRequestChannel the adapter returns the results of the operation in the response message.

For more detailed information about the request and response message schemas and the message actions for each operation, see Messages and Message Schemas for BizTalk Adapter for Oracle Database.

How you create the request message and consume the response message determines whether node streaming or node-value streaming is performed by the adapter. This in turn determines whether end-to-end streaming of LOB data is performed for supported operations.

Creating the request message

You can create the request message in one of two ways:

  • To create a message that can be used for node-value streaming you must pass the message body in an XmlBodyWriter that implements node-value streaming.

  • To create a message that can be used for node streaming you can pass the message body in an XmlReader.

You typically use node-value streaming to support end-to-end streaming of Oracle LOB data in the request message. The only operation that supports this feature is UpdateLOB.

Consuming the response message

You can consume the response message in one of two ways:

  • To consume the message using node-value streaming you must call the WriteBodyContents method on the response message and pass it an XmlDictionaryWriter that implements node-value streaming.

  • To consume the message using node streaming you can call GetReaderAtBodyContents on the response message to get an XmlReader.

You typically use node-value streaming to support end-to-end streaming of Oracle LOB data in the response message. There are many operations that support this feature.

LOB Data and Message Streaming Support

For more information about how the Oracle Database adapter supports streaming on LOB data, see Streaming and the Oracle Database Adapter.

For more information about implementing node-value streaming in your code to support end-to-end streaming of LOB data, see Streaming Oracle LOB Data Types by Using the WCF Channel Model.

Transaction Support on Outbound Operations in the WCF Channel Model.

The adapter executes each operation you invoke inside a dedicated transaction on the Oracle database. You can control the isolation level of these transactions by setting the TransactionIsolationLevel binding property.

About the Examples Used in this Topic

The example in this topic uses the SCOTT.ACCOUNTACTIVITY table. A script to generate these artifacts is supplied with the SDK samples. For more information about the SDK samples, see Samples.

How Do I Invoke an Operation by Using a Channel?

To invoke an operation by using an IRequestChannel, perform the following steps.

How to invoke an operation by using an instance of IRequestChannel

  1. Build a channel factory (ChannelFactory<IRequestChannel>). To do this, you must specify a binding (OracleDBBinding) and an endpoint address. You can specify the binding and endpoint address either imperatively in your code or declaratively in configuration. For more information about how to specify the binding and endpoint address in configuration, see Creating a Channel.

    Copy Code
    // Create a binding
OracleDBBinding binding = new OracleDBBinding();
// Create an endpoint address by using the connection URI
EndpointAddress address = new EndpointAddress("oracledb://ADAPTER");
// Create the channel factory
ChannelFactory<IRequestChannel> factory = new ChannelFactory<IRequestChannel>(binding, address);

  2. Set the user name password credentials for the channel factory by using the ClientCredentials property.

    Copy Code
    factory.Credentials.UserName.UserName = "SCOTT";
factory.Credentials.UserName.Password = "TIGER";

  3. Open the channel factory.

    Copy Code
    factory.Open();

  4. Get a channel from the factory and open it.

    Copy Code
    IRequestChannel channel = factory.CreateChannel();
channel.Open();

  5. Create a Message instance for the target operation. Be sure that the message action for the target operation is specified. In this example, the message body is passed by creating an XmlReader over a file. The target operation is a Select operation on the SCOTT/EMP table.

    Copy Code
    XmlReader readerIn = XmlReader.Create("SelectAllActivity.xml");
Message messageIn = Message.CreateMessage(MessageVersion.Default,
    "http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/ACCOUNTACTIVITY/Select",
    readerIn);

  6. Invoke the Request method on the channel to send the message to the Oracle Database adapter and receive the reply. If the Oracle database encounters an exception, the adapter throws a TargetSystemException. (Other exceptions are possible for non Oracle exceptions.) You can get a description of the Oracle error from the InnerException.Message property of the TargetSystemException.

    Copy Code
    try
{
    Message messageOut = channel.Request(messageIn);
}
catch (Exception ex)
{
    // handle exception
}

  7. Process the response. In this example, GetReaderAtBodyContents is called on the response message to get the message body.

    Copy Code
    XmlReader readerOut = messageOut.GetReaderAtBodyContents();

  8. When you are done processing the response message, close the reader and the message.

    Copy Code
    readerOut.Close();
messageOut.Close();

  9. When you are done using the channel and the channel factory, close them. Closing the factory will close all channels that were created with it.

    Copy Code
    channel.Close()
factory.Close();

You follow the same steps to send a message using the IOutputChannel shape except:

  • You create a ChannelFactory<IOutputChannel> in step 1.

  • You call the Send method on the channel in step 6. channel.Send(messageIn);.

  • There is no response message returned for an IOutputChannel.

Example

The following example shows how to invoke a Select operation by using an IRequestChannel channel. The Select response message is consumed by using an XmlReader and the number of records returned is written to the console.

Copy Code
using System;
using System.Collections.Generic;
using System.Text;

using System.ServiceModel;
using System.ServiceModel.Channels;
using Microsoft.ServiceModel.Channels;
using Microsoft.Adapters.OracleDB;
using System.Xml;
using System.IO;
using System.Runtime.Serialization;

namespace RequestChanneSample
{
    class Program
    {
        static void Main(string[] args)
        {
            // The Select operation request message
            const string selectRequestString =
                "<Select xmlns=\"http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/ACCOUNTACTIVITY\">" +
                    "<COLUMN_NAMES>*</COLUMN_NAMES>" +
                    "<FILTER>ACCOUNT = 100002</FILTER>" +
                "</Select>";
            try
            {
                // Create binding -- specify binding properties before you open the factory.
                OracleDBBinding odbBinding = new OracleDBBinding();

                // Create address.
                EndpointAddress odbAddress = new EndpointAddress("oracledb://ADAPTER/");

                // Create channel factory from binding and address.
                ChannelFactory<IRequestChannel> factory =
                    new ChannelFactory<IRequestChannel>(odbBinding, odbAddress);

                // Specify credentials
                factory.Credentials.UserName.UserName = "SCOTT";
                factory.Credentials.UserName.Password = "TIGER";

                // Open the factory.
                factory.Open();

                // Get a channel.
                IRequestChannel channel = factory.CreateChannel();

                // Open the channel.
                channel.Open();

                // Create the request message from the string
                StringReader strReader = new StringReader(selectRequestString);
                XmlReader readerIn = XmlReader.Create(strReader);

                Message requestMessage = Message.CreateMessage(MessageVersion.Default,
                    "http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/ACCOUNTACTIVITY/Select",
                    readerIn);

                Send the message and get a respone
                Message responseMessage = channel.Request(requestMessage);

                // Get an XmlReader from the message
                XmlReader readerOut = (XmlReader) responseMessage.GetReaderAtBodyContents();

                // Count the number of records returned and write to the console.
                readerOut.MoveToContent();
                int numberOfRecordsReturned = 0;
                while (readerOut.Read())
                {
                    if (readerOut.NodeType == XmlNodeType.Element && readerOut.Name == "ACCOUNTACTIVITYRECORDSELECT")
                        numberOfRecordsReturned++;
                }

                Console.WriteLine("{0} records returned.", numberOfRecordsReturned);

                // Close the output reader and message
                readerOut.Close();
                responseMessage.Close();

                //Close channel
                channel.Close();

                //Close the factory
                factory.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
    }
}

See Also

Other Resources

Developing Applications by Using the WCF Channel Model


Performing a SQLEXECUTE Operation by Using the WCF Channel Model

This section shows how to perform a SQLEXECUTE operation on an Oracle database over a channel. You must specify both a message and a message action on the SOAP message. For more information about the SQLEXECUTE operation, see Performing a SQLEXECUTE Operation by Using the WCF Service Model.

The SQLEXECUTE Message

The following XML shows a SQLEXECUTE message that returns the next value of an Oracle SEQUENCE.

Copy Code
<?xml version="1.0" encoding="utf-8" ?>
<!-- New Action: http://Microsoft.LobServices.OracleDB/2007/03/SQLEXECUTE -->
<SQLEXECUTE xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SQLEXECUTE">
    <SQLSTATEMENT>SELECT tid_seq.nextval id FROM dual</SQLSTATEMENT>
</SQLEXECUTE>

The SQLEXECUTE can specify a parameter schema element and a parameter block that contains multiple sets of parameter data. The message shown is for a single invocation of the specified SQL statement so the elements that specify the parameter schema and parameter block are omitted from the message body. For information about the message schema for the SQLEXECUTE operation, see Message Schemas for the SQLEXECUTE Operation.

Specifying the SQLEXECUTE Action

You must specify an action for the message. The following code excerpt shows how to specify the action for the SQLEXECUTE message.

Copy Code
            Message messageIn = Message.CreateMessage(MessageVersion.Default, "http://Microsoft.LobServices.OracleDB/2007/03/SQLEXECUTE", readerIn);

Sending the SQLEXECUTE Message

The following code excerpt demonstrates how to invoke a SQLEXECUTE operation on an Oracle database over a channel.

Copy Code
            // Create Endpoint
            EndpointAddress address = new EndpointAddress("oracledb://ADAPTER");

            // Create Binding
            OracleDBBinding binding = new OracleDBBinding();

            // Create Channel Factory
            ChannelFactory<IRequestChannel> factory = new ChannelFactory<IRequestChannel>(binding, address);
            factory.Credentials.UserName.UserName = "SCOTT";
            factory.Credentials.UserName.Password = "TIGER";
            factory.Open();

            // Create Request Channel
            IRequestChannel channel = factory.CreateChannel();
            channel.Open();

            // Send Request
            System.Xml.XmlReader readerIn = System.Xml.XmlReader.Create("SQLExecute.xml");

            Message messageIn = Message.CreateMessage(MessageVersion.Default, "http://Microsoft.LobServices.OracleDB/2007/03/SQLEXECUTE", readerIn);
            Message messageOut = channel.Request(messageIn);

            // Get Response XML
            XmlReader readerOut = messageOut.GetReaderAtBodyContents();

            // Get tid_seq SEQUENCE
            string id = null;
            XmlDocument doc = new XmlDocument();
            doc.Load(readerOut);
            XmlNodeList list = doc.GetElementsByTagName("ColumnValue");
            if (list.Count > 0) id = list[0].InnerXml;
Note
The SQLEXECUTE operation always returns a weakly-typed result set.

See Also

Concepts

Creating a Channel

Other Resources

Developing Applications by Using the WCF Channel Model


Performing an Insert Operation by Using the WCF Channel Model

This section shows how to insert a record into an Oracle database by using a channel. You must specify both a message body and a message action when you send a message.

The Insert Message

The following XML shows a message body for an Insert operation on the HR.EMPLOYEES table. The record set consists of a single employee record. For more information about the schema of an Insert message, see Message Schemas for the Basic Insert, Update, Delete, and Select Operations on Tables and Views. This is the contents of the Employee_Insert.xml file used in the example.

Copy Code
<!-- New namespace: http://Microsoft.LobServices.OracleDB/2007/03/HR/Table/EMPLOYEES -->
<Insert xmlns="http://Microsoft.LobServices.OracleDB/2007/03/HR/Table/EMPLOYEES">
    <RECORDSET xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
        <EMPLOYEESRECORDINSERT>
            <EMPLOYEE_ID>0</EMPLOYEE_ID>
            <FIRST_NAME>Anton</FIRST_NAME>
            <LAST_NAME>Kirilov</LAST_NAME>
            <EMAIL></EMAIL>
            <PHONE_NUMBER>555-0198</PHONE_NUMBER>
            <HIRE_DATE>2007-03-01T00:00:00.0000000</HIRE_DATE>
            <JOB_ID>FI_ACCOUNT</JOB_ID>
            <SALARY>5000</SALARY>
            <COMMISSION_PCT>0.15</COMMISSION_PCT>
            <MANAGER_ID>108</MANAGER_ID>
            <DEPARTMENT_ID>100</DEPARTMENT_ID>
       </EMPLOYEESRECORDINSERT>
    </RECORDSET>
</Insert>

Specifying the Message Action

You must specify a message action when you send a SOAP message to the Oracle Database adapter. You can specify the message action when you create the message as in the following example.

Copy Code
Message messageIn2 = Message.CreateMessage(MessageVersion.Default, "http://Microsoft.LobServices.OracleDB/2007/03/HR/Table/EMPLOYEES/Insert", readerIn2);

The message action in this example, "/HR/Table/EMPLOYEES/Insert", specifies that an Insert operation on the HR.EMPLOYEES table is to be performed

Sending the Insert Message

This example shows how to perform an Insert operation on an Oracle table over a channel. The code uses the SQLEXECUTE operation exposed by the Oracle Database adapter to return the next value of an Oracle SEQUENCE. This value is then written to the EMPLOYEE_ID field in the Insert record. This pattern enables you to insert rows into databases that have an auto-generated primary key value. For more information about invoking the SQLEXECUTE operation over a channel, see Performing a SQLEXECUTE Operation by Using the WCF Channel Model.

Copy Code
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.IO;

using System.ServiceModel;
using System.ServiceModel.Channels;

using Microsoft.ServiceModel.Adapters;
using Microsoft.Adapters.OracleDB;

namespace OracleDMLChannel
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create Endpoint
            EndpointAddress address = new EndpointAddress("oracledb://ADAPTER");

            // Create Binding
            OracleDBBinding binding = new OracleDBBinding();

            // Create Channel Factory
            ChannelFactory<IRequestChannel> factory = new ChannelFactory<IRequestChannel>(binding, address);
            factory.Credentials.UserName.UserName = "HR";
            factory.Credentials.UserName.Password = "TIGER";
            factory.Open();

            // Create Request Channel
            IRequestChannel channel = factory.CreateChannel();
            channel.Open();

            // Send Request
            System.Xml.XmlReader readerIn = System.Xml.XmlReader.Create("SQLExecute.xml");

            Message messageIn = Message.CreateMessage(MessageVersion.Default, "http://Microsoft.LobServices.OracleDB/2007/03/SQLEXECUTE", readerIn);
            Message messageOut = channel.Request(messageIn);

            // Get Response XML
            XmlReader readerOut = messageOut.GetReaderAtBodyContents();

            // Get Employee ID
            string id = null;
            XmlDocument doc = new XmlDocument();
            doc.Load(readerOut);
            XmlNodeList list = doc.GetElementsByTagName("ColumnValue");
            if (list.Count > 0) id = list[0].InnerXml;

            // Compose Insert XML
            XmlDocument insertDoc = new XmlDocument();
            insertDoc.Load("Employee_Insert.xml");

            // Change Employee ID
            XmlNodeList empidList = insertDoc.GetElementsByTagName("EMPLOYEE_ID");
            XmlNode empidNode = empidList[0];
            empidNode.InnerXml = id;

            // Change email
            XmlNodeList emailList = insertDoc.GetElementsByTagName("EMAIL");
            XmlNode emailNode = emailList[0];
            emailNode.InnerXml = "scotty" + id + "@microsoft.com";

            // Change date
            XmlNodeList dateList = insertDoc.GetElementsByTagName("HIRE_DATE");
            XmlNode dateNode = dateList[0];
            dateNode.InnerXml = "2007-03-01T00:00:00.0000000";

            StringReader strReader = new StringReader(insertDoc.InnerXml);
            XmlReader readerIn2 = XmlReader.Create(strReader);

            // Send XML
            Message messageIn2 = Message.CreateMessage(MessageVersion.Default, "http://Microsoft.LobServices.OracleDB/2007/03/HR/Table/EMPLOYEES/Insert ", readerIn2);
            Message messageOut2 = channel.Request(messageIn2);

            // Close the messages
            messageOut.Close();
            messageOut2.Close();

            channel.Close();
        }
    }
}

See Also

Concepts

Creating a Channel
Performing a SQLEXECUTE Operation by Using the WCF Channel Model
Invoking a Function by Using the WCF Channel Model

Other Resources

Developing Applications by Using the WCF Channel Model


Invoking a Function by Using the WCF Channel Model

This section demonstrates how to execute a function in an Oracle database using the channel created in Creating a Channel.

Executing a Function Using the Channel

You can execute a function on an Oracle database by passing an XML message to Microsoft BizTalk Adapter for Oracle Database. The input XML resembles the following:

Copy Code
<CREATE_ACCOUNT xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG" xmlns:ns0="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT">
  <REC xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">
    <ns0:ID>1</ns0:ID>
    <ns0:NAME>Scott</ns0:NAME>
    <ns0:BANKNAME>CitiBank</ns0:BANKNAME>
    <ns0:BRANCH>NY</ns0:BRANCH>
    <ns0:ENABLED>Y</ns0:ENABLED>
  </REC>
</CREATE_ACCOUNT>

The following code excerpt demonstrates how to execute a function in an Oracle database using a channel.

Copy Code
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;

using System.ServiceModel;
using System.ServiceModel.Channels;

using Microsoft.ServiceModel.Adapters;
using Microsoft.Adapters.OracleDB;

namespace OraclePackageChannel
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create Endpoint
            EndpointAddress address = new EndpointAddress("oracledb:// ADAPTER");

            // Create Binding
            OracleDBBinding binding = new OracleDBBinding();

            // Create Channel Factory
            ChannelFactory<IRequestChannel> factory = new ChannelFactory<IRequestChannel>(binding, address);
            factory.Credentials.UserName.UserName = "SCOTT";
            factory.Credentials.UserName.Password = "TIGER";
            factory.Open();

            // Create Request Channel
            IRequestChannel channel = factory.CreateChannel();
            channel.Open();

            // Send Request
            System.Xml.XmlReader readerIn = System.Xml.XmlReader.Create("Create_Account.xml");

            Message messageIn = Message.CreateMessage(MessageVersion.Default, "http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT", readerIn);
            Message messageOut = channel.Request(messageIn);

            // Get Response XML
            XmlReader readerOut = messageOut.GetReaderAtBodyContents();

            // Get Employee ID
            XmlDocument doc = new XmlDocument();
            doc.Load(readerOut);
            doc.Save("d:\\out.xml");

            messageOut.Close();
            channel.Close();
        }
    }
}

See Also

Concepts

Performing an Insert Operation by Using the WCF Channel Model
Performing a SQLEXECUTE Operation by Using the WCF Channel Model

Other Resources

Developing Applications by Using the WCF Channel Model


Receiving Polling-based Data-changed Messages by Using the WCF Channel Model

You can configure the Microsoft BizTalk Adapter for Oracle Database to poll an Oracle database table or view for any data changes. To perform such a polling operation, the adapter periodically executes a SQL query against an Oracle table or view followed by an optional PL/SQL code block. The results of the SQL query are then returned by the Oracle Database adapter to your code as a strongly-typed result set in an inbound POLLINGSTMT operation. For more information about the mechanism used to configure and perform polling on an Oracle database using the Oracle Database adapter, see Receiving Polling-based Data-changed Messages. It is strongly recommended that you read this topic before proceeding.

You configure the Oracle Database adapter to poll and Oracle database table or view by setting binding properties on an instance of OracleDBBinding. In the WCF channel model, you then use this binding to build a channel listener from which you can get an IInputChannel channel to receive the POLLINGSTMT operation from the adapter.

For an overview of how to receive operations using an IInputChannel in WCF, see "Service Channel-Level Programming" at http://go.microsoft.com/fwlink/?LinkId=106053.

The sections in this topic provide information to help you perform polling on Oracle database tables and views using the WCF channel model.

Consuming the POLLINGSTMT request message

The adapter invokes the POLLINGSTMT operation on your code to poll the Oracle database. That is, the adapter sends a POLLINGSTMT request message that you receive over an IInputChannel channel shape. The POLLINGSTMT request message contains the result set of the query specified by the PollingStatement binding property. You can consume the POLLINGSTMT message in one of two ways:

  • To consume the message using node-value streaming you must call the WriteBodyContents method on the response message and pass it an XmlDictionaryWriter that implements node-value streaming.

  • To consume the message using node streaming you can call GetReaderAtBodyContents on the response message to get an XmlReader.

You typically use node-value streaming to consume result sets that contain Oracle LOB data columns.

For more information about the message structure of the POLLINGSTMT operation, see Message Schemas for the Polling Operations.

For more information about how the Oracle Database adapter supports streaming on LOB data, see Streaming and the Oracle Database Adapter.

For more information about implementing node-value streaming in your code to support end-to-end streaming of LOB data, see Streaming Oracle LOB Data Types by Using the WCF Channel Model.

About the Examples Used in this Topic

The example in this topic uses the SCOTT.ACCOUNTACTIVITY table and the SCOTT.ACCOUNT_PKG.PROCESS_ACTIVITY function. A script to generate these artifacts is supplied with the samples. The example performs the following operations:

  • As part of the polling statement, selects all the records from the ACCOUNTACTIVITY table and displays on the console.

  • As part of the post poll statement, the example invokes the PROCESS_ACTIVITY function that moves all the records from ACCOUNTACTIVITY table to ACTIVITYHISTORY table.

  • Subsequent polls on the ACCOUNTACTIVITY table do not return any records. However, if you want the example to return more records as part of the polling operation, you must insert some records in the ACCOUNTACTIVITY table. You can do so by running the more_activity_data.sql script provided with the samples.

For more information about the samples, see Samples.

How Do I Poll an Oracle Database Using an IInputChannel?

To poll an Oracle database table or view to receive data-change messages using the WCF channel model, perform the following steps.

To receive data-changed messages using an IInputChannel

  1. Create a Visual C# project in Visual Studio. For this topic, create a console application.

  2. In the Solution Explorer, add reference to Microsoft.Adapters.OracleDB, Microsoft.ServiceModel.Channels, System.ServiceModel, and System.Runtime.Serialization.

  3. Open the Program.cs file and add the following namespaces:

    • Microsoft.Adapters.OracleDB

    • Microsoft.ServiceModel.Channels

    • System.ServiceModel

    • System.ServiceModel.Description

    • System.ServiceModel.Channels

    • System.Xml

    • System.Runtime.Serialization

    • System.IO

    • Microsoft.ServiceModel.Channels.Common

  4. Create an instance of OracleDBBinding and set the binding properties required to configure polling. At a minimum you must set the InboundOperationType, PollingStatement, and PollingInterval binding properties. For this example, you also set the PostPollStatement binding property. For more information about binding properties used to configure polling, see Receiving Polling-based Data-changed Messages.

    Copy Code
    OracleDBBinding binding = new OracleDBBinding();
binding.InboundOperationType = InboundOperation.Polling;
binding.PollingInterval = 30;
binding.PollingStatement = "SELECT * FROM ACCOUNTACTIVITY FOR UPDATE";
binding.PostPollStatement = "BEGIN ACCOUNT_PKG.PROCESS_ACTIVITY(); END;"

  5. Create a binding parameter collection and set the credentials.

    Copy Code
    ClientCredentials credentials = new ClientCredentials();
credentials.UserName.UserName = "SCOTT";
credentials.UserName.Password = "TIGER";

BindingParameterCollection bindingParams = new BindingParameterCollection();
bindingParams.Add(credentials);

  6. Create a channel listener and open it. You create the listener by invoking BuildChannelListener<IInputChannel> method on the OracleDBBinding. You can modify the target namespace for the POLLINGSTMT operation by setting the PollingId property in the connection URI. For more information about the adapter connection URI, see The Oracle Database Connection URI.

    Copy Code
    IChannelListener<IInputChannel> listener = binding.BuildChannelListener<IInputChannel>(connectionUri, bindingParams);
listener.Open();

  7. Get an IInputChannel channel by invoking the AcceptChannel method on the listener and open it.

    Copy Code
    IInputChannel channel = listener.AcceptChannel();
channel.Open();

  8. Invoke Receive on the channel to get the next POLLINGSTMT message from the adapter.

    Copy Code
    Message message = channel.Receive();

  9. Consume the result set returned by the POLLINGSTMT operation. You can consume the message using either an XmlReader or an XmlDictionaryWriter.

    Copy Code
    XmlReader reader = message.GetReaderAtBodyContents();

  10. Close the channel when you have completed processing the request.

    Copy Code
    channel.Close()
    Important
    You must close the channel after you have finished processing the POLLINGSTMT operation. Failure to close the channel may affect the behavior of your code.

  11. Close the listener when you are finished receiving data-changed messages.

    Copy Code
    listener.Close()
    Important
    Closing the listener does not close channels created using the listener. You must explicitly close each channel created using the listener.

Example

The following example shows how to configure the Oracle Database adapter to poll Oracle database tables and views and receive the POLLLINGSTMT operation using the WCF channel model. The result set returned in the POLLINGSTMT operation is written to the console by using an XmlReader.

Copy Code
using System;
using System.Collections.Generic;
using System.Text;

// Add WCF, WCF LOB Adapter SDK, and Oracle Database adapter namepaces
using System.ServiceModel;
using System.ServiceModel.Description;
using Microsoft.ServiceModel.Channels;
using Microsoft.Adapters.OracleDB;

// Add this namespace for channel model
using System.ServiceModel.Channels;

using System.Xml;
using System.Runtime.Serialization;
using System.IO;

// Include this namespace for the WCF LOB Adapter SDK and Oracle exceptions
using Microsoft.ServiceModel.Channels.Common;

namespace OraclePollingCM
{
    class Program
    {
        static void Main(string[] args)
        {
            Uri connectionUri = new Uri("oracleDB://ADAPTER/");

            IChannelListener<IInputChannel> listener = null;
            IInputChannel channel = null;

            // set timeout to receive POLLINGSTMT message
            TimeSpan messageTimeout = new TimeSpan(0, 0, 30);

            Console.WriteLine("Sample Started");

            try
            {
                // Create a binding: specify the InboundOperationType, PollingInterval (in seconds), the
                // PollingStatement,and the PostPollStatement.
                OracleDBBinding binding = new OracleDBBinding();
                binding.InboundOperationType = InboundOperation.Polling;
                binding.PollingInterval = 30;
                binding.PollingStatement = "SELECT * FROM ACCOUNTACTIVITY FOR UPDATE";
                binding.PostPollStatement = "BEGIN ACCOUNT_PKG.PROCESS_ACTIVITY(); END;";

                // Create a binding parameter collection and set the credentials
                ClientCredentials credentials = new ClientCredentials();
                credentials.UserName.UserName = "SCOTT";
                credentials.UserName.Password = "TIGER";

                BindingParameterCollection bindingParams = new BindingParameterCollection();
                bindingParams.Add(credentials);

                Console.WriteLine("Opening listener");
                // get a listener  from the binding
                listener = binding.BuildChannelListener<IInputChannel>(connectionUri, bindingParams);
                listener.Open();

                Console.WriteLine("Opening channel");
                // get a channel from the listener
                channel = listener.AcceptChannel();
                channel.Open();

                Console.WriteLine("Channel opened -- waiting for polled data");
                Console.WriteLine("Receive request timeout is {0}", messageTimeout);

                // Poll five times with the specified message timeout
                // If a timeout occurs polling will be aborted
                for (int i = 0; i < 5; i++)
                {
                    Console.WriteLine("Polling: " + i);
                    Message message = null;
                    XmlReader reader = null;
                    try
                    {
                        //Message is received so process the results
                        message = channel.Receive(messageTimeout);
                    }
                    catch (System.TimeoutException toEx)
                    {
                        Console.WriteLine("\nNo data for request number {0}: {1}", i + 1, toEx.Message);
                        continue;
                    }

                    // Get the query results using an XML reader
                    try
                    {
                        reader = message.GetReaderAtBodyContents();
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Exception :" + ex);
                        throw;
                    }

                    // Write the TID, ACCOUNT, AMOUNT, and TRANSDATE for each record to the Console
                    Console.WriteLine("\nPolling data received for request number {0}", i+1);
                    Console.WriteLine("Tx ID\tACCOUNT\tAMOUNT\tTx DATE");

                    while (reader.Read())
                    {
                        if (reader.IsStartElement())
                        {
                            switch (reader.Name)
                            {
                                case "POLLINGSTMTRECORD":
                                    Console.Write("\n");
                                    break;

                                case "TID":
                                    reader.Read();
                                    Console.Write(reader.ReadString() + "\t");
                                    break;

                                case "ACCOUNT":
                                    reader.Read();
                                    Console.Write(reader.ReadString() + "\t");
                                    break;
                                case "AMOUNT":
                                    reader.Read();
                                    Console.Write(reader.ReadString() + "\t");
                                    break;

                                case "TRANSDATE":
                                    reader.Read();
                                    Console.Write(reader.ReadString() + "\t");
                                    break;

                                default:
                                    break;
                            }
                        }
                    }

                    // return the cursor
                    Console.WriteLine();

                    // close the reader
                    reader.Close();

                    //            To save the polling data to a file you can REPLACE the code above with the following
                    //
                    //            XmlDocument doc = new XmlDocument();
                    //            doc.Load(reader);
                    //            using (XmlWriter writer = XmlWriter.Create("PollingOutput.xml"))
                    //            {
                    //                doc.WriteTo(writer);
                    //            }
                    message.Close();
                }

                Console.WriteLine("\nPolling done -- hit <RETURN> to finish");
                Console.ReadLine();
            }
            catch (TargetSystemException tex)
            {
                Console.WriteLine("Exception occurred on the Oracle Database");
                Console.WriteLine(tex.InnerException.Message);
            }
            catch (ConnectionException cex)
            {
                Console.WriteLine("Exception occurred connecting to the Oracle Database");
                Console.WriteLine(cex.InnerException.Message);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception is: " + ex.Message);
                if (ex.InnerException != null)
                {
                    Console.WriteLine("Inner Exception is: " + ex.InnerException.Message);
                }
            }
            finally
            {
                // IMPORTANT: close the channel and listener to stop polling
                if (channel != null)
                {
                    if (channel.State == CommunicationState.Opened)
                        channel.Close();
                    else
                        channel.Abort();
                }

                if (listener != null)
                {
                    if (listener.State == CommunicationState.Opened)
                        listener.Close();
                    else
                        listener.Abort();
                }
            }
        }
    }
}

See Also

Other Resources

Developing Applications by Using the WCF Channel Model


Streaming Oracle LOB Data Types by Using the WCF Channel Model

The Microsoft BizTalk Adapter for Oracle Database supports end-to-end streaming of LOB data for certain operations. The sections in this topic describe how to implement streaming for LOB data when you use the WCF channel model.

For background information about how the adapter supports streaming of LOB data types, see Streaming and the Oracle Database Adapter. You should read this topic before proceeding.

A sample that demonstrates LOB data streaming is available in the SDK samples included with the Oracle Database adapter. For more information, see Samples.

Streaming Outbound Messages to the Adapter

The adapter supports end-to-end LOB data streaming for the request message for the UpdateLOB operation.

To support end-to-end streaming on UpdateLOB operations in the WCF channel model, you must:

  1. Set the UseAmbientTransaction binding property to true.

  2. Implement a System.ServiceModel.Channels.BodyWriter that is capable of streaming the LOB data (performing node-value streaming on the LOB data).

  3. Perform the UpdateLOB operation within a transaction scope.

  4. Create the System.ServiceModel.Message used to invoke the operation by supplying the message body with this BodyWriter using an appropriate overload of the Message.Create method.

Setting the UseAmbientTransaction Binding Property

The following example shows how to create a binding for the Oracle Database adapter and set the UseAmbientTransaction binding property.

Copy Code
// Create binding
OracleDBBinding odbBinding = new OracleDBBinding();

//set the binding property
binding.UseAmbientTransaction = true;

Implementing a BodyWriter

The following example shows an implementation of a BodyWriter that performs node-value streaming.

Copy Code
/// <summary>
/// This class overrides the OnWriteBodyContents function to do node-value streaming
/// </summary>
class StreamingBodyWriter : BodyWriter, IDisposable
{
    XmlReader m_reader = null;

    int m_chunkSize;
    /// <summary>
    /// Initializes the body writer
    /// </summary>
    /// <param name="reader">Reader for input</param>
    /// <param name="chunkSize">The chunksize in which the data is passed to adapter</param>
    public StreamingBodyWriter(XmlReader reader, int chunkSize)
        : base(false)
    {
        m_reader = reader;
        if (chunkSize <= 0)
            throw new ApplicationException("ChunkSize should be a positive value");
        m_chunkSize = chunkSize;
    }

    protected override void OnWriteBodyContents(XmlDictionaryWriter writer)
    {
        if (m_reader == null)
            throw new ApplicationException("Reader cannot be null");

        while (m_reader.Read())
        {
            switch (m_reader.NodeType)
            {
                case XmlNodeType.Element:
                    writer.WriteStartElement(m_reader.LocalName, m_reader.NamespaceURI);
                    break;
                case XmlNodeType.Text:
                    #region Streaming Code
                    char[] tempBuffer = new char[m_chunkSize];
                    int length = 0;
                    while ((length = m_reader.ReadValueChunk(tempBuffer, 0, m_chunkSize)) > 0)
                    {
                        writer.WriteString(new String(tempBuffer, 0, length));
                    }
                    #endregion
                    break;
                case XmlNodeType.EndElement:
                    writer.WriteEndElement();
                    break;
            }
        }

    }

    #region IDisposable Members

    public void Dispose()
    {
        if (m_reader != null)
        {
            m_reader.Close();
            m_reader = null;
        }
    }

    #endregion
}

Perform the Operations Within a Transaction Scope

The following example shows how to perform operations within a transaction scope.

Copy Code
// Create a transaction scope
using(TransactionScope tx = new TransactionScope())
{
  // perform operations within the transaction
  // ...
  // ...

  //Complete the transaction
  tx.Complete()
}

Creating a Message by using a BodyWriter

The following example shows how to create an UpdateLOB request message using the BodyWriter in the preceding example. The message data is read from a file.

Copy Code
// Create a transaction scope
using(TransactionScope tx = new TransactionScope())
{
    XmlReader readerIn = XmlReader.Create ("updatelob.xml");
    // StreamingBodyWrtier class is responsible for streaming
    StreamingBodyWriter stBW = new StreamingBodyWriter(readerIn, chunkSize);

    Message InputMsg = Message.CreateMessage(MessageVersion.Default,
    "http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/CUSTOMER/UpdateLOB",
    stBW);

    //Send the request message and get the output message
    OutputMsg = channel.Request(InputMsg);

    tx.Complete();
}

Streaming Inbound Messages from the Adapter

The adapter supports end-to-end LOB data streaming for the following inbound messages:

  • Response message for functions with OUT or IN OUT parameters that contain LOB data. Note that RECORD TYPE parameters can contain LOB data columns.

  • Response message for functions with OUT REF CURSOR parameters (or return values) that contain LOB data. This includes the output side of IN OUT REF CURSOR parameters.

  • Response message for procedures with IN or IN OUT parameters that contain LOB data. Note that RECORD TYPE parameters can contain LOB data columns.

  • Response message for procedures with OUT REF CURSOR parameters that contain LOB data. This includes the output side of IN OUT REF CURSOR parameters

  • Response message for SQLEXECUTE operations that return result sets that contain LOB data.

  • Response message for Table or view Select operations that return LOB data in the result set.

  • Request message for the (inbound) POLLINGSTMT operation

To support end-to-end streaming on an inbound message in the WCF channel model, you must:

  1. Implement a System.Xml.XmlDictionaryWriter that is capable of streaming the LOB data (performing node-value streaming on the LOB data).

  2. Consume the Message by invoking WriteBodyContents method with this XmlDictionaryWriter.

Implementing an XmlDictionaryWriter

The following example shows an implementation of an XmlDictionaryWriter that performs node-value streaming.

Copy Code
using System;
using System.Xml;
using System.Text;

class FileXmlWriter : XmlDictionaryWriter
{
    XmlTextWriter xts;

    public FileXmlWriter(string file)
    {
        xts = new XmlTextWriter(file, Encoding.UTF8);
    }

    public override void WriteBase64(byte[] buffer, int index, int count)
    {
        xts.WriteBase64(buffer, index, count);
    }

    public override void WriteCData(string text)
    {
        xts.WriteCData(text);
    }

    public override void WriteCharEntity(char ch)
    {
        xts.WriteCharEntity(ch);
    }

    public override void WriteChars(char[] buffer, int index, int count)
    {
        xts.WriteChars(buffer, index, count);
    }

    public override void WriteComment(string text)
    {
        xts.WriteComment(text);
    }

    public override void WriteDocType(string name, string pubid, string sysid, string subset)
    {
        xts.WriteDocType(name, pubid, sysid, subset);
    }

    public override void WriteEndAttribute()
    {
        xts.WriteEndAttribute();
    }

    public override void WriteEndDocument()
    {
        xts.WriteEndDocument();
    }

    public override void WriteEndElement()
    {
        xts.WriteEndElement();
    }

    public override void WriteEntityRef(string name)
    {
        xts.WriteEntityRef(name);
    }

    public override void WriteFullEndElement()
    {
        xts.WriteFullEndElement();
    }

    public override void WriteProcessingInstruction(string name, string text)
    {
        xts.WriteProcessingInstruction(name, text);
    }

    public override void WriteRaw(string data)
    {
        xts.WriteRaw(data);
    }

    public override void WriteRaw(char[] buffer, int index, int count)
    {
        xts.WriteRaw(buffer, index, count);
    }

    public override void WriteStartAttribute(string prefix, string localName, string ns)
    {
        xts.WriteStartAttribute(prefix, localName, ns);
    }

    public override void WriteStartDocument(bool standalone)
    {
        xts.WriteStartDocument(standalone);
    }

    public override void WriteStartDocument()
    {
        xts.WriteStartDocument();
    }

    public override void WriteStartElement(string prefix, string localName, string ns)
    {
        xts.WriteStartElement(localName);
    }

    public override void WriteString(string text)
    {
        xts.WriteString(text);
    }

    public override void WriteSurrogateCharEntity(char lowChar, char highChar)
    {
        xts.WriteSurrogateCharEntity(lowChar, highChar);
    }

    public override void WriteWhitespace(string ws)
    {
        xts.WriteWhitespace(ws);
    }

    public override void Close()
    {
        xts.Close();
    }

    public override void Flush()
    {
        xts.Flush();
    }

    public override string LookupPrefix(string ns)
    {
        return xts.LookupPrefix(ns);
    }

    public override WriteState WriteState
    {
        get { return xts.WriteState; }
    }

}

Consuming a Message by using an XmlDictionaryWriter

The following example shows how to consume a table Select response message using the FileXmlWriter implemented in the preceding example. (The FileWriter class was created by sub-classing XmlDictionaryWriter.) The example uses an IRequestChannel channel to invoke the Select operation. The details of the channel creation have been omitted. The Select request message is read from a file and the Select response message is written to a file.

Copy Code
// Read Select message body from a file
XmlReader readerIn = XmlReader.Create("select.xml");
Message InputMsg = Message.CreateMessage(MessageVersion.Default,
    "http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/CUSTOMER/Select", readerIn);

Message OutputMsg = channel.Request(InputMsg);

// Streaming response message to select_output.xml using the custom XmlDictionaryWriter;
FileXmlWriter fileXmlWriter = new FileXmlWriter("select_output.xml");
OutputMsg.WriteBodyContents(fileXmlWriter);
fileXmlWriter.Flush();
fileXmlWriter.Close();

// Streaming complete close output message;
OutputMsg.Close();

The following XML shows the request message (contents of the select.xml file) for the Select operation. The CUSTOMER table contains a BLOB column named PHOTO.

Copy Code
<Select xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/CUSTOMER">
  <COLUMN_NAMES>*</COLUMN_NAMES>
  <FILTER>NAME='Kim Ralls'</FILTER>
</Select>

See Also

Other Resources

Developing Applications by Using the WCF Channel Model


Retrieving Metadata Programmatically from the Oracle Database

The Microsoft BizTalk Adapter for Oracle Database is a custom WCF binding that exposes an Oracle database as a WCF service. The adapter exposes the Oracle database as a self-describing service; that is, a service that is capable of publishing metadata about the operations that it supports. Metadata describes the logical interface to a WCF service; that is, the service contract, messages, and message schemas that must be used to interact with the service.

This metadata is used by tools such as:

  • The Add Adapter Service Reference Visual Studio Plug-in to generate managed code representations of the service contract, and

  • The Consume Adapter Service BizTalk Project Add-in to generate message schemas.

However, you can also retrieve metadata programmatically from the adapter. For example, you might want to do this to create a custom metadata retrieval tool to use in an existing application.

The adapter publishes metadata through two endpoints:

  • A WS-Metadata Exchange (MEX) endpoint. WCF automatically provides a MEX endpoint for all WCF bindings. You can use metadata exchange to retrieve metadata for operations supported by the adapter on the underlying Oracle database.

  • An IMetadataRetrievalContract endpoint. The IMetadataRetrievalContract interface is implemented by the Microsoft Windows Communication Foundation (WCF) Line of Business (LOB) Adapter SDK. It categorizes Oracle database artifacts at multiple logical levels and presents them as a tree of metadata nodes. You can use methods exposed by the IMetadataRetrievalContract interface to browse and search the nodes of this tree and to return metadata for operations in which you are interested.

The topics in this section describe how to use MEX and IMetadataRetrievalContract endpoints to retrieve metadata programmatically from the adapter.

In This Section

  • Retrieving Metadata Using WS-Metadata Exchange

  • Retrieving Metadata Using IMetadataRetrievalContract

See Also

Concepts

Development


Retrieving Metadata Using WS-Metadata Exchange

As a Windows Communication Foundation (WCF) custom binding, the Microsoft BizTalk Adapter for Oracle Database exposes a WS-Metadata Exchange (MEX) endpoint that you can use to retrieve metadata for specific operations from the Microsoft BizTalk Adapter for Oracle Database.

WCF provides a rich infrastructure for exporting, publishing, retrieving and importing metadata about a service. WCF services, like the adapter, use metadata to describe how to interact with the service endpoints so that tools, like svcutil.exe, can automatically generate client code for consuming the service. WCF represents the metadata for a service as an instance of the MetadataSet type, which is strongly tied to the metadata serialization format defined in WS-Metadata Exchange (MEX). You can create a MetadataSet for targeted operations on the adapter by using a MetadataExchangeClient.

WCF support for metadata exchange is an expansive topic and beyond the scope of this documentation. For more information about support for metadata in WCF, see "Metadata" in the WCF documentation at http://go.microsoft.com/fwlink/?LinkId=105634. For a particularly good description of the architecture, classes, and namespaces that WCF exposes for metadata, see "Metadata Architecture Overview" at http://go.microsoft.com/fwlink/?LinkId=105635. You should familiarize yourself with the content related to retrieving metadata from a WCF service in these WCF topics before proceeding.

The following topics contain information about how to use a MetadataExchangeClient to retrieve metadata from the Oracle Database adapter.

Using a MetadataExchangeClient to Retrieve Metadata

To use a MetadataExchangeClient you must specify a connection URI and a binding (OracleDBBinding). The connection URI identifies the operations for which you want to retrieve metadata.

The following sections contain information about how to specify the connection URI, important binding properties, and how to use a MetadataExchangeClient to retrieve metadata from the adapter.

The Connection URI

To use the MetadataExchangeClient you must supply an Oracle connection URI that specifies a MEX endpoint and the operation or operations for which you want to retrieve metadata. You specify a MEX endpoint and target operations in the connection URI in the following manner:

  • You must include the "wsdl" parameter in the query string. If it is the first parameter in the query string, it is specified just after the question mark (?). If it is not the first parameter, it should be preceded with an ampersand (&).

  • You must follow the "wsdl" parameter by one or more "op" parameters. Each "op" parameter is preceded by an ampersand (&) and specifies the message action (node ID) of a target operation.

For example, the following connection URI targets the Insert and Delete operations for the SCOTT.EMP table. The "wsdl" and "op" parameters are highlighted.

Copy Code
"oracledb://ADAPTER?wsdl&op=http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert&op=http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Delete"
Note
If you want to modify the namespace generated for the POLLINGSTMT operation you should specify a PollingId parameter in the query string.

How you pass this connection URI to the MetadataExchangeClient depends on which of the overloaded methods you use to create the client and retrieve metadata from the adapter.

For more information about the Oracle connection URI, see The Oracle Database Connection URI.

Binding Properties

When you create the MetadataExchangeClient, you must specify an OracleDBBinding.

There are several binding properties that affect how the adapter generates metadata. These properties are:

  • EnableSafeTyping

  • UseSchemaInNamespace

  • PollingStatement

Important
If you want to retrieve metadata for the POLLINGSTMT operation you must set the PollingStatement binding property.

You should ensure that these binding properties are set to the values required for your application before you invoke the GetMetadata method on the MetadataExchangeClient. For more information about the Oracle Database adapter binding properties, see Working with Working with BizTalk Adapter for Oracle Database Binding Properties.

Example

The following example uses a MetadataExchangeClient to create a service description (WSDL document) for the Insert, Update, Delete, and Select operations on the SCOTT.EMP table. The WSDL is saved to a file, EmpOperations.wsdl.

Copy Code
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections.ObjectModel;

// Needed for WCF and Oracle Adapter
using System.ServiceModel;
using Microsoft.ServiceModel.Channels;
using Microsoft.Adapters.OracleDB;

// Needced for MetadataExchangeClient class
using System.ServiceModel.Description;
// Needed for ServiceDescription class
using System.Web.Services;

namespace OracleMetadataExchange
{
    class Program
    {
        static void Main(string[] args)
        {
            //create a binding
            OracleDBBinding binding = new OracleDBBinding();

            //create a metadata exchange client that will retrieve metadata according to the WS-MEX standard
            MetadataExchangeClient client = new MetadataExchangeClient(binding);
            client.SoapCredentials.UserName.UserName = "SCOTT";
            client.SoapCredentials.UserName.Password = "TIGER";

            //set up an endpoint address and specifies the operations for which we want metadata
            string connectionUri = "oracledb://ADAPTER?wsdl"
                + "&op="
                + "http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert"
                + "&op="
                + "http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Update"
                + "&op="
                + "http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Delete"
                + "&op="
                + "http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Select";

            EndpointAddress address = new EndpointAddress(connectionUri);

            //get the metadata
            MetadataSet ms = client.GetMetadata(address);

            // Check for the metadata set size
            Collection<MetadataSection> documentCollection = ms.MetadataSections;
            if (documentCollection != null && documentCollection.Count > 0)
            {
                //get the wsdl from the metadata set
                System.Web.Services.Description.ServiceDescription wsdl = (System.Web.Services.Description.ServiceDescription)documentCollection[0].Metadata;

                //save the wsdl to a file
                wsdl.Write("EmpOperations.wsdl");

            }

        }
    }
}

See Also

Other Resources

Retrieving Metadata Programmatically from the Oracle Database


Retrieving Metadata Using IMetadataRetrievalContract

The Microsoft BizTalk Adapter for Oracle Database exposes an IMetadataRetrievalContract endpoint that you can use to browse and search for Oracle database artifacts and to retrieve metadata for operations in the form of a Web Services Description Language (WSDL) document.

The IMetadataRetrievalContract interface is implemented by the Microsoft Windows Communication Foundation (WCF) Line of Business (LOB) Adapter SDK and provides metadata browse, search, and retrieval capabilities. In addition to the IMetadataRetrievalContract interface, the WCF LOB Adapter SDK exposes the MetadataRetrievalClient class, which implements the interface. You can use either an IMetadataRetrievalContract channel or a MetadataRetrievalClient to work with metadata; the methods exposed to browse, search, and retrieve metadata are the same in each case.

The following sections provide information about how to use the IMetadataRetrievalContract interface.

The IMetadataRetrievalContract Interface

The following table provides information about important classes that are used when you work with the IMetadataRetrievalContract interface.

Class or Interface | Description
IMetadataRetrievalContract interface (Microsoft.ServiceModel.Channels) | Defines the Browse, Search, and GetMetadata methods. You invoke these methods either by using an IMetadataRetrievalContract channel or a MetadataRetrievalClient to work with adapter metadata.
MetadataRetrievalClient class (Microsoft.ServiceModel.Channels) | Implements the IMetadataRetrievalContract interface. You can create an instance of this class and configure it for your Oracle database by providing an OracleDBBinding and an EndpointAddress. Then you can invoke its methods to work with metadata.
MetadataRetrievalNode class (Microsoft.ServiceModel.Channels) | Represents a metadata node on the adapter. The Browse and Search methods return nodes of this type, and the GetMetadata method takes nodes of this type as a parameter.
ServiceDescription class (System.Web.Services.Description) | Provides a means of creating and formatting a valid WSDL document file. The GetMetadata method returns a ServiceDescription object.

For more information about the IMetadataRetrievalContract interface, the MetadataRetrievalClient class, and the MetadataRetrievalNode class; see the Microsoft.ServiceModel.Channels managed reference at http://go.microsoft.com/fwlink/?LinkId=105566.

Metadata Node IDs

The adapter organizes its metadata as a hierarchical tree of nodes. Within this tree structure there are two types of metadata nodes:

  • Operation nodes represent operations that the adapter surfaces on Oracle database artifacts. Operation nodes are the leaves of the tree.

  • Category nodes represent Oracle database artifacts and groupings of Oracle database artifacts that do not directly correspond to an operation on the adapter. Category nodes are the branches of the tree; they contain other category nodes and/or operation nodes. For example, Oracle tables and packages are represented as category nodes.

Each metadata node surfaced by the adapter is identified by a unique node ID. For more information about the metadata node IDs surfaced by the adapter, see Metadata Node IDs. You use these node IDs to specify target Oracle database artifacts when you use the IMetadataRetrievalContract interface to browse, search, and retrieve metadata.

Binding Properties

Whether you use an IMetadataRetrievalContract channel or an IMetadataRetrievalClient to work with metadata, you must specify an OracleDBBinding when you create the instance.

There are several binding properties that affect how the adapter generates metadata. These properties are:

  • EnableSafeTyping

  • UseSchemaInNamespace

  • PollingStatement

Important
If you want to retrieve metadata for the POLLINGSTMT operation you must set the PollingStatement binding property.

You should ensure that these binding properties are set to the values required for your application before you open the metadata retrieval object. For more information about the Oracle Database adapter binding properties, see Working with Working with BizTalk Adapter for Oracle Database Binding Properties.

Browsing Metadata Nodes

You use the Browse method to return all the metadata nodes that are contained in a parent node. The following example browses for the first three schemas on the Oracle database. In this example, client is an instance of MetadataRetrievalClient.

Copy Code
// The first parameter is the node ID.
// The second parameter is the start index.
// The third parameter is the maximum number of nodes to return.
                MetadataRetrievalNode[] nodes = client.Browse(MetadataRetrievalNode.Root.NodeId, 0, 3);
Important
You can only browse category nodes; you cannot browse operation nodes.

Searching for Metadata Nodes

You use the Search method to perform a search for nodes contained by a parent node. The adapter supports wildcard characters in search expressions; for example you can specify the percent (%) wildcard character to match zero or more characters. The following example shows a search for all the tables in the SCOTT schema that contain the string "EMP". In this example, client is an instance of MetadataRetrievalClient.

Copy Code
// Search for all nodes that contain "EMP" under the SCOTT.Table node.
// The parameters are the parent node ID, the search expression, and
// the maximum number of nodes to return.
IMetadataRetrievalNode[] nodes = client.Search("http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table", "%EMP%", 3);
Important
Searching is only supported on a limited set of nodes. For more information about the nodes on which search is supported and about the wildcard characters supported in search expressions, see Metadata Node IDs.

Retrieving Metadata (WSDL) for Operations

You use the GetMetadata method to retrieve a service description (WSDL document) for a group of operation nodes. The following example retrieves a service description that contains all of the operations that the adapter surfaces for the SCOTT.EMP table by specifying its node ID. In this example, client is an instance of MetadataRetrievalClient.

Copy Code
// Get a service description that contains all of the operations
// surfaced for the SCOTT.EMP table. The IsOperation
// property is set false because this is a category node.
nodes = new MetadataRetrievalNode[1];
nodes[0] = new MetadataRetrievalNode();
nodes[0].NodeId = "http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP";
nodes[0].IsOperation = false;
System.Web.Services.Description.ServiceDescription description = client.GetMetadata(nodes);
Important
The IsOperation property should be false for category nodes and true for operation nodes.

Using a MetadataRetrievalClient

Creating and using a MetadataRetrievalClient is much the same as any other WCF client. You create the client by specifying an endpoint and an instance of OracleDBBinding. You can do this either declaratively in configuration or imperatively in your code. You then invoke the methods of the MetadataRetrievalClient to browse, search, and retrieve metadata from the adapter.

The following example shows how to use a MetadataRetrievalClient to browse, search, and retrieve metadata from the Oracle Database adapter. The example demonstrates:

  • Browsing the root node of the metadata tree for Oracle Database schemas.

  • Searching for the tables in the SCOTT schema with names that contain the string "EMP".

  • Retrieving metadata for all of the operations supported for the SCOTT.EMP table by passing a category node to the GetMetadata method.

  • Retrieving metadata for the POLLINGSTMT operation by passing the POLLINGSTMT operation node to the GetMetadata method..

Copy Code
using System;
using System.Collections.Generic;
using System.Text;

using System.ServiceModel;
using Microsoft.Adapters.OracleDB;
using Microsoft.ServiceModel.Channels;

using System.Web.Services.Description;

namespace OracleMetadataRetrieval
{
    class NodeWriter
    {
        // This method writes the value of a collection of metadata retrieval nodes
        // to the console
        public void Write(string title, MetadataRetrievalNode[] nodes)
        {
            Console.WriteLine(title);
            Console.WriteLine();

            //write all the nodes returned to the console.
            foreach (MetadataRetrievalNode node in nodes)
            {
                Console.WriteLine("NodeId = " + node.NodeId);
                Console.WriteLine("\tDirection   = " + node.Direction.ToString());
                Console.WriteLine("\tIsOperation = " + node.IsOperation.ToString());
                Console.WriteLine("\tDisplayName = " + node.DisplayName);
                Console.WriteLine("\tDescription = " + node.Description);
            }
            Console.WriteLine();
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            MetadataRetrievalClient client = null;
            NodeWriter nodeWriter = new NodeWriter();

            try
            {
                // create a binding and
                // set the PollingStatement binding property if you want to
                // return metadata for the POLLINGSTMT operation
                OracleDBBinding binding = new OracleDBBinding();
                binding.PollingStatement = "SELECT * FROM EMP";

                // Set PollingId parameter if you want to alter the namespace of the POLLINGSTMT operation
                EndpointAddress address = new EndpointAddress("oracledb://ADAPTER?PollingId=1");

                client = new MetadataRetrievalClient(binding, address);
                client.ClientCredentials.UserName.UserName = "SCOTT";
                client.ClientCredentials.UserName.Password = "TIGER";
                client.Open();

                // Browse for the first 3 (schema) nodes directly under the root
                // The parameters are the parent Node ID, the start index, and the maximum number
                // of nodes to return
                MetadataRetrievalNode[] nodes = client.Browse(MetadataRetrievalNode.Root.NodeId, 0, 3);
                nodeWriter.Write("Browse results for the root node:", nodes);

                // Search for first 3 tables that contain "EMP" in the SCOTT schema
                // The parameters are the parent node ID, the search expression, and the maximum number
                // of nodes to return
                nodes = client.Search("http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table", "%EMP%", 3);
                nodeWriter.Write(String.Format("Search results for \"%EMP%\" under {0} node:", "http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table"), nodes);

                // Get a WSDL document that specifies a contract that contains the operations
                // surfaced for the SCOTT.EMP table. The IsOperation property is set false
                // because this is a category node.
                nodes = new MetadataRetrievalNode[1];
                nodes[0] = new MetadataRetrievalNode();
                nodes[0].NodeId = "http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP";
                nodes[0].IsOperation = false;
                System.Web.Services.Description.ServiceDescription description = client.GetMetadata(nodes);
                description.Write("EmpTableContract.wsdl");

                // Get a WSDL document that specifies a contract that contains the
                // the POLLINGSTMT operation. The IsOperation property is set true
                // because this is an operation node.
                // Note that the operation NodeId is equivalent to the message action.
                nodes = new MetadataRetrievalNode[1];
                nodes[0] = new MetadataRetrievalNode();
                nodes[0].NodeId = "http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMT";
                nodes[0].IsOperation = true;
                description = client.GetMetadata(nodes);
                description.Write("PollingContract.wsdl");

            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception is: " + ex.Message);
            }
            finally
            {
                if (client != null)
                {
                    if (client.State == CommunicationState.Opened)
                        client.Close();
                    else
                        client.Abort();
                }
            }
        }
    }
}

The following shows the output of this program on the console. You can see the structure of the metadata retrieval nodes returned by each method. The program also writes two WSDL documents to files.

Copy Code
Browse results for the root node:

NodeId = http://Microsoft.LobServices.OracleDB/2007/03/ADAPTERTEST
        Direction   = Outbound
        IsOperation = False
        DisplayName = ADAPTERTEST
        Description = Owned By ADAPTERTEST
NodeId = http://Microsoft.LobServices.OracleDB/2007/03/ADAPTEST
        Direction   = Outbound
        IsOperation = False
        DisplayName = ADAPTEST
        Description = Owned By ADAPTEST
NodeId = http://Microsoft.LobServices.OracleDB/2007/03/ADMIN123
        Direction   = Outbound
        IsOperation = False
        DisplayName = ADMIN123
        Description = Owned By ADMIN123

Search results for "%EMP%" under http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table node:

NodeId = http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/AEMP
        Direction   = Outbound
        IsOperation = False
        DisplayName = AEMP
        Description = Table.AEMP
NodeId = http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP
        Direction   = Outbound
        IsOperation = False
        DisplayName = EMP
        Description = Table.EMP
NodeId = http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP1
        Direction   = Outbound
        IsOperation = False
        DisplayName = EMP1
        Description = Table.EMP1

Using an IMetadataRetrievalContract Channel

You can also create an IMetadataRetrievalContract channel and then use this channel to browse, search, and retrieve metadata from the adapter. (The method signatures are the same as for the MetadataRetrievalClient class.) The following example shows how to do this.

Copy Code
…
//Create a binding and endpoint address.
OracleDBBinding binding = new OracleDBBinding();
EndpointAddress address = new EndpointAddress("oracledb://ADAPTER/");

//Create and open a channel factory that will return an IMetadataRetrievalContract object, on which browse, search, and get can be performed.
ChannelFactory<IMetadataRetrievalContract> factory = new ChannelFactory<IMetadataRetrievalContract>(binding, address);
factory.Credentials.UserName.UserName = "SCOTT";
factory.Credentials.UserName.Password = "TIGER";
factory.Open();

//Obtain an IMetadataRetrievalContract channel from the factory.
IMetadataRetrievalContract channel = factory.CreateChannel();

//Perform a search using the channel.
MetadataRetrievalNode[] nodes = channel.Search("http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table", "%EMP%", int.MaxValue);
…

See Also

Other Resources

Retrieving Metadata Programmatically from the Oracle Database


Using the Oracle Database Adapter with Microsoft Office SharePoint Server

The WCF Adapter Service Development Wizard for Visual Studio 2013 enables the Microsoft BizTalk Adapter for Oracle Database and the Microsoft BizTalk Adapter for Oracle E-Business Suite to be directly consumed as an external datasource in Microsoft Office SharePoint Server. The Add Service Development Wizard that supports this feature is launched with the WCF Adapter Service template for creating a new Visual C# Web Sites in Visual Studio 2013. The template is included with the BizTalk Adapter Pack 2013. You must also install the Microsoft Windows Communication Foundation (WCF) Line of Business (LOB) Adapter SDK.

SharePoint Operation Support

The Adapter Service Development wizard generates a special service contract for the Oracle adapters that is compatible with Microsoft Office SharePoint Server. The wizard will generate a service contract which includes the following operations for integrating the adapter with Microsoft Office SharePoint Server:

  • Create: Supported by the CreateItem_ operation.

  • Read: Supported by the ReadItem_ operation.

  • Update: Supported by the UpdateItem_ operation.

  • Delete: Supported by the DeleteItem_ operation.

  • Query: Supported by the ReadList operation.

  • Associate: Supported by the Associate_ operation.

The following service contract was generated using for the Microsoft BizTalk Adapter for Oracle Database as an example. The adapter is configured to provide access to the EMP table

Copy Code
[System.ServiceModel.ServiceContractAttribute()]
public interface ISCOTT_EMP {

    [System.ServiceModel.OperationContractAttribute()]
    SCOTT_EMP_Record[] ReadList(System.Nullable<int> Limit);

    [System.ServiceModel.OperationContractAttribute()]
    void CreateItem(SCOTT_EMP_Record Input);

    [System.ServiceModel.OperationContractAttribute()]
    SCOTT_EMP_Record[] ReadItem_EMPNO(System.Nullable<decimal> EMPNO);

    [System.ServiceModel.OperationContractAttribute()]
    void UpdateItem_EMPNO(SCOTT_EMP_Record Input);

    [System.ServiceModel.OperationContractAttribute()]
    void DeleteItem_EMPNO(System.Nullable<decimal> EMPNO);

    [System.ServiceModel.OperationContractAttribute()]
    SCOTT_EMP_Record[] Associate_DEPTNO(System.Nullable<decimal> DEPTNO);
}

Creating a New Web Site to Host the Microsoft BizTalk Adapter for Oracle Database in IIS

These steps provide an example using the WCF Adapter Service Development Wizard, to create a new WCF web service hosting the Microsoft BizTalk Adapter for Oracle Database. The service contract will include operations directly compatible with Microsoft Office Sharepoint Server. So that it can be directly consumed as an external datasource. The adapter is configured to authenticate with the Oracle database using the SCOTT account. If the SCOTT account is locked, you can unlock the account by logging into SQL Plus as SYSDBA.

Copy Code
<Oracle Installation Bin Directory>\Sqlplus.exe SYS AS SYSDBA

Then run the following command.

Copy Code
SQL> ALTER USER scott ACCOUNT UNLOCK;

Creating the New Web Site Project

  1. Start Microsoft Visual Studio 2013.

  2. In Visual Studio 2013, on the File menu, select New and then click Project.

  3. In the New Project dialog box, expand Other Languages and click Visual C#. Find the WCF Adapter Service in the template list and click it to select it.

    Note
    The WCF Adapter Service template is not available if the BizTalk Adapter Pack 2013 is not installed. On x64 systems, install both the x86 and x64 versions of the BizTalk Adapter Pack 2013.

  4. Specify ScottEMP for the name, and then click OK. The WCF Adapter Service Development Wizard starts.

  5. On the Introduction page, click Next.

  6. On the Choose Operations page, specify the oracleDBBinding binding.

  7. Click the Configure button. The Configure Adapter dialog is displayed.

  8. On the Security tab, select Username in the Client credential type dropdown list box.

  9. Enter SCOTT for the User name and enter the correct password for the SCOTT account. The default password for the SCOTT account is tiger.

  10. Click the URI Properties tab, enter the IP address or host name for your Oracle server in the ServerAddress box.

  11. Enter the correct Oracle database service instance name in the ServiceName box. You can copy the instance name information from Oracle Enterprise Manager.

  12. Press the OK button on the Configure Adapter dialog

  13. On the Choose Operations page of the wizard, click the Connect button and wait a few moments for the categories to be built for the Oracle database.

  14. Once the categories are added in the Select a category list, scroll down to SCOTT and expand it. Then expand Table and click the EMP table entry.

  15. In the Available categories and operations list, select all the operations in the list and click the Add button. All the operations are added to the Added categories and operations list.

  16. On the Choose Operations page, click the Next button.

  17. On the Configure Service and Endpoint Behaviors page, set the UseServiceCertificate Service behavior to false for this example. Then click the Next button.

  18. On the Configure Service Endpoint Binding and Address page, click the Apply button. Then click the Next button.

  19. On the Summary page, click the Finish button.

  20. Click the Build menu option and then click Build Solution. Verify the project build was successful with no errors.

Publishing the New Service to IIS

For this example you will publish the adapter host service to the local IIS web server.

  1. In Solution Explorer for Visual Studio 2013, right click the ScottEmp project and click Properties. The Project Designer tabs are displayed.

  2. Click the Web tab, then click the Use Local IIS Web server option.

  3. Click the Create Virtual Directory button.

  4. Open a web browser to the service address http://localhost/ScottEmp/ISCOTT_EMP.svc. You should receive a message stating “You have created a service” indicating the adapter is hosted in IIS.

Adding the External Data Source to a SharePoint Site using SharePoint Designer

This section describes how to add the WCF Service as an external data source to a new Web Site using SharePoint Designer.

Adding the External Data source

  1. Open SharePoint Designer and create a new Web Site.

  2. In SharePoint Designer, expand Navigation and click External Content types in the Site Objects list.

  3. Click the External Content Type menu button to create a new external content type.

  4. Click the text beside Name to edit the name of the new external content type. Enter OracleEMP for the name.

  5. Click the text link beside External System which says Click here to discover external data sources and operations.. This opens the Operation Designer for the OracleEMP external content type.

  6. Click the Add Connection button on the discovery screen.

  7. In the External Data Source Type Selection dialog, choose WCF Service and click the OK button.

  8. In the WCF Connection dialog, in the Service Metadata URL box enter https://localhost/ScottEmp/ISCOTT_EMP.svc?wsdl

  9. In the Service Endpoint URL box enter https://localhost/ScottEmp/ISCOTT_EMP.svc

  10. Click the OK button to close the WCF Connection dialog.

  11. Once the Data Source information is populated, expand the https://localhost/ScottEmp/ISCOTT_EMP.svc data source and expand Web Methods.

  12. Right click the ReadList Web Method and click New Read List Operation. The Read List configuration dialog is launched.

  13. In the Read List dialog click Return Parameters and click EMPNO in the Data Source Elements. Click the Map to identifier.

  14. Click Finish in the Read List dialog.

  15. Save the new external data source by typing Ctrl+s.

Testing the External Data Source Connection

  1. In the new web site, click the Create Lists and Forms button. The Create List and Form for OracleEMP dialog appears.

  2. Enter OracleEMP_List for the List Name and click the OK button.

  3. Once the list is create, click the Summary View button on the menu.

  4. Click OracleEMP_List under External Lists.

  5. Click the Preview in Browser button on the menu to test the ReadList operation of the adapter.

Troubleshooting

  • On 64-bit machines you must make sure that 32-bit Oracle client components are also installed. This is because Visual Studio 2013 and it’s wizards will be running as a 32-bit process requiring access to 32-bit components during development.


Step 1:

Insert introduction here.

Section Heading

Insert section body here.

Subsection Heading

Insert subsection body here.


Step 2:

Insert introduction here.

Section Heading

Insert section body here.

Subsection Heading

Insert subsection body here.


Step 3:

Insert introduction here.

Section Heading

Insert section body here.

Subsection Heading

Insert subsection body here.


Step 4:

Insert introduction here.

Section Heading

Insert section body here.

Subsection Heading

Insert subsection body here.


Samples

Samples for Microsoft BizTalk Adapter for Oracle Database are categorized into:

  • BizTalk Server samples

  • WCF service model samples

  • WCF channel model samples

  • Migration samples

The samples are available at http://go.microsoft.com/fwlink/?LinkID=196854. The SQL scripts for creating the tables, packages, etc. used in the samples are also available along with the samples for the Oracle Database adapter.

The following list contains the names and descriptions of the samples for the Oracle Database adapter.

BizTalk Server Samples

Sample Directory Name | Description
Func_RecordTypes | Demonstrates how to use RECORD type parameters and return values in functions and procedures using the Oracle Database adapter.
Func_RefCursor | Demonstrates how to use REF CURSOR parameters in functions and procedures using the Oracle Database adapter.
InvokeFunction | Demonstrates how to invoke a function in Oracle database using the Oracle Database adapter.
InvokeOverloadedProc | Demonstrates how to invoke with overloaded functions and procedures in Oracle database using the Oracle Database adapter.
Operate_BFILE | Demonstrates how to use Oracle BFILE types in Oracle procedures using the Oracle Database adapter.
Operate_LOB | Demonstrates how to perform ReadLOB and UpdateLOB operations on tables with LOB data types using the Oracle Database adapter.
PollingQuery | Demonstrates how to configure a polling query and receive the results using the Oracle Database adapter.
SelectAccTable | Demonstrates how to perform a select query on an Oracle database table using the Oracle Database adapter.
SqlExec | Demonstrates how to perform parameterized queries using the SQLEXECUTE operation on an Oracle database using the Oracle Database adapter.

WCF Service Model Samples

Sample Directory Name | Description
OracleBfileTypeSM | Demonstrates how to use Oracle BFILE types in basic SQL operations surfaced for Oracle tables and as parameters to Oracle procedures.
OracleOverloadsSM | Demonstrates how to invoke overloaded functions and procedures in a package.
OraclePollingSM | Demonstrates how to configure a polling query and receive the results.
OracleRecordTypesSM | Demonstrates how to use RECORD type parameters and return values in functions and procedures.
OracleRefCursorsSM | Demonstrates how to use REF CURSOR parameters in functions and procedures
OracleTransactedDmlSM | Demonstrates how to perform operations on the Oracle database in a transaction using the WCF service model.

WCF Channel Model Samples

Sample Directory Name | Description
OraclePollingCM | Demonstrates how to configure a polling query and receive the results.
OracleStreamingDemo | Demonstrates how to perform end-to-end streaming of LOB data using the UpdateLOB and table Select operations
OracleTransactedDmlCM | Demonstrates how to perform operations on the Oracle database in a transaction using the WCF channel model.

Migration Samples

Sample Directory Name | Description
Oracle_Migration | Demonstrates how to use a BizTalk project created using the BizTalk ODBC Adapter for Oracle Database (shipped with BizTalk Server) and make it work with the WCF-based Oracle Database adapter (shipped with BizTalk Adapter Pack 2013).

See Also

Concepts

Development


How Do I?

The topics in this section describe how to perform various operations using the Microsoft BizTalk Adapter for Oracle Database.

In This Section

  • Configure Transaction Isolation Level and Transaction Timeout

See Also

Concepts

Development


Configure Transaction Isolation Level and Transaction Timeout

While performing inbound operation (Polling) using the Microsoft BizTalk Adapter for Oracle Database with BizTalk Server, you should appropriately configure the transaction isolation level and the transaction timeout values. To do this:

  1. Start the BizTalk Server Administration console.

  2. In the console tree, expand the BizTalk Group, and then expand Applications.

  3. Expand the BizTalk application that you have deployed after generating the metadata using the Oracle Database adapter.

  4. Right-click Receive Ports, point to New, and then click One-way Receive Port.

  5. In the Receive Port Properties dialog box, on the General tab, type a name for the receive port.

  6. In the left pane of the Receive Port Properties dialog box, click Receive Locations, and then click New in the right pane to define a new receive location.

  7. In the Receive Location Properties dialog box, click WCF-Custom in the Type list.

  8. Click Configure adjacent to the Type list.

  9. In the WCF-Custom Transport Properties dialog box, click the Behavior tab.

  10. In the Behavior list, right-click ServiceBehavior, and click Add extension.

  11. In the Select Behavior Extension dialog box, select oracleDBAdapterInboundTransactionBehavior, and click OK.

  12. In the left pane of the WCF-Custom Transport Properties, select the oracleDBAdapterInboundTransactionBehavior service under ServiceBehavior.

  13. In the right pane of the WCF-Custom Transport Properties, specify appropriate values for the transactionIsolationLevel and transactionTimeout parameters. You can select any of the following transaction isolation levels: Serializable, RepeatableRead, ReadCommitted, ReadUncommitted, Snapshot, Chaos, and Unspecified. For information about these transaction isolation levels, see the Members section at http://go.microsoft.com/fwlink/?LinkId=126983.

    Important
    The Oracle Database adapter supports only the following two transaction isolation levels: ReadCommitted and Serializable.

    Setting Transaction Isolation Level
  14. Click OK in the WCF-Custom Transport Properties dialog box.

  15. Click OK in the open dialog boxes to save the changes.


Deployment

This section provides information about deploying the Microsoft BizTalk Adapter Pack. It also provides some frequently asked questions and a link to information about troubleshooting common installation issues.

In This Section

  • Installing the BizTalk Adapter Pack

  • Troubleshooting Your Installation

  • Migrating BizTalk Projects Created Using the BizTalk ODBC Adapter for Oracle Database


Installing the BizTalk Adapter Pack

See the BizTalk Adapter Pack installation guide for installation prerequisites and complete instructions for installing the BizTalk Adapter Pack. This document is installed on your computer, typically under <installation drive>:\Program Files\Microsoft BizTalk Adapter Pack\Documents.

See Also

Tasks

Troubleshooting Your Installation

Concepts

Deployment


Troubleshooting Your Installation

Installation of the Microsoft BizTalk Adapter Pack copies the product binaries on a computer and registers the bindings for each adapter. For information about troubleshooting BizTalk Adapter Pack installation issues, see Troubleshooting Installation Issues.

See Also

Tasks

Troubleshooting Your Installation


Migrating BizTalk Projects Created Using the BizTalk ODBC Adapter for Oracle Database

The BizTalk ODBC Adapter for Oracle Database that is shipped with Microsoft BizTalk Server differs from Microsoft BizTalk Adapter for Oracle Database that is shipped with BizTalk Adapter Pack in many aspects, including:

  • The design-time experience of creating a BizTalk project.

  • The metadata retrieval experience.

  • Schemas.

  • Data type mappings.

  • The operations that can be performed using the adapter.

  • Physical port configuration in the BizTalk Server Administration console.

This section discusses the differences between these two adapters.

Note
The Oracle Database adapter that is shipped with BizTalk Adapter Pack is a WCF-based adapter and can be used with BizTalk Server, the WCF service model, or the WCF channel model. The BizTalk ODBC Adapter for Oracle Database that is shipped with Microsoft BizTalk Server, however, can be used only with BizTalk Server.

Therefore, this section talks about version differences in terms of using the adapter with BizTalk Server 2013 R2. For information about how to use the adapter with the WCF service model or WCF channel model, see Overview of BizTalk Adapter for Oracle Database.

In This Section

  • Differences in the Design-time Experience

  • Differences in Metadata Retrieval Experience

  • Differences in the Schema File Name and Namespace

  • Differences in Data Type Mapping

  • Differences in Operations Surfaced for the Oracle Database

  • Differences in Physical Port Configuration in the BizTalk Server Administration Console

  • Migration Tutorials and Sample

See Also

Concepts

Deployment


Differences in the Design-time Experience

The design-time experience for using the adapters includes creating a BizTalk project in Visual Studio and then generating metadata for the operations you want to perform on the Oracle database using the adapter. This section discusses how the design-time experience differs between the two adapter versions.

Important
In this topic, for the sake of brevity, the BizTalk ODBC Adapter for Oracle Database that is shipped with Microsoft BizTalk Server will be referred to as “vPrev Oracle Database adapter.”

Design-time Experience for the vPrev Oracle Database Adapter

The design-time experience using the vPrev Oracle Database adapter involves the following steps:

  1. Add the Oracle Database adapter to the BizTalk Server Administration console. Installing the vPrev Oracle Database adapter does not add the adapter to the console. You must add the vPrev Oracle Database adapter in the BizTalk Server Administration console under BizTalk Server Administration > BizTalk Group > Platform Settings > Adapters.

    Add an adapter

    Add adapter dialog box
  2. Add a physical send port. To retrieve metadata from an Oracle database, the vPrev Oracle Database adapter requires you to configure a physical send port in BizTalk Server Administration console, before you create a BizTalk project.

    You can configure a send port under BizTalk Server Administration > BizTalk Group > BizTalk Applications > [Your Application] > Send Ports. For the send port, you must specify the connection properties to connect to the Oracle database.

    The key connection properties to connect to an Oracle database using the vPrev Oracle Database adapter are:

    • Without Enterprise SSO: Password, PATH, service name, user name, Use SSO (set to No).

    • With Enterprise SSO: ESSO affiliate application, service name, Use SSO (set to Yes).

    Specify properties for Oracle send port
    The service name in the connection properties refers to the system Data Source Name (DSN). The DSN name is configured under Data Sources (ODBC) by going to Start > Control Panel > Administrative Tools > Data Sources (ODBC).

    The PATH is the path of the Oracle "bin" directory.

  3. Generate metadata. Create a BizTalk project in Visual Studio. Right-click the BizTalk project, and then select Add > Add Generated Items > Add Adapter Metadata.

    Add Adapter Metadata dialog box

    Add Adapter Wizard

Design-time Experience for the WCF-based Adapter

The design-time experience using the WCF-based Oracle Database adapter involves the following steps:

  1. Create a BizTalk project. Create a BizTalk project in Visual Studio. Right-click the BizTalk project, and then select Add > Add Generated Items > Consume Adapter Service.

    Launch Consume Adapter Service
    Note
    Note that WCF-based Oracle Database adapter does not require you to configure a physical BizTalk port for the design-time experience.

  2. Connect to the Oracle database. In the Consume Adapter Service BizTalk Project Add-in, select the binding for Oracle (oracleDBBinding) and click Configure to start the Configure Adapter dialog box. You must specify the different connection properties in this dialog box to connect to the Oracle database.

    Specify credentials for Oracle database
    The key connection properties to connect to an Oracle database using the WCF-based Oracle Database adapter are:

    • User name. Oracle user names are stored in all CAPS by default in the database. For example, user scott is internally stored as SCOTT. Because the adapter preserves the case in which you specify the password, you must provide the user name in all CAPS.

    • Password for the user. For release 10g and earlier, passwords on the Oracle system are not case-sensitive. The Oracle Database adapter preserves the case of the value that you enter for the password when it opens a connection on the Oracle database. Oracle introduced case-sensitive passwords starting with Oracle 11g.

    • Oracle data source name that can be configured either in the Oracle client’s tnsnames.ora file or in a directory server.

    If you are using the WCF-based Oracle Database adapter to receive polling-based data-changed messages from the Oracle database, the PollingId parameter also becomes relevant. The value you specify for PollingId is appended to the POLLINGSTMT operation surfaced by the adapter. This enables BizTalk users to have more than one receive location for a BizTalk application for the same Oracle data source. For example, if you want to poll data from two different tables as part of the same BizTalk application, you could do this by creating two POLLINGSTMT schemas. You could use the connection URI oracledb://MYDATASOURCE?PollingId=1 to create the first schema and the connection URI oracledb://MYDATASOURCE?PollingId=2 for the second schema.

    For more information about the connection properties, see Establishing a Connection to the Oracle Database.

  3. Specify binding properties. The WCF-based Oracle Database adapter is essentially a custom WCF binding that includes different binding properties. These binding properties govern the behavior of the adapter. These properties can be set both at design time (when generating the metadata) and at run time (when sending messages to the Oracle database).

    Specify binding properties
    If you want to enable polling, the key binding property that must be set at design time is PollingStatement. The adapter uses the value for the PollingStatement property to generate the metadata of a special inbound operation called the “POLLINGSTMT”. You can either specify a SELECT query or stored procedure, function, or procedure or function within a package to poll the Oracle database.

    For more information about how the Oracle Database adapter supports polling, see Receiving Polling-based Data-changed Messages.

Key Differences in Design-time Experience

The following table lists the key differences in the design-time experience for the two versions of the adapter.

vPrev Oracle Database adapter | WCF-based Oracle Database adapter
Add the adapter to the BizTalk Server Administration console under Platform Settings > Adapters. | The WCF-based Oracle Database adapter is a WCF custom binding and is configured as specific binding type of the WCF-Custom adapter. The BizTalk Server Administration console already contains the WCF-Custom adapter under Platform Settings > Adapters.
Create a physical send port to connect to the Oracle database at design time. | There is no need to configure a send port.
Use the Add Adapter Metadata option to connect to the Oracle database and retrieve metadata. | Use the Consume Adapter Service option to connect to the Oracle database and retrieve metadata.

See Also

Other Resources

Migrating BizTalk Projects Created Using the BizTalk ODBC Adapter for Oracle Database


Differences in Metadata Retrieval Experience

Once you have connected to the Oracle database from the BizTalk project in Visual Studio, you can generate metadata to perform operations on the Oracle database, such as an Insert operation on the SCOTT.EMP table. The steps involved in generating the metadata in the BizTalk ODBC Adapter for Oracle Database differ from those in the WCF-based Oracle Database adapter. This section discusses the differences.

Important
In this topic, for the sake of brevity, the BizTalk ODBC Adapter for Oracle Database that is shipped with Microsoft BizTalk Server will be referred to as “vPrev Oracle Database adapter.”

Metadata Retrieval Experience for the vPrev Oracle Database Adapter

  • Metadata categories. The vPrev Oracle Database adapter surfaces two categories under an Oracle schema: Table and Procedure. All the tables belonging to a particular schema are surfaced under the Table node. Similarly, all the packages are surfaced under the Procedure node. However, no operations (Insert, Update, Select, Delete) are surfaced for the tables. Similarly, procedures and functions constituting the package are not surfaced under the Procedure node.

    Metadata categories in previous adapter version
  • Special operations. The vPrev Oracle Database adapter surfaces a special node called NativeSQL. This operation is used to execute SQL statements in the Oracle database.

    NativeSQL operation in previous adapter version
  • Searching for Oracle database artifacts. The vPrev Oracle Database adapter does not supporting searching for Oracle artifacts. You need to browse through the entire tree exposed by the adapter to find the artifact you are looking for.

Metadata Retrieval Experience for the WCF-based Adapter

  • Contract type. Based on whether you will be performing outbound operations (messages sent from a client to the Oracle database) or inbound operations (messages sent from Oracle database to a client) using the adapter, you can specify the contract type.

    • For outbound operations, the contract type is Client. This contract surfaces operations whose messages flow from BizTalk to the adapter via a send port.

    • For inbound operations, the contract type is Service. This contract surfaces operations whose messages flow from the adapter to BizTalk via a receive port.

  • Metadata categories. The WCF-based Oracle Database adapter surfaces the Table, Procedure, Function, Package, and View categories. The Table node surfaces all the tables for a particular schema. In addition to this, the adapter also surfaces the different operations (Insert, Update, Select, Delete) that can be performed on the table. The standalone functions and procedures are surfaced under the Function and Procedure nodes, respectively. Procedures and functions constituting a package are surfaced under the Package node. Each node also surfaces the synonyms for the respective artifacts. For example, the Table node under a schema will display all the synonyms for tables along with the database tables in a schema, the View node under a schema will display all the synonyms for views along with the database views in a schema, and so on.

    Metadata categories for WCF-based Oracle adapter
  • Special operations. The WCF-based Oracle Database adapter surfaces a special node called SQLEXECUTE under the root node. This operation is used to execute SQL statements in the Oracle database. For inbound operations, the Oracle Database adapter surfaces two special nodes called POLLINGSTMT and Notification. POLLINGSTMT is used to receive polling-based data change messages from the Oracle database. Notification is used to register a SELECT statement as the notification query on the database, and receive notifications from the database as and when the result set of the SELECT statement changes.

  • Searching for Oracle database artifacts. With the WCF-based Oracle Database adapter you can specify a search expression after selecting a relevant category node. For example, to search for a specific table, select the Table node and specify a search expression similar to an Oracle query search expression. Note that the search expressions are case-sensitive. For more information about searching for Oracle database artifacts using the WCF-based Oracle Database adapter, see How Does the Adapter Surface Oracle Metadata?

    Search Oracle database artifacts
  • BizTalk port binding file. Generating schema for the WCF-based Oracle Database adapter using the Consume Adapter Service BizTalk Project Add-in also creates a BizTalk port binding file. You can import this file into a BizTalk application to configure a WCF-Custom port. The file essentially contains the physical port configuration including the binding configuration, the binding type, the endpoint URI, and the port action based on the operations for which metadata was generated. This makes it significantly easier to create physical WCF-Custom ports for the project. For more information, see Configuring a Physical Port Binding by Using a Port Binding File.

Key Differences in Metadata Retrieval Experience

The following table lists the key differences in the metadata retrieval experience for the two versions of the adapter.

vPrev Oracle Database adapter | WCF-based Oracle Database adapter
Only Table and Procedure categories are surfaced. | Table, Procedure, Function, Package, and View categories are surfaced.
No operations are surfaced under the Table node. | Insert, Select, Update, Delete operations are surfaced under the Table node.
Special NativeSQL operation is surfaced. | Special SQLEXECUTE, POLLINGSTMT, and Notification operations are surfaced.
Search is not supported. | Search is supported for Oracle database artifacts using a search expression similar to an Oracle query search expression.
There is no differentiation between inbound and outbound operations. | Inbound operations are surfaced under the Service (Inbound Operations) category, whereas outbound operations are surfaced under the Client (Outbound Operations) category.

See Also

Other Resources

Migrating BizTalk Projects Created Using the BizTalk ODBC Adapter for Oracle Database


Differences in the Schema File Name and Namespace

The BizTalk ODBC Adapter for Oracle Database generates metadata for Oracle artifacts differently than the WCF-based Oracle Database adapter. This section discusses these differences including:

  • File naming convention.

  • Target namespace.

Important
In this topic, for the sake of brevity, the BizTalk ODBC Adapter for Oracle Database that is shipped with Microsoft BizTalk Server will be referred to as “vPrev Oracle Database adapter.”

Schema File Name and Namespace for the vPrev Oracle Database Adapter

  • File naming convention. The vPrev Oracle Database adapter generates schema files with names containing the name of the Oracle database artifact. For example, generating the metadata for the EMPLOYEE table creates a file with the name EMPLOYEEService_EMP_x5d.xsd.

  • Target namespace of the schema. The following table lists the target namespace of the schemas generated by the previous version of the adapter.

    Oracle database artifact Target namespace

    Table

    http://schemas.microsoft.com/[OracleDb://{DSN_Name}/{Schema}/Tables/{Table_Name}]

    Procedure

    http://schemas.microsoft.com/[OracleDb://{DSN_Name}/{Schema}/Procedures/{Package_Name}]

    NativeSQL

    http://schemas.microsoft.com/[OracleDb://{DSN_Name}/NativeSQL]

    In the preceding table, the text in parentheses { } are placeholders to present the convention for the namespace. The actual namespace contains the appropriate values.

Schema File Name and Namespace for the WCF-based Adapter

  • File naming convention. By default, the WCF-based Oracle Database adapter generates schema files with names containing the name of the binding and the object on which the operation is performed. For example, generating the metadata for the EMPLOYEE table will create a binding file with the name as OracleDBBindingSCOTT.Table.Employee.xsd. However, the Consume Adapter Service BizTalk Project Add-in provides the option of specifying a custom file name while generating the schema. For more information about how to retrieve the schema, see Retrieving Metadata for Oracle Operations in Visual Studio.

  • Target namespace of the schema. The following table lists the target namespace of the schemas generated by the WCF-based Oracle Database adapter.

    Oracle database artifact Target namespace

    Table

    http://Microsoft.LobServices.OracleDB/2007/03/{Schema}/Table/{Table_Name}

    Procedure

    http://Microsoft.LobServices.OracleDB/2007/03/{Schema}/Procedure

    Procedure Overloads

    http://Microsoft.LobServices.OracleDB/2007/03/{Schema}/Procedure/{Procedure_Name}/overload{count}

    Function

    http://Microsoft.LobServices.OracleDB/2007/03/{Schema}/Function

    Function Overloads

    http://Microsoft.LobServices.OracleDB/2007/03/{Schema}/Function/{Function_Name}/overload{count}

    Package

    http://Microsoft.LobServices.OracleDB/2007/03/{Schema}/Package/{Package_Name}

    Package Overloads

    http://Microsoft.LobServices.OracleDB/2007/03/{Schema}/Package/{Package_Name}/{Procedure_Name/Function_Name}/overload{count}

    View

    http://Microsoft.LobServices.OracleDB/2007/03/{Schema}/View/{View_Name}

    SQLEXECUTE

    http://Microsoft.LobServices.OracleDB/2007/03/SQLEXECUTE

    POLLINGSTMT

    http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMT{PollingId}

    Notification

    http://Microsoft.LobServices.OracleDB/2007/03/Notification

    In the preceding table, the text in parentheses { } are placeholders to present the convention for the namespace. The actual namespace contains the appropriate values.

See Also

Other Resources

Migrating BizTalk Projects Created Using the BizTalk ODBC Adapter for Oracle Database


Differences in Data Type Mapping

The BizTalk ODBC Adapter for Oracle Database and the WCF-based Oracle Database adapter differ in how the Oracle data type maps to the XSD data type. This section lists the data type mapping in both versions of the adapter.

Important
In this topic, for the sake of brevity, the BizTalk ODBC Adapter for Oracle Database that is shipped with Microsoft BizTalk Server will be referred to as “vPrev Oracle Database adapter.”

Data Type Mapping

The following table lists the mapping between the Oracle data types and XSD data types for both the adapter versions. For more information about data type mapping for WCF-based Oracle Database adapter, see Basic Oracle Data Types.

In the WCF-based Oracle Database adapter, how an Oracle data type is mapped to an XSD type depends on whether the EnableSafeTyping binding property is set to True while generating the schema. For more information about the binding property, see Working with BizTalk Adapter for Oracle Database Binding Properties.

Oracle data type XSD mapping for vPrev Oracle Database adapter XSD mapping for WCF-based Oracle Database adapter

BFile

xsd:base64Binary

  • input: xsd:string

  • output: xsd:base64Binary

Blob

xsd:base64Binary

xsd:base64Binary

Clob

xsd:string

xsd:string

NClob

xsd:string

xsd:string

Raw (any precision)

xsd:base64Binary

xsd:base64Binary

LongRaw

xsd:base64Binary

xsd:base64Binary

Long

xsd:string

xsd:string

Number with precision > 28 *

xsd:string with number pattern

xsd:string

Number with precision < = 28 *

xsd:string with number pattern

xsd:decimal

Binary Float with precision > 49 (decimal precision 15) *

xsd:string with number pattern

xsd:string

Binary Float with precision < = 23 (decimal precision 7) *

xsd:string with number pattern

xsd:float

Binary Float with precision > 23 and <= 49 *

xsd:string with number pattern

xsd:double

Char

xsd:string

xsd:string

NChar

xsd:string

xsd:string

Varchar2

xsd:string

xsd:string

NVarchar2

xsd:string

xsd:string

Date

xsd:dateTime

  • xsd:dateTime if EnableSafeTyping = False

  • xsd:string if EnableSafeTyping = True; the value should be expressed in Oracle NLS_DATE_FORMAT.

TimeStamp with precision <= 7

xsd:dateTime

  • xsd:dateTime if EnableSafeTyping = False

  • xsd:string if EnableSafeTyping = True; the value should be expressed in Oracle NLS_TIMESTAMP_FORMAT.

Timestamp with precision > 7

xsd:dateTime

xsd:string; the value should be expressed in Oracle NLS_TIMESTAMP_FORMAT.

TimeStampLTZ

xsd:base64Binary

xsd:string; the value should be expressed in NLS_TIMESTAMP_TZ_FORMAT.

TimeStampTZ

xsd:base64Binary

  • xsd:string if outside an UDT; the value should be expressed in NLS_TIMESTAMP_TZ_FORMAT.

  • xsd:dateTime if inside an UDT

IntervalYM

xsd:base64Binary

  • xsd:string if outside an UDT; the value should be expressed in Oracle native format: Year-Month; for example, “1-2” (1 year and 2 months).

  • xsd:long if inside an UDT

IntervalDS

xsd:base64Binary

  • xsd:string if outside an UDT; the value should be expressed in Oracle native format: Day HH:MI:SSxFF; for example, “5 15:30:12.99”.

  • xsd:duration if inside an UDT

* If safe typing is enabled (EnableSafeTyping = True), these Oracle numeric data types inside DataSets and weakly-typed REF CURSORS in the WCF-based Oracle Database adapter are always exposed as strings.

See Also

Other Resources

Migrating BizTalk Projects Created Using the BizTalk ODBC Adapter for Oracle Database


Differences in Operations Surfaced for the Oracle Database

The two versions of the adapter differ in the operations they expose for the Oracle database. This section lists the differences in:

  • Operations surfaced for tables.

  • Operations on functions and procedures.

  • Special operations.

For more information about the operations supported by the WCF-based Oracle Database adapter, see What Operations Can be Performed Using the Adapter?

Important
In this topic, for the sake of brevity, the BizTalk ODBC Adapter for Oracle Database that is shipped with Microsoft BizTalk Server will be referred to as “vPrev Oracle Database adapter.”

Operations Surfaced for Tables

The following table lists the operations surfaced for tables by both versions of the adapter.

Operation for the vPrev Oracle Database adapter Description Operation for the WCF-based Oracle Database adapter Description

Insert

Inserts one or more records into a table.

Insert

  • Inserts one or more records into a table.

  • Performs a bulk insert into a table using a SELECT query and column names.

Query

Selects rows based on a filter (where clause) and max rows.

Select

Selects rows based on column and row filter.

Update

Updates one or more records based on a filter and record field values to be updated.

Update

Updates one or more records based on a filter and record field values to be updated.

Remove

Updates one or more records based on a filter.

Delete

Updates one or more records based on a filter.

TableChangedEvent

Provides all rows and all columns in a table at regular intervals of time (polling). Deletes rows after the poll.

POLLINGSTMT

Provides rows in a table with row and column filtering at regular intervals of time (polling) as a strongly-typed result set. Executes a post poll statement (PL/SQL block) provided by the user after the poll.

ReadLob

Reads the value of a specific LOB column in a table.

UpdateLob

Updates the value of a specific LOB column in a table.

Operations on Procedures and Functions

  • For procedures, the vPrev Oracle Database adapter surfaces the procedures and functions constituting packages as operations. However, the WCF-based Oracle Database adapter surfaces standalone stored procedures and functions, in addition to stored procedures and functions constituting packages as operations. For the inbound operation, a list of procedures, functions, and packages in the schema are exposed as operations for polling.

  • While the vPrev Oracle Database adapter does not handle procedure and function overloads, the WCF-based Oracle Database adapter handles overloads by generating separate target namespaces. Typically, namespaces are suffixed with overload1, overload2, and so on. For example:

    Copy Code
    http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/OVERLOAD/GET_RECORD/overload1

Special Operations Surfaced by the Adapters

The following table lists the differences in the special operations surfaced by both versions of the adapter.

Operation for the vPrev Oracle Database adapter | Description | Operation for WCF-based Oracle Database adapter | Description
NativeSQL | Executes a generic SQL statement. Provides ability to specify IN parameter values. | SQLEXECUTE | Executes a generic SQL statement. Provides ability to specify IN parameter values.
SQLEvent | Provides rows in a table with row and column filtering at regular intervals of time (polling) as a generic result set containing column metadata and row data. Executes a post poll statement provided by the user after the poll. | POLLINGSTMT | Obtains inbound data from the Oracle database based on a query polling mechanism supported by the adapter.
 |  | Notification | Registers a SELECT statement as the notification query on the database, and the database sends a notification to the adapter client as and when the result set of the SELECT statement changes.

See Also

Other Resources

Migrating BizTalk Projects Created Using the BizTalk ODBC Adapter for Oracle Database


Differences in Physical Port Configuration in the BizTalk Server Administration Console

To use the BizTalk ODBC Adapter for Oracle Database or the WCF-based Oracle Database adapter with BizTalk Server, you need to configure physical ports in the BizTalk Server Administration console. This section lists the differences in configuring a physical port for both versions of the adapter.

Important
In this topic, for the sake of brevity, the BizTalk ODBC Adapter for Oracle Database that is shipped with Microsoft BizTalk Server will be referred to as “vPrev Oracle Database adapter.”

Configuring a Physical Port for the vPrev Oracle Database Adapter

You can configure a send port to send messages to the Oracle database using the vPrev Oracle Database adapter, or a receive port to receive messages from the Oracle database using the vPrev Oracle Database adapter. The configuration properties displayed for the send and receive ports are different. For example, while configuring a receive port for the previous version of the Oracle database adapter, the properties related to polling statement or table change event are available. However, these properties are not available while configuring a send port.

Configuring a Physical Port for the WCF-based Oracle Database Adapter

For the WCF-based Oracle Database adapter, you do not necessarily have to create a port manually. You have the option of configuring a physical port automatically by importing a port binding file that is generated while you generate metadata for any operation using the Consume Adapter Service BizTalk Project Add-in. The file essentially contains the physical port configuration including the binding configuration, the binding type, the endpoint URI, and the port action based on the operations for which metadata was generated. For more information, see Configuring a Physical Port Binding by Using a Port Binding File.

Several other considerations that make a physical port configuration for WCF-based Oracle Database adapter different from the previous version of the Oracle database adapter are:

  • The port type for WCF-based Oracle Database adapter is either “WCF-Custom” or “WCF-OracleDB”. So, with respect to BizTalk Server, this port uses custom WCF configurations and primarily, a custom WCF binding. Because WCF-based Oracle Database adapter is essentially a custom WCF binding, it can be used in BizTalk via the WCF-Custom or WCF-OracleDB port.

  • A BizTalk WCF-Custom or WCF-Oracle DB send port requires an "Action" to be specified in the port. This is the WCF action that is sent on the message by BizTalk Server before it gets to the binding. The WCF action conveys to the adapter:

    • The operation the adapter client wants to perform.

    • The Oracle database artifact on which the user wants to perform the operation.

    Adapter clients can specify this action in various ways. For more information on specifying an action, see Specifying SOAP Action.

  • BizTalk WCF-Custom or WCF-Oracle DB send or receive ports includes binding information that, in turn, includes a binding type and binding properties for that binding type. This is a key configuration that ties the WCF-Custom port or WCF-Oracle DB to a WCF-based Oracle Database adapter. For the WCF-based Oracle Database adapter, binding type is oracleDBBinding.

  • The binding configuration properties that govern how an adapter behaves while generating metadata or while sending messages to the Oracle database. Unlike the previous vPrev Oracle Database adapter, the available binding properties do not change depending on whether you are configuring a send or a receive port. However, adapter users must be aware of which binding property to set for a specific operation performed by the adapter. For more information about the binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

  • The configurations under the Messages tab in the Transport Properties dialog box of the port enable adapter users to alter the message that is sent or received using the WCF-Custom or WCF-OracleDB port. While sending messages (from BizTalk Server to the adapter), users can choose to send the message body or use a template to transform the XML message to a different message structure before sending it to the adapter (the WCF custom binding). While receiving messages (from the adapter to BizTalk), users can choose to get the entire SOAP envelope, the body contents of the SOAP message, or a specific node value in the incoming message referenced by an XPath query expression.

See Also

Other Resources

Migrating BizTalk Projects Created Using the BizTalk ODBC Adapter for Oracle Database


Migration Tutorials and Sample

The Microsoft BizTalk Adapter Pack includes migration tutorials that demonstrate how to migrate BizTalk projects created using the BizTalk ODBC Adapter for Oracle Database to use the WCF-based Oracle Database adapter. For more information, see Tutorial: Migrating BizTalk Projects.

The BizTalk Adapter Pack also includes a sample that demonstrates how to modify a BizTalk project created using the BizTalk ODBC Adapter for Oracle Database to send and receive messages using the WCF-based Oracle Database adapter. For more information, see Samples.

See Also

Other Resources

Migrating BizTalk Projects Created Using the BizTalk ODBC Adapter for Oracle Database


Troubleshooting

The BizTalk Adapter Pack uses or depends on several Microsoft technologies, including but not limited to the Microsoft Windows Communication Foundation (WCF) Line of Business (LOB) Adapter SDK, Microsoft Visual Studio, and the Microsoft .NET Framework 4.5 or .NET Framework 4.5.1. The BizTalk Adapter Pack is built on top of the WCF LOB Adapter SDK, which in turn requires the .NET Framework 4.5 or .NET Framework 4.5.1. The adapters can be consumed either by writing applications using Visual Studio or by creating BizTalk applications. For issues related to each of these technologies and products, see the respective documentation.

This section provides information about troubleshooting the BizTalk Adapter Pack, including:

  • Enabling tracing to diagnose issues with the adapters.

  • Handling installation and operational issues that you might encounter when working with the adapters, including probable cause, and a resolution.

  • Using performance counters to gauge adapter performance.

  • Handling exceptions and errors, including probable cause, and a resolution.

In This Section

  • Diagnostic Tracing and Message Logging

  • Troubleshooting Installation Issues

  • Troubleshooting Operational Issues

  • Troubleshooting Performance Issues

  • Using Performance Counters

  • Exceptions and Error Handling


Diagnostic Tracing and Message Logging

Diagnostic tracing helps to effectively diagnose problems that you might encounter when using the adapters. This topic provides information about the following two types of tracing supported with Microsoft BizTalk Adapter for Oracle Database:

  • WCF tracing between the adapter client and the adapter

  • WCF tracing within the adapter

WCF Tracing Between the Adapter Client and the Adapter

Adapter clients can enable WCF tracing to trace issues between the adapter client and the adapter. WCF tracing is used to trace the input XML that comes from the adapter client by using the WCF service model, and is useful in diagnosing serialization issues. WCF tracing is not used for the WCF channel model or for output messages from the adapter to the adapter client. You can activate WCF tracing for BizTalk applications and WCF service model applications by adding an excerpt to the respective configuration files. Also, you can enable tracing both at design-time and run-time.

  • Tracing at design-time. For the design-time experience, you may use the Add Adapter Service Reference Plug-in, Consume Adapter Service Add-in, or the Add Adapter Metadata Wizard. All these tools can be used from Visual Studio. So, to enable tracing for the design-time experience, you must add the excerpt to the devenv.exe.config file located in <installation drive>:\Program Files\Microsoft Visual Studio <version>\Common7\IDE.

  • Tracing at run-time. For run-time tracing, you must add the excerpt depending on the application you are using.

    • For a BizTalk Server applications, you must add the excerpt to the BizTalk configuration file, typically BTSNTSvc.exe.config. For BizTalk Server 2013 R2, this file is available typically under <installation drive>:\Program Files\Microsoft BizTalk Server 2013 R2.

    • For a WCF service model .NET application, you must add the excerpt to the app.config file of your project.

To enable WCF tracing, add the following excerpt within the <configuration> tag.

Copy Code
<system.diagnostics>
    <sources>
      <source name ="System.ServiceModel" switchValue="Verbose">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
      <source name ="System.ServiceModel.MessageLogging"
              switchValue="Verbose, ActivityTracing">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
      <source name ="System.Runtime.Serialization" switchValue="Verbose">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
   </sources>
   <sharedListeners>
      <add name="xml" type="System.Diagnostics.XmlWriterTraceListener"
           traceOutputOptions="LogicalOperationStack"
           initializeData="C:\log\WCFTrace.svclog" />
   </sharedListeners>
   <trace autoflush="true" />
  </system.diagnostics>
  <system.serviceModel>
    <diagnostics>
      <messageLogging
           logEntireMessage="true"
           logMalformedMessages="false"
           logMessagesAtServiceLevel="true"
           logMessagesAtTransportLevel="false"/>
    </diagnostics>
  </system.serviceModel>

This saves the WCF traces to C:\log\WCFTrace.svclog. For more information about WCF tracing, see "Tracing" at http://go.microsoft.com/fwlink/?LinkId=91242.

Important
Make sure you mitigate potential security threats of exposing sensitive business data by enabling tracing. For recommendations see Best Practices.

WCF Tracing Within the Adapter

The adapters log different categories of useful information to the trace file such as errors, warnings, and information messages. Such information is useful in understanding the process flow within the adapter and diagnosing issues with the adapter. You can activate the WCF LOB Adapter SDK and adapter tracing for BizTalk applications and WCF service model applications by adding an excerpt to the respective configuration files. Also, you can enable tracing both at design-time and run-time.

  • Tracing at design-time. For the design-time experience, you may use the Add Adapter Service Reference Plug-in, Consume Adapter Service Add-in, or the Add Adapter Metadata Wizard. All these tools can be used from Visual Studio. So, to enable tracing for the design-time experience, you must add the excerpt to the devenv.exe.config file located in <installation drive>:\Program Files\Microsoft Visual Studio <version>\Common7\IDE.

  • Tracing at run-time. For run-time tracing, you must add the excerpt depending on the application you are using.

    • For a BizTalk Server applications, you must add the excerpt to the BizTalk configuration file, typically BTSNTSvc.exe.config. For BizTalk Server 2013 R2, this file is available typically under <installation drive>:\Program Files\Microsoft BizTalk Server 2013 R2.

    • For a WCF service model .NET application, you must add the excerpt to the app.config file of your project.

To enable WCF LOB Adapter SDK and adapter tracing, add the following excerpt within the <configuration> tag:

Copy Code
<system.diagnostics>
    <sources>
      <source name="Microsoft.ServiceModel.Channels" switchValue="Error">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
      <source name=" Microsoft.Adapters.OracleDB" switchValue="Information">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add name="xml" type="System.Diagnostics.XmlWriterTraceListener"
   traceOutputOptions="LogicalOperationStack"
          initializeData="C:\log\AdapterTrace.svclog" />
    </sharedListeners>
    <trace autoflush="true" />
  </system.diagnostics>

This saves the WCF traces to C:\log\AdapterTrace.svclog.

Viewing the Traces

You can use the Windows Communication Foundation (WCF) Service Trace Viewer tool to view the traces. For more information about the tool, see "Using Service Trace Viewer for Viewing Correlated Traces and Troubles" at http://go.microsoft.com/fwlink/?LinkId=91243.

Configuring Tracking for BizTalk Applications

The BizTalk Server Administration console lets you configure various tracking options for items such as send ports and receive ports. The tracking configuration settings enable you to track inbound and outbound event data, message properties, message bodies, and orchestrations. For more information about configuring tracking for BizTalk applications, see the "Configuring Tracking Using the BizTalk Server Administration Console" at http://go.microsoft.com/fwlink/?LinkId=106851.

You can also use Health and Activity Tracking (HAT) to view historical or tracked data. For more information, see "Viewing Historical or Tracked Data Using HAT" at http://go.microsoft.com/fwlink/?LinkId=106852.

See Also

Other Resources

Troubleshooting


Troubleshooting Installation Issues

This topic was last updated on: June 05, 2009

Installation of the Microsoft BizTalk Adapter Pack copies the product binaries on the computer and registers the bindings for each adapter. This section discusses using troubleshooting techniques to resolve installation errors.

Logging Messages for Setup Actions

The BizTalk Adapter Pack setup program performs the standard task of installing the BizTalk Adapter Pack. Additionally, the setup also performs certain custom actions such as registering the adapter bindings. You can log messages for both the standard as well as custom actions that the setup performs.

  • The BizTalk Adapter Pack setup installs the adapter-specific files using an MSI. Therefore, the logging for the setup is the standard MSI logging. For more information about logging for an MSI, see http://go.microsoft.com/fwlink/?LinkId=196953.

  • All logs for the custom actions that the setup program performs are available at %TEMP%\adaptersetup.log. If the tracing to the log file fails, the traces are also available in the event log.

Known Issues

The following are the most common errors you might encounter when installing the BizTalk Adapter Pack, along with their probable cause and resolution.

  • Setup fails to register adapter bindings

  • Error while using the Consume Adapter Service add-in or Add Adapter Service Reference plug-in on a 64-bit installation

  • Invalid binding error while configuring Oracle database adapter ports in BizTalk Server Administration Console on a 64-bit installation

Setup fails to register adapter bindings

Problem

The Microsoft BizTalk Adapter Pack setup wizard fails to register the adapter bindings, but proceeds with the adapter installation.

Cause

This might result due to problems with Windows Communication Foundation (WCF) installation, Microsoft Windows Communication Foundation (WCF) Line of Business (LOB) Adapter SDK installation, or the machine.config file being corrupt. The adapter bindings are written to the machine.config file.

Resolution

You should manually register the Oracle Database adapter binding.

To register the adapter binding

  1. Navigate to the machine.config file on the computer. For example, on a 32-bit platform, the machine.config is available under <system drive>:\WINDOWS\Microsoft.NET\Framework\<version>\CONFIG.

    In this path, <version> is the version of the .NET Framework.

  2. Open the file by using a text editor.

  3. To register the Oracle Database adapter binding:

    1. Search for the element "system.serviceModel" and add the following under it:

      Copy Code
      <client>
  <endpoint binding="oracleDBBinding" contract="IMetadataExchange" name="oracleDb" />
</client>
    2. Search for the element "bindingElementExtensions" under system.serviceModel\extensions.

    3. Look for the missing Oracle Database adapter binding. Add the following section under the "bindingElementExtensions" node.

      For Oracle Database adapter, add:

      Copy Code
      <add name="oracleDBAdapter" type="Microsoft.Adapters.OracleDB.OracleDBAdapterExtensionElement,Microsoft.Adapters.OracleDB, Version=<version>, Culture=neutral, PublicKeyToken=<public key>" />
    4. Search for the element "bindingExtensions" under system.serviceModel\extensions.

    5. Look for the missing Oracle Database adapter binding. Add the following section under the "bindingExtensions" node.

      For Oracle Database adapter, add:

      Copy Code
      <add name="oracleDBBinding" type="Microsoft.Adapters.OracleDB.OracleDBAdapterBindingSection,Microsoft.Adapters.OracleDB, Version=<version>, Culture=neutral, PublicKeyToken=<public key>" />
    Note
    For information about how to determine the public key and the version, see Determining the Public Key and Version.

  4. Save and close the machine.config file.

Determining the Public Key and Version

Perform the following steps to determine the public key for Oracle Database adapter.

To determine the public key

  1. Navigate to the Windows directory, typically C:\WINDOWS\assembly.

  2. Right-click the DLL for which you want the public key and the version, and then select Properties. The following table lists the name of the DLL for Oracle Database adapter.

    Adapter Name of the DLL

    Oracle Database adapter

    Microsoft.Adapters.OracleDB

  3. On the General tab, the value against the Public Key Token label specifies the public key for the DLL. Similarly, value against the Version label specifies the version number for the DLL.

  4. Copy the public key, and then click Cancel.

Error while using the Consume Adapter Service add-in or Add Adapter Service Reference plug-in on a 64-bit installation

Problem

Using the Add Adapter Service Reference Visual Studio Plug-in or the Consume Adapter Service BizTalk Project Add-in from Visual Studio on a 64-bit computer running 64-bit version of the BizTalk Adapter Pack results in the following error:

Copy Code
No valid adapters are installed on this machine

Cause

The Oracle Database adapter is a WCF custom binding, which is registered under System.ServiceModel in the machine.config file. A 64-bit platform has two machine.config files, one used by the 32-bit applications and the other used by the 64-bit applications. So, when you install the 64-bit version of the BizTalk Adapter Pack, the setup wizard registers the bindings in the 64-bit version of the machine.config file. However, Visual Studio runs as a 32-bit process and hence when you launch the Consume Adapter Service Add-in from Visual Studio, the plug-in checks for the bindings in the 32-bit version of the machine.config file and fails giving an error.

Resolution

  • Install both the 32-bit and 64-bit versions of the BizTalk Adapter Pack on a 64-bit WCF LOB Adapter SDK installation.

    Important
    You must only have a 64-bit WCF LOB Adapter SDK installation. Side-by-side installation of 32-bit and 64-bit WCF LOB Adapter SDK on a single computer is not supported.

  • Install both the 32-bit and 64-bit versions of the Oracle Data Access Components for Oracle Client 11.1.0.6 with Patch Set 11.1.0.7.

    Note
    To make sure your application works with the most recent version of ODP.NET, you must have the "policy DLLs" installed on the computer and registered in the GAC. For more information, see "Oracle Data Provider for .NET FAQ" at http://go.microsoft.com/fwlink/?LinkId=92834.

Invalid binding error while configuring Oracle database adapter ports in BizTalk Server Administration Console on a 64-bit installation

Problem

When you try to configure a port for the adapter in BizTalk Server Administration console, you get the following error:

Copy Code
"Unable to create binding configuration element for editing. Check the values of the BindingType and BindingConfiguration properties.
(Microsoft.Biztalk.Adapter.Wcf.Converters.CreateBindingException) Unable to get binding type for binding extension "oracleDBBinding".
Verify the binding extension is registered in machine.config."

Cause

The Oracle Database adapter is a WCF custom binding, which is registered under System.ServiceModel in the machine.config file. A 64-bit platform has two machine.config files, one used by the 32-bit applications and the other used by the 64-bit applications. So, when you install the 64-bit version of the BizTalk Adapter Pack, the setup wizard registers the bindings in the 64-bit version of the machine.config file. However, BizTalk Server Administration console runs as a 32-bit process and hence when you configure a port for the adapter, it checks for the bindings in the 32-bit version of the machine.config file and fails giving an error.

Resolution

  • Install both the 32-bit and 64-bit versions of the BizTalk Adapter Pack on a 64-bit WCF LOB Adapter SDK installation.

    Important
    You must only have a 64-bit WCF LOB Adapter SDK installation. Side-by-side installation of 32-bit and 64-bit WCF LOB Adapter SDK on a single computer is not supported.

  • Install both the 32-bit and 64-bit versions of the Oracle Data Access Components for Oracle Client 11.1.0.6 with Patch Set 11.1.0.7.

    Note
    To make sure your application works with the most recent version of ODP.NET, you must have the "policy DLLs" installed on the computer and registered in the GAC. For more information, see "Oracle Data Provider for .NET FAQ" at http://go.microsoft.com/fwlink/?LinkId=92834.

See Also

Other Resources

Troubleshooting


Troubleshooting Operational Issues

This topic was last updated on: June 05, 2009

This section discusses using troubleshooting techniques to resolve operational errors that you might encounter when using Microsoft BizTalk Adapter for Oracle Database.

Enabling Tracing

For information about tracing support in the Oracle Database adapter, see Diagnostic Tracing and Message Logging.

Known Issues

The following are the most common errors you might encounter when using the Oracle Database adapter, along with their probable cause and resolution.

  • Error in loading the adapter bindings

  • The Oracle database adapter does not display in the list of adapters in BizTalk Server Administration console

  • Error while retrieving XML output with more than 65,536 nodes

  • Error while performing operations on the Oracle database

  • XmlReaderParsingException due to an incorrect operation name in the specified action

  • Error while specifying a connection URI for a WCF-Custom port in BizTalk

  • Invalid cursor exception while invoking stored procedures that take REF CURSOR parameters

  • Error while validating the response for the ReadLOB operation using BizTalk Server

  • Schema validation may fail in polling scenarios

  • 'Unreasonable conversion requested' error when executing stored procedures with Record Types as parameters

  • The adapter does not recognize the action on the physical port even though you use the binding file generated by the Consume Adapter Service add-in to create the ports

  • Adapter throws an overflow exception (“System.OverflowException”) on executing an operation

  • Error with RootNode TypeName in BizTalk Projects

  • Invalid binding warning when using the adapter in Visual Studio

  • BizTalk Server throws an exception if you use more than one Notification schema in the same application or use the Notification schema across multiple applications on the same host

  • Memory usage and thread count increases when using the adapter in a transacted inbound operation

Error in loading the adapter bindings

Problem

When you try to start the Add Adapter Service Reference Visual Studio Plug-in or the Consume Adapter Service BizTalk Project Add-in, you get the following error:

Copy Code
There was an error loading the binding, <binding name>, from your system configuration.
ConfigurationErrorsException: Exception has been thrown by the target of an invocation.

Cause

When you try to start the Add Adapter Service Reference Plug-in or the Consume Adapter Service Add-in, WCF loads the adapter bindings for all the installed adapters. In turn, the adapter bindings are dependent on the specific client software for the enterprise application. You might face this issue for one or both of the following reasons:

  • The required LOB client software is not installed on the computer where you installed the adapter.

  • You did a Typical or Complete installation of the adapter, which installs all the adapters contained in the BizTalk Adapter Pack. However, the LOB client libraries might be installed for only one enterprise application. As a result, the GUI fails to load the bindings for the other adapters.

Resolution

  • Make sure that the required LOB client versions are installed on the computer where you installed the BizTalk Adapter Pack. For information about the supported client versions, see Frequently Asked Questions.

  • Make sure you do a custom installation of the adapters to install only the adapter you need.

    Note
    To make sure your application works with the most recent version of ODP.NET, you must have the "policy DLLs" installed on the computer and registered in the GAC. For more information, see the ODP.NET FAQ at http://go.microsoft.com/fwlink/?LinkId=92834.

The Oracle database adapter does not display in the list of adapters in BizTalk Server Administration console

Problem

Unlike the earlier version of the adapters shipped with BizTalk Server, the Oracle Database adapter shipped with BizTalk Adapter Pack does not show up in the list of adapters in the BizTalk Server Administration console.

Cause

The latest Oracle Database adapter is a WCF custom binding. So, although the BizTalk Server Administration console displays the WCF-Custom adapter, it does not display the WCF custom bindings and hence, does not display the WCF-based Oracle Database adapter.

Resolution

You can explicitly add the Oracle Database adapter to the BizTalk Server Administration console by following the steps mentioned in Adding the Oracle Database Adapter to BizTalk Server Administration Console.

Error while retrieving XML output with more than 65,536 nodes

Problem

The adapter gives the following error when retrieving XML output that has more than 65,536 nodes.

Copy Code
Maximum number of items that can be serialized or deserialized in an object graph is '65536'.
Change the object graph or increase the MaxItemsInObjectGraph quota.

Cause

The adapter cannot serialize and deserialize an object with more than 65,536 items.

Resolution

You can fix this issue by setting the maxItemsInObjectGraph parameter. You can set this in either of the following two ways:

  • Set this parameter by changing the maxItemsInObjectGraph parameter in the ServiceBehavior attribute on your service class.

  • Add the following to your application's app.config file.

    Copy Code
    <behaviors>
  <endpointBehaviors>
    <behavior name="NewBehavior">
      <dataContractSerializer maxItemsInObjectGraph="65536000" />
    </behavior>
  </endpointBehaviors>
</behaviors>

A sample app.config looks like this.

Copy Code
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.serviceModel>
    <behaviors>
      <endpointBehaviors>
        <behavior name="NewBehavior">
         <dataContractSerializer maxItemsInObjectGraph="65536000" />
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <client>
      <endpoint   behaviorConfiguration="NewBehavior" binding="oracleDBBinding"
       contract="IOutboundContract" name="oracle_ICalculator" />
    </client>
  </system.serviceModel>
</configuration>

Error while performing operations on the Oracle database

Problem

The adapter gives the following error when performing any operation on the Oracle database using BizTalk Server.

  • For BizTalk Server 2013 R2

    Copy Code
    System.ArgumentNullException: Value cannot be null.

Cause

The WCF action for the message is not specified. WCF requires a SOAP action to be specified for every operation, which informs the adapter about the operation to be performed on the LOB application.

Resolution

Specify the SOAP action in the send port or as a message context property in a BizTalk orchestration. For instructions, see Specifying SOAP Action. See Technical Reference to see a list of actions for each operation.

XmlReaderParsingException due to an incorrect operation name in the specified action

Problem

The BizTalk Server Administration Console gives the following error when sending messages to an Oracle database:

Copy Code
Microsoft.ServiceModel.Channels.Common.XmlReaderParsingException: Invalid argument:
<BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Operation Name="<operation_name>" Action="<action>" />
</BtsActionMapping>

Cause

If you configure a WCF-Custom port by importing the port binding file created by the Consume Adapter Service BizTalk Project Add-in, the action in the port is specified in the following format:

Copy Code
<BtsActionMapping>
  <Operation Name="Op1" Action="http://MyService/Svc/Op1" />
</BtsActionMapping>

In the above format, the operation name is governed by the operation you chose while generating the schema. For example, if you generated schema for the Insert operation on a table, the operation name in the action will be "Insert". However, the operation name in the logical port created in the BizTalk orchestration in Visual Studio might be different.

Resolution

Make sure the operation names in both the logical port (in the BizTalk orchestration in Visual Studio) and the physical port (in BizTalk Server Administration Console) are same.

Error while specifying a connection URI for a WCF-Custom port in BizTalk

Problem

BizTalk Server gives the following error when you specify a connection URI to connect to the Oracle database.

Copy Code
Error saving properties.
(System.ArgumentException) The specified address is invalid.
(System.ArgumentException) Invalid address;
"<connection URI>" is not a well-formed absolute uri.

Cause

The connection URI does not adhere to the standard encoding format. For example, the value for a parameter might contain a space.

Resolution

Make sure the connection URI you specify adheres to the standard encoding format. For example, a blank space must be replaced by "%20".

Invalid cursor exception while invoking stored procedures that take REF CURSOR parameters

Problem

When you invoke procedures in the Oracle database that take REF CURSOR inputs, you might get the following exception:

Copy Code
Microsoft.ServiceModel.Channels.Common.TargetSystemException: ORA-01001: invalid cursor ---> Oracle.DataAccess.Client.OracleException

Cause

The PL/SQL block for the procedure that you are invoking could be piping the REF CURSORs, that is, the IN REF CURSOR could be getting assigned to the OUT REF CURSOR.

Resolution

The PL/SQL block must not pipe the IN to the OUT REF CURSORs without proper processing.

Error while validating the response for the ReadLOB operation using BizTalk Server

Problem

While performing a ReadLOB operation using the Oracle Database adapter with BizTalk Server, the response from the Oracle database fails validation against the Web Services Description Language (WSDL).

Cause

The WSDL contains a StreamBody node name that is defined for execution of service-based requests, but is not needed for BizTalk scenarios. Therefore, when the output XML, which does not contain the StreamBody node, is compared with the WSDL, validation fails.

Resolution

Remove the StreamBody node from the WSDL when validating against the output that was generated using BizTalk Server. Perform the following steps to do so:

  1. The WSDL containing the StreamBody node looks like this.

    Copy Code
    <xs:element name="ReadLOBResponse">
    <xs:annotation>
      <xs:documentation>
        <doc:action xmlns:doc="http://schemas.microsoft.com/servicemodel/adapters/metadata/documentation">http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/TBL_ALL_DATATYPES/ReadLOB/response</doc:action>
      </xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="1" name="ReadLOBResult" nillable="true" type="ns3:StreamBody" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

    Replace the preceding with the following.

    Copy Code
    <xs:element name="ReadLOBResponse">
 <xs:annotation>
 <xs:documentation>
  <doc:action xmlns:doc="http://schemas.microsoft.com/servicemodel/adapters/metadata/documentation">http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/TBL_ALL_DATATYPES/ReadLOB/response</doc:action>
  </xs:documentation>
  </xs:annotation>
 <xs:complexType>
 <xs:sequence>
  <xs:element minOccurs="1" maxOccurs="1" name="ReadLOBResult" type="xs:base64Binary" />
  </xs:sequence>
  </xs:complexType>
  </xs:element>
    In this step, you removed the reference to type="ns3:StreamBody" in the original XSD and replaced it with type="xs:base64Binary". Also, you removed the nillable="true" value from the original XSD.

  2. Remove the following from the WSDL.

    Copy Code
    <xs:complexType name="StreamBody">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="Stream">
        <xs:simpleType>
          <xs:restriction base="xs:base64Binary">
            <xs:minLength value="0" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="StreamBody" nillable="true" type="ns3:StreamBody" />
    Note
    ReadLOB operation is not supported with BizTalk Server. You should use a table Select operation to read LOB data from a BizTalk Server solution.

Schema validation may fail in polling scenarios

Problem

Schema validation fails in scenarios where the Oracle Database adapter polls database tables that contain fields of type ROWID or UNROWID.

Cause

At design-time, when the adapter generates metadata for the table containing fields of type ROWID or UNROWID, the schema includes “nillable=false”, which means that fields of type ROWID or UNROWID cannot be null. However, at run-time when the adapter retrieves the metadata, the fields of type ROWID or UNROWID contain null values. Hence the schema validation fails.

Resolution

If you are using the Oracle Database adapter with BizTalk Server, you may choose to disable schema validation. Alternatively, you may manually edit the schema to change “nillbale=true” for ROWID and UNROWID data types.

'Unreasonable conversion requested' error when executing stored procedures with Record Types as parameters

Cause

Consider a scenario where an Oracle stored procedure takes a Record Type as a parameter. Assume that the Record Type is declared as <table name>%ROWTYPE, where the table has a column of LONG data type. When the Oracle Database adapter encounters the LONG data type, it sets the size of the data type equal to the value specified for the LongDatatypeColumnSize binding property. However, the Oracle database does not define a size for the LONG data type. So, when the adapter invokes the stored procedure, it results in an ‘Unreasonable conversion requested’ error.

Resolution

If a Record Type has a LONG data type, you must explicitly define it as part of a package.

The adapter does not recognize the action on the physical port even though you use the binding file generated by the Consume Adapter Service add-in to create the ports

Problem

After you use the Consume Adapter Service Add-in to generate schema for a specific operation on the Oracle database, the add-in also creates a port binding file. You can import this binding file using the BizTalk Server Administration console to create physical ports in BizTalk Server. However, when you send messages to the Oracle database using such ports, the adapter fails to understand the action specified on the port and gives an error similar to the following:

Copy Code
Microsoft.ServiceModel.Channels.Common.UnsupportedOperationException: Incorrect Action
<BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Operation Name="<op_name>" Action="<action>" />
</BtsActionMapping>. Correct the specified Action, or refer to the documentation on the allowed formats for the Actions.

Cause

When you create logical ports in a BizTalk orchestration, you specify certain names for the operations on those ports or you just use the default names like Operation_1, Operation_2, etc. However, in the binding file generated by the Consume Adapter Service Add-in, the operation name is same as the name of the Oracle database operation for which you generate metadata. For example, if you generate metadata for Select operation on ACCOUNTACTIVITY table in the Oracle database, the action will be set to the following:

Copy Code
<Operation Name="Select" Action="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/ACCOUNTACTIVITY/Select" />

When you import the binding file, the same action is set on physical port. So, the operation names on the logical port (Operation_1, Operation_2, etc.) do not match the operation names specified in the action on the physical port, resulting in an error.

Resolution

Make sure the operation name in the logical port is the same as the operation name specified as part of the action in the physical port. Do one of the following:

  • Change the operation name in the logical port in BizTalk orchestration from Operation_1, etc. to the operation for which you generate metadata, for example Select.

  • Change the operation name in the action on the physical port to the operation name in the logical port. For example, you could change the action in the physical port to resemble the following:

    Copy Code
    <Operation Name="Operation_1" Action="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/ACCOUNTACTIVITY/Select" />

Adapter throws an overflow exception (“System.OverflowException”) on executing an operation

Problem

Using the adapter, if you try to perform an operation containing Oracle numeric data types inside DataSets or weakly-typed REF CURSORS, the adapter might throw an overflow exception.

Cause

This happens if you supply a large value for the Oracle numeric data type inside DataSets or weakly-typed REF CURSORS that cannot fit into the respective .NET type.

Resolution

If you want to pass large values for the Oracle numeric data type inside DataSets or weakly-typed REF CURSORS, you must enable safe typing by setting the value of the EnableSafeTyping binding property to true. Enabling safe typing exposes the Oracle numeric data type inside DataSets or weakly-typed REF CURSORS as strings.

Error with RootNode TypeName in BizTalk Projects

Problem

In a BizTalk project in Visual Studio, if the schemas generated from the Consume Adapter Service Add-in contains invalid characters or reserved words for the RootNode TypeName property, the following error will occur while compiling the project:

Copy Code
Node <node reference> - Specify a valid .NET type name for this root node.
The current .NET type name of this root node is invalid (it is a reserved BizTalk Keyword or is an invalid C# identifier).

Resolution

  1. Right-click the rood node referenced in the error and select Properties.

  2. For the RootNode TypeName property, remove any illegal characters or reserved words, for example, dot (.).

Invalid binding warning when using the adapter in Visual Studio

Problem

When you use the adapter to create an application in Visual Studio 2013 and you open the configuration file (app.config) generated by the adapter, you see a warning similar to the following:

Copy Code
The element 'bindings' has invalid child element 'oracleDBBinding'. List of possible elements expected: 'basicHttpBinding, customBinding, ...

Cause

This warning appears because the Oracle Database adapter binding, oracleDBBinding, is not a standard binding shipped with the Windows Communication Foundation (WCF).

Resolution

You can safely ignore this warning.

BizTalk Server throws an exception if you use more than one Notification schema in the same application or use the Notification schema across multiple applications on the same host

Problem

BizTalk Server throws an XLANG exception or an exception stating that the application cannot locate the document specification because multiple schemas matched the message type.

Cause

This happens because of either of the following:

  • You have generated more than one Notification schema in a BizTalk Server project, deployed it to a BizTalk Server application, and then ran the application to receive notifications from the Oracle database. Because the Notification schemas are common, there is a conflict between the schemas that are deployed in the BizTalk Server application.

  • In case of multiple projects, you have generated a Notification schema for each of the BizTalk Server projects, deployed each project to a separate BizTalk Server application on the same host, and then ran an application or applications to receive notifications from the Oracle database. Because the schemas and assemblies are accessible across the applications in BizTalk Server, there is a conflict between the common schemas deployed under various BizTalk Server applications and assemblies.

Resolution

Use a single Notification schema file for a BizTalk Server application. If you need to use the Notification schema in multiple BizTalk Server applications on the same host, create an application containing a single Notification schema, and then use the notification schema from all other applications in BizTalk Server.

Memory usage and thread count increases when using the adapter in a transacted inbound operation

Problem

In a transacted inbound operation, such as Polling, if there is no data available in the table being polled and the adapter continues to poll, over a period of time you experience an increase in the memory usage and the thread count.

Cause

If there is no data available in the table being polled, after every receive timeout cycle, Windows Communication Foundation (WCF) spawns a new thread to continue the polling operation. Hence, the thread count and memory usage increases over a period of time. However, if the table being polled has some data, the same thread continues to perform all subsequent polls.

Resolution

We recommend setting the ReceiveTimeout to the maximum possible value, which is 24.20:31:23.6470000 (24 days) so that a new thread is spawned only every 24 days. This will ensure that the memory usage and thread count does not grow too much too soon.

Note
If SqlAdapterInboundTransactionBehavior has been set, make sure the TransactionTimeout is also configured to maximum possible value, which is 24.20:31:23.6470000 (24 days). When using this workaround, we can add the SqlAdapterInboundTransactionBehavior only if the transaction isolation level has to be configured. Else, it is a best practice to remove that behavior.

For more information about the ReceiveTimeout binding property, see Working with BizTalk Adapter for Oracle Database Binding Properties. For instructions on specifying binding properties, see Specifying Binding Properties.

Note
When using the adapter with BizTalk Server, setting the timeout to a large value does not impact the functionality of the adapter.

See Also

Tasks

Troubleshooting Installation Issues

Other Resources

Troubleshooting


Troubleshooting Performance Issues

This topic was last updated on: June 05, 2009

This section discusses using troubleshooting techniques to resolve performance issues that you might encounter when using Microsoft BizTalk Adapter for Oracle Database.

Known Issue

The following is the most common performance issue you might encounter when using the Oracle Database adapter, along with its probable cause and resolution.

  • Slowdown or stall in throughput when using the adapter with BizTalk Server

Slowdown or stall in throughput when using the adapter with BizTalk Server

Problem

When using the Oracle Database adapter with BizTalk Server, the number of messages sent or received by the adapter slows down or comes to a stall.

Cause

The EnableBizTalkCompatibilityMode binding property is not set on the WCF-Custom send or receive port in BizTalk Server Administration console.

Resolution

Set the EnableBizTalkCompatibilityMode binding property to True. For more information about this property, see Working with BizTalk Adapter for Oracle Database Binding Properties. For instructions on how to set a binding property, see Specifying Binding Properties.

Possible memory leak on a 64-bit computer when using the Oracle database adapter to perform operations involving FLOAT data type

Problem

You may experience a memory leak when using the Oracle Database adapter on a 64-bit computer to perform operations that involve FLOAT data types.

Resolution

Install .NET <version> (x64) on the 64-bit computer.

See Also

Other Resources

Troubleshooting


Using Performance Counters

Microsoft BizTalk Adapter Pack clients can use performance counters to gauge the performance of the adapters. The BizTalk Adapter Pack setup program creates the performance counter category BizTalk .NET Adapter for Oracle DB along with installing the BizTalk Adapter Pack.

The LOB Time (Cumulative) Performance Counter

The BizTalk .NET Adapter for Oracle DB category has one performance counter called the “LOB Time (Cumulative).” This performance counter denotes the time, in milliseconds, that the LOB client library takes to complete an action that the adapter initiates. The Oracle Database adapter creates an instance of the performance counter in any of the following patterns:

Copy Code
<process id>:<app domain id>:<oracle data source>:<string>

Where "string" could be:

  • Connection.Open

  • Connection.Close

  • Metadata

  • Message action. For example, if the action is http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert then the string will be SCOTT.Table.EMP.Insert.

The Oracle data source is the same as specified in the connection URI.

The performance counter is initialized only after the adapter makes the first call to the Oracle database. Also, the InstanceLifetime property of the performance counter is set to 'Process', which means that the performance counter ceases to exist as soon as the program that creates the counter terminates. For more information about the InstanceLifetime property, see http://go.microsoft.com/fwlink/?LinkId=104181.

Note
The precision of the LOB Time (Cumulative) performance counter is 16 milliseconds.

Enabling Performance Counters

The performance counters can be enabled or disabled by setting the binding property EnablePerformanceCounters. To enable performance counters, set the EnablePerformanceCounters binding property to True. To disable performance counters, set EnablePerformanceCounters to False. By default, EnablePerformanceCounters is set to False.

Performance Counters and the WCF LOB Adapter SDK

Changing the value of the EnablePerformanceCounters binding property also changes the value of the corresponding performance counter for the WCF LOB Adapter SDK. Also, the binding property for the WCF LOB Adapter SDK is static, whereas that for the BizTalk Adapter Pack is dynamic. Therefore, if there are two instances of the Oracle Database adapter binding in the AppDomain, and the EnablePerformanceCounters binding property is set to True in one and False in the other, the adapter-specific performance counter will be enabled in one and disabled in the other. However, because the binding property for WCF LOB Adapter SDK is static, it will either be set to True or False depending on what value was specified last.

See Also

Other Resources

Troubleshooting


Exceptions and Error Handling

This section lists the exceptions that the Microsoft BizTalk Adapter for Oracle Database throws. These can contain:

  • An inner exception, which is a system exception that the .NET Framework throws.

  • An LOB exception that the LOB client library throws.

For more information about the inner exception, see the respective .NET Framework or Oracle documentation. Exceptions also contain a detailed error message that helps in resolving the problem.

Exception | Possible Cause/Description
XmlReaderParsingException | The adapter throws this exception if it does not support the specified type, or if an incorrect value is specified for the type. Also, the input XML might be incorrect. An incorrect value includes cases where the maximum amount of text or maximum digits is exceeded. The input XML might be incorrect if the operation name or namespace is incorrect.
UnsupportedOperationException | The adapter throws this exception when the adapter client specifies an invalid action.
ArgumentException | The adapter throws this exception if an incorrect value is specified for an argument.
NotImplementedException | The adapter throws this exception if some method in the XMLReader reader is not implemented.
ArgumentNullException | The adapter throws this exception if a required argument is not specified.
ArgumentOutOfRangeException | The adapter throws this exception if it tries to access a non-existent entity or out-of-range entity.
XmlReaderGenerationException | The adapter throws this exception when it is unable to generate an XmlReader from the output message.
MetadataException | The adapter throws this exception if there is an error during metadata retrieval, browse, or search.
CredentialsException | The adapter throws this exception if there is a problem retrieving or using security tokens or if the required credentials are not specified.
InvalidUriException | The adapter throws this exception if the connection URI does not have the required components for the connection string.
ConnectionException | The adapter throws this exception if there is a problem connecting to the Oracle database using ODP.NET. The inner exception contains the Oracle exception.
TimeoutException | The adapter throws this exception if the timeout specified for an operation is lapsed. The inner exception contains the specifics of why the specified timeout was not sufficient.
ListenerException | The adapter throws this exception if there is a problem in receiving a message from the target system. This message denotes a problem related to the Oracle listener. The inner exception has the specifics of the issue.
TargetSystemException | The adapter throws this exception if Oracle returns an error or invalid response. The inner exception contains the Oracle runtime exception.
InvalidOperationException | The adapter throws this exception if adapter tries to perform an invalid operation on the target system. The inner exception contains the specifics of the invalid operation being performed.
OverflowException | The adapter throws this exception if while performing operation containing Oracle numeric data types inside DataSets or weakly-typed REF CURSORS, a large value is specified for these Oracle numeric data types that cannot fit into the respective .NET type.

See Also

Other Resources

Troubleshooting


Technical Reference

This section covers technical reference information about Microsoft BizTalk Adapter for Oracle Database.

In This Section

  • Messages and Message Schemas for BizTalk Adapter for Oracle Database

  • Metadata Node IDs

  • Using the ServiceModel Metadata Utility Tool with the BizTalk Adapter for Oracle Database

  • Glossary


Messages and Message Schemas for BizTalk Adapter for Oracle Database

The Microsoft BizTalk Adapter for Oracle Database is a Windows Communication Foundation (WCF) custom binding. It exposes operations that applications can invoke on it and that it can, in turn, invoke on applications. These operations are invoked by sending SOAP messages over a channel. If a response is required, it is returned in a SOAP message over the same channel.

As a WCF service, the Oracle Database adapter exposes metadata for its operations and data types by using standard WCF mechanisms. The sections in this topic describe the XML structure of the messages and data types that the Oracle Database adapter uses.

In This Section

  • Basic Oracle Data Types

  • Message Schemas for the Basic Insert, Update, Delete, and Select Operations on Tables and Views

  • Message Schemas for Special LOB Operations

  • Message Schemas for Functions and Procedures

  • Message Schemas for REF CURSORS

  • Message Schemas for RECORD Types

  • Message Schemas for the SQLEXECUTE Operation

  • Message Schemas for the Polling Operations

  • Message Schemas for the Composite Operation

  • Message Schemas for the Notification Operation

See Also

Other Resources

Technical Reference


Basic Oracle Data Types

This topic describes how the Microsoft BizTalk Adapter for Oracle Database surfaces basic Oracle data types.

Supported Oracle Data Types

The Microsoft BizTalk Adapter for Oracle Database supports safe typing for some Oracle data types. When safe typing is enabled, these data types are represented as strings. You configure safe typing by setting the EnableSafeTyping binding property. Safe typing is disabled by default. For more information about the Oracle Database adapter binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties.

Note
Safe typing is not supported if data types are inside User Defined Types (UDTs).

The following table shows how the Oracle data types are surfaced with safe typing disabled (EnableSafeTyping is false). Oracle data types that are affected by the EnableSafeTyping binding property are marked with an asterisk (*).

Oracle Data Type XSD type .NET type Comments

BFile

input: xsd:string
output: xsd:base64Binary

String
Byte[]

BFile data type is not supported inside complex types (such as RecordType, TableType, UDT, and VArray).

Blob

xsd:base64Binary

Byte[]

Supported for table operations and procedures.

Char

xsd:string

String

Supported for table operations and procedures.

Clob

xsd:string

String

Supported for table operations and procedures.

Date*

(No safe typing if inside an UDT)

xsd:dateTime

DateTime

Date values cannot contain time zone information (UTC or UTC offsets):

  • xsd:dateTime values must not contain UTC or UTC offsets

  • DateTime.Kind must be DateTimeKind.Unspecified

If time zone information is specified, the adapter throws an XmlReaderParsingException exception with a message that indicates the field.

Float**

xsd:float if prec <=7
xsd:double if prec > 7 and <=15
xsd:string if prec > 15

Float
Double
String

-

IntervalYM

xsd:string

xsd:long if inside an UDT

String

Long if inside an UDT

The value should be expressed in Oracle native format: Year-Month; For example, "1-2" (1 year and 2 months).

IntervalDS

xsd:string

xsd:duration if inside an UDT

String

Timespan if inside an UDT

The value should be expressed in Oracle native format: Day HH:MI:SSxFF; for example, "5 15:30:12.99"

Long

xsd:string

String

Supported for all table operations, stored procedures, and functions.

Note
Starting with the Oracle database 9i release, the LONG data type is deprecated. Oracle recommends using the LOB data types instead. Hence, when performing operations on the Oracle database using the Oracle Database adapter, we recommend using Oracle database artifacts that operate on LOB data types and not the LONG data type.

LongRaw

xsd:base64Binary

Byte[]

-

NChar

xsd:string

String

-

NClob

xsd:string

String

Supported for table operations and procedures.

Number**

xsd:decimal if prec <=28
xsd:string if prec > 28

Decimal
String

-

NVarchar2

xsd:string

String

-

Raw

xsd:base64Binary

Byte[]

Supported for table operations and procedures.

RowID

xsd:string

String

-

TimeStamp*

(No safe typing if inside an UDT)

xsd:dateTime if prec <= 7
xsd:string if prec > 7

DateTime
String

TimeStamp values cannot contain time zone information (UTC or UTC offsets):

  • xsd:dateTime values must not contain UTC or UTC offsets

  • DateTime.Kind must be DateTimeKind.Unspecified

If time zone information is specified, the adapter throws an XmlReaderParsingException exception with a message that indicates the field.

TimeStampLTZ

xsd:string

String

TimeStampLTZ is not supported inside UDTs.

Outside an UDT: The value should be expressed in NLS_TIMESTAMP_TZ_FORMAT.

TimeStampTZ

xsd:string

xsd:dateTime if inside an UDT

String

DateTime if inside an UDT

Outside an UDT: The value should be expressed in NLS_TIMESTAMP_TZ_FORMAT.

Decimal**

xsd:decimal if prec <=28
xsd:string if prec > 28

Decimal
String

-

Varchar2

xsd:string

String

-

Binary Float**

xsd:float if prec <=7
xsd:string if prec > 7

Float
String

You must specify the value in a form consistent with your locale (System.Globalization.CultureInfo.CurrentCulture). For example, for English locale use a period character (‘.’) to specify the decimal; for French locale, use a comma character (‘,’).

Binary Double**

xsd:double if prec <=15
xsd:string if prec > 15

Double
String

-

Binary Integer**

xsd:integer

Int32

Supported for procedures, functions, and packages.

Boolean

xsd:boolean

Nullable boolean

XMLTYPE

xsd:string

String

Supported for top level procedure parameters.

Reserved XML characters like ‘<’, ‘>’ must be replaced with their entity representation (&lt;, &gt;) when developing applications in BizTalk, and when using WCF channel Model. This is not required in the case of WCF Service Model.

*The way in which these Oracle data types are surfaced is affected by the EnableSafeTyping binding property.

**The way in which these Oracle numeric data types inside DataSets and weakly-typed REF CURSORS are surfaced is affected by the EnableSafeTyping binding property.

Important
  • The maximum length of the value in an Oracle data type in the Oracle Database adapter is bound by the maximum length of the value supported by ODP.NET for the Oracle data type.

  • The Oracle Database adapter internally treats the Oracle numeric data types inside UDTs as .NET Decimal. However, in general (that is outside UDTs), the Oracle Database adapter internally treats the Oracle numeric data types as OracleDecimal.

Safe Typing Enabled

The following table shows how the Oracle data types that are affected by safe typing are changed when the EnableSafeTyping binding property is true.

Oracle Data Type | XSD type | .NET type | Comment
Date | xsd:string | String | The value should be expressed in Oracle NLS_DATE_FORMAT.
TimeStamp | xsd:string | String | The value should be expressed in Oracle NLS_TIMESTAMP_FORMAT.
Important
If safe typing is enabled, the Oracle numeric data types inside DataSets and weakly-typed REF CURSORS are always exposed as strings.

Oracle data types that are not in this table are surfaced in the same way whether safe typing is enabled or disabled.

Validation

The Microsoft BizTalk Adapter for Oracle Database performs no explicit validation on the values that you specify for Oracle data types. However, depending on the Oracle data type and whether safe typing is enabled or disabled, implicit validation may be performed:

  • When de-serializing between the XML passed in a message and the .NET types that are used internally by the adapter.

  • By ODP.NET for some data types.

See Also

Other Resources

Technical Reference


Message Schemas for the Basic Insert, Update, Delete, and Select Operations on Tables and Views

The Microsoft BizTalk Adapter for Oracle Database surfaces basic Insert, Update, Delete, and Select operations for each table and view in the Oracle database. These operations perform the appropriate SQL statement qualified by a WHERE clause. The Oracle Database adapter uses strongly-typed records and record sets in these operations.

Message Structure for Basic Table Operations

The following table shows the XML message structure for the basic table operations exposed by the Oracle Database adapter on Oracle database tables. The target table for an operation is specified in the message action and also appears in the target namespace.

Operation XML Message Description SQL Executed by the Adapter

Insert

Multiple Record Insert:

Copy Code
<Insert xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
  <RECORDSET>
    <[TABLE_NAME]RECORDINSERT>
      <[FIELD1_NAME InlineValue="value"]>value1</[FIELD1_NAME]>
      <[FIELD2_NAME InlineValue="value"]>value2</[FIELD2_NAME]>
      …
    </[TABLE_NAME]RECORDINSERT>

    <[TABLE_NAME]RECORDINSERT >
      <[FIELD1_NAME InlineValue="value"]>value1</[FIELD1_NAME]>
      <[FIELD2_NAME InlineValue="value"]>value2</[FIELD2_NAME]>
      …
    </[TABLE_NAME]RECORDINSERT>
    …
  </RECORDSET>
</Insert>

Bulk Insert:

Copy Code
<Insert xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
  <COLUMN_NAMES>[COLUMN_list]</COLUMN_NAMES>
  <QUERY>[SELECT_query]</QUERY>
</Insert>

There are two types of Insert operations:

  • Multiple Record Insert inserts the supplied record set of strongly-typed data into the target table.

    For each record in a multiple record insert, you can specify value for an optional attribute called InlineValue. If specified, it overrides the value of the element.

  • Bulk Insert inserts the record set returned by a SELECT query specified in the QUERY element into the target table. This is done by using the comma-separated list of columns specified in the COLUMN_NAMES element.

A message can contain only one kind of Insert operation.

  • Multiple Record Insert

    Copy Code
    INSERT INTO TABLE_NAME (FIELD1_NAME, FIELD2_NAME, …)VALUES (value1, value2, …);
  • Bulk Insert

    Copy Code
    INSERT INTO TABLE_NAME (COLUMN_list) SELECT_query;

Insert Response

Copy Code
<InsertResponse xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
  <InsertResult>[rows inserted]</InsertResult>
</InsertResponse>

The number of rows inserted is returned in the InsertResult element.

--

Select

Copy Code
<Select xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
  <COLUMN_NAMES>[COLUMN_list]</COLUMN_NAMES>
  <FILTER>WHERE_clause</FILTER>
</Select>

A SELECT query is performed on the target table using the WHERE clause specified in the FILTER element. The result set contains the columns in the comma-separated list of column names specified in the COLUMN_NAMES element.

Copy Code
SELECT COLUMN_list FROM TABLE_NAME WHERE WHERE_clause;

Select Response

Copy Code
<SelectResponse  xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
  <SelectResult>
    <[TABLE_NAME]RECORDSELECT>
      <[FIELD1_NAME]>value1</[FIELD1_NAME]>
      <[FIELD2_NAME]>value2</[FIELD2_NAME]>
      …
    </[TABLE_NAME]RECORDSELECT>
  </SelectResult>
</SelectResponse>

The result set generated by the SELECT query.

--

Update

Copy Code
<Update xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
  <RECORDSET>
    <[FIELD1_NAME]>value1</[FIELD1_NAME]>
    <[FIELD2_NAME]>value2</[FIELD2_NAME]>
      …
  </RECORDSET>
  <FILTER>WHERE_clause</FILTER>
</Update>

Rows that match the where clause specified in the FILTER element are updated to the values specified in the RECORDSET. Only the columns that are specified in the RECORDSET are updated in each matching row.

Copy Code
UPDATE [TABLE_NAME] SET [FIELD1_NAME] = value1, [FIELD2_NAME] = value2, … WHERE WHERE_clause;

Update Response

Copy Code
<UpdateResponse xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
  <UpdateResult>[rows inserted]</UpdateResult>
</UpdateResponse>

The number of rows updated is returned in the UpdateResult element.

--

Delete

Copy Code
<Delete xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
  <FILTER>WHERE_clause</FILTER>
</Delete>

Rows matching the WHERE clause specified by the FILTER element are deleted.

Copy Code
DELETE FROM [TABLE_NAME] WHERE WHERE_clause;

Delete Response

Copy Code
<DeleteResponse xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
  <DeleteResult>[rows inserted]</DeleteResult>
</DeleteResponse>

The number of rows deleted is returned in the DeleteResult element.

--

[VERSION] = The message version string; for example, http://Microsoft.LobServices.OracleDB/2007/03.

[SCHEMA] = Collection of Oracle artifacts; for example, SCOTT.

[TABLE_NAME] = Name of the table; for example, EMP.

[FIELD1_NAME] = Table field name; for example, EMPNAME.

[COLUMN_list] = Comma-separated list of columns; for example, NAME.

[SELECT_query] = A SQL SELECT statement specified in the QUERY element of a Bulk Insert operation; for example, "SELECT * from MyTable"

[WHERE_clause] = WHERE_clause for the SELECT statement used for the operation; for example, ID > 10.

Important
The message structure for the basic table operations on views is the same as that on tables, but the namespace for the operation specifies a view rather than a table: <Insert xmlns ="[VERSION]/[SCHEMA]/View/[VIEW_NAME]">.

Message Actions for Basic Table Operations

The following table shows the message actions that are used by the Oracle Database adapter for the basic table operations on tables. The Oracle Database adapter uses the table name specified in the message action to determine the target table of the operation.

Operation | Message Action | Example
Insert | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Insert | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert
Insert Response | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Insert/response | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert/response
Select | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Select | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Select
Select Response | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Select/response | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Select/response
Update | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Update | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Update
Update Response | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Update/response | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Update/response
Delete | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Delete | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Delete
Delete Response | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Delete/response | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Delete/response

[VERSION] = The message version string; for example, http://Microsoft.LobServices.OracleDB/2007/03.

[SCHEMA] = Collection of Oracle artifacts; for example, SCOTT.

[TABLE_NAME] = Name of the table; for example, EMP.

Important
The message action for an operation on a view is the same as that for a table except that "View" replaces "Table"; for example, http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/View/EMPVIEW/Insert.

See Also

Other Resources

Messages and Message Schemas for BizTalk Adapter for Oracle Database


Message Schemas for Special LOB Operations

The ReadLOB and UpdateLOB operations are surfaced for tables and views that contain LOB columns; that is columns that are used to store Oracle large object (LOB) data. These operations enable you to read or write the LOB data as a stream of base64Binary-encoded data. They operate on a single column of LOB data in a single row.

For an overview of the ReadLOB and UpdateLOB operations and of the Oracle LOB data types supported, see Operations on Tables and Views That Contain LOB Data.

Message Structure of LOB Data-Type Operations

The following table shows the structure of the request and response messages for the ReadLOB and UpdateLOB operations. The target table for the operation is specified in the message action and also appears in the target namespace.

Operation XML Message Description

ReadLOB

Copy Code
<ReadLOB xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
  <LOB_COLUMN>[COL_NAME]</LOB_COLUMN>
  <FILTER>[WHERE_clause]</LOB_COLUMN>
</ReadLOB>

The LOB data in the

  • column identified by the LOB_COLUMN element, and the

  • row that matches the where clause specified in the FILTER element

is returned.

The where clause should match only a single row. If there is more than one matching row, the LOB data in the first matching row is returned.

Important
The ReadLOB operation is designed to support input streaming of LOB data in the WCF service model. You should use a table Select operation to read LOB data from a WCF Channel Model or BizTalk Server solution.

ReadLOB Response

Copy Code
<ReadLOBResponse xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
  <ReadLOBResult>
    [LOB_DATA]
  </ReadLOBResult>
</ReadLOBResponse>

The LOB data is returned as a stream of base64Binary encoded data.

Important
The WSDL returned by the adapter does not match the actual schema used by the adapter for the ReadLOB response message.

UpdateLOB

Copy Code
<UpdateLOB xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
  <LOB_COLUMN>[COL_NAME]</LOB_COLUMN>
  <FILTER>[WHERE_clause]</LOB_COLUMN>
  <Stream>[LOB_DATA]</Stream>
</UpdateLOB>

The LOB data in the

  • column identified by the LOB_COLUMN element, and the

  • row that matches the where clause specified in the FILTER element

is updated with the base64Binary encoded data in the stream.

The where clause should match only a single row. If there is more than one matching row, an exception is thrown.

Note
The UpdateLOB operation replaces all of the data in the specified column and row.

UpdateLOB Response

Copy Code
<UpdateLOBResponse xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
</UpdateLOBResponse>

An empty response is returned.

[VERSION] = The message version string; for example, "http://Microsoft.LobServices/OracleDB/2007/03".

[SCHEMA] = Collection of Oracle artifacts; for example, SCOTT.

[TABLE_NAME] = The table that contains the targeted LOB column; for example, EMP.

[COL_NAME] = The name of the targeted LOB column; for example, LOB_FIELD.

[WHERE_clause] = An Oracle database SELECT statement WHERE clause that matches a single row; for example, ID = 1.

[LOB_DATA] = The LOB column data in base64Binary type.

Important
The message structure for the ReadLOB and UpdateLOB operations on views is the same as that on tables except that the namespace for the operation specifies a view rather than a table: <ReadLOB xmlns ="[VERSION]/[SCHEMA]/View/[VIEW_NAME]">.

Message Actions for LOB Data-Type Operations

The following table shows the message actions that are used by the Oracle Database adapter for the ReadLOB and UpdateLOB operations on tables. The Oracle Database adapter uses the table name specified in the message action to determine the target table for the operation.

Operation | Action | Example
ReadLOB | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/ReadLOB | http:/Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/CUSTOMER/ReadLOB
ReadLOB Response | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/ReadLOB/response | http:/Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/CUSTOMER/ReadLOB/response
UpdateLOB | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/UpdateLOB | http:/Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/CUSTOMER/UpdateLOB
UpdateLOB Response | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/UpdateLOB/response | http:/Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/CUSTOMER/UpdateLOB/response

[VERSION] = The message version string; for example, "http://Microsoft.LobServices.OracleDB/2007/03".

[SCHEMA] = Collection of Oracle artifacts; for example, SCOTT.

[TABLE_NAME] = The table that contains the targeted LOB column; for example, CUSTOMER. (The SCOTT.CUSTOMER table is installed by a SQL script included in the samples.)

Important
The message action for ReadLOB and UpdateLOB operations on views is similar to that used for tables, except that action for the operation specifies a view rather than a table: [VERSION]/[SCHEMA]/View/[VIEW_NAME]/ReadLOB.

See Also

Other Resources

Messages and Message Schemas for BizTalk Adapter for Oracle Database


Message Schemas for Functions and Procedures

The Microsoft BizTalk Adapter for Oracle Database surfaces Oracle database functions and stored procedures as operations. This section describes the message structure and actions used to invoke functions and procedures.

Message Structure of Functions and Procedures

The operations surfaced for functions and stored procedures follow a request-response message exchange pattern. The following table shows the structure of these request and response messages.

Operation XML Message Description

Stored Procedure Request

Copy Code
<[SP_NAME] xmlns="http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Procedure">
  <[PRM1_NAME]>value1</[PRM1_NAME]>
  <[PRM2_NAME]>value2</[PRM2_NAME]>
  …
</[SP_NAME]>

Supports Oracle IN and IN OUT parameters in the message body

Stored Procedure Response

Copy Code
<[SP_NAME]Response xmlns="http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Procedure">
  <[PRM1_NAME]>value1<[PRM1_NAME]>
  <[PRM2_NAME]>value2</[PRM2_NAME]>
  …
</[SP_NAME]Response>

Supports Oracle OUT and IN OUT parameters in the message body

Function Request

Copy Code
<[FN_NAME] xmlns="http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Function">
  <[PRM1_NAME]>value1</[PRM1_NAME]>
  <[PRM2_NAME]>value2</[PRM2_NAME]>
  …
</[FN_NAME]>

Supports Oracle IN and IN OUT parameters in the message body

Function Response

Copy Code
<[FN_NAME]Response xmlns="http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Function">
  <[FN_NAME]Result>return_value</[FN_NAME]Result>
  <[PRM1_NAME]>value1</[PRM1_NAME]>
  <[PRM2_NAME]>value2</[PRM2_NAME]>
  …

</[FN_NAME]Response>

Supports Oracle OUT and IN OUT parameters in the message body

  • The function return value is returned in the <[FN_NAME]Result> element. This is the first element in the response message. It comes before any parameters.

Packaged Procedure or Function Request

Copy Code
<[SP_NAME] xmlns="http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Package/[PACKAGE_NAME]">
  <[PRM1_NAME]>value1</[PRM1_NAME]>
  <[PRM2_NAME]>value2</[PRM2_NAME]>
  …
</[SP_NAME]>

Same as Function or Stored Procedure

Packaged Procedure or Function Response

Copy Code
<[SP_NAME]Response xmlns="http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Package/[PACKAGE_NAME]">
  <[PRM1_NAME]>value1</[PRM1_NAME]>
  <[PRM2_NAME]>value2</[PRM2_NAME]>
  …
</[SP_NAME]Response>

Same as Function or Stored Procedure

[SCHEMA] = Collection of Oracle artifacts; for example, SCOTT.

[SP_NAME] = The stored procedure to be executed; for example, SP_INSERT.

[FN_NAME] = The function to be executed; for example, FN_GETID.

[PRM1_NAME] = The name of the Oracle parameter. See the Description column for supported parameter directions for each message.

[PACKAGE_NAME] = The name of the package that contains the targeted procedure or function.

The Oracle database supports overloading for stored procedures and functions. The Oracle Database adapter supports this capability by appending an overload string to the target namespace for each overloaded artifact. The value of this string is "overload1" for the first overload, "overload2" for the second overload, and so on. The following example shows the message structure for two overloaded stored procedures.

Copy Code
Stored Procedure Overload 1:
<[SP_NAME] xmlns="http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Package/[PACKAGE_NAME]/[SP_NAME]/overload1">
  <[PRM1_NAME]>value1</[PRM1_NAME]>
  <[PRM2_NAME]>value1</[PRM2_NAME]>
  …
</[SP_NAME]>

Stored Procedure Overload 2:
<[SP_NAME] xmlns="http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Package/[PACKAGE_NAME]/[SP_NAME]/overload2">
  <[PRM1_NAME]>value1</I_[PRM1_NAME]>
  <[PRM2_NAME]>value1</I_[PRM2_NAME]>
  …
</[SP_NAME]>

Message Actions of Functions and Procedures

The Oracle Database adapter uses the following message actions for stored procedure and function operations.

Message | Action | Example
Stored Procedure Request | http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Procedure/[SP_NAME] | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Procedure/SP_INSERT
Stored Procedure Response | http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Procedure/[SP_NAME]/response | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Procedure/SP_INSERT/response
Function Request | http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Function/[FN_NAME] | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Function/FN_GETID
Function Response | http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Function/[FN_NAME]/response | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Function/FN_GETID/response
Packaged Stored Procedure Request | http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Package/[PACKAGE_NAME]/[SP_NAME] | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/CUSTOMER/SP_INSERT
Packaged Stored Procedure Response | http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Package/[PACKAGE_NAME]/[SP_NAME]/response | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/CUSTOMER/SP_INSERT/response
Packaged Function Request | http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Package/[PACKAGE_NAME]/[FN_NAME] | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/CUSTOMER/FN_GETID
Packaged Function Response | http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Package/[PACKAGE_NAME]/[FN_NAME]/response | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/CUSTOMER/FN_GETID/response
Overloaded Stored Procedure Request | http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Procedure/[SP_NAME]/[OVERLOAD] | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Procedure/SP_INSERT/overload1
Overloaded Stored Procedure Response | http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Procedure/[SP_NAME]/[OVERLOAD]/response | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Procedure/SP_INSERT/overload1/response

[SCHEMA] = Collection of Oracle artifacts; for example, SCOTT.

[SP_NAME] = The stored procedure to be executed; for example, SP_INSERT.

[FN_NAME] = The function to be executed; for example, FN_GETID.

[PACKAGE_NAME] = The name of the package that contains the targeted procedure or function.

[OVERLOAD] = The Overload parameter. The possible values are overload1, overload2, and so on.

See Also

Other Resources

Messages and Message Schemas for BizTalk Adapter for Oracle Database


Message Schemas for REF CURSORS

A REF CURSOR is an Oracle PL/SQL data type that represents a pointer to a result set in the Oracle database. REF CURSOR types enable input and output streaming of data and are ideal for transferring large amounts of data to and from a PL/SQL code block. Microsoft BizTalk Adapter for Oracle Database provides support for passing strongly-typed and weakly-typed REF CURSOR parameters to PL/SQL procedures and functions as IN, OUT and IN OUT parameters.

In the Oracle database, a REF CURSOR type can be either strongly-typed or weakly-typed:

  • A strongly-typed REF CURSOR is declared with a RETURN clause as in TYPE StrongCurType IS REF CURSOR RETURN emp%ROWTYPE;. A strongly-typed REF CURSOR variable can only represent a result set that contains data that matches the type with which its REF CURSOR type is declared. The Oracle Database adapter returns a strongly-typed result set for a strongly-typed REF CURSOR.

  • A weakly-typed REF CURSOR is declared without a RETURN clause as in TYPE WeakCurType IS REF CURSOR;. Oracle also provides a special REF CURSOR type called SYS_REFCURSOR that can be used to declare weakly-typed REF CURSOR variables. Weakly-typed REF CURSOR variables can represent a result set that contains any kind of row data. The Oracle Database adapter returns a weakly-typed result set of generic records for a weakly-typed REF CURSOR.

IN REF CURSOR Parameters

There is no ODP.NET API to create a REF CURSOR on the Oracle server, so the Oracle Database adapter cannot provide the capability for a client program to create and maintain REF CURSOR variables.

The Oracle Database adapter does, however, enable a client to pass IN REF CURSOR parameters to functions or stored procedures by specifying a block of PL/SQL code that returns a REF CURSOR. The adapter uses this code to create and OPEN a REF CURSOR variable on the Oracle server; it then calls the function or stored procedure using this variable as the IN parameter.

The Oracle Database adapter represents IN REF CURSOR parameters as strings that contain the PL/SQL code block. Within this block, the location of the REF CURSOR is specified with a question mark (?). The PL/SQL code block can contain an OPEN-FOR statement that contains a SQL query; or it can contain a function or procedure call in which an opened REF CURSOR is returned in an OUT parameter.

The following shows how to specify an IN REF CURSOR by calling a stored procedure or function to open the REF CURSOR.

Copy Code
<[IN_REF_CURSOR_PARAM_NAME]>begin [SP_NAME]([SP_PARAMS...], ?, [SP_PARAMS...]); end;</[IN_REF_CURSOR_PARAM_NAME]>

Example:
<EMP_RC>begin GETEMP(1, ?); end; </EMP_RC>

The following shows how to specify an IN REF CURSOR by using a SELECT query to open the REF CURSOR.

Copy Code
<IN_REF_CURSOR_PARAM_NAME>begin open ? for select [FIELD_NAMES] from [TABLE_NAME]; end;</IN_REF_CURSOR_PARAM_NAME>

Example:
<EMP_RC>begin open ? for select * from EMP; end;</EMP_RC>

OUT REF CURSOR Parameters

OUT REF CURSOR parameters are returned as either strongly-typed or weakly-typed result sets. The type of the result set returned depends on whether the REF CURSOR parameter is declared as a strongly-typed or weakly-typed REF CURSOR in the stored procedure or function definition on the Oracle server. A strongly-typed result set is returned for strongly-typed REF CURSOR parameters and a weakly-typed result set is returned for weakly-typed REF CURSOR parameters (for example, parameters declared with a SYS_REFCURSOR type).

The following shows the XML for a strongly-typed OUT REF CURSOR parameter.

Copy Code
<[PARAM_NAME]>
 <[PARAM_NAME]RECORD>
  <[COL1_NAME]>value1</[COL1_NAME]>
  <[COL2_NAME]>value2</[COL2_NAME]>
  ...
 </[PARAM_NAME]RECORD>
</[PARAM_NAME]>

[PARAM_NAME] = OUT REF CURSOR parameter name; for example, EMP_REFCURSOR
[COL_NAME] = Name of a column in the REF CURSOR type; for example, Name.

The following shows the XML for a weakly-typed OUT REF CURSOR parameter.

Copy Code
<[PARAM_NAME]>
 <GenRecordRow xmlns="oracledb">
  <GenRecordColumn>
   <ColumnName>COL_NAME</ColumnName>
   <ColumnValue>COL_VALUE</ColumnValue>
   <ColumnType>COL_TYPE</ColumnType>
  </GenRecordColumn>
  …
 </GenRecordRow>
 …
</[PARAM_NAME]>

[COL_NAME] = Name of column; for example, Name
[COL_VALUE] = Column value; for example, Scott
[COL_TYPE] = Column data type; for example, System.String

IN OUT REF CURSOR Parameters

Because the Oracle Database adapter models IN REF CURSOR parameters as strings and OUT REF CURSOR parameters as complex types, it cannot support a single type for an IN OUT REF CURSOR parameter. For this reason, it treats IN OUT REF CURSOR parameters as two different parameters: an IN parameter in the request message and an OUT parameter in the response message.

To avoid a name conflict in service model programming, the Oracle Database adapter appends the string "_IN" to the IN parameter in the request message so that for a given parameter named [PARAM_NAME], two parameters are created:

  • [PARAM_NAME]_IN is an IN REF CURSOR parameter in the stored procedure or function request message. It contains a PL/SQL statement (either a select query or a stored procedure or function call) that returns a REF CURSOR.

  • [PARAM_NAME] is an OUT REF CURSOR parameter in the stored procedure or function response message. It contains the OUT REF CURSOR as a strongly-typed or weakly-typed result set.

Important
The adapter cannot support a procedure or function that contains an IN parameter named [PARAM_NAME]_IN and an IN OUT REF CURSOR parameter named [PARAM_NAME]. This is because the adapter expects a parameter named [PARAM_NAME]_IN to represent the input to the REF CURSOR parameter, and you cannot specify both parameters in the request message.

See Also

Other Resources

Messages and Message Schemas for BizTalk Adapter for Oracle Database


Message Schemas for RECORD Types

Oracle RECORD types are structured PL/SQL data types that consist of one or more simple or structured database types. RECORD types are primarily used in PL/SQL stored procedures and functions to send and receive hierarchical data.

The Microsoft BizTalk Adapter for Oracle Database supports RECORD types in the following manner:

  • RECORD types are surfaced as complex types.

  • RECORD types can be nested (record in a record).

  • RECORD types can be declared as TABLE%ROWTYPE parameters in stored procedures and functions.

  • RECORD types can be declared as TYPE of RECORD parameters in PL/SQL packages; for example, TYPE rec_type1 IS RECORD(name varchar2(100), age number(3));.

    Note
    The Oracle Database adapter does not support BFILE types as RECORD members.

When a RECORD type parameter is used in a stored procedure or a function, it is qualified with the namespace of that operation. The following XML shows the structure of a RECORD type in a message:

Copy Code
<[REC_PARAM_NAME]>
  <[FIELD_NAME1] xmlns="[OPERATION_NAMESPACE]">value1</[FIELD_NAME1]>
  <[FIELD_NAME2] xmlns="[OPERATION_NAMESPACE]">value2</[FIELD_NAME2]>
  …
</[REC_PARAM_NAME]>

[REC_PARAM_NAME] is the name of the RECORD parameter.

[FIELD_NAME] is the name of a field in the RECORD type.

[OPERATION_NAMESPACE] is the namespace of the stored procedure or function in which the RECORD parameter is being used.

The following XML shows the structure of a RECORD type parameter with a nested RECORD type field:

Copy Code
<[REC_PARAM_NAME]>
  <[FIELD_NAME1] xmlns="[OPERATION_NAMESPACE]">value1</[FIELD_NAME1]>
  <[FIELD_NAME2] xmlns="[OPERATION_NAMESPACE]">value2</[FIELD_NAME2]>
  <[REC_PARAM_NAME2]>
    <[FIELD_NAME1] xmlns="[OPERATION_NAMESPACE]">value1</[FIELD_NAME1]>
    <[FIELD_NAME2] xmlns="[OPERATION_NAMESPACE]">value1</[FIELD_NAME2]>
    …
  </[REC_PARAM_NAME2]>
  …
</[REC_PARAM_NAME]>

See Also

Other Resources

Messages and Message Schemas for BizTalk Adapter for Oracle Database


Message Schemas for the SQLEXECUTE Operation

Microsoft BizTalk Adapter for Oracle Database surfaces strongly-typed metadata for artifacts present in the LOB system and exposes standard operations on these artifacts. However, there are scenarios where an application might require the execution of an arbitrary SQL statement that is driven by the business logic in the application. For example, you may want to:

  • Perform an operation on database artifacts that are not surfaced by the Oracle Database adapter; for example, get the CURVAL or NEXTVAL of an Oracle SEQUENCE.

  • Perform Data Definition Language operations; for example, create a table.

  • Perform operations on a database artifact that was not present at design-time; for example, update records in a temporary table that is created by your business logic.

  • Perform more complex DML operations on tables than the operations surfaced by the Oracle Database adapter; for example perform a query that includes a JOIN clause.

The Oracle Database adapter surfaces a special operation called the SQLEXECUTE operation to support such scenarios. By using this operation, you can specify an arbitrary SQL statement for the Oracle Database adapter to execute on the Oracle database. You can also specify multiple blocks of input parameters to the SQL statement. The Oracle Database adapter executes the SQL statement once for each set of parameters and returns any output as a generic (weakly-typed) record set.

Note
You can pass IN and IN OUT parameters to procedures, functions, and packages in the SQLEXECUTE operation. The invoked artifact will execute with the supplied parameters on the Oracle database; however, the SQLEXECUTE operation does not return the value of OUT and IN OUT parameters to the client. If you want to invoke procedures, functions, or packages, Microsoft recommends that you do so by invoking the dedicated operations that the Oracle Database adapter exposes for these Oracle artifacts.

The following XML shows the structure of the SQLEXECUTE operation:

Copy Code
<SQLEXECUTE xmlns="SQLEXECUTE">
  <SQLSTATEMENT> [STATEMENT] </SQLSTATEMENT>
  <PARAMETERSCHEMA>[PARAM_SPEC]</PARAMETERSCHEMA>
  <PARAMETERSET>
    <PARAMETERDATA>
      <PARAMETER xmlns:c="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <c:string>[PARAM_VAL_1]</c:string>
      </PARAMETER>
    </PARAMETERDATA>
    …
  </PARAMETERSET>
</SQLEXECUTE>

[STATEMENT] = The SQL statement to execute; for example, "SELECT * from emp WHERE empno=:emp_no".

[PARAM_SPEC] = The list of the IN parameters in the SQL statement and their data types; for example, "emp_no NUMBER".

[PARAM_VAL_1] = The value of the first parameter.

Each <PARAMETERDATA> section contains a complete set of <PARAMETER> elements that match the schema in the <PARAMETERSCHEMA> section. The <PARAMETERSET> can contain multiple <PARAMETERDATA> sections. If this is the case, the SQL statement is executed multiple times, once against each parameter set.

See Also

Other Resources

Messages and Message Schemas for BizTalk Adapter for Oracle Database


Message Schemas for the Polling Operations

The Microsoft BizTalk Adapter for Oracle Database surfaces various inbound operations related to polling depending on the target object on the Oracle database. To poll tables and views, a single POLLINGSTMT operation is surfaced whereas each stored procedure, functions, and packaged procedures and functions are exposed as inbound operations for polling.

You can specify a PollingId parameter in the query string of the connection URI to qualify the namespace of the POLLINGSTMT operation. Setting this parameter only qualifies the namespace of the POLLINGSTMT operation; it does not change the message action. For more information about the Oracle Database adapter connection URI, see The Oracle Database Connection URI.

You configure the polling operations by setting binding properties in the Oracle Database adapter. For more information about these binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties. You set the PollingStatement binding property to specify a SQL statement, stored procedure, function or a procedure within a package for the polling query. The result set of this query is returned as data to your code in the polling operation.

Message Structure for the Polling Operations

The following table shows the XML message structure for the various polling operations.

Operation Target Object XML Message Description

POLLINGSTMT

  • Tables

  • Views

Copy Code
<?xml version="1.0" encoding="utf-8" ?>
<POLLINGSTMT xmlns="[VERSION]/POLLINGSTMT[POLLING_ID]">
  <POLLINGSTMTRECORD>
    <POLLINGSTMTRECORD>
      <FIELD1_NAME>val1</FIELD1_NAME>
      <FIELD2_NAME>val2</FIELD2_NAME>
      …
    </POLLINGSTMTRECORD>

    …

  </POLLINGSTMTRECORD>
</POLLINGSTMT>

The structure of the result set contained in the POLLINGSTMTRECORD types is determined by the metadata that the adapter surfaces for the SQL SELECT query.

The namespace of the POLLINGSTMT operation is determined by the PollingId parameter in the connection URI.

[CustomPollingOperation]

  • Stored Procedures

  • Functions

  • Packages

Stored Procedures

Copy Code
<?xml version="1.0" encoding="utf-8" ?>
<[CustomPollingOperation] xmlns="[Version]/[SCHEMA]/PollingProcedure">
   <[CustomPollingOperation]Result>
     <PRM1>[Value]</PRM1>
     <PRM2>[Value]</PRM2>
     …
   </[CustomPollingOperation]Result>
</[CustomPollingOperation]>

Functions

Copy Code
<?xml version="1.0" encoding="utf-8" ?>
<[CustomPollingOperation] xmlns="[Version]/[Schema]/PollingFunction">
   <[CustomPollingOperation]Result>
     <COL1>[Value]</COL1]>
     <COL2>[Value]</COL2>
     …
   </[CustomPollingOperation]Result>
</[CustomPollingOperation]>

Packages

Copy Code
<?xml version="1.0" encoding="utf-8" ?>
<[CustomPollingOperation] xmlns="[Version]/[Schema]/PollingPackage/[PACKAGE_NAME]/">
   <[CustomPollingOperation]Result>[Value]</[CustomPollingOperation]Result>
</[CustomPollingOperation]>

The structure of the result set in the polling operation is determined by the data type of the elements in the target object.

[Version] = http://Microsoft.LobServices.OracleDB/2007/03.

[CustomPollingOperation] = It is the same as the stored procedure, function, or packaged procedure or function name that are exposed as the inbound polling operation.

[Schema] = Name of the Oracle schema. For example, SCOTT.

See Also

Other Resources

Messages and Message Schemas for BizTalk Adapter for Oracle Database


Message Schemas for the Composite Operation

The Microsoft BizTalk Adapter for Oracle Database enables you to execute composite operations on the Oracle database. A composite operation can contain multiple operations, and in any order. For information about which operations can be included in a composite operation, see Performing Composite Operations.

For information about how to perform composite operations using the Oracle Database adapter, see Performing Composite Operations on Oracle Database by Using BizTalk Server.

Message Structure for the Composite Operation

Because a composite operation contains multiple individual operations; the message structure of a composite operation contains message structures of the individual operations. The composite operation message follows a request-response message exchange pattern.

The following table shows the structure of the request and response messages of a composite operation that contains an Insert operation, a packaged stored procedure that does not take any input parameters, and a Delete operation.

Operation XML Message

Composite Operation Request

Copy Code
<?xml version="1.0" encoding="utf-8" ?>
<Request xmlns="http://[PROJECT_NAME].[COMPOSITE_SCHEMA_NAME]">
  <Insert xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
    <RECORDSET>
      <[TABLE_NAME]RECORDINSERT>
        <[FIELD1_NAME]>[value1]</[FIELD1_NAME]>
        <[FIELD2_NAME]>[value2]</[FIELD2_NAME]>
        …
      </[TABLE_NAME]RECORDINSERT>
   </RECORDSET>
  </Insert>
  <[SP_NAME] xmlns="[VERSION]/[SCHEMA]/Procedure" />
  <Delete xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
    <FILTER>[WHERE_clause]</FILTER>
  </Delete>
</Request>

Composite Operation Response

Copy Code
<?xml version="1.0" encoding="utf-8" ?>
<RequestResponse xmlns="http://[PROJECT_NAME].[COMPOSITE_SCHEMA_NAME]">
  <InsertResponse xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
    <InsertResult>[value]</InsertResult>
  </InsertResponse>
  <[SP_NAME]Response xmlns="[VERSION]/[SCHEMA]/Procedure">
    <[PRM1_NAME]>value1<[PRM1_NAME]>
    <[PRM2_NAME]>value2</[PRM2_NAME]>
    …
  </[SP_NAME]Response>
  <DeleteResponse xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
    <DeleteResult>[value]</DeleteResult>
  </DeleteResponse>
</RequestResponse>

[VERSION] = The message version string; for example, http://Microsoft.LobServices.OracleDB/2007/03

[PROJECT_NAME] = Name of the BizTalk project that contains the composite operation schema.

[COMPOSITE_SCHEMA_NAME] = Name of the composite operation schema given by the user.

[SCHEMA] = Collection of Oracle artifacts; for example, SCOTT.

[TABLE_NAME] = Name of the table; for example, EMPLOYEE.

[FIELD1_NAME] = Table field name; for example, NAME.

[SP_NAME] = The packaged stored procedure to be executed; for example, ADD_EMP_DETAILS.

[PRM1_NAME] = The name of the Oracle parameter in the stored procedure.

Message Action for the Composite Operation

The message action for the composite operation is “http://Microsoft.LobServices.OracleDB/2007/03/CompositeOperation.”

See Also

Other Resources

Messages and Message Schemas for BizTalk Adapter for Oracle Database


Message Schemas for the Notification Operation

The Microsoft BizTalk Adapter for Oracle Database surfaces the Notification operation to receive database change notifications from the Oracle database.

You configure the Notification operation by setting binding properties in the Oracle Database adapter. For more information about the Notification-related binding properties, see Working with BizTalk Adapter for Oracle Database Binding Properties. You set the NotificationStatement binding property to specify a SELECT statement for the query notification.

Message Structure for the Notification Operation

The following table shows the XML message structure for the Notification operation.

Operation XML Message Description

Notification

Copy Code
<?xml version="1.0" encoding="utf-8" ?>
<Notification xmlns="http://Microsoft.LobServices.OracleDB/2007/03/Notification">
   <Info>Value</Info>
   <Source>Value</Source>
   <Type>Value</Type>
</Notification>

This is the inbound message that is sent by the Oracle database to the adapter clients. In the message:

  • The <Info> tag indicates the reason for the notification. For example, an “insert” value in this tag indicates that data has been inserted in one or more of the tables referenced in the notification statement.

  • The <Source> tag indicates the source for the notification. For example, a “data” value in this tag indicates a change in the data in a referenced object. Similarly, an “object” value in this tag indicates a change in a referenced object.

  • The <Type> tag indicates the type of data change. For example, an “Update” value in the <Type> tag indicates that the results of the query have been updated.

Message Action for the Notification Operation

The message action for the notification operation is “http://Microsoft.LobServices.OracleDB/2007/03/Notification”.

See Also

Other Resources

Messages and Message Schemas for BizTalk Adapter for Oracle Database


Metadata Node IDs

The Oracle Database adapter surfaces Oracle database artifacts in a hierarchical manner. The following table lists the node types and node IDs for Oracle database artifacts that the Oracle Database adapter surfaces. The node ID is the absolute path of the node that is used in the IMetadataRetrievalContractBrowse, Search, and GetMetadata methods.

Artifact Display Name | Node Type | Node ID | Example | Description
-- | CATEGORY | / | / | WCF LOB Adapter SDK root node. Returns all first-level nodes; this includes the SQLEXECUTE operation node, the POLLINGSTMT operation node, and all schema nodes
SQLEXECUTE | OPERATION | [VERSION]/SQLEXECUTE | http://Microsoft.LobServices.OracleDB/2007/03/SQLEXECUTE | SQLEXECUTE operation node. Returns WSDL for the SQLEXECUTE operation.
POLLINGSTMT | OPERATION | [VERSION]/POLLINGSTMT | http://Microsoft.LobServices. OracleDB/2007/03/POLLINGSTMT | POLLINGSTMT operation node. Returns WSDL for the POLLINGSTMT operation.
[DB_SCHEMA] | CATEGORY | [VERSION]/[DB_SCHEMA] | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT | Schema node. Returns general category nodes (Table, View, Procedure, Function, and Package) for the specified schema.
Table | CATEGORY | [VERSION]/[DB_SCHEMA]/Table | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table | Schema tables node. Returns all table nodes for the specified schema.
[DB_TABLE] | CATEGORY | [VERSION]/[DB_SCHEMA]/Table/[DB_TABLE] | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP | Table node. Returns all operation nodes (Insert, Select, Update, Delete, ReadLOB, and UpdateLOB) for the specified table. (ReadLOB and UpdateLOB are only returned for tables that contain a LOB column.)
Insert | OPERATION | [VERSION]/[DB_SCHEMA]/Table/[DB_TABLE]/Insert | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert | Table Insert operation node. Returns WSDL for the Insert operation for the specified table.
Select | OPERATION | [VERSION]/[DB_SCHEMA]/Table/[DB_TABLE]/Select | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Select | Table Select operation node. Returns WSDL for the Select operation for the specified table.
Update | OPERATION | [VERSION]/[DB_SCHEMA]/Table/[DB_TABLE]/Update | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Update | Table Update operation node. Returns WSDL for the Update operation for the specified table.
Delete | OPERATION | [VERSION]/[DB_SCHEMA]/Table/[DB_TABLE]/Delete | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Delete | Table Delete operation node. Returns WSDL for the Delete operation for the specified table.
ReadLOB | OPERATION | [VERSION]/[DB_SCHEMA]/Table/[DB_TABLE]/ReadLOB | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/ReadLOB | Table ReadLOB operation node. Returns WSDL for the ReadLOB operation for the specified table. (Only surfaced if the table contains a LOB column.)
UpdateLOB | OPERATION | [VERSION]/[DB_SCHEMA]/Table/[DB_TABLE]/UpdateLOB | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/UpdateLOB | Table UpdateLOB operation node. Returns WSDL for the UpdateLOB operation for the specified table. (Only surfaced if the table contains a LOB column.)
View | CATEGORY | [VERSION]/[DB_SCHEMA]/View | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/View | Schema views node. Returns all view nodes for the specified schema.
[DB_VIEW] | CATEGORY | [VERSION]/[DB_SCHEMA]/View/[DB_VIEW] | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/View/SALES_VIEW | View node. Returns all operation nodes (Insert, Select, Update, Delete, ReadLOB, and UpdateLOB) for the specified view. (ReadLOB and UpdateLOB are only returned for views that contain a LOB column.)
Insert | OPERATION | [VERSION]/[DB_SCHEMA]/View/[DB_VIEW]/Insert | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/View/SALES_VIEW/Insert | View Insert operation node. Returns WSDL for the Insert operation for the specified view.
Select | OPERATION | [VERSION]/[DB_SCHEMA]/View/[DB_VIEW]/Select | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/View/SALES_VIEW/Select | View Select operation node. Returns WSDL for the Select operation for the specified view.
Update | OPERATION | [VERSION]/[DB_SCHEMA]/View/[DB_VIEW]/Update | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/View/SALES_VIEW/Update | View Update operation node. Returns WSDL for the Update operation for the specified view.
Delete | OPERATION | [VERSION]/[DB_SCHEMA]/View/[DB_VIEW]/Delete | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/View/SALES_VIEW/Delete | View Delete operation node. Returns WSDL for the Delete operation for the specified view.
ReadLOB | OPERATION | [VERSION]/[DB_SCHEMA]/View/[DB_VIEW]/ReadLOB | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/View/SALES_VIEW/ReadLOB | View ReadLOB operation node. Returns WSDL for the ReadLOB operation for the specified view. (Only surfaced if the view contains a LOB column.)
UpdateLOB | OPERATION | [VERSION]/[DB_SCHEMA]/View/[DB_VIEW]/UpdateLOB | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/View/SALES_VIEW/UpdateLOB | View Update operation node. Returns WSDL for the UpdateLOB operation for the specified table. (Only surfaced if the view contains a LOB column.)
Procedure | CATEGORY | [VERSION]/[DB_SCHEMA]/Procedure | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Procedure | Schema procedures node. Returns all procedures for the specified schema.
[DB_PROCEDURE] | OPERATION | [VERSION]/[DB_SCHEMA]/Procedure/[DB_PROCEDURE] | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Procedure/SP_GENREPORT | Procedure node. Returns the WSDL for the specified procedure.
Function | CATEGORY | [VERSION]/[DB_SCHEMA]/Function | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Function | Schema functions node. Returns all functions for the specified schema.
[DB_FUNCTION] | OPERATION | [VERSION]/[DB_SCHEMA]/Function/[DB_FUNCTION] | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Function/FN_GETUSERID | Function node. Returns the WSDL for the specified function.
Package | CATEGORY | [VERSION]/[DB_SCHEMA]/Package | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package | Schema packages node. Returns all packages for the specified schema.
[DB_PACKAGE] | CATEGORY | [VERSION]/[DB_SCHEMA]/Package/[DB_PACKAGE] | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG | Package node. Returns all procedures and functions for the specified package.
[PACK_PROCEDURE] | OPERATION | [VERSION]/[DB_SCHEMA]/Package/[DB_PACKAGE]/[PACK_PROCEDURE] | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/GET_ACCOUNT | Package procedure node. Returns the WSDL for the specified package procedure.
[PACK_FUNCTION] | OPERATION | [VERSION]/[DB_SCHEMA]/Package/[DB_PACKAGE]/[PACK_FUNCTION] | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT | Package function node. Returns the WSDL for the specified package function.

[VERSION] = The version string; for example, http://Microsoft.LobServices.OracleDB/2007/03.

[DB_SCHEMA] = Collection of Oracle artifacts; for example, SCOTT.

[DB_TABLE] = The name of an Oracle table; for example, EMP.

[DB_VIEW] = The name of an Oracle view; for example, SALES_VIEW.

[DB_PROCEDURE] = The name of an Oracle procedure; for example, SP_GENREPORT.

[DB_FUNCTION] = The name of an Oracle function; for example, FN_GETUSERID.

[DB_PACKAGE] = The name of an Oracle package; for example, ACCOUNT_PKG.

[PACK_PROCEDURE] = The name of a package procedure; for example, GET_ACCOUNT.

[PACK_FUNCTION] = The name of a package function; for example, CREATE_ACCOUNT.

Metadata Search and Node IDs

Metadata search is a powerful feature that the WCF LOB Adapter SDK surfaces as part of its MetadataRetrievalContract interface. The Oracle Database adapter uses this feature to support searching on the following Oracle artifacts. The metadata search scope is restricted to the level immediately under the node at which the search operation is performed. For example, to search for a function, you must be searching under \[Schema]\Functions. Recursive search is not supported.

Artifact | Node ID | Node Type Returned | Description
[DB_SCHEMA] | / (i.e. Root node) | CATEGORY | Return all schema nodes that match the search expression.
[DB_TABLE] | /[VERSION]/[DB_SCHEMA]/Table | CATEGORY | Return all table nodes in the specified schema that match the search expression.
[DB_VIEW] | /[VERSION]/[DB_SCHEMA]/View | CATEGORY | Return all view nodes in the specified schema that match the search expression.
[DB_PROCEDURE] | /[VERSION]/[DB_SCHEMA]/Procedure | OPERATION | Return all procedure nodes in the specified schema that match the search expression.
[DB_FUNCTION] | /[VERSION]/[DB_SCHEMA]/Function | OPERATION | Return all function nodes in the specified schema that match the search expression.
[DB_PACKAGE] | /[VERSION]/[DB_SCHEMA]/Package | CATEGORY | Return all package nodes (category) in the specified schema that match the search expression.
[PACK_PROCEDURE] and [PACK_FUNCTION] | /[VERSION]/[DB_SCHEMA]/Package/[DB_PACKAGE] | OPERATION | Return all function and procedure nodes (operation) in the specified package that match the search expression.

[VERSION] = The version string; for example, http://Microsoft.LobServices/2007/03.

[DB_SCHEMA] = Collection of Oracle artifacts; for example, SCOTT.

[DB_TABLE] = The name of an Oracle table; for example, EMP.

[DB_VIEW] = The name of an Oracle view; for example, SALES_VIEW.

[DB_PROCEDURE] = The name of an Oracle procedure; for example, SP_GENREPORT.

[DB_FUNCTION] = The name of an Oracle function; for example, FN_GETUSERID.

[DB_PACKAGE] = The name of an Oracle package; for example, ACCOUNT_PKG.

[PACK_PROCEDURE] = The name of a package procedure; for example, GET_ACCOUNT.

[PACK_FUNCTION] = The name of a package function; for example, CREATE_ACCOUNT.

You can specify search expressions that are compatible with any valid expression that can be used for the Oracle LIKE operator. For example, to perform a search on the tables contained in a schema, the Oracle Database adapter executes the following SQL: SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = '[OWNER_NAME]' AND TABLE_NAME LIKE ‘[SEARCH_STR]’.

The following table lists the special characters that the Oracle Database adapter supports in search expressions.

Special Character | Interpretation
% (percentage) | Matches zero or more characters; for example, "A%" matches "A", "AB", "ABC", and so on.
_ (underscore) | Matches exactly 1 character; for example, "A_" matches "AB", "AC", "AD", and so on.
\ (escape) | Escapes the special meaning of '%' and '_'; for example, "A\_B" matches "A_B".

Metadata Retrieval and Node IDs

The following table summarizes the metadata characteristics returned by Oracle Database adapter.

Artifact Metadata Characteristics

Table or View

  • Table name.

  • Table field names.

  • Table field data types are mapped to simple or complex WSDL types.

  • Table field length is mapped to facet maxLength.

  • Table field primary key constraint is mapped to facet minOccurs = 1.

  • Table field NULL constraint is mapped to facet isNillable = true.

  • Table operations

    • INSERT

    • SELECT

    • UPDATE

    • DELETE

    • READLOB (if the table contains Oracle LOB type field)

    • UPDATELOB (if the table contains Oracle LOB type field)

Procedure or Function

  • Procedure or function name is mapped to the operation name.

  • Procedure or function parameter names.

  • Procedure or function parameter data types are mapped to WSDL types.

  • Procedure or function parameter direction is mapped to WSDL parameter direction.

  • Procedure parameter or function parameter data type length is mapped to facet maxLength.

  • Procedure or function parameter order is mapped to element sequence.

  • Function return data type is mapped to WSDL type.

  • Function return data type length is mapped to facet maxLength.

Package Procedure or Function.

  • Package name.

  • Other procedure and function characteristics as listed above.

For detailed information about the format of the metadata that the Oracle Database adapter exposes for specific artifacts and operations on the Oracle database, see Messages and Message Schemas for BizTalk Adapter for Oracle Database.

See Also

Other Resources

Technical Reference


Using the ServiceModel Metadata Utility Tool with the BizTalk Adapter for Oracle Database

You can use the ServiceModel Metadata Utility Tool (svcutil.exe) to generate a WCF client class or a WCF service contract (interface) for operations that the Microsoft BizTalk Adapter for Oracle Database exposes. After you run svcutil.exe to generate either a WCF client class or a WCF service contract, you can include the generated file in your code and create instances of the generated class or implement a WCF service from the contract to perform operations on the Oracle database.

Using svcutil.exe requires you to supply a connection URI that contains credentials. Because, by default, the Oracle Database adapter disables credentials in the connection URI, you must configure svcutil.exe to use a non-default binding for the Oracle Database adapter.

The following sections show you how to configure svcutil.exe and how to use svcutil.exe to generate WCF client code or a WCF service contract with the Oracle Database adapter.

Configuring svcutil.exe for the Oracle Database Adapter

To configure svcutil.exe to use a non-default binding, you must create a local copy of svcutil.exe and then create or modify a local copy of the svcutil.exe.config configuration file.

To configure svcutil.exe for a non-default binding

  1. Create a folder, and copy svcutil.exe into the new folder. You can typically find svcutil.exe at the Windows SDK installation location, specifically, C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin.

  2. Create a file named svcutil.exe.config in the new folder.

  3. Add a binding and a client endpoint to the svcutil.exe.config file. You must run svcutil.exe from the new folder to ensure that the correct configuration is used.

    Important
    The name attribute of the client endpoint must specify the scheme used in the connection URI. This value is case-sensitive.

    Copy Code
    <configuration>
  <system.serviceModel>
    <client>
      <!-- the name should match the required scheme of the WS-Metadata Exchange endpoint
      and the contract should be "IMetadataExchange" -->
      <endpoint name="oracledb"
                binding="oracleDBBinding"
                bindingConfiguration="OracleDBBinding"
                contract="IMetadataExchange" />
    </client>
    <bindings>
        <oracleDBBinding>
            <binding name="OracleDBBinding" acceptCredentialsInUri="true" />
        </oracleDBBinding>
    </bindings>

  </system.serviceModel>

</configuration>

Note
You can set any of the binding properties of the Oracle Database adapter in the binding configuration.

For more information about configuring a non-default binding for svcutil.exe, see the "Custom Secure Metadata Endpoint" topic in the WCF documentation at http://go.microsoft.com/fwlink/?LinkId=96077.

Configuring a Non-Default Binding for the POLLINGSTMT Operation

To use svcutil.exe to create a WCF service contract for the POLLINGSTMT operation, you must configure the non-default binding to include the pollingStatement property, in addition to acceptCredentialsInUri. The pollingStatement must contain the SELECT statement that targets the table. The Oracle Database adapter uses this property to generate the class that represents the strongly-typed result set that the POLLINGSTMT operation returns. The following example shows a binding configuration that is used to generate a WCF service contract for a POLLINGSTMT operation that targets the /SCOTT/EMP table.

Copy Code
    <bindings>
        <oracleDBBinding>
            <binding name="OracleDBBinding" acceptCredentialsInUri="true"
                                       pollingStatement="SELECT * FROM EMP FOR UPDATE" />
        </oracleDBBinding>
    </bindings>

Creating a WCF Client Class or WCF Service Contract with svcutil.exe

To use svcutil.exe to generate WCF client code or a WCF service contract (interface) for the Oracle Database adapter, you must supply a connection URI that specifies an WS-Metadata Exchange (MEX) endpoint and the operation or operations for which you want svcutil.exe to generate code. You must also specify connection credentials for the Oracle database in the connection URI.

Note
Before you can use svcutil.exe with the Oracle Database adapter, you must configure it to use a non-default binding; for information about how to do this, see Configuring svcutil.exe for the Oracle Database Adapter.

You specify a MEX endpoint and target operations in the Oracle Database adapter connection URI in the following manner:

  • You must include the "wsdl" parameter in the query_string. If it is the first parameter in the query_string, it is specified just after the question mark (?). If it is not the first parameter, it should be preceded with an ampersand (&).

  • You must follow the "wsdl" parameter by one or more "op" parameters. Each "op" parameter is preceded by an ampersand (&) and specifies the node ID of a target operation.

The following three examples show how to target various operations by using svcutil.exe.

This example creates a WCF client class for an Insert operation on the /SCOTT/EMP table.

.\svcutil "oracledb://User=SCOTT;Password=TIGER@ADAPTER?wsdl&op=http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert"

This example creates a WCF client class for the Insert and the Delete operations on the /SCOTT/EMP table.

.\svcutil "oracledb://User=SCOTT;Password=TIGER@ADAPTER?wsdl&op=http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert&op=http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Delete"

This example creates a WCF service contract for the POLLLINGSTMT operation. (To use svcutil.exe to generate a WCF service contract for the POLLINGSTMT operation, you must configure a non-default binding for svcutil.exe that includes a polling statement.)

.\svcutil "oracledb://User=SCOTT;Password=TIGER@ADAPTER?wsdl&op=http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMT"

Important
You must place the connection URI in quotation marks on the command line. Otherwise, svcutil.exe attempts to retrieve metadata for operations that the Oracle Database adapter does not support. The results of such an attempt are undefined.

By default, svcutil.exe places the generated code in the output.cs file; however, you can change the name of the output file and many other options that svcutil.exe uses by setting command-line switches. For more information about the options that svcutil.exe supports, see the "ServiceModel Metadata Utility Tool (Svcutil.exe)" topic in the WCF documentation at http://go.microsoft.com/fwlink/?LinkId=72777.

Svcutil.exe does not provide the capability to search for operations (for example, by using wildcard characters). You must explicitly specify node IDs for the specific operations you want to target. You cannot specify node IDs that refer only to categories. For more information about the node IDs that the Oracle Database adapter surfaces, see Metadata Node IDs.

The Add Adapter Service Reference Visual Studio Plug-in provides advanced browse and search capabilities that can greatly simplify generating a WCF client class and WCF service contract. For more information about the Add Adapter Service Reference Plug-in, see Generating a WCF Client or a WCF Service Contract for Oracle Database Artifacts.

See Also

Other Resources

Messages and Message Schemas for BizTalk Adapter for Oracle Database


Glossary

The following terms and definitions are used in Microsoft BizTalk Adapter for Oracle Database Help.

Microsoft BizTalk Adapter Pack Glossary

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

A

adapter | A WCF-based component that helps exchange messages between applications (for example, a line-of-business system) and BizTalk Server. The adapter consists of design-time components and run-time components for receive and send operations.
adapter client | An application that interacts with a line-of-business (LOB) system through the adapter.

B

BFILE

An Oracle data type that enables access to binary file LOBs that are stored in file systems external to the Oracle database. A BFILE column stores a BFILE locator, which represents the directory name and file name that contains the data on the server file system.

binary large object

  1. A large piece of data, such as a bitmap, characterized by large field values, an unpredictable table size, and data that is formless from the perspective of an application.

  2. A keyword that designates the BLOB structure that contains information about a block of data.

binding

A process by which software components and layers are linked together. When a network component is installed, the binding relationships and dependencies for the components are established. Binding allows components to communicate with each other. In BizTalk Server, an established mapping between an orchestration adapter-agnostic endpoint (port or role link) and physical adapter-specific endpoints (send/receive ports or party).

BizTalk Server

Connects diverse software. BizTalk Server enables you to create and modify process logic that uses that software. BizTalk Server also enables information workers to monitor running processes, interact with trading partners, and perform other business-oriented tasks.

C

channel | A concrete implementation of a binding element. The binding represents the configuration, and the channel is the implementation associated with that configuration. Therefore, there is a channel associated with each binding element. Channels stack on top of each other to create the concrete implementation of the binding: the channel stack.
connection URI | A string that identifies a resource in a distributed environment. Adapters use a connection Uniform Resource Identifier (URI) that contains the information necessary to establish a connection with the LOB system.
contract | Specifies the collection and structure of messages required to access the operations offered by the service.

D

data manipulation language (DML) | The subset of SQL statements that is used to retrieve and manipulate data. DML statements typically start with SELECT, INSERT, UPDATE, or DELETE.
design-time experience | Procedures and operations that a developer performs during design time; for example, using the Consume Adapter Service BizTalk Project Add-in to retrieve message schemas.

E

endpoint address | A network address that identifies the location of a Windows Communication Foundation (WCF) service endpoint. For an adapter, the endpoint address is expressed as a connection Uniform Resource Identifier (URI) that contains location and connection parameters. The adapter can use these to establish a connection to the underlying line-of-business (LOB) system.
Enterprise Single Sign-on system | An SSO database, a master secret server, and one or more Enterprise Single Sign-On (SSO) servers. These servers do the mapping between the Windows and non-Windows credentials, look up the credentials in the SSO database, and are used for administering the SSO system. The SSO database is also used as a configuration store to hold custom configuration data for adapters.
Extensible Markup Language | A markup language designed to describe data. XML tags are not predefined.

G

GAC | See global assembly cache.
global assembly cache (GAC) | A machine-wide code cache that stores assemblies specifically installed to be shared by many applications on the computer. Applications deployed in the global assembly cache must have a strong name.

H

Health and Activity Tracking (HAT)

A user interface that enables specified data to be tracked. This interface can be used to monitor the health of the BizTalk Server farm and to track and view specific events and messages.

I

inbound operation

An operation that is invoked by a line-of-business (LOB) system on the adapter.

L

local naming method

The Oracle naming method that is supported by the Oracle Database adapter. In this naming method, the Oracle client resolves the net service name to an entry in the local tnsnames.ora file.

M

metadata | In WCF, refers to a description of the contract exposed by a service. This is known as the service description and is expressed in a WSDL document. The metadata exposed by an adapter describes the (interface to) the operations that it can perform on the underlying LOB system.
Microsoft Windows Communication Foundation (WCF) Line of Business (LOB) Adapter SDK | The specifications for building BizTalk adapters using open standards based on Web services.

N

naming method | Oracle naming methods determine how the Oracle client obtains connection information for an Oracle database service (instance). You can configure the Oracle client to use specific naming methods by using the Oracle Net Configuration Assistant. The Oracle Database adapter supports the Local Naming method.
net service name | An alias used by the Oracle client to obtain connection information for the Oracle database. You supply a net service name as one of the connection properties in the connection URI.

O

one-way | A message exchange pattern (MEP) in which the sender sends a message, but no response is returned by the receiver. In BizTalk Server, MEPs are referred to as communication patterns.
outbound operation | An operation that is invoked by the adapter on the line-of-business system (LOB).
output.cs | The default output file created by the ServiceModel Metadata Utility tool (svcutil.exe).

P

polling | A technique that device drivers use to find out from multiple devices whether they contain data to transmit. The devices are polled one at a time.
proxy | In WCF, refers to a managed-code object that implements the service contract exposed by a service. The WCF service model is based on the use of such proxies. In the WCF service model, the service contract is expressed as a .NET interface.

R

REF CURSOR | An Oracle PL/SQL data type that represents a pointer to a result set in the Oracle database. A REF CURSOR type enables input and output streaming of data, and is ideal for transferring large amounts of data to and from a PL/SQL code block.
request-response | A message exchange pattern (MEP) in which the sender sends a request message and expects a response message from the receiver. In BizTalk Server, MEPs are referred to as communication patterns. Depending on the messaging technology and the direction of the request message (inbound or outbound), this pattern is also called request-reply or solicit-response.
run-time experience | Procedures and operations performed by a developer during run time or when deploying a solution; for example, creating a physical port binding from the BizTalk Server Administration console.

S

schema | The structure for a message. A schema can contain multiple subschema.
ServiceModel Metadata Utility Tool (svcutil.exe) | A command-line utility that is included with WCF. It is used to create service model proxy code from the service description (metadata) that is exposed by a WCF service such as an adapter. For outbound operations, the tool creates a WCF client class and helper code; for inbound operations, the tool creates a WCF service contract and helper code.
Simple Object Access Protocol | See SOAP.
SOAP | A simple, XML-based protocol for exchanging structured and type information in decentralized, distributed environments. WCF is based on the exchange of SOAP messages between clients and services to invoke operations and return results.
SOAP message | A well-formed XML document. It should use the SOAP envelope and SOAP encoding namespaces and include an optional XML declaration, followed by a SOAP envelope (the root element), which is made up of an optional SOAP header and a SOAP message body.
SQL Server Integration Services | A component that is used to import, export, and transform data from different data sources. Previously called data transformation service (DTS).
SSIS | See SQL Server Integration Services.
SSO | See Enterprise Single Sign-on system.
strongly-typed data | A data set or result set that is bound to an underlying object type. Each row in a strongly-typed XML data set is composed of typed, named elements that correspond to fields of the underlying object type.
svcutil.exe | See ServiceModel Metadata Utility Tool.

U

Uniform Resource Identifier (URI)

See connection URI

W

WCF | See Windows Communication Foundation
WCF channel model | A programming model that relies on several interfaces and other types. Channels provide a low-level programming model for sending and receiving messages.
WCF client | A client-application construct that exposes the service operations as methods. You can use the Add Adapter Service Reference Visual Studio Plug-in or the ServiceModel Metadata Utility Tool to generate a WCF client class from the metadata exposed by an adapter.
WCF LOB Adapter SDK | See Microsoft Windows Communication Foundation (WCF) Line of Business (LOB) Adapter SDK
WCF service contract | A managed-code representation of the service contract. It is expressed as an interface in which classes and methods are attributed to define the service, operation, message, and data contracts used to communicate with a service. You can use the ServiceModel Metadata Utility tool or the Add Adapter Service Reference Visual Studio Plug-in to generate a WCF service contract from the metadata exposed by an adapter. You implement the WCF service contract to receive operations from an LOB system.
WCF service model | A WCF programming model in which a service is represented as a managed code object. The operations exposed by the service are represented as methods with strongly-typed data.
weakly-typed data | A data set or result set that is not bound to an underlying object type. Each row in a weakly-typed XML data set is composed of a collection of generic columns in which attributes describe the name and type of each element.
Web services | A unit of application logic providing data and services to other applications. Applications access XML Web services using standard Web protocols and data formats such as HTTP, XML, and SOAP, independent of how each XML Web service is implemented. XML Web services combine the best aspects of component-based development and the Web, and are a cornerstone of the Microsoft .NET programming model.
Web Services Description Language (WSDL) | An XML-based language that describes a service as a set of endpoints that operate on messages. The WSDL document describes the service contract, operation contracts, message contracts, and data contracts that a client must use to interface with the service.
Windows Communication Foundation (WCF) | A Microsoft service-oriented communication infrastructure. The framework inherently provides clients with a service programming model and a channel programming model for finer control of message exchanges.
WSDL | See Web Services Description Language.
WS-Metadata Exchange (MEX) endpoint | An endpoint exposed by a WCF service, such as an adapter, that implements the IMetadataExchange interface. A WS-Metadata Exchange endpoint can be used to retrieve a service description (WSDL) for operations exposed by an adapter on the target system.

X

XML | See Extensible Markup Language.
XML Schema definition language (XSD) | A schema language. An XML Schema defines the elements, attributes, and data types that comply with the World Wide Web Consortium (W3C) XML Schema Part 1: Structures Recommendation for the XML Schema Definition Language. The W3C XML Schema Part 2: Datatypes Recommendation is the recommendation for defining data types that are used in XML schemas. The XML Schema definition language enables you to define the structure and data types for XML messages.
XSD | See XML Schema definition language.


Microsoft BizTalk Adapter for Oracle Database Developer Reference

This section provides API reference for Oracle Database adapter.


Class Library

Namespaces

Namespace
Microsoft.Adapters.OracleDB


Microsoft.Adapters.OracleDB Namespace

Classes

Class | Description
OracleDBAdapter | Creates an adapter for Oracle DB (implemented as a transport binding element).
OracleDBAdapterBindingSection | Represents a configuration section for Oracle DB adapter binding.
OracleDBBinding | Creates a binding for Oracle DB adapter.
OracleDBBindingConfigurationElement | Represents the configuration element for Oracle DB adapter binding.
OracleDBConnectionUri | Represents the class for building the OracleDBConnectionUri.
OracleDBInboundTransactionBehavior | Represents the behavior that controls the transaction settings for WCF-Dispatcher initiated transactions.
OracleDBPerformanceCounterConstants | Specifies a class exposing constants pertaining to OracleDB Adapter.

Enumerations

Enumeration | Description
InboundOperation | Specifies the Inbound Operation to be performed.
OracleServiceType | Specifies the type of Oracle database service.
TransactionIsolationLevel | Specifies the isolation level of the Transaction.


InboundOperation Enumeration
[image]

Specifies the Inbound Operation to be performed.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As InboundOperation

Syntax

Visual Basic
Public Enumeration InboundOperation
C#
public enum InboundOperation
C++
public enum class InboundOperation
J#
public enum InboundOperation
JScript
public enum InboundOperation

Members

Member name | Description
Notification | The Notification Inbound Operation.
Polling | The Polling Inbound Operation.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

Microsoft.Adapters.OracleDB Namespace


OracleDBAdapter Class
See Also Members
[image]

Creates an adapter for Oracle DB (implemented as a transport binding element).

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter

Syntax

Visual Basic
Public NotInheritable Class OracleDBAdapter
    Inherits CommonAdapter
C#
public sealed class OracleDBAdapter : CommonAdapter
C++
public ref class OracleDBAdapter sealed : public CommonAdapter
J#
public final class OracleDBAdapter extends CommonAdapter
JScript
public final class OracleDBAdapter extends CommonAdapter

Inheritance Hierarchy

System.Object
System.ServiceModel.Channels.BindingElement
System.ServiceModel.Channels.TransportBindingElement
Microsoft.ServiceModel.Channels.Common.Adapter
Microsoft.Adapters.AdapterUtilities.CommonAdapter
Microsoft.Adapters.OracleDB.OracleDBAdapter

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Members


OracleDBAdapter Members
See Also Constructors Methods Properties
[image]

Creates an adapter for Oracle DB (implemented as a transport binding element).

The following tables list the members exposed by the OracleDBAdapter type.

Public Constructors

Name | Description
OracleDBAdapter | Overloaded. Initializes a new instance of the OracleDBAdapter class.
Top

Public Properties

 | Name | Description
public property | AcceptCredentialsInUri | Gets or sets whether the Oracle connection URI can contain user credentials for the Oracle database.
public property | ConnectionLifetime | Gets or sets the maximum duration in seconds of a connection.
public property | DataFetchSize | Gets or sets the amount of data to fetch.
public property | DecrPoolSize | Gets or sets the number of connections that are closed when an excessive amount of established connections are not in use.
public property | EnableBizTalkCompatibilityMode | Gets or sets whether the value of this property is enabled when using the adapter with Biztalk Server.
public property | EnablePerformanceCounters | Gets or sets whether the performance counters are enabled.
public property | EnableSafeTyping | Gets or sets whether safe typing is enabled.
public property | GeneratedUserTypesAssemblyFilePath | Gets or sets the name and path of the DLL that the adapter generates, while generating metadata, containing all UDTs that are used in the metadata.
public property | GeneratedUserTypesAssemblyKeyFilePath | Gets or sets the name and path of the key file that the adapter uses to create a strongly-typed assembly.
public property | InboundOperationType | Gets or sets the type of inbound operation to be performed.
public property | IncrPoolSize | Gets or sets the number of new connections to be created when a new connection is requested and there are no available connections in the connection pool.
public property | InsertBatchSize | Gets or sets the batch size for record insert operations.
public property | LongDatatypeColumnSize | Gets or sets the maximum size of a long data type column. Obsolete.
public property | ManualAddressing | (inherited from TransportBindingElement)
public property | MaxBufferPoolSize | (inherited from TransportBindingElement)
public property | MaxOutputAssociativeArrayElements | Gets or sets the size of the associate array that the adapter creates when performing operations that return an associative array in the response.
public property | MaxPoolSize | Gets or sets the maximum number of connections in the connection pool.
public property | MaxReceivedMessageSize | (inherited from TransportBindingElement)
public property | MetadataPooling | Gets or sets whether metadata pooling is used.
public property | MinPoolSize | Gets or sets the minimum number of connections in the connection pool.
public property | NotificationPort | Gets or sets the port number that the data provider must open to listen for database change notification from Oracle database.
public property | NotificationStatement | Gets or sets the SELECT statement used to register for getting notifications from Oracle database.
public property | NotifyOnListenerStart | Gets or sets whether the adapter sends a notification message to the adapter clients, informing that the receive location is running, when the listener starts.
public property | PolledDataAvailableStatement | Gets or sets the SELECT statement executed to determine whether any data is available for polling for a specific table.
public property | PollingAction | Gets or sets the action for the polling operation.
public property | PollingInterval | Gets or sets the transacted polling interval.
public property | PollingRetryCount | Gets or sets the number of times that polling is retried. Obsolete.
public property | PollingStatement | Gets or sets the polling statement.
public property | PollWhileDataFound | Gets or sets whether the specified object continously poll data when it is available.
public property | PostPollStatement | Gets or sets the post poll statement.
public property | Scheme | Overridden. Gets the scheme name for the specified object.
public property | SkipNilNodes | Gets or sets whether the specified object skips inserting or updating values for nodes that are marked as 'nil' in the request XML.
public property | StatementCachePurge | Gets or sets whether statement cache is purged.
public property | StatementCacheSize | Gets or sets the maximum number of statements that can be cached.
public property | TransactedReceiveEnabled | (inherited from Adapter)
public property | TransactionIsolationLevel | Gets or sets the Oracle transaction isolation level. Obsolete.
public property | UseAmbientTransaction | Gets or sets whether the Oracle Database adapter performs the operations using the transaction context provided by the caller.
public property | UseOracleConnectionPool | Gets or sets whether oracle connection pool is used.
public property | UserAssembliesLoadPath | Gets or sets the name of the DLLs, separated by a semi-colon, which the adapter creates while generating metadata.
public property | UseSchemaInNameSpace | Gets or sets whether the schema name is included in the xml namespace for operations and their associated types.
Top

Public Methods (see also Protected Methods)

 | Name | Description
public method | BuildChannelFactory | Overridden. (inherited from BindingElement)
public method | BuildChannelListener | Overridden. (inherited from BindingElement)
public method | CanBuildChannelFactory | Overridden. (inherited from BindingElement)
public method | CanBuildChannelListener | Overridden. (inherited from BindingElement)
public method | Clone | Overridden. (inherited from BindingElement)
public method | Equals | (inherited from Object)
public method | GetHashCode | (inherited from Object)
public method | GetProperty | Overridden. (inherited from BindingElement)
public method | GetType | (inherited from Object)
public method | ToString | (inherited from Object)
Top

Protected Methods

 | Name | Description
protected method | CloneAdapter | (inherited from Adapter)
protected method | Finalize | (inherited from Object)
protected method | MemberwiseClone | (inherited from Object)
Top

See Also

Reference

OracleDBAdapter Class


OracleDBAdapter Constructor
[image]

Initializes a new instance of the OracleDBAdapter class.

Overload List

Name | Description
OracleDBAdapter () | Initializes a new instance of the Oracle DB adapter class.
OracleDBAdapter (OracleDBAdapter) | Initializes a new instance of the Oracle DB adapter class with a binding.

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter Constructor ()
[image]

Initializes a new instance of the Oracle DB adapter class.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As New OracleDBAdapter

Syntax

Visual Basic
Public Sub New
C#
public OracleDBAdapter ()
C++
public:
OracleDBAdapter ()
J#
public OracleDBAdapter ()
JScript
public function OracleDBAdapter ()

Remarks

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter Constructor (OracleDBAdapter)
[image]

Initializes a new instance of the Oracle DB adapter class with a binding.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim other As OracleDBAdapter

Dim instance As New OracleDBAdapter(other)

Syntax

Visual Basic
Public Sub New ( _
    other As OracleDBAdapter _
)
C#
public OracleDBAdapter (
    OracleDBAdapter other
)
C++
public:
OracleDBAdapter (
    OracleDBAdapter^ other
)
J#
public OracleDBAdapter (
    OracleDBAdapter other
)
JScript
public function OracleDBAdapter (
    other : OracleDBAdapter
)

Parameters

other

The other Oracle DB adapter.

Remarks

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter Methods
[image]

Public Methods (see also Protected Methods)

 | Name | Description
public method | BuildChannelFactory | Overridden. (inherited from BindingElement)
public method | BuildChannelListener | Overridden. (inherited from BindingElement)
public method | CanBuildChannelFactory | Overridden. (inherited from BindingElement)
public method | CanBuildChannelListener | Overridden. (inherited from BindingElement)
public method | Clone | Overridden. (inherited from BindingElement)
public method | Equals | (inherited from Object)
public method | GetHashCode | (inherited from Object)
public method | GetProperty | Overridden. (inherited from BindingElement)
public method | GetType | (inherited from Object)
public method | ToString | (inherited from Object)

Protected Methods

 | Name | Description
protected method | CloneAdapter | (inherited from Adapter)
protected method | Finalize | (inherited from Object)
protected method | MemberwiseClone | (inherited from Object)

See Also

Reference

OracleDBAdapter Class


OracleDBAdapter Properties
[image]

Public Properties

 | Name | Description
public property | AcceptCredentialsInUri | Gets or sets whether the Oracle connection URI can contain user credentials for the Oracle database.
public property | ConnectionLifetime | Gets or sets the maximum duration in seconds of a connection.
public property | DataFetchSize | Gets or sets the amount of data to fetch.
public property | DecrPoolSize | Gets or sets the number of connections that are closed when an excessive amount of established connections are not in use.
public property | EnableBizTalkCompatibilityMode | Gets or sets whether the value of this property is enabled when using the adapter with Biztalk Server.
public property | EnablePerformanceCounters | Gets or sets whether the performance counters are enabled.
public property | EnableSafeTyping | Gets or sets whether safe typing is enabled.
public property | GeneratedUserTypesAssemblyFilePath | Gets or sets the name and path of the DLL that the adapter generates, while generating metadata, containing all UDTs that are used in the metadata.
public property | GeneratedUserTypesAssemblyKeyFilePath | Gets or sets the name and path of the key file that the adapter uses to create a strongly-typed assembly.
public property | InboundOperationType | Gets or sets the type of inbound operation to be performed.
public property | IncrPoolSize | Gets or sets the number of new connections to be created when a new connection is requested and there are no available connections in the connection pool.
public property | InsertBatchSize | Gets or sets the batch size for record insert operations.
public property | LongDatatypeColumnSize | Gets or sets the maximum size of a long data type column. Obsolete.
public property | ManualAddressing | (inherited from TransportBindingElement)
public property | MaxBufferPoolSize | (inherited from TransportBindingElement)
public property | MaxOutputAssociativeArrayElements | Gets or sets the size of the associate array that the adapter creates when performing operations that return an associative array in the response.
public property | MaxPoolSize | Gets or sets the maximum number of connections in the connection pool.
public property | MaxReceivedMessageSize | (inherited from TransportBindingElement)
public property | MetadataPooling | Gets or sets whether metadata pooling is used.
public property | MinPoolSize | Gets or sets the minimum number of connections in the connection pool.
public property | NotificationPort | Gets or sets the port number that the data provider must open to listen for database change notification from Oracle database.
public property | NotificationStatement | Gets or sets the SELECT statement used to register for getting notifications from Oracle database.
public property | NotifyOnListenerStart | Gets or sets whether the adapter sends a notification message to the adapter clients, informing that the receive location is running, when the listener starts.
public property | PolledDataAvailableStatement | Gets or sets the SELECT statement executed to determine whether any data is available for polling for a specific table.
public property | PollingAction | Gets or sets the action for the polling operation.
public property | PollingInterval | Gets or sets the transacted polling interval.
public property | PollingRetryCount | Gets or sets the number of times that polling is retried. Obsolete.
public property | PollingStatement | Gets or sets the polling statement.
public property | PollWhileDataFound | Gets or sets whether the specified object continously poll data when it is available.
public property | PostPollStatement | Gets or sets the post poll statement.
public property | Scheme | Overridden. Gets the scheme name for the specified object.
public property | SkipNilNodes | Gets or sets whether the specified object skips inserting or updating values for nodes that are marked as 'nil' in the request XML.
public property | StatementCachePurge | Gets or sets whether statement cache is purged.
public property | StatementCacheSize | Gets or sets the maximum number of statements that can be cached.
public property | TransactedReceiveEnabled | (inherited from Adapter)
public property | TransactionIsolationLevel | Gets or sets the Oracle transaction isolation level. Obsolete.
public property | UseAmbientTransaction | Gets or sets whether the Oracle Database adapter performs the operations using the transaction context provided by the caller.
public property | UseOracleConnectionPool | Gets or sets whether oracle connection pool is used.
public property | UserAssembliesLoadPath | Gets or sets the name of the DLLs, separated by a semi-colon, which the adapter creates while generating metadata.
public property | UseSchemaInNameSpace | Gets or sets whether the schema name is included in the xml namespace for operations and their associated types.

See Also

Reference

OracleDBAdapter Class


OracleDBAdapter.AcceptCredentialsInUri Property
[image]

Gets or sets whether the Oracle connection URI can contain user credentials for the Oracle database.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Boolean

value = instance.AcceptCredentialsInUri

instance.AcceptCredentialsInUri = value

Syntax

Visual Basic
Public Property AcceptCredentialsInUri As Boolean
C#
public bool AcceptCredentialsInUri { get; set; }
C++
public:
virtual property bool AcceptCredentialsInUri {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final boolean get_AcceptCredentialsInUri ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_AcceptCredentialsInUri (boolean value)
JScript
CompilerGeneratedAttribute
public final function get AcceptCredentialsInUri () : boolean

CompilerGeneratedAttribute
public final function set AcceptCredentialsInUri (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if the Oracle connection URI can contain user credentials for the Oracle database; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.ConnectionLifetime Property
[image]

Gets or sets the maximum duration in seconds of a connection.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Integer

value = instance.ConnectionLifetime

instance.ConnectionLifetime = value

Syntax

Visual Basic
Public Property ConnectionLifetime As Integer
C#
public int ConnectionLifetime { get; set; }
C++
public:
virtual property int ConnectionLifetime {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_ConnectionLifetime ()

/** @property */
public final void set_ConnectionLifetime (int value)
JScript
public final function get ConnectionLifetime () : int

public final function set ConnectionLifetime (value : int)

Property Value

The maximum duration in seconds of a connection.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.DataFetchSize Property
[image]

Gets or sets the amount of data to fetch.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Long

value = instance.DataFetchSize

instance.DataFetchSize = value

Syntax

Visual Basic
Public Property DataFetchSize As Long
C#
public long DataFetchSize { get; set; }
C++
public:
virtual property long long DataFetchSize {
    long long get () sealed;
    void set (long long value) sealed;
}
J#
/** @property */
public final long get_DataFetchSize ()

/** @property */
public final void set_DataFetchSize (long value)
JScript
public final function get DataFetchSize () : long

public final function set DataFetchSize (value : long)

Property Value

The data type.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.DecrPoolSize Property
[image]

Gets or sets the number of connections that are closed when an excessive amount of established connections are not in use.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Integer

value = instance.DecrPoolSize

instance.DecrPoolSize = value

Syntax

Visual Basic
Public Property DecrPoolSize As Integer
C#
public int DecrPoolSize { get; set; }
C++
public:
virtual property int DecrPoolSize {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_DecrPoolSize ()

/** @property */
public final void set_DecrPoolSize (int value)
JScript
public final function get DecrPoolSize () : int

public final function set DecrPoolSize (value : int)

Property Value

The number of connections that are closed.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.EnableBizTalkCompatibilityMode Property
[image]

Gets or sets whether the value of this property is enabled when using the adapter with Biztalk Server.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Boolean

value = instance.EnableBizTalkCompatibilityMode

instance.EnableBizTalkCompatibilityMode = value

Syntax

Visual Basic
Public Property EnableBizTalkCompatibilityMode As Boolean
C#
public bool EnableBizTalkCompatibilityMode { get; set; }
C++
public:
virtual property bool EnableBizTalkCompatibilityMode {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
public final boolean get_EnableBizTalkCompatibilityMode ()

/** @property */
public final void set_EnableBizTalkCompatibilityMode (boolean value)
JScript
public final function get EnableBizTalkCompatibilityMode () : boolean

public final function set EnableBizTalkCompatibilityMode (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if the value of this property is enabled; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.EnablePerformanceCounters Property
[image]

Gets or sets whether the performance counters are enabled.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Boolean

value = instance.EnablePerformanceCounters

instance.EnablePerformanceCounters = value

Syntax

Visual Basic
Public Property EnablePerformanceCounters As Boolean
C#
public bool EnablePerformanceCounters { get; set; }
C++
public:
virtual property bool EnablePerformanceCounters {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
public final boolean get_EnablePerformanceCounters ()

/** @property */
public final void set_EnablePerformanceCounters (boolean value)
JScript
public final function get EnablePerformanceCounters () : boolean

public final function set EnablePerformanceCounters (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if performance counters are enabled; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.EnableSafeTyping Property
[image]

Gets or sets whether safe typing is enabled.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Boolean

value = instance.EnableSafeTyping

instance.EnableSafeTyping = value

Syntax

Visual Basic
Public Property EnableSafeTyping As Boolean
C#
public bool EnableSafeTyping { get; set; }
C++
public:
virtual property bool EnableSafeTyping {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
public final boolean get_EnableSafeTyping ()

/** @property */
public final void set_EnableSafeTyping (boolean value)
JScript
public final function get EnableSafeTyping () : boolean

public final function set EnableSafeTyping (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if safe typing is enabled; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.GeneratedUserTypesAssemblyFilePath Property
[image]

Gets or sets the name and path of the DLL that the adapter generates, while generating metadata, containing all UDTs that are used in the metadata.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As String

value = instance.GeneratedUserTypesAssemblyFilePath

instance.GeneratedUserTypesAssemblyFilePath = value

Syntax

Visual Basic
Public Property GeneratedUserTypesAssemblyFilePath As String
C#
public string GeneratedUserTypesAssemblyFilePath { get; set; }
C++
public:
virtual property String^ GeneratedUserTypesAssemblyFilePath {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final String get_GeneratedUserTypesAssemblyFilePath ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_GeneratedUserTypesAssemblyFilePath (String value)
JScript
CompilerGeneratedAttribute
public final function get GeneratedUserTypesAssemblyFilePath () : String

CompilerGeneratedAttribute
public final function set GeneratedUserTypesAssemblyFilePath (value : String)

Property Value

The name and path of the DLL that the adapter generates.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.GeneratedUserTypesAssemblyKeyFilePath Property
[image]

Gets or sets the name and path of the key file that the adapter uses to create a strongly-typed assembly.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As String

value = instance.GeneratedUserTypesAssemblyKeyFilePath

instance.GeneratedUserTypesAssemblyKeyFilePath = value

Syntax

Visual Basic
Public Property GeneratedUserTypesAssemblyKeyFilePath As String
C#
public string GeneratedUserTypesAssemblyKeyFilePath { get; set; }
C++
public:
virtual property String^ GeneratedUserTypesAssemblyKeyFilePath {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final String get_GeneratedUserTypesAssemblyKeyFilePath ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_GeneratedUserTypesAssemblyKeyFilePath (String value)
JScript
CompilerGeneratedAttribute
public final function get GeneratedUserTypesAssemblyKeyFilePath () : String

CompilerGeneratedAttribute
public final function set GeneratedUserTypesAssemblyKeyFilePath (value : String)

Property Value

The name and path of the key file that the adapter uses to create a strongly-typed assembly.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.InboundOperationType Property
[image]

Gets or sets the type of inbound operation to be performed.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As InboundOperation

value = instance.InboundOperationType

instance.InboundOperationType = value

Syntax

Visual Basic
Public Property InboundOperationType As InboundOperation
C#
public InboundOperation InboundOperationType { get; set; }
C++
public:
virtual property InboundOperation InboundOperationType {
    InboundOperation get () sealed;
    void set (InboundOperation value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final InboundOperation get_InboundOperationType ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_InboundOperationType (InboundOperation value)
JScript
CompilerGeneratedAttribute
public final function get InboundOperationType () : InboundOperation

CompilerGeneratedAttribute
public final function set InboundOperationType (value : InboundOperation)

Property Value

The inbound operation.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.IncrPoolSize Property
[image]

Gets or sets the number of new connections to be created when a new connection is requested and there are no available connections in the connection pool.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Integer

value = instance.IncrPoolSize

instance.IncrPoolSize = value

Syntax

Visual Basic
Public Property IncrPoolSize As Integer
C#
public int IncrPoolSize { get; set; }
C++
public:
virtual property int IncrPoolSize {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_IncrPoolSize ()

/** @property */
public final void set_IncrPoolSize (int value)
JScript
public final function get IncrPoolSize () : int

public final function set IncrPoolSize (value : int)

Property Value

The number of new connections to be created.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.InsertBatchSize Property
[image]

Gets or sets the batch size for record insert operations.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Integer

value = instance.InsertBatchSize

instance.InsertBatchSize = value

Syntax

Visual Basic
Public Property InsertBatchSize As Integer
C#
public int InsertBatchSize { get; set; }
C++
public:
virtual property int InsertBatchSize {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_InsertBatchSize ()

/** @property */
public final void set_InsertBatchSize (int value)
JScript
public final function get InsertBatchSize () : int

public final function set InsertBatchSize (value : int)

Property Value

The batch size for record insert operations.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.LongDatatypeColumnSize Property
[image]

Gets or sets the maximum size of a long data type column.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Long

value = instance.LongDatatypeColumnSize

instance.LongDatatypeColumnSize = value

Syntax

Visual Basic
<ObsoleteAttribute("Long data type is deprecated in Oracle. Refer to Oracle documentation for suggested alternatives")> _
Public Property LongDatatypeColumnSize As Long
C#
[ObsoleteAttribute("Long data type is deprecated in Oracle. Refer to Oracle documentation for suggested alternatives")]
public long LongDatatypeColumnSize { get; set; }
C++
[ObsoleteAttribute(L"Long data type is deprecated in Oracle. Refer to Oracle documentation for suggested alternatives")]
public:
virtual property long long LongDatatypeColumnSize {
    long long get () sealed;
    void set (long long value) sealed;
}
J#
/** @property */
public final long get_LongDatatypeColumnSize ()

/** @property */
public final void set_LongDatatypeColumnSize (long value)
JScript
public final function get LongDatatypeColumnSize () : long

public final function set LongDatatypeColumnSize (value : long)

Property Value

The maximum size of a long data type column.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.MaxOutputAssociativeArrayElements Property
[image]

Gets or sets the size of the associate array that the adapter creates when performing operations that return an associative array in the response.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Integer

value = instance.MaxOutputAssociativeArrayElements

instance.MaxOutputAssociativeArrayElements = value

Syntax

Visual Basic
Public Property MaxOutputAssociativeArrayElements As Integer
C#
public int MaxOutputAssociativeArrayElements { get; set; }
C++
public:
virtual property int MaxOutputAssociativeArrayElements {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_MaxOutputAssociativeArrayElements ()

/** @property */
public final void set_MaxOutputAssociativeArrayElements (int value)
JScript
public final function get MaxOutputAssociativeArrayElements () : int

public final function set MaxOutputAssociativeArrayElements (value : int)

Property Value

The size of the associate array that the binding creates.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.MaxPoolSize Property
[image]

Gets or sets the maximum number of connections in the connection pool.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Integer

value = instance.MaxPoolSize

instance.MaxPoolSize = value

Syntax

Visual Basic
Public Property MaxPoolSize As Integer
C#
public int MaxPoolSize { get; set; }
C++
public:
virtual property int MaxPoolSize {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_MaxPoolSize ()

/** @property */
public final void set_MaxPoolSize (int value)
JScript
public final function get MaxPoolSize () : int

public final function set MaxPoolSize (value : int)

Property Value

The maximum number of connections.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.MetadataPooling Property
[image]

Gets or sets whether metadata pooling is used.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Boolean

value = instance.MetadataPooling

instance.MetadataPooling = value

Syntax

Visual Basic
Public Property MetadataPooling As Boolean
C#
public bool MetadataPooling { get; set; }
C++
public:
virtual property bool MetadataPooling {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final boolean get_MetadataPooling ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_MetadataPooling (boolean value)
JScript
CompilerGeneratedAttribute
public final function get MetadataPooling () : boolean

CompilerGeneratedAttribute
public final function set MetadataPooling (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if metadata pooling is used; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.MinPoolSize Property
[image]

Gets or sets the minimum number of connections in the connection pool.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Integer

value = instance.MinPoolSize

instance.MinPoolSize = value

Syntax

Visual Basic
Public Property MinPoolSize As Integer
C#
public int MinPoolSize { get; set; }
C++
public:
virtual property int MinPoolSize {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_MinPoolSize ()

/** @property */
public final void set_MinPoolSize (int value)
JScript
public final function get MinPoolSize () : int

public final function set MinPoolSize (value : int)

Property Value

The minimum number of connections.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.NotificationPort Property
[image]

Gets or sets the port number that the data provider must open to listen for database change notification from Oracle database.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Integer

value = instance.NotificationPort

instance.NotificationPort = value

Syntax

Visual Basic
Public Property NotificationPort As Integer
C#
public int NotificationPort { get; set; }
C++
public:
virtual property int NotificationPort {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_NotificationPort ()

/** @property */
public final void set_NotificationPort (int value)
JScript
public final function get NotificationPort () : int

public final function set NotificationPort (value : int)

Property Value

The notifiaction port number.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.NotificationStatement Property
[image]

Gets or sets the SELECT statement used to register for getting notifications from Oracle database.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As String

value = instance.NotificationStatement

instance.NotificationStatement = value

Syntax

Visual Basic
Public Property NotificationStatement As String
C#
public string NotificationStatement { get; set; }
C++
public:
virtual property String^ NotificationStatement {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final String get_NotificationStatement ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_NotificationStatement (String value)
JScript
CompilerGeneratedAttribute
public final function get NotificationStatement () : String

CompilerGeneratedAttribute
public final function set NotificationStatement (value : String)

Property Value

The notification statement.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.NotifyOnListenerStart Property
[image]

Gets or sets whether the adapter sends a notification message to the adapter clients, informing that the receive location is running, when the listener starts.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Boolean

value = instance.NotifyOnListenerStart

instance.NotifyOnListenerStart = value

Syntax

Visual Basic
Public Property NotifyOnListenerStart As Boolean
C#
public bool NotifyOnListenerStart { get; set; }
C++
public:
virtual property bool NotifyOnListenerStart {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final boolean get_NotifyOnListenerStart ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_NotifyOnListenerStart (boolean value)
JScript
CompilerGeneratedAttribute
public final function get NotifyOnListenerStart () : boolean

CompilerGeneratedAttribute
public final function set NotifyOnListenerStart (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if the adapter sends a notification message when the listener starts; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.PolledDataAvailableStatement Property
[image]

Gets or sets the SELECT statement executed to determine whether any data is available for polling for a specific table.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As String

value = instance.PolledDataAvailableStatement

instance.PolledDataAvailableStatement = value

Syntax

Visual Basic
Public Property PolledDataAvailableStatement As String
C#
public string PolledDataAvailableStatement { get; set; }
C++
public:
virtual property String^ PolledDataAvailableStatement {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final String get_PolledDataAvailableStatement ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_PolledDataAvailableStatement (String value)
JScript
CompilerGeneratedAttribute
public final function get PolledDataAvailableStatement () : String

CompilerGeneratedAttribute
public final function set PolledDataAvailableStatement (value : String)

Property Value

The polled data available statement.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.PollingAction Property
[image]

Gets or sets the action for the polling operation.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As String

value = instance.PollingAction

instance.PollingAction = value

Syntax

Visual Basic
Public Property PollingAction As String
C#
public string PollingAction { get; set; }
C++
public:
virtual property String^ PollingAction {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final String get_PollingAction ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_PollingAction (String value)
JScript
CompilerGeneratedAttribute
public final function get PollingAction () : String

CompilerGeneratedAttribute
public final function set PollingAction (value : String)

Property Value

The action for the polling operation.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.PollingInterval Property
[image]

Gets or sets the transacted polling interval.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Integer

value = instance.PollingInterval

instance.PollingInterval = value

Syntax

Visual Basic
Public Property PollingInterval As Integer
C#
public int PollingInterval { get; set; }
C++
public:
virtual property int PollingInterval {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_PollingInterval ()

/** @property */
public final void set_PollingInterval (int value)
JScript
public final function get PollingInterval () : int

public final function set PollingInterval (value : int)

Property Value

The polling interval.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.PollingRetryCount Property
[image]

Gets or sets the number of times that polling is retried.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Integer

value = instance.PollingRetryCount

instance.PollingRetryCount = value

Syntax

Visual Basic
<BrowsableAttribute(False)> _
<ObsoleteAttribute("This field/property/method is deprecated")> _
Public Property PollingRetryCount As Integer
C#
[BrowsableAttribute(false)]
[ObsoleteAttribute("This field/property/method is deprecated")]
public int PollingRetryCount { get; set; }
C++
[BrowsableAttribute(false)]
[ObsoleteAttribute(L"This field/property/method is deprecated")]
public:
property int PollingRetryCount {
    int get ();
    void set (int value);
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public int get_PollingRetryCount ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public void set_PollingRetryCount (int value)
JScript
CompilerGeneratedAttribute
public function get PollingRetryCount () : int

CompilerGeneratedAttribute
public function set PollingRetryCount (value : int)

Property Value

The number of times that polling is retried.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.PollingStatement Property
[image]

Gets or sets the polling statement.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As String

value = instance.PollingStatement

instance.PollingStatement = value

Syntax

Visual Basic
Public Property PollingStatement As String
C#
public string PollingStatement { get; set; }
C++
public:
virtual property String^ PollingStatement {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final String get_PollingStatement ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_PollingStatement (String value)
JScript
CompilerGeneratedAttribute
public final function get PollingStatement () : String

CompilerGeneratedAttribute
public final function set PollingStatement (value : String)

Property Value

The polling statement.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.PollWhileDataFound Property
[image]

Gets or sets whether the specified object continously poll data when it is available.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Boolean

value = instance.PollWhileDataFound

instance.PollWhileDataFound = value

Syntax

Visual Basic
Public Property PollWhileDataFound As Boolean
C#
public bool PollWhileDataFound { get; set; }
C++
public:
virtual property bool PollWhileDataFound {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final boolean get_PollWhileDataFound ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_PollWhileDataFound (boolean value)
JScript
CompilerGeneratedAttribute
public final function get PollWhileDataFound () : boolean

CompilerGeneratedAttribute
public final function set PollWhileDataFound (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if the specified object continously poll data when it is available; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.PostPollStatement Property
[image]

Gets or sets the post poll statement.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As String

value = instance.PostPollStatement

instance.PostPollStatement = value

Syntax

Visual Basic
Public Property PostPollStatement As String
C#
public string PostPollStatement { get; set; }
C++
public:
virtual property String^ PostPollStatement {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final String get_PostPollStatement ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_PostPollStatement (String value)
JScript
CompilerGeneratedAttribute
public final function get PostPollStatement () : String

CompilerGeneratedAttribute
public final function set PostPollStatement (value : String)

Property Value

The post poll statement.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.Scheme Property
[image]

Gets the scheme name for the specified object.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As String

value = instance.Scheme

Syntax

Visual Basic
<SuppressMessageAttribute("Microsoft.Design", "CA1048:DoNotDeclareVirtualMembersInSealedTypes")> _
Public Overrides ReadOnly Property Scheme As String
C#
[SuppressMessageAttribute("Microsoft.Design", "CA1048:DoNotDeclareVirtualMembersInSealedTypes")]
public override string Scheme { get; }
C++
[SuppressMessageAttribute(L"Microsoft.Design", L"CA1048:DoNotDeclareVirtualMembersInSealedTypes")]
public:
virtual property String^ Scheme {
    String^ get () override;
}
J#
/** @property */
public String get_Scheme ()
JScript
public override function get Scheme () : String

Property Value

The scheme name.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.SkipNilNodes Property
[image]

Gets or sets whether the specified object skips inserting or updating values for nodes that are marked as 'nil' in the request XML.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Boolean

value = instance.SkipNilNodes

instance.SkipNilNodes = value

Syntax

Visual Basic
Public Property SkipNilNodes As Boolean
C#
public bool SkipNilNodes { get; set; }
C++
public:
virtual property bool SkipNilNodes {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final boolean get_SkipNilNodes ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_SkipNilNodes (boolean value)
JScript
CompilerGeneratedAttribute
public final function get SkipNilNodes () : boolean

CompilerGeneratedAttribute
public final function set SkipNilNodes (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if inserting nil nodes is skipped; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.StatementCachePurge Property
[image]

Gets or sets whether statement cache is purged.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Boolean

value = instance.StatementCachePurge

instance.StatementCachePurge = value

Syntax

Visual Basic
Public Property StatementCachePurge As Boolean
C#
public bool StatementCachePurge { get; set; }
C++
public:
virtual property bool StatementCachePurge {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final boolean get_StatementCachePurge ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_StatementCachePurge (boolean value)
JScript
CompilerGeneratedAttribute
public final function get StatementCachePurge () : boolean

CompilerGeneratedAttribute
public final function set StatementCachePurge (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if statement cache is purged; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.StatementCacheSize Property
[image]

Gets or sets the maximum number of statements that can be cached.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Integer

value = instance.StatementCacheSize

instance.StatementCacheSize = value

Syntax

Visual Basic
Public Property StatementCacheSize As Integer
C#
public int StatementCacheSize { get; set; }
C++
public:
virtual property int StatementCacheSize {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_StatementCacheSize ()

/** @property */
public final void set_StatementCacheSize (int value)
JScript
public final function get StatementCacheSize () : int

public final function set StatementCacheSize (value : int)

Property Value

The maximum number of statements.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.TransactionIsolationLevel Property
[image]

Gets or sets the Oracle transaction isolation level.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As TransactionIsolationLevel

value = instance.TransactionIsolationLevel

instance.TransactionIsolationLevel = value

Syntax

Visual Basic
<BrowsableAttribute(False)> _
<ObsoleteAttribute("This field/property/method is deprecated")> _
Public Property TransactionIsolationLevel As TransactionIsolationLevel
C#
[BrowsableAttribute(false)]
[ObsoleteAttribute("This field/property/method is deprecated")]
public TransactionIsolationLevel TransactionIsolationLevel { get; set; }
C++
[BrowsableAttribute(false)]
[ObsoleteAttribute(L"This field/property/method is deprecated")]
public:
property TransactionIsolationLevel TransactionIsolationLevel {
    TransactionIsolationLevel get ();
    void set (TransactionIsolationLevel value);
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public TransactionIsolationLevel get_TransactionIsolationLevel ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public void set_TransactionIsolationLevel (TransactionIsolationLevel value)
JScript
CompilerGeneratedAttribute
public function get TransactionIsolationLevel () : TransactionIsolationLevel

CompilerGeneratedAttribute
public function set TransactionIsolationLevel (value : TransactionIsolationLevel)

Property Value

The Oracle transaction isolation level.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.UseAmbientTransaction Property
[image]

Gets or sets whether the Oracle Database adapter performs the operations using the transaction context provided by the caller.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Boolean

value = instance.UseAmbientTransaction

instance.UseAmbientTransaction = value

Syntax

Visual Basic
Public Property UseAmbientTransaction As Boolean
C#
public bool UseAmbientTransaction { get; set; }
C++
public:
virtual property bool UseAmbientTransaction {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
public final boolean get_UseAmbientTransaction ()

/** @property */
public final void set_UseAmbientTransaction (boolean value)
JScript
public final function get UseAmbientTransaction () : boolean

public final function set UseAmbientTransaction (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if the Oracle Database adapter performs the operations using the transaction context provided by the caller; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.UseOracleConnectionPool Property
[image]

Gets or sets whether oracle connection pool is used.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Boolean

value = instance.UseOracleConnectionPool

instance.UseOracleConnectionPool = value

Syntax

Visual Basic
Public Property UseOracleConnectionPool As Boolean
C#
public bool UseOracleConnectionPool { get; set; }
C++
public:
virtual property bool UseOracleConnectionPool {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final boolean get_UseOracleConnectionPool ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_UseOracleConnectionPool (boolean value)
JScript
CompilerGeneratedAttribute
public final function get UseOracleConnectionPool () : boolean

CompilerGeneratedAttribute
public final function set UseOracleConnectionPool (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if oracle connection pool is used; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.UserAssembliesLoadPath Property
[image]

Gets or sets the name of the DLLs, separated by a semi-colon, which the adapter creates while generating metadata.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As String

value = instance.UserAssembliesLoadPath

instance.UserAssembliesLoadPath = value

Syntax

Visual Basic
Public Property UserAssembliesLoadPath As String
C#
public string UserAssembliesLoadPath { get; set; }
C++
public:
virtual property String^ UserAssembliesLoadPath {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final String get_UserAssembliesLoadPath ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_UserAssembliesLoadPath (String value)
JScript
CompilerGeneratedAttribute
public final function get UserAssembliesLoadPath () : String

CompilerGeneratedAttribute
public final function set UserAssembliesLoadPath (value : String)

Property Value

The name of the DLLs.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapter.UseSchemaInNameSpace Property
[image]

Gets or sets whether the schema name is included in the xml namespace for operations and their associated types.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapter
Dim value As Boolean

value = instance.UseSchemaInNameSpace

instance.UseSchemaInNameSpace = value

Syntax

Visual Basic
Public Property UseSchemaInNameSpace As Boolean
C#
public bool UseSchemaInNameSpace { get; set; }
C++
public:
virtual property bool UseSchemaInNameSpace {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final boolean get_UseSchemaInNameSpace ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_UseSchemaInNameSpace (boolean value)
JScript
CompilerGeneratedAttribute
public final function get UseSchemaInNameSpace () : boolean

CompilerGeneratedAttribute
public final function set UseSchemaInNameSpace (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if the schema name is included in the xml namespace for operations and their associated types; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapter Class
OracleDBAdapter Members


OracleDBAdapterBindingSection Class
See Also Members
[image]

Represents a configuration section for Oracle DB adapter binding.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBAdapterBindingSection

Syntax

Visual Basic
Public NotInheritable Class OracleDBAdapterBindingSection
    Inherits StandardBindingCollectionElement(Of OracleDBBinding, OracleDBBindingConfigurationElement)
C#
public sealed class OracleDBAdapterBindingSection : StandardBindingCollectionElement<OracleDBBinding,OracleDBBindingConfigurationElement>
C++
public ref class OracleDBAdapterBindingSection sealed : public StandardBindingCollectionElement<OracleDBBinding^, OracleDBBindingConfigurationElement^>
J#
public final class OracleDBAdapterBindingSection extends StandardBindingCollectionElement<OracleDBBinding,OracleDBBindingConfigurationElement>
JScript
public final class OracleDBAdapterBindingSection extends StandardBindingCollectionElement<OracleDBBinding,OracleDBBindingConfigurationElement>

Inheritance Hierarchy

System.Object
System.Configuration.ConfigurationElement
System.ServiceModel.Configuration.BindingCollectionElement
System.ServiceModel.Configuration.StandardBindingCollectionElement
Microsoft.Adapters.OracleDB.OracleDBAdapterBindingSection

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapterBindingSection Members


OracleDBAdapterBindingSection Members
See Also Constructors Methods Properties
[image]

Represents a configuration section for Oracle DB adapter binding.

The following tables list the members exposed by the OracleDBAdapterBindingSection type.

Public Constructors

Name | Description
OracleDBAdapterBindingSection | Initializes a new instance of the OracleDBAdapterBindingSection class.
Top

Public Properties (see also Protected Properties)

 | Name | Description
public property | BindingName | (inherited from BindingCollectionElement)
public property | Bindings | (inherited from StandardBindingCollectionElement)
public property | BindingType | Overridden. (inherited from BindingCollectionElement)
public property | ConfiguredBindings | Overridden. (inherited from BindingCollectionElement)
public property | ElementInformation | (inherited from ConfigurationElement)
public property | LockAllAttributesExcept | (inherited from ConfigurationElement)
public property | LockAllElementsExcept | (inherited from ConfigurationElement)
public property | LockAttributes | (inherited from ConfigurationElement)
public property | LockElements | (inherited from ConfigurationElement)
public property | LockItem | (inherited from ConfigurationElement)
Top

Protected Properties

 | Name | Description
protected property | EvaluationContext | (inherited from ConfigurationElement)
protected property | Properties | Overridden. (inherited from ConfigurationElement)
Top

Public Methods (see also Protected Methods)

 | Name | Description
public method | ContainsKey | Overridden. (inherited from BindingCollectionElement)
public method | Equals | Overridden. (inherited from Object)
public method | GetHashCode | Overridden. (inherited from Object)
public method | GetType | (inherited from Object)
public method | IsReadOnly | (inherited from ConfigurationElement)
public method | ToString | (inherited from Object)
Top

Protected Methods

 | Name | Description
protected method | Finalize | (inherited from Object)
protected method | ListErrors | (inherited from ConfigurationElement)
protected method | MemberwiseClone | (inherited from Object)
protected method | OnDeserializeUnrecognizedAttribute | (inherited from ConfigurationElement)
protected method | OnDeserializeUnrecognizedElement | (inherited from ConfigurationElement)
protected method | OnRequiredPropertyNotFound | (inherited from ConfigurationElement)
protected method | PostDeserialize | (inherited from ConfigurationElement)
protected method | PreSerialize | (inherited from ConfigurationElement)
protected method | SetPropertyValue | (inherited from ConfigurationElement)
Top

See Also

Reference

OracleDBAdapterBindingSection Class


OracleDBAdapterBindingSection Constructor
[image]

Initializes a new instance of the OracleDBAdapterBindingSection class.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As New OracleDBAdapterBindingSection

Syntax

Visual Basic
Public Sub New
C#
public OracleDBAdapterBindingSection ()
C++
public:
OracleDBAdapterBindingSection ()
J#
public OracleDBAdapterBindingSection ()
JScript
public function OracleDBAdapterBindingSection ()

Remarks

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBAdapterBindingSection Class
OracleDBAdapterBindingSection Members


OracleDBAdapterBindingSection Methods
[image]

Public Methods (see also Protected Methods)

 | Name | Description
public method | ContainsKey | Overridden. (inherited from BindingCollectionElement)
public method | Equals | Overridden. (inherited from Object)
public method | GetHashCode | Overridden. (inherited from Object)
public method | GetType | (inherited from Object)
public method | IsReadOnly | (inherited from ConfigurationElement)
public method | ToString | (inherited from Object)

Protected Methods

 | Name | Description
protected method | Finalize | (inherited from Object)
protected method | ListErrors | (inherited from ConfigurationElement)
protected method | MemberwiseClone | (inherited from Object)
protected method | OnDeserializeUnrecognizedAttribute | (inherited from ConfigurationElement)
protected method | OnDeserializeUnrecognizedElement | (inherited from ConfigurationElement)
protected method | OnRequiredPropertyNotFound | (inherited from ConfigurationElement)
protected method | PostDeserialize | (inherited from ConfigurationElement)
protected method | PreSerialize | (inherited from ConfigurationElement)
protected method | SetPropertyValue | (inherited from ConfigurationElement)

See Also

Reference

OracleDBAdapterBindingSection Class


OracleDBAdapterBindingSection Properties
[image]

Public Properties (see also Protected Properties)

 | Name | Description
public property | BindingName | (inherited from BindingCollectionElement)
public property | Bindings | (inherited from StandardBindingCollectionElement)
public property | BindingType | Overridden. (inherited from BindingCollectionElement)
public property | ConfiguredBindings | Overridden. (inherited from BindingCollectionElement)
public property | ElementInformation | (inherited from ConfigurationElement)
public property | LockAllAttributesExcept | (inherited from ConfigurationElement)
public property | LockAllElementsExcept | (inherited from ConfigurationElement)
public property | LockAttributes | (inherited from ConfigurationElement)
public property | LockElements | (inherited from ConfigurationElement)
public property | LockItem | (inherited from ConfigurationElement)

Protected Properties

 | Name | Description
protected property | EvaluationContext | (inherited from ConfigurationElement)
protected property | Properties | Overridden. (inherited from ConfigurationElement)

See Also

Reference

OracleDBAdapterBindingSection Class


OracleDBBinding Class
See Also Members
[image]

Creates a binding for Oracle DB adapter.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding

Syntax

Visual Basic
Public NotInheritable Class OracleDBBinding
    Inherits AdapterBinding
C#
public sealed class OracleDBBinding : AdapterBinding
C++
public ref class OracleDBBinding sealed : public AdapterBinding
J#
public final class OracleDBBinding extends AdapterBinding
JScript
public final class OracleDBBinding extends AdapterBinding

Inheritance Hierarchy

System.Object
System.ServiceModel.Channels.Binding
Microsoft.ServiceModel.Channels.Common.AdapterBinding
Microsoft.Adapters.OracleDB.OracleDBBinding

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Members


OracleDBBinding Members
See Also Constructors Methods Properties
[image]

Creates a binding for Oracle DB adapter.

The following tables list the members exposed by the OracleDBBinding type.

Public Constructors

Name | Description
OracleDBBinding | Overloaded. Initializes a new instance of the OracleDBBinding class.
Top

Public Properties

 | Name | Description
public property | AcceptCredentialsInUri | Gets or sets whether the Oracle connection URI can contain user credentials for the Oracle database.
public property | AssuresOrderedDelivery | (inherited from AdapterBinding)
public property | CloseTimeout | (inherited from Binding)
public property | ConnectionLifetime | Gets or sets the maximum duration in seconds of a connection.
public property | ConnectionUriType | Overridden. Gets the type of Uri connection.
public property | DataFetchSize | Gets or sets the amount of data to fetch.
public property | DecrPoolSize | Gets or sets the number of connections that are closed when an excessive amount of established connections are not in use.
public property | DefaultXsdFileNamePrefix | (inherited from AdapterBinding)
public property | EnableBizTalkCompatibilityMode | Gets or sets whether the value of this binding property is enabled when using the adapter with Biztalk Server.
public property | EnablePerformanceCounters | Gets or sets whether the performance counters are enabled.
public property | EnableSafeTyping | Gets or sets whether safe typing is enabled.
public property | GeneratedUserTypesAssemblyFilePath | Gets or sets the name and path of the DLL that the adapter generates, while generating metadata, containing all UDTs that are used in the metadata.
public property | GeneratedUserTypesAssemblyKeyFilePath | Gets or sets the name and path of the key file that the adapter uses to create a strongly-typed assembly.
public property | InboundOperationType | Gets or sets the type of inbound operation to be performed.
public property | IncrPoolSize | Gets or sets the number of new connections to be created when a new connection is requested and there are no available connections in the connection pool.
public property | InsertBatchSize | Gets or sets the batch size for record insert operations.
public property | LongDatatypeColumnSize | Gets or sets the maximum size of a long data type column. Obsolete.
public property | MaxOutputAssociativeArrayElements | Gets or sets the size of the associate array that the adapter creates when performing operations that return an associative array in the response.
public property | MaxPoolSize | Gets or sets the maximum number of connections in the connection pool.
public property | MessageVersion | (inherited from Binding)
public property | MetadataPooling | Gets or sets whether metadata pooling is used.
public property | MinPoolSize | Gets or sets the minimum number of connections in the connection pool.
public property | Name | (inherited from Binding)
public property | Namespace | (inherited from Binding)
public property | NotificationPort | Gets or sets the port number that the data provider must open to listen for database change notification from Oracle database.
public property | NotificationStatement | Gets or sets the SELECT statement used to register for getting notifications from Oracle database.
public property | NotifyOnListenerStart | Gets or sets whether the adapter sends a notification message to the adapter clients, informing that the receive location is running, when the listener starts.
public property | OpenTimeout | (inherited from Binding)
public property | PolledDataAvailableStatement | Gets or sets the SELECT statement executed to determine whether any data is available for polling for a specific table.
public property | PollingAction | Gets or sets the action for the polling operation.
public property | PollingInterval | Gets or sets the transacted polling interval.
public property | PollingRetryCount | Gets or sets the number of times that polling is retried. Obsolete.
public property | PollingStatement | Gets or sets the polling statement.
public property | PollWhileDataFound | Gets or sets whether the specified object continously poll data when it is available.
public property | PostPollStatement | Gets or sets the post poll statement.
public property | QueuedDelivery | (inherited from AdapterBinding)
public property | ReceiveTimeout | (inherited from Binding)
public property | Scheme | Overridden. Gets the scheme name for the specified object.
public property | SendTimeout | (inherited from Binding)
public property | SkipNilNodes | Gets or sets whether the specified object skips inserting or updating values for nodes that are marked as 'nil' in the request XML.
public property | StatementCachePurge | Gets or sets whether statement cache is purged.
public property | StatementCacheSize | Gets or sets the maximum number of statements that can be cached.
public property | SupportsCertificateAuthentication | (inherited from AdapterBinding)
public property | SupportsMetadataBrowse | Overridden. Gets a value that indicates whether the specified object supports metadata browse.
public property | SupportsMetadataGet | Overridden. Gets a value that indicates whether the specified object supports metadata get.
public property | SupportsMetadataSearch | Overridden. Gets a value that indicates whether the specified object supports metadata search.
public property | SupportsUserNameAuthentication | (inherited from AdapterBinding)
public property | SupportsWindowsAuthentication | (inherited from AdapterBinding)
public property | TransactionIsolationLevel | Gets or sets the Oracle transaction isolation level. Obsolete.
public property | UseAmbientTransaction | Gets or sets whether the Oracle Database adapter performs the operations using the transaction context provided by the caller.
public property | UseOracleConnectionPool | Gets or sets whether oracle connection pool is used.
public property | UserAssembliesLoadPath | Gets or sets the name of the DLLs, separated by a semi-colon, which the adapter creates while generating metadata.
public property | UseSchemaInNameSpace | Gets or sets whether the schema name is included in the xml namespace for operations and their associated types.
Top

Public Methods (see also Protected Methods)

 | Name | Description
public method | BuildChannelFactory | (inherited from Binding)
public method | BuildChannelFactory | (inherited from Binding)
public method | BuildChannelListener | (inherited from Binding)
public method | BuildChannelListener | (inherited from Binding)
public method | BuildChannelListener | (inherited from Binding)
public method | BuildChannelListener | (inherited from Binding)
public method | BuildChannelListener | (inherited from Binding)
public method | BuildChannelListener | (inherited from Binding)
public method | BuildChannelListener | (inherited from Binding)
public method | BuildChannelListener | (inherited from Binding)
public method | CanBuildChannelFactory | (inherited from Binding)
public method | CanBuildChannelFactory | (inherited from Binding)
public method | CanBuildChannelListener | (inherited from Binding)
public method | CanBuildChannelListener | (inherited from Binding)
public method | CreateBindingElements | Overridden. Creates a binding element collection and adds an instance of Oracle DB adapter to it.
public method | Equals | (inherited from Object)
public method | GetHashCode | (inherited from Object)
public method | GetProperty | (inherited from Binding)
public method | GetType | (inherited from Object)
public method | ToString | (inherited from Object)
Top

Protected Methods

 | Name | Description
protected method | Finalize | (inherited from Object)
protected method | MemberwiseClone | (inherited from Object)
Top

See Also

Reference

OracleDBBinding Class


OracleDBBinding Constructor
[image]

Initializes a new instance of the OracleDBBinding class.

Overload List

Name | Description
OracleDBBinding () | Initializes a new instance of the Oracle DB adapter binding class.
OracleDBBinding (String) | Initializes a new instance of the Oracle DB adapter binding class with binding properties specified in the named configuration.

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding Constructor ()
[image]

Initializes a new instance of the Oracle DB adapter binding class.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As New OracleDBBinding

Syntax

Visual Basic
<SuppressMessageAttribute("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", MessageId:="Microsoft.Adapters.OracleDB.OracleDBAdapter")> _
Public Sub New
C#
[SuppressMessageAttribute("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", MessageId="Microsoft.Adapters.OracleDB.OracleDBAdapter")]
public OracleDBBinding ()
C++
[SuppressMessageAttribute(L"Microsoft.Usage", L"CA1806:DoNotIgnoreMethodResults", MessageId=L"Microsoft.Adapters.OracleDB.OracleDBAdapter")]
public:
OracleDBBinding ()
J#
/** @attribute SuppressMessageAttribute("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", MessageId="Microsoft.Adapters.OracleDB.OracleDBAdapter") */
public OracleDBBinding ()
JScript
SuppressMessageAttribute("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", MessageId="Microsoft.Adapters.OracleDB.OracleDBAdapter")
public function OracleDBBinding ()

Remarks

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding Constructor (String)
[image]

Initializes a new instance of the Oracle DB adapter binding class with binding properties specified in the named configuration.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim configurationName As String

Dim instance As New OracleDBBinding(configurationName)

Syntax

Visual Basic
Public Sub New ( _
    configurationName As String _
)
C#
public OracleDBBinding (
    string configurationName
)
C++
public:
OracleDBBinding (
    String^ configurationName
)
J#
public OracleDBBinding (
    String configurationName
)
JScript
public function OracleDBBinding (
    configurationName : String
)

Parameters

configurationName

The configuration name.

Remarks

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding Methods
[image]

Public Methods (see also Protected Methods)

 | Name | Description
public method | BuildChannelFactory | (inherited from Binding)
public method | BuildChannelFactory | (inherited from Binding)
public method | BuildChannelListener | (inherited from Binding)
public method | BuildChannelListener | (inherited from Binding)
public method | BuildChannelListener | (inherited from Binding)
public method | BuildChannelListener | (inherited from Binding)
public method | BuildChannelListener | (inherited from Binding)
public method | BuildChannelListener | (inherited from Binding)
public method | BuildChannelListener | (inherited from Binding)
public method | BuildChannelListener | (inherited from Binding)
public method | CanBuildChannelFactory | (inherited from Binding)
public method | CanBuildChannelFactory | (inherited from Binding)
public method | CanBuildChannelListener | (inherited from Binding)
public method | CanBuildChannelListener | (inherited from Binding)
public method | CreateBindingElements | Overridden. Creates a binding element collection and adds an instance of Oracle DB adapter to it.
public method | Equals | (inherited from Object)
public method | GetHashCode | (inherited from Object)
public method | GetProperty | (inherited from Binding)
public method | GetType | (inherited from Object)
public method | ToString | (inherited from Object)

Protected Methods

 | Name | Description
protected method | Finalize | (inherited from Object)
protected method | MemberwiseClone | (inherited from Object)

See Also

Reference

OracleDBBinding Class


OracleDBBinding.CreateBindingElements Method
[image]

Creates a binding element collection and adds an instance of Oracle DB adapter to it.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim returnValue As BindingElementCollection

returnValue = instance.CreateBindingElements

Syntax

Visual Basic
Public Overrides NotOverridable Function CreateBindingElements As BindingElementCollection
C#
public override sealed BindingElementCollection CreateBindingElements ()
C++
public:
virtual BindingElementCollection^ CreateBindingElements () override sealed
J#
public final BindingElementCollection CreateBindingElements ()
JScript
public override final function CreateBindingElements () : BindingElementCollection

Return Value

A collection of binding elements.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding Properties
[image]

Public Properties

 | Name | Description
public property | AcceptCredentialsInUri | Gets or sets whether the Oracle connection URI can contain user credentials for the Oracle database.
public property | AssuresOrderedDelivery | (inherited from AdapterBinding)
public property | CloseTimeout | (inherited from Binding)
public property | ConnectionLifetime | Gets or sets the maximum duration in seconds of a connection.
public property | ConnectionUriType | Overridden. Gets the type of Uri connection.
public property | DataFetchSize | Gets or sets the amount of data to fetch.
public property | DecrPoolSize | Gets or sets the number of connections that are closed when an excessive amount of established connections are not in use.
public property | DefaultXsdFileNamePrefix | (inherited from AdapterBinding)
public property | EnableBizTalkCompatibilityMode | Gets or sets whether the value of this binding property is enabled when using the adapter with Biztalk Server.
public property | EnablePerformanceCounters | Gets or sets whether the performance counters are enabled.
public property | EnableSafeTyping | Gets or sets whether safe typing is enabled.
public property | GeneratedUserTypesAssemblyFilePath | Gets or sets the name and path of the DLL that the adapter generates, while generating metadata, containing all UDTs that are used in the metadata.
public property | GeneratedUserTypesAssemblyKeyFilePath | Gets or sets the name and path of the key file that the adapter uses to create a strongly-typed assembly.
public property | InboundOperationType | Gets or sets the type of inbound operation to be performed.
public property | IncrPoolSize | Gets or sets the number of new connections to be created when a new connection is requested and there are no available connections in the connection pool.
public property | InsertBatchSize | Gets or sets the batch size for record insert operations.
public property | LongDatatypeColumnSize | Gets or sets the maximum size of a long data type column. Obsolete.
public property | MaxOutputAssociativeArrayElements | Gets or sets the size of the associate array that the adapter creates when performing operations that return an associative array in the response.
public property | MaxPoolSize | Gets or sets the maximum number of connections in the connection pool.
public property | MessageVersion | (inherited from Binding)
public property | MetadataPooling | Gets or sets whether metadata pooling is used.
public property | MinPoolSize | Gets or sets the minimum number of connections in the connection pool.
public property | Name | (inherited from Binding)
public property | Namespace | (inherited from Binding)
public property | NotificationPort | Gets or sets the port number that the data provider must open to listen for database change notification from Oracle database.
public property | NotificationStatement | Gets or sets the SELECT statement used to register for getting notifications from Oracle database.
public property | NotifyOnListenerStart | Gets or sets whether the adapter sends a notification message to the adapter clients, informing that the receive location is running, when the listener starts.
public property | OpenTimeout | (inherited from Binding)
public property | PolledDataAvailableStatement | Gets or sets the SELECT statement executed to determine whether any data is available for polling for a specific table.
public property | PollingAction | Gets or sets the action for the polling operation.
public property | PollingInterval | Gets or sets the transacted polling interval.
public property | PollingRetryCount | Gets or sets the number of times that polling is retried. Obsolete.
public property | PollingStatement | Gets or sets the polling statement.
public property | PollWhileDataFound | Gets or sets whether the specified object continously poll data when it is available.
public property | PostPollStatement | Gets or sets the post poll statement.
public property | QueuedDelivery | (inherited from AdapterBinding)
public property | ReceiveTimeout | (inherited from Binding)
public property | Scheme | Overridden. Gets the scheme name for the specified object.
public property | SendTimeout | (inherited from Binding)
public property | SkipNilNodes | Gets or sets whether the specified object skips inserting or updating values for nodes that are marked as 'nil' in the request XML.
public property | StatementCachePurge | Gets or sets whether statement cache is purged.
public property | StatementCacheSize | Gets or sets the maximum number of statements that can be cached.
public property | SupportsCertificateAuthentication | (inherited from AdapterBinding)
public property | SupportsMetadataBrowse | Overridden. Gets a value that indicates whether the specified object supports metadata browse.
public property | SupportsMetadataGet | Overridden. Gets a value that indicates whether the specified object supports metadata get.
public property | SupportsMetadataSearch | Overridden. Gets a value that indicates whether the specified object supports metadata search.
public property | SupportsUserNameAuthentication | (inherited from AdapterBinding)
public property | SupportsWindowsAuthentication | (inherited from AdapterBinding)
public property | TransactionIsolationLevel | Gets or sets the Oracle transaction isolation level. Obsolete.
public property | UseAmbientTransaction | Gets or sets whether the Oracle Database adapter performs the operations using the transaction context provided by the caller.
public property | UseOracleConnectionPool | Gets or sets whether oracle connection pool is used.
public property | UserAssembliesLoadPath | Gets or sets the name of the DLLs, separated by a semi-colon, which the adapter creates while generating metadata.
public property | UseSchemaInNameSpace | Gets or sets whether the schema name is included in the xml namespace for operations and their associated types.

See Also

Reference

OracleDBBinding Class


OracleDBBinding.AcceptCredentialsInUri Property
[image]

Gets or sets whether the Oracle connection URI can contain user credentials for the Oracle database.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Boolean

value = instance.AcceptCredentialsInUri

instance.AcceptCredentialsInUri = value

Syntax

Visual Basic
<BrowsableAttribute(True)> _
<CategoryAttribute("Security")> _
Public Property AcceptCredentialsInUri As Boolean
C#
[BrowsableAttribute(true)]
[CategoryAttribute("Security")]
public bool AcceptCredentialsInUri { get; set; }
C++
[BrowsableAttribute(true)]
[CategoryAttribute(L"Security")]
public:
virtual property bool AcceptCredentialsInUri {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final boolean get_AcceptCredentialsInUri ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_AcceptCredentialsInUri (boolean value)
JScript
CompilerGeneratedAttribute
public final function get AcceptCredentialsInUri () : boolean

CompilerGeneratedAttribute
public final function set AcceptCredentialsInUri (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if the Oracle connection URI can contain user credentials for the Oracle database; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.ConnectionLifetime Property
[image]

Gets or sets the maximum duration in seconds of a connection.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Integer

value = instance.ConnectionLifetime

instance.ConnectionLifetime = value

Syntax

Visual Basic
<CategoryAttribute("OracleConnectionPool")> _
<BrowsableAttribute(True)> _
Public Property ConnectionLifetime As Integer
C#
[CategoryAttribute("OracleConnectionPool")]
[BrowsableAttribute(true)]
public int ConnectionLifetime { get; set; }
C++
[CategoryAttribute(L"OracleConnectionPool")]
[BrowsableAttribute(true)]
public:
virtual property int ConnectionLifetime {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_ConnectionLifetime ()

/** @property */
public final void set_ConnectionLifetime (int value)
JScript
public final function get ConnectionLifetime () : int

public final function set ConnectionLifetime (value : int)

Property Value

The maximum duration in seconds of a connection.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.ConnectionUriType Property
[image]

Gets the type of Uri connection.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Type

value = instance.ConnectionUriType

Syntax

Visual Basic
<SuppressMessageAttribute("Microsoft.Design", "CA1048:DoNotDeclareVirtualMembersInSealedTypes")> _
Public Overrides ReadOnly Property ConnectionUriType As Type
C#
[SuppressMessageAttribute("Microsoft.Design", "CA1048:DoNotDeclareVirtualMembersInSealedTypes")]
public override Type ConnectionUriType { get; }
C++
[SuppressMessageAttribute(L"Microsoft.Design", L"CA1048:DoNotDeclareVirtualMembersInSealedTypes")]
public:
virtual property Type^ ConnectionUriType {
    Type^ get () override;
}
J#
/** @property */
public Type get_ConnectionUriType ()
JScript
public override function get ConnectionUriType () : Type

Property Value

The type of Uri connection.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.DataFetchSize Property
[image]

Gets or sets the amount of data to fetch.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Long

value = instance.DataFetchSize

instance.DataFetchSize = value

Syntax

Visual Basic
<BrowsableAttribute(True)> _
<CategoryAttribute("BufferManagement")> _
Public Property DataFetchSize As Long
C#
[BrowsableAttribute(true)]
[CategoryAttribute("BufferManagement")]
public long DataFetchSize { get; set; }
C++
[BrowsableAttribute(true)]
[CategoryAttribute(L"BufferManagement")]
public:
virtual property long long DataFetchSize {
    long long get () sealed;
    void set (long long value) sealed;
}
J#
/** @property */
public final long get_DataFetchSize ()

/** @property */
public final void set_DataFetchSize (long value)
JScript
public final function get DataFetchSize () : long

public final function set DataFetchSize (value : long)

Property Value

The data type.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.DecrPoolSize Property
[image]

Gets or sets the number of connections that are closed when an excessive amount of established connections are not in use.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Integer

value = instance.DecrPoolSize

instance.DecrPoolSize = value

Syntax

Visual Basic
<BrowsableAttribute(True)> _
<CategoryAttribute("OracleConnectionPool")> _
Public Property DecrPoolSize As Integer
C#
[BrowsableAttribute(true)]
[CategoryAttribute("OracleConnectionPool")]
public int DecrPoolSize { get; set; }
C++
[BrowsableAttribute(true)]
[CategoryAttribute(L"OracleConnectionPool")]
public:
virtual property int DecrPoolSize {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_DecrPoolSize ()

/** @property */
public final void set_DecrPoolSize (int value)
JScript
public final function get DecrPoolSize () : int

public final function set DecrPoolSize (value : int)

Property Value

The number of connections that are closed.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.EnableBizTalkCompatibilityMode Property
[image]

Gets or sets whether the value of this binding property is enabled when using the adapter with Biztalk Server.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Boolean

value = instance.EnableBizTalkCompatibilityMode

instance.EnableBizTalkCompatibilityMode = value

Syntax

Visual Basic
<BrowsableAttribute(True)> _
Public Property EnableBizTalkCompatibilityMode As Boolean
C#
[BrowsableAttribute(true)]
public bool EnableBizTalkCompatibilityMode { get; set; }
C++
[BrowsableAttribute(true)]
public:
virtual property bool EnableBizTalkCompatibilityMode {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final boolean get_EnableBizTalkCompatibilityMode ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_EnableBizTalkCompatibilityMode (boolean value)
JScript
CompilerGeneratedAttribute
public final function get EnableBizTalkCompatibilityMode () : boolean

CompilerGeneratedAttribute
public final function set EnableBizTalkCompatibilityMode (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if the value of this binding property is enabled; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.EnablePerformanceCounters Property
[image]

Gets or sets whether the performance counters are enabled.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Boolean

value = instance.EnablePerformanceCounters

instance.EnablePerformanceCounters = value

Syntax

Visual Basic
<CategoryAttribute("Diagnostics")> _
<BrowsableAttribute(True)> _
Public Property EnablePerformanceCounters As Boolean
C#
[CategoryAttribute("Diagnostics")]
[BrowsableAttribute(true)]
public bool EnablePerformanceCounters { get; set; }
C++
[CategoryAttribute(L"Diagnostics")]
[BrowsableAttribute(true)]
public:
virtual property bool EnablePerformanceCounters {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final boolean get_EnablePerformanceCounters ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_EnablePerformanceCounters (boolean value)
JScript
CompilerGeneratedAttribute
public final function get EnablePerformanceCounters () : boolean

CompilerGeneratedAttribute
public final function set EnablePerformanceCounters (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if performance counters are enabled; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.EnableSafeTyping Property
[image]

Gets or sets whether safe typing is enabled.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Boolean

value = instance.EnableSafeTyping

instance.EnableSafeTyping = value

Syntax

Visual Basic
<BrowsableAttribute(True)> _
<CategoryAttribute("Metadata")> _
Public Property EnableSafeTyping As Boolean
C#
[BrowsableAttribute(true)]
[CategoryAttribute("Metadata")]
public bool EnableSafeTyping { get; set; }
C++
[BrowsableAttribute(true)]
[CategoryAttribute(L"Metadata")]
public:
virtual property bool EnableSafeTyping {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final boolean get_EnableSafeTyping ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_EnableSafeTyping (boolean value)
JScript
CompilerGeneratedAttribute
public final function get EnableSafeTyping () : boolean

CompilerGeneratedAttribute
public final function set EnableSafeTyping (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if safe typing is enabled; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.GeneratedUserTypesAssemblyFilePath Property
[image]

Gets or sets the name and path of the DLL that the adapter generates, while generating metadata, containing all UDTs that are used in the metadata.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As String

value = instance.GeneratedUserTypesAssemblyFilePath

instance.GeneratedUserTypesAssemblyFilePath = value

Syntax

Visual Basic
<BrowsableAttribute(True)> _
<CategoryAttribute("UDT .NET Type Generation - Design Time")> _
<BindingPropertyDirectionAttribute(False, False)> _
Public Property GeneratedUserTypesAssemblyFilePath As String
C#
[BrowsableAttribute(true)]
[CategoryAttribute("UDT .NET Type Generation - Design Time")]
[BindingPropertyDirectionAttribute(false, false)]
public string GeneratedUserTypesAssemblyFilePath { get; set; }
C++
[BrowsableAttribute(true)]
[CategoryAttribute(L"UDT .NET Type Generation - Design Time")]
[BindingPropertyDirectionAttribute(false, false)]
public:
virtual property String^ GeneratedUserTypesAssemblyFilePath {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final String get_GeneratedUserTypesAssemblyFilePath ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_GeneratedUserTypesAssemblyFilePath (String value)
JScript
CompilerGeneratedAttribute
public final function get GeneratedUserTypesAssemblyFilePath () : String

CompilerGeneratedAttribute
public final function set GeneratedUserTypesAssemblyFilePath (value : String)

Property Value

The name and path of the DLL that the adapter generates.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.GeneratedUserTypesAssemblyKeyFilePath Property
[image]

Gets or sets the name and path of the key file that the adapter uses to create a strongly-typed assembly.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As String

value = instance.GeneratedUserTypesAssemblyKeyFilePath

instance.GeneratedUserTypesAssemblyKeyFilePath = value

Syntax

Visual Basic
<BindingPropertyDirectionAttribute(False, False)> _
<BrowsableAttribute(True)> _
<CategoryAttribute("UDT .NET Type Generation - Design Time")> _
Public Property GeneratedUserTypesAssemblyKeyFilePath As String
C#
[BindingPropertyDirectionAttribute(false, false)]
[BrowsableAttribute(true)]
[CategoryAttribute("UDT .NET Type Generation - Design Time")]
public string GeneratedUserTypesAssemblyKeyFilePath { get; set; }
C++
[BindingPropertyDirectionAttribute(false, false)]
[BrowsableAttribute(true)]
[CategoryAttribute(L"UDT .NET Type Generation - Design Time")]
public:
virtual property String^ GeneratedUserTypesAssemblyKeyFilePath {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final String get_GeneratedUserTypesAssemblyKeyFilePath ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_GeneratedUserTypesAssemblyKeyFilePath (String value)
JScript
CompilerGeneratedAttribute
public final function get GeneratedUserTypesAssemblyKeyFilePath () : String

CompilerGeneratedAttribute
public final function set GeneratedUserTypesAssemblyKeyFilePath (value : String)

Property Value

The name and path of the key file that the adapter uses to create a strongly-typed assembly.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.InboundOperationType Property
[image]

Gets or sets the type of inbound operation to be performed.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As InboundOperation

value = instance.InboundOperationType

instance.InboundOperationType = value

Syntax

Visual Basic
<BrowsableAttribute(True)> _
<BindingPropertyDirectionAttribute(True, False)> _
Public Property InboundOperationType As InboundOperation
C#
[BrowsableAttribute(true)]
[BindingPropertyDirectionAttribute(true, false)]
public InboundOperation InboundOperationType { get; set; }
C++
[BrowsableAttribute(true)]
[BindingPropertyDirectionAttribute(true, false)]
public:
virtual property InboundOperation InboundOperationType {
    InboundOperation get () sealed;
    void set (InboundOperation value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final InboundOperation get_InboundOperationType ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_InboundOperationType (InboundOperation value)
JScript
CompilerGeneratedAttribute
public final function get InboundOperationType () : InboundOperation

CompilerGeneratedAttribute
public final function set InboundOperationType (value : InboundOperation)

Property Value

The type of inbound operation.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.IncrPoolSize Property
[image]

Gets or sets the number of new connections to be created when a new connection is requested and there are no available connections in the connection pool.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Integer

value = instance.IncrPoolSize

instance.IncrPoolSize = value

Syntax

Visual Basic
<CategoryAttribute("OracleConnectionPool")> _
<BrowsableAttribute(True)> _
Public Property IncrPoolSize As Integer
C#
[CategoryAttribute("OracleConnectionPool")]
[BrowsableAttribute(true)]
public int IncrPoolSize { get; set; }
C++
[CategoryAttribute(L"OracleConnectionPool")]
[BrowsableAttribute(true)]
public:
virtual property int IncrPoolSize {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_IncrPoolSize ()

/** @property */
public final void set_IncrPoolSize (int value)
JScript
public final function get IncrPoolSize () : int

public final function set IncrPoolSize (value : int)

Property Value

The number of new connections to be created.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.InsertBatchSize Property
[image]

Gets or sets the batch size for record insert operations.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Integer

value = instance.InsertBatchSize

instance.InsertBatchSize = value

Syntax

Visual Basic
<CategoryAttribute("BufferManagement")> _
<BrowsableAttribute(True)> _
Public Property InsertBatchSize As Integer
C#
[CategoryAttribute("BufferManagement")]
[BrowsableAttribute(true)]
public int InsertBatchSize { get; set; }
C++
[CategoryAttribute(L"BufferManagement")]
[BrowsableAttribute(true)]
public:
virtual property int InsertBatchSize {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_InsertBatchSize ()

/** @property */
public final void set_InsertBatchSize (int value)
JScript
public final function get InsertBatchSize () : int

public final function set InsertBatchSize (value : int)

Property Value

The batch size for record insert operations.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.LongDatatypeColumnSize Property
[image]

Gets or sets the maximum size of a long data type column.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Long

value = instance.LongDatatypeColumnSize

instance.LongDatatypeColumnSize = value

Syntax

Visual Basic
<CategoryAttribute("BufferManagement")> _
<BrowsableAttribute(True)> _
<ObsoleteAttribute("Long data type is deprecated in Oracle. Refer to Oracle documentation for suggested alternatives")> _
Public Property LongDatatypeColumnSize As Long
C#
[CategoryAttribute("BufferManagement")]
[BrowsableAttribute(true)]
[ObsoleteAttribute("Long data type is deprecated in Oracle. Refer to Oracle documentation for suggested alternatives")]
public long LongDatatypeColumnSize { get; set; }
C++
[CategoryAttribute(L"BufferManagement")]
[BrowsableAttribute(true)]
[ObsoleteAttribute(L"Long data type is deprecated in Oracle. Refer to Oracle documentation for suggested alternatives")]
public:
virtual property long long LongDatatypeColumnSize {
    long long get () sealed;
    void set (long long value) sealed;
}
J#
/** @property */
public final long get_LongDatatypeColumnSize ()

/** @property */
public final void set_LongDatatypeColumnSize (long value)
JScript
public final function get LongDatatypeColumnSize () : long

public final function set LongDatatypeColumnSize (value : long)

Property Value

The maximum size of a long data type column.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.MaxOutputAssociativeArrayElements Property
[image]

Gets or sets the size of the associate array that the adapter creates when performing operations that return an associative array in the response.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Integer

value = instance.MaxOutputAssociativeArrayElements

instance.MaxOutputAssociativeArrayElements = value

Syntax

Visual Basic
<BrowsableAttribute(True)> _
<CategoryAttribute("BufferManagement")> _
Public Property MaxOutputAssociativeArrayElements As Integer
C#
[BrowsableAttribute(true)]
[CategoryAttribute("BufferManagement")]
public int MaxOutputAssociativeArrayElements { get; set; }
C++
[BrowsableAttribute(true)]
[CategoryAttribute(L"BufferManagement")]
public:
virtual property int MaxOutputAssociativeArrayElements {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_MaxOutputAssociativeArrayElements ()

/** @property */
public final void set_MaxOutputAssociativeArrayElements (int value)
JScript
public final function get MaxOutputAssociativeArrayElements () : int

public final function set MaxOutputAssociativeArrayElements (value : int)

Property Value

The size of the associate array that the binding creates.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.MaxPoolSize Property
[image]

Gets or sets the maximum number of connections in the connection pool.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Integer

value = instance.MaxPoolSize

instance.MaxPoolSize = value

Syntax

Visual Basic
<BrowsableAttribute(True)> _
<CategoryAttribute("OracleConnectionPool")> _
Public Property MaxPoolSize As Integer
C#
[BrowsableAttribute(true)]
[CategoryAttribute("OracleConnectionPool")]
public int MaxPoolSize { get; set; }
C++
[BrowsableAttribute(true)]
[CategoryAttribute(L"OracleConnectionPool")]
public:
virtual property int MaxPoolSize {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_MaxPoolSize ()

/** @property */
public final void set_MaxPoolSize (int value)
JScript
public final function get MaxPoolSize () : int

public final function set MaxPoolSize (value : int)

Property Value

The maximum number of connections.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.MetadataPooling Property
[image]

Gets or sets whether metadata pooling is used.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Boolean

value = instance.MetadataPooling

instance.MetadataPooling = value

Syntax

Visual Basic
<CategoryAttribute("BufferManagement")> _
<BrowsableAttribute(True)> _
Public Property MetadataPooling As Boolean
C#
[CategoryAttribute("BufferManagement")]
[BrowsableAttribute(true)]
public bool MetadataPooling { get; set; }
C++
[CategoryAttribute(L"BufferManagement")]
[BrowsableAttribute(true)]
public:
virtual property bool MetadataPooling {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final boolean get_MetadataPooling ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_MetadataPooling (boolean value)
JScript
CompilerGeneratedAttribute
public final function get MetadataPooling () : boolean

CompilerGeneratedAttribute
public final function set MetadataPooling (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if metadata pooling is used; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.MinPoolSize Property
[image]

Gets or sets the minimum number of connections in the connection pool.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Integer

value = instance.MinPoolSize

instance.MinPoolSize = value

Syntax

Visual Basic
<BrowsableAttribute(True)> _
<CategoryAttribute("OracleConnectionPool")> _
Public Property MinPoolSize As Integer
C#
[BrowsableAttribute(true)]
[CategoryAttribute("OracleConnectionPool")]
public int MinPoolSize { get; set; }
C++
[BrowsableAttribute(true)]
[CategoryAttribute(L"OracleConnectionPool")]
public:
virtual property int MinPoolSize {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_MinPoolSize ()

/** @property */
public final void set_MinPoolSize (int value)
JScript
public final function get MinPoolSize () : int

public final function set MinPoolSize (value : int)

Property Value

The minimum number of connections.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.NotificationPort Property
[image]

Gets or sets the port number that the data provider must open to listen for database change notification from Oracle database.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Integer

value = instance.NotificationPort

instance.NotificationPort = value

Syntax

Visual Basic
<CategoryAttribute("Notification")> _
<BindingPropertyDirectionAttribute(True, False)> _
<BrowsableAttribute(True)> _
Public Property NotificationPort As Integer
C#
[CategoryAttribute("Notification")]
[BindingPropertyDirectionAttribute(true, false)]
[BrowsableAttribute(true)]
public int NotificationPort { get; set; }
C++
[CategoryAttribute(L"Notification")]
[BindingPropertyDirectionAttribute(true, false)]
[BrowsableAttribute(true)]
public:
virtual property int NotificationPort {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_NotificationPort ()

/** @property */
public final void set_NotificationPort (int value)
JScript
public final function get NotificationPort () : int

public final function set NotificationPort (value : int)

Property Value

The notifiaction port number.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.NotificationStatement Property
[image]

Gets or sets the SELECT statement used to register for getting notifications from Oracle database.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As String

value = instance.NotificationStatement

instance.NotificationStatement = value

Syntax

Visual Basic
<BindingPropertyDirectionAttribute(True, False)> _
<BrowsableAttribute(True)> _
<CategoryAttribute("Notification")> _
Public Property NotificationStatement As String
C#
[BindingPropertyDirectionAttribute(true, false)]
[BrowsableAttribute(true)]
[CategoryAttribute("Notification")]
public string NotificationStatement { get; set; }
C++
[BindingPropertyDirectionAttribute(true, false)]
[BrowsableAttribute(true)]
[CategoryAttribute(L"Notification")]
public:
virtual property String^ NotificationStatement {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final String get_NotificationStatement ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_NotificationStatement (String value)
JScript
CompilerGeneratedAttribute
public final function get NotificationStatement () : String

CompilerGeneratedAttribute
public final function set NotificationStatement (value : String)

Property Value

The notification statement.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.NotifyOnListenerStart Property
[image]

Gets or sets whether the adapter sends a notification message to the adapter clients, informing that the receive location is running, when the listener starts.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Boolean

value = instance.NotifyOnListenerStart

instance.NotifyOnListenerStart = value

Syntax

Visual Basic
<CategoryAttribute("Notification")> _
<BrowsableAttribute(True)> _
<BindingPropertyDirectionAttribute(True, False)> _
Public Property NotifyOnListenerStart As Boolean
C#
[CategoryAttribute("Notification")]
[BrowsableAttribute(true)]
[BindingPropertyDirectionAttribute(true, false)]
public bool NotifyOnListenerStart { get; set; }
C++
[CategoryAttribute(L"Notification")]
[BrowsableAttribute(true)]
[BindingPropertyDirectionAttribute(true, false)]
public:
virtual property bool NotifyOnListenerStart {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final boolean get_NotifyOnListenerStart ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_NotifyOnListenerStart (boolean value)
JScript
CompilerGeneratedAttribute
public final function get NotifyOnListenerStart () : boolean

CompilerGeneratedAttribute
public final function set NotifyOnListenerStart (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if the adapter sends a notification message when the listener starts; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.PolledDataAvailableStatement Property
[image]

Gets or sets the SELECT statement executed to determine whether any data is available for polling for a specific table.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As String

value = instance.PolledDataAvailableStatement

instance.PolledDataAvailableStatement = value

Syntax

Visual Basic
<CategoryAttribute("PollingReceive")> _
<BrowsableAttribute(True)> _
<BindingPropertyDirectionAttribute(True, False)> _
Public Property PolledDataAvailableStatement As String
C#
[CategoryAttribute("PollingReceive")]
[BrowsableAttribute(true)]
[BindingPropertyDirectionAttribute(true, false)]
public string PolledDataAvailableStatement { get; set; }
C++
[CategoryAttribute(L"PollingReceive")]
[BrowsableAttribute(true)]
[BindingPropertyDirectionAttribute(true, false)]
public:
virtual property String^ PolledDataAvailableStatement {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final String get_PolledDataAvailableStatement ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_PolledDataAvailableStatement (String value)
JScript
CompilerGeneratedAttribute
public final function get PolledDataAvailableStatement () : String

CompilerGeneratedAttribute
public final function set PolledDataAvailableStatement (value : String)

Property Value

The polled data available statement.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.PollingAction Property
[image]

Gets or sets the action for the polling operation.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As String

value = instance.PollingAction

instance.PollingAction = value

Syntax

Visual Basic
<CategoryAttribute("PollingReceive")> _
<BrowsableAttribute(True)> _
<BindingPropertyDirectionAttribute(True, False)> _
Public Property PollingAction As String
C#
[CategoryAttribute("PollingReceive")]
[BrowsableAttribute(true)]
[BindingPropertyDirectionAttribute(true, false)]
public string PollingAction { get; set; }
C++
[CategoryAttribute(L"PollingReceive")]
[BrowsableAttribute(true)]
[BindingPropertyDirectionAttribute(true, false)]
public:
virtual property String^ PollingAction {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final String get_PollingAction ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_PollingAction (String value)
JScript
CompilerGeneratedAttribute
public final function get PollingAction () : String

CompilerGeneratedAttribute
public final function set PollingAction (value : String)

Property Value

The action for the polling operation.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.PollingInterval Property
[image]

Gets or sets the transacted polling interval.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Integer

value = instance.PollingInterval

instance.PollingInterval = value

Syntax

Visual Basic
<CategoryAttribute("PollingReceive")> _
<BrowsableAttribute(True)> _
<BindingPropertyDirectionAttribute(True, False)> _
Public Property PollingInterval As Integer
C#
[CategoryAttribute("PollingReceive")]
[BrowsableAttribute(true)]
[BindingPropertyDirectionAttribute(true, false)]
public int PollingInterval { get; set; }
C++
[CategoryAttribute(L"PollingReceive")]
[BrowsableAttribute(true)]
[BindingPropertyDirectionAttribute(true, false)]
public:
virtual property int PollingInterval {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_PollingInterval ()

/** @property */
public final void set_PollingInterval (int value)
JScript
public final function get PollingInterval () : int

public final function set PollingInterval (value : int)

Property Value

The polling interval.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.PollingRetryCount Property
[image]

Gets or sets the number of times that polling is retried.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Integer

value = instance.PollingRetryCount

instance.PollingRetryCount = value

Syntax

Visual Basic
<BrowsableAttribute(False)> _
<BindingPropertyDirectionAttribute(False, False)> _
<ObsoleteAttribute("This field/property/method is deprecated")> _
Public Property PollingRetryCount As Integer
C#
[BrowsableAttribute(false)]
[BindingPropertyDirectionAttribute(false, false)]
[ObsoleteAttribute("This field/property/method is deprecated")]
public int PollingRetryCount { get; set; }
C++
[BrowsableAttribute(false)]
[BindingPropertyDirectionAttribute(false, false)]
[ObsoleteAttribute(L"This field/property/method is deprecated")]
public:
property int PollingRetryCount {
    int get ();
    void set (int value);
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public int get_PollingRetryCount ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public void set_PollingRetryCount (int value)
JScript
CompilerGeneratedAttribute
public function get PollingRetryCount () : int

CompilerGeneratedAttribute
public function set PollingRetryCount (value : int)

Property Value

The number of times that polling is retried.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.PollingStatement Property
[image]

Gets or sets the polling statement.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As String

value = instance.PollingStatement

instance.PollingStatement = value

Syntax

Visual Basic
<BindingPropertyDirectionAttribute(True, False)> _
<CategoryAttribute("PollingReceive")> _
<BrowsableAttribute(True)> _
Public Property PollingStatement As String
C#
[BindingPropertyDirectionAttribute(true, false)]
[CategoryAttribute("PollingReceive")]
[BrowsableAttribute(true)]
public string PollingStatement { get; set; }
C++
[BindingPropertyDirectionAttribute(true, false)]
[CategoryAttribute(L"PollingReceive")]
[BrowsableAttribute(true)]
public:
virtual property String^ PollingStatement {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final String get_PollingStatement ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_PollingStatement (String value)
JScript
CompilerGeneratedAttribute
public final function get PollingStatement () : String

CompilerGeneratedAttribute
public final function set PollingStatement (value : String)

Property Value

The polling statement.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.PollWhileDataFound Property
[image]

Gets or sets whether the specified object continously poll data when it is available.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Boolean

value = instance.PollWhileDataFound

instance.PollWhileDataFound = value

Syntax

Visual Basic
<BindingPropertyDirectionAttribute(True, False)> _
<CategoryAttribute("PollingReceive")> _
<BrowsableAttribute(True)> _
Public Property PollWhileDataFound As Boolean
C#
[BindingPropertyDirectionAttribute(true, false)]
[CategoryAttribute("PollingReceive")]
[BrowsableAttribute(true)]
public bool PollWhileDataFound { get; set; }
C++
[BindingPropertyDirectionAttribute(true, false)]
[CategoryAttribute(L"PollingReceive")]
[BrowsableAttribute(true)]
public:
virtual property bool PollWhileDataFound {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final boolean get_PollWhileDataFound ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_PollWhileDataFound (boolean value)
JScript
CompilerGeneratedAttribute
public final function get PollWhileDataFound () : boolean

CompilerGeneratedAttribute
public final function set PollWhileDataFound (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if the specified object continously poll data when it is available; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.PostPollStatement Property
[image]

Gets or sets the post poll statement.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As String

value = instance.PostPollStatement

instance.PostPollStatement = value

Syntax

Visual Basic
<CategoryAttribute("PollingReceive")> _
<BrowsableAttribute(True)> _
<BindingPropertyDirectionAttribute(True, False)> _
Public Property PostPollStatement As String
C#
[CategoryAttribute("PollingReceive")]
[BrowsableAttribute(true)]
[BindingPropertyDirectionAttribute(true, false)]
public string PostPollStatement { get; set; }
C++
[CategoryAttribute(L"PollingReceive")]
[BrowsableAttribute(true)]
[BindingPropertyDirectionAttribute(true, false)]
public:
virtual property String^ PostPollStatement {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final String get_PostPollStatement ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_PostPollStatement (String value)
JScript
CompilerGeneratedAttribute
public final function get PostPollStatement () : String

CompilerGeneratedAttribute
public final function set PostPollStatement (value : String)

Property Value

The post poll statement.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.Scheme Property
[image]

Gets the scheme name for the specified object.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As String

value = instance.Scheme

Syntax

Visual Basic
<SuppressMessageAttribute("Microsoft.Design", "CA1048:DoNotDeclareVirtualMembersInSealedTypes")> _
Public Overrides ReadOnly Property Scheme As String
C#
[SuppressMessageAttribute("Microsoft.Design", "CA1048:DoNotDeclareVirtualMembersInSealedTypes")]
public override string Scheme { get; }
C++
[SuppressMessageAttribute(L"Microsoft.Design", L"CA1048:DoNotDeclareVirtualMembersInSealedTypes")]
public:
virtual property String^ Scheme {
    String^ get () override;
}
J#
/** @property */
public String get_Scheme ()
JScript
public override function get Scheme () : String

Property Value

The scheme name.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.SkipNilNodes Property
[image]

Gets or sets whether the specified object skips inserting or updating values for nodes that are marked as 'nil' in the request XML.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Boolean

value = instance.SkipNilNodes

instance.SkipNilNodes = value

Syntax

Visual Basic
<CategoryAttribute("Run Time Behavior")> _
<BrowsableAttribute(True)> _
Public Property SkipNilNodes As Boolean
C#
[CategoryAttribute("Run Time Behavior")]
[BrowsableAttribute(true)]
public bool SkipNilNodes { get; set; }
C++
[CategoryAttribute(L"Run Time Behavior")]
[BrowsableAttribute(true)]
public:
virtual property bool SkipNilNodes {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final boolean get_SkipNilNodes ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_SkipNilNodes (boolean value)
JScript
CompilerGeneratedAttribute
public final function get SkipNilNodes () : boolean

CompilerGeneratedAttribute
public final function set SkipNilNodes (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if inserting nil nodes is skipped; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.StatementCachePurge Property
[image]

Gets or sets whether statement cache is purged.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Boolean

value = instance.StatementCachePurge

instance.StatementCachePurge = value

Syntax

Visual Basic
<BrowsableAttribute(True)> _
<CategoryAttribute("BufferManagement")> _
Public Property StatementCachePurge As Boolean
C#
[BrowsableAttribute(true)]
[CategoryAttribute("BufferManagement")]
public bool StatementCachePurge { get; set; }
C++
[BrowsableAttribute(true)]
[CategoryAttribute(L"BufferManagement")]
public:
virtual property bool StatementCachePurge {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final boolean get_StatementCachePurge ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_StatementCachePurge (boolean value)
JScript
CompilerGeneratedAttribute
public final function get StatementCachePurge () : boolean

CompilerGeneratedAttribute
public final function set StatementCachePurge (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if statement cache is purged; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.StatementCacheSize Property
[image]

Gets or sets the maximum number of statements that can be cached.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Integer

value = instance.StatementCacheSize

instance.StatementCacheSize = value

Syntax

Visual Basic
<CategoryAttribute("BufferManagement")> _
<BrowsableAttribute(True)> _
Public Property StatementCacheSize As Integer
C#
[CategoryAttribute("BufferManagement")]
[BrowsableAttribute(true)]
public int StatementCacheSize { get; set; }
C++
[CategoryAttribute(L"BufferManagement")]
[BrowsableAttribute(true)]
public:
virtual property int StatementCacheSize {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_StatementCacheSize ()

/** @property */
public final void set_StatementCacheSize (int value)
JScript
public final function get StatementCacheSize () : int

public final function set StatementCacheSize (value : int)

Property Value

The maximum number of statements.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.SupportsMetadataBrowse Property
[image]

Gets a value that indicates whether the specified object supports metadata browse.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Boolean

value = instance.SupportsMetadataBrowse

Syntax

Visual Basic
<SuppressMessageAttribute("Microsoft.Design", "CA1048:DoNotDeclareVirtualMembersInSealedTypes")> _
Public Overrides ReadOnly Property SupportsMetadataBrowse As Boolean
C#
[SuppressMessageAttribute("Microsoft.Design", "CA1048:DoNotDeclareVirtualMembersInSealedTypes")]
public override bool SupportsMetadataBrowse { get; }
C++
[SuppressMessageAttribute(L"Microsoft.Design", L"CA1048:DoNotDeclareVirtualMembersInSealedTypes")]
public:
virtual property bool SupportsMetadataBrowse {
    bool get () override;
}
J#
/** @property */
public boolean get_SupportsMetadataBrowse ()
JScript
public override function get SupportsMetadataBrowse () : boolean

Property Value

<languageKeyword>True</languageKeyword> if the specified object supports metadata browse; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.SupportsMetadataGet Property
[image]

Gets a value that indicates whether the specified object supports metadata get.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Boolean

value = instance.SupportsMetadataGet

Syntax

Visual Basic
<SuppressMessageAttribute("Microsoft.Design", "CA1048:DoNotDeclareVirtualMembersInSealedTypes")> _
Public Overrides ReadOnly Property SupportsMetadataGet As Boolean
C#
[SuppressMessageAttribute("Microsoft.Design", "CA1048:DoNotDeclareVirtualMembersInSealedTypes")]
public override bool SupportsMetadataGet { get; }
C++
[SuppressMessageAttribute(L"Microsoft.Design", L"CA1048:DoNotDeclareVirtualMembersInSealedTypes")]
public:
virtual property bool SupportsMetadataGet {
    bool get () override;
}
J#
/** @property */
public boolean get_SupportsMetadataGet ()
JScript
public override function get SupportsMetadataGet () : boolean

Property Value

<languageKeyword>True</languageKeyword> if the specified object supports metadata get; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.SupportsMetadataSearch Property
[image]

Gets a value that indicates whether the specified object supports metadata search.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Boolean

value = instance.SupportsMetadataSearch

Syntax

Visual Basic
<SuppressMessageAttribute("Microsoft.Design", "CA1048:DoNotDeclareVirtualMembersInSealedTypes")> _
Public Overrides ReadOnly Property SupportsMetadataSearch As Boolean
C#
[SuppressMessageAttribute("Microsoft.Design", "CA1048:DoNotDeclareVirtualMembersInSealedTypes")]
public override bool SupportsMetadataSearch { get; }
C++
[SuppressMessageAttribute(L"Microsoft.Design", L"CA1048:DoNotDeclareVirtualMembersInSealedTypes")]
public:
virtual property bool SupportsMetadataSearch {
    bool get () override;
}
J#
/** @property */
public boolean get_SupportsMetadataSearch ()
JScript
public override function get SupportsMetadataSearch () : boolean

Property Value

<languageKeyword>True</languageKeyword> if the specified object supports metada search; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.TransactionIsolationLevel Property
[image]

Gets or sets the Oracle transaction isolation level.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As TransactionIsolationLevel

value = instance.TransactionIsolationLevel

instance.TransactionIsolationLevel = value

Syntax

Visual Basic
<BrowsableAttribute(False)> _
<ObsoleteAttribute("This field/property/method is deprecated")> _
<BindingPropertyDirectionAttribute(False, False)> _
Public Property TransactionIsolationLevel As TransactionIsolationLevel
C#
[BrowsableAttribute(false)]
[ObsoleteAttribute("This field/property/method is deprecated")]
[BindingPropertyDirectionAttribute(false, false)]
public TransactionIsolationLevel TransactionIsolationLevel { get; set; }
C++
[BrowsableAttribute(false)]
[ObsoleteAttribute(L"This field/property/method is deprecated")]
[BindingPropertyDirectionAttribute(false, false)]
public:
property TransactionIsolationLevel TransactionIsolationLevel {
    TransactionIsolationLevel get ();
    void set (TransactionIsolationLevel value);
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public TransactionIsolationLevel get_TransactionIsolationLevel ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public void set_TransactionIsolationLevel (TransactionIsolationLevel value)
JScript
CompilerGeneratedAttribute
public function get TransactionIsolationLevel () : TransactionIsolationLevel

CompilerGeneratedAttribute
public function set TransactionIsolationLevel (value : TransactionIsolationLevel)

Property Value

The Oracle transaction isolation level.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.UseAmbientTransaction Property
[image]

Gets or sets whether the Oracle Database adapter performs the operations using the transaction context provided by the caller.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Boolean

value = instance.UseAmbientTransaction

instance.UseAmbientTransaction = value

Syntax

Visual Basic
<CategoryAttribute("Transactions")> _
<BrowsableAttribute(True)> _
Public Property UseAmbientTransaction As Boolean
C#
[CategoryAttribute("Transactions")]
[BrowsableAttribute(true)]
public bool UseAmbientTransaction { get; set; }
C++
[CategoryAttribute(L"Transactions")]
[BrowsableAttribute(true)]
public:
virtual property bool UseAmbientTransaction {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final boolean get_UseAmbientTransaction ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_UseAmbientTransaction (boolean value)
JScript
CompilerGeneratedAttribute
public final function get UseAmbientTransaction () : boolean

CompilerGeneratedAttribute
public final function set UseAmbientTransaction (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if the Oracle Database adapter performs the operations using the transaction context provided by the caller; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.UseOracleConnectionPool Property
[image]

Gets or sets whether oracle connection pool is used.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Boolean

value = instance.UseOracleConnectionPool

instance.UseOracleConnectionPool = value

Syntax

Visual Basic
<CategoryAttribute("OracleConnectionPool")> _
<BrowsableAttribute(True)> _
Public Property UseOracleConnectionPool As Boolean
C#
[CategoryAttribute("OracleConnectionPool")]
[BrowsableAttribute(true)]
public bool UseOracleConnectionPool { get; set; }
C++
[CategoryAttribute(L"OracleConnectionPool")]
[BrowsableAttribute(true)]
public:
virtual property bool UseOracleConnectionPool {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final boolean get_UseOracleConnectionPool ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_UseOracleConnectionPool (boolean value)
JScript
CompilerGeneratedAttribute
public final function get UseOracleConnectionPool () : boolean

CompilerGeneratedAttribute
public final function set UseOracleConnectionPool (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if oracle connection pool is used; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.UserAssembliesLoadPath Property
[image]

Gets or sets the name of the DLLs, separated by a semi-colon, which the adapter creates while generating metadata.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As String

value = instance.UserAssembliesLoadPath

instance.UserAssembliesLoadPath = value

Syntax

Visual Basic
<BrowsableAttribute(True)> _
<CategoryAttribute("UDT .NET Type Generation - Run Time")> _
Public Property UserAssembliesLoadPath As String
C#
[BrowsableAttribute(true)]
[CategoryAttribute("UDT .NET Type Generation - Run Time")]
public string UserAssembliesLoadPath { get; set; }
C++
[BrowsableAttribute(true)]
[CategoryAttribute(L"UDT .NET Type Generation - Run Time")]
public:
virtual property String^ UserAssembliesLoadPath {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final String get_UserAssembliesLoadPath ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_UserAssembliesLoadPath (String value)
JScript
CompilerGeneratedAttribute
public final function get UserAssembliesLoadPath () : String

CompilerGeneratedAttribute
public final function set UserAssembliesLoadPath (value : String)

Property Value

The name of the DLLs.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBinding.UseSchemaInNameSpace Property
[image]

Gets or sets whether the schema name is included in the xml namespace for operations and their associated types.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBinding
Dim value As Boolean

value = instance.UseSchemaInNameSpace

instance.UseSchemaInNameSpace = value

Syntax

Visual Basic
<BrowsableAttribute(True)> _
<CategoryAttribute("Metadata")> _
Public Property UseSchemaInNameSpace As Boolean
C#
[BrowsableAttribute(true)]
[CategoryAttribute("Metadata")]
public bool UseSchemaInNameSpace { get; set; }
C++
[BrowsableAttribute(true)]
[CategoryAttribute(L"Metadata")]
public:
virtual property bool UseSchemaInNameSpace {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final boolean get_UseSchemaInNameSpace ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public final void set_UseSchemaInNameSpace (boolean value)
JScript
CompilerGeneratedAttribute
public final function get UseSchemaInNameSpace () : boolean

CompilerGeneratedAttribute
public final function set UseSchemaInNameSpace (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if the schema name is included in the xml namespace for operations and their associated types; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBinding Class
OracleDBBinding Members


OracleDBBindingConfigurationElement Class
See Also Members
[image]

Represents the configuration element for Oracle DB adapter binding.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement

Syntax

Visual Basic
Public NotInheritable Class OracleDBBindingConfigurationElement
    Inherits StandardBindingElement
C#
public sealed class OracleDBBindingConfigurationElement : StandardBindingElement
C++
public ref class OracleDBBindingConfigurationElement sealed : public StandardBindingElement
J#
public final class OracleDBBindingConfigurationElement extends StandardBindingElement
JScript
public final class OracleDBBindingConfigurationElement extends StandardBindingElement

Inheritance Hierarchy

System.Object
System.Configuration.ConfigurationElement
System.ServiceModel.Configuration.StandardBindingElement
Microsoft.Adapters.OracleDB.OracleDBBindingConfigurationElement

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement Members
See Also Constructors Methods Properties
[image]

Represents the configuration element for Oracle DB adapter binding.

The following tables list the members exposed by the OracleDBBindingConfigurationElement type.

Public Constructors

Name | Description
OracleDBBindingConfigurationElement | Overloaded.
Top

Public Properties (see also Protected Properties)

 | Name | Description
public property | AcceptCredentialsInUri | Gets or sets a value whether the Oracle connection URI can contain user credentials for the Oracle database.
public property | CloseTimeout | (inherited from StandardBindingElement)
public property | ConnectionLifetime | Gets or sets the maximum duration in seconds of a connection.
public property | DataFetchSize | Gets or sets the size of data to fetch.
public property | DecrPoolSize | Gets or sets the number of connections that are closed when an excessive amount of established connections are not in use.
public property | ElementInformation | (inherited from ConfigurationElement)
public property | EnableBizTalkCompatibilityMode | Gets or sets a value that indicates whether the binding property is set to compatibility mode.
public property | EnablePerformanceCounters | Gets or sets a value whether the performance counters are enabled.
public property | EnableSafeTyping | Gets or sets a value that indicates whether the safe typing is enabled.
public property | GeneratedUserTypesAssemblyFilePath | Gets or sets the name and path of the DLL that the adapter generates, while generating metadata, containing all UDTs that are used in the metadata.
public property | GeneratedUserTypesAssemblyKeyFilePath | Gets or sets the name and path of the key file that the adapter uses to create a strongly-typed assembly.
public property | InboundOperationType | Gets or sets whether you want to perform <languageKeyword>Polling</languageKeyword> or <languageKeyword>Notification</languageKeyword> inbound operation.
public property | IncrPoolSize | Gets or sets the number of new connections to be created when a new connection is requested.
public property | InsertBatchSize | Gets or sets the batch size to insert.
public property | LockAllAttributesExcept | (inherited from ConfigurationElement)
public property | LockAllElementsExcept | (inherited from ConfigurationElement)
public property | LockAttributes | (inherited from ConfigurationElement)
public property | LockElements | (inherited from ConfigurationElement)
public property | LockItem | (inherited from ConfigurationElement)
public property | LongDatatypeColumnSize | Gets or sets the column size. Obsolete.
public property | MaxOutputAssociativeArrayElements | Gets or sets the size of the associate array that the adapter creates when performing operations.
public property | MaxPoolSize | Gets or sets the maximum number of connections allowed in the connection pool for this specific connection string.
public property | MetadataPooling | Gets or sets a value whether the MetadataPooling is specified.
public property | MinPoolSize | Gets or sets the minimum number of connections in a connection pool that the specified connection accepts when establishing a connection with a server.
public property | Name | (inherited from StandardBindingElement)
public property | NotificationPort | Gets or sets the port number that the data provider opens to listen for database change notification from Oracle database.
public property | NotificationStatement | Gets or sets the SELECT statement used to register for getting notifications form Oracle database.
public property | NotifyOnListenerStart | Gets or sets a value that indicates whether the adapter sends a notification message to the adapter clients, informing that the receive location is running, when the listener starts.
public property | OpenTimeout | (inherited from StandardBindingElement)
public property | PolledDataAvailableStatement | Gets or sets the SELECT statement executed to determine whether any data is available for polling for a specific table.
public property | PollingAction | Gets or sets the action for the polling operation.
public property | PollingInterval | Gets or sets the duration (in seconds) of the database's polling interval.
public property | PollingRetryCount | Gets or sets the number of times that polling is retried if an exception is encountered during the polling transaction. Obsolete.
public property | PollingStatement | Gets or sets the polling statement.
public property | PollWhileDataFound | Gets or sets a value that indicates whether the Oracle Database adapter ignores the polling interval and continuously polls the Oracle database, if data is available in the table being polled.
public property | PostPollStatement | Gets or sets the statement block that is executed after the statement specified by the PollingInput binding property is executed.
public property | ReceiveTimeout | (inherited from StandardBindingElement)
public property | SendTimeout | (inherited from StandardBindingElement)
public property | SkipNilNodes | Gets or sets a value that indicates whether the Oracle Database adapter skips inserting or updating values for nodes that are marked as 'nil' in the request XML.
public property | StatementCachePurge | Gets or sets a value whether the StatementCachePurge is specified.
public property | StatementCacheSize | Gets or sets the size of the statement cache.
public property | TransactionIsolationLevel | Gets or sets the transaction isolation level for new transactions created inside the service, and incoming transactions flowed from a client. Obsolete.
public property | UseAmbientTransaction | Gets or sets a value that indicates whether the Oracle Database adapter performs the operations using the transaction context provided by the caller.
public property | UseOracleConnectionPool | Gets or sets a value whether a connection pool is used.
public property | UserAssembliesLoadPath | Gets or sets the name of the DLLs, separated by a semi-colon, which the adapter creates while generating metadata.
public property | UseSchemaInNameSpace | Gets or sets a value that specifies whether the schema name is included in the xml namespace for operations and their associated types.
Top

Protected Properties

 | Name | Description
protected property | BindingElementType | (inherited from StandardBindingElement)
protected property | EvaluationContext | (inherited from ConfigurationElement)
protected property | Properties | Overridden. (inherited from ConfigurationElement)
Top

Public Methods (see also Protected Methods)

 | Name | Description
public method | ApplyConfiguration | (inherited from StandardBindingElement)
public method | Equals | Overridden. (inherited from Object)
public method | GetHashCode | Overridden. (inherited from Object)
public method | GetType | (inherited from Object)
public method | IsReadOnly | (inherited from ConfigurationElement)
public method | ToString | (inherited from Object)
Top

Protected Methods

 | Name | Description
protected method | Finalize | (inherited from Object)
protected method | ListErrors | (inherited from ConfigurationElement)
protected method | MemberwiseClone | (inherited from Object)
protected method | OnApplyConfiguration | (inherited from StandardBindingElement)
protected method | OnDeserializeUnrecognizedAttribute | (inherited from ConfigurationElement)
protected method | OnDeserializeUnrecognizedElement | (inherited from ConfigurationElement)
protected method | OnRequiredPropertyNotFound | (inherited from ConfigurationElement)
protected method | PostDeserialize | (inherited from ConfigurationElement)
protected method | PreSerialize | (inherited from ConfigurationElement)
protected method | Reset | Overridden. (inherited from ConfigurationElement)
protected method | SetPropertyValue | (inherited from ConfigurationElement)
Top

See Also

Reference

OracleDBBindingConfigurationElement Class


OracleDBBindingConfigurationElement Constructor
[image]

Initializes a new instance of the OracleDBBindingConfigurationElement class.

Overload List

Name | Description
OracleDBBindingConfigurationElement () | Initializes a new instance of the OracleDBBindingConfigurationElement class.
OracleDBBindingConfigurationElement (String) | Initializes a new instance of the OracleDBBindingConfigurationElement class with the specified name.

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement Constructor ()
[image]

Initializes a new instance of the OracleDBBindingConfigurationElement class.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As New OracleDBBindingConfigurationElement

Syntax

Visual Basic
Public Sub New
C#
public OracleDBBindingConfigurationElement ()
C++
public:
OracleDBBindingConfigurationElement ()
J#
public OracleDBBindingConfigurationElement ()
JScript
public function OracleDBBindingConfigurationElement ()

Remarks

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement Constructor (String)
[image]

Initializes a new instance of the OracleDBBindingConfigurationElement class with the specified name.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim name As String

Dim instance As New OracleDBBindingConfigurationElement(name)

Syntax

Visual Basic
Public Sub New ( _
    name As String _
)
C#
public OracleDBBindingConfigurationElement (
    string name
)
C++
public:
OracleDBBindingConfigurationElement (
    String^ name
)
J#
public OracleDBBindingConfigurationElement (
    String name
)
JScript
public function OracleDBBindingConfigurationElement (
    name : String
)

Parameters

name

The name.

Remarks

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement Methods
[image]

Public Methods (see also Protected Methods)

 | Name | Description
public method | ApplyConfiguration | (inherited from StandardBindingElement)
public method | Equals | Overridden. (inherited from Object)
public method | GetHashCode | Overridden. (inherited from Object)
public method | GetType | (inherited from Object)
public method | IsReadOnly | (inherited from ConfigurationElement)
public method | ToString | (inherited from Object)

Protected Methods

 | Name | Description
protected method | Finalize | (inherited from Object)
protected method | ListErrors | (inherited from ConfigurationElement)
protected method | MemberwiseClone | (inherited from Object)
protected method | OnApplyConfiguration | (inherited from StandardBindingElement)
protected method | OnDeserializeUnrecognizedAttribute | (inherited from ConfigurationElement)
protected method | OnDeserializeUnrecognizedElement | (inherited from ConfigurationElement)
protected method | OnRequiredPropertyNotFound | (inherited from ConfigurationElement)
protected method | PostDeserialize | (inherited from ConfigurationElement)
protected method | PreSerialize | (inherited from ConfigurationElement)
protected method | Reset | Overridden. (inherited from ConfigurationElement)
protected method | SetPropertyValue | (inherited from ConfigurationElement)

See Also

Reference

OracleDBBindingConfigurationElement Class


OracleDBBindingConfigurationElement Properties
[image]

Public Properties (see also Protected Properties)

 | Name | Description
public property | AcceptCredentialsInUri | Gets or sets a value whether the Oracle connection URI can contain user credentials for the Oracle database.
public property | CloseTimeout | (inherited from StandardBindingElement)
public property | ConnectionLifetime | Gets or sets the maximum duration in seconds of a connection.
public property | DataFetchSize | Gets or sets the size of data to fetch.
public property | DecrPoolSize | Gets or sets the number of connections that are closed when an excessive amount of established connections are not in use.
public property | ElementInformation | (inherited from ConfigurationElement)
public property | EnableBizTalkCompatibilityMode | Gets or sets a value that indicates whether the binding property is set to compatibility mode.
public property | EnablePerformanceCounters | Gets or sets a value whether the performance counters are enabled.
public property | EnableSafeTyping | Gets or sets a value that indicates whether the safe typing is enabled.
public property | GeneratedUserTypesAssemblyFilePath | Gets or sets the name and path of the DLL that the adapter generates, while generating metadata, containing all UDTs that are used in the metadata.
public property | GeneratedUserTypesAssemblyKeyFilePath | Gets or sets the name and path of the key file that the adapter uses to create a strongly-typed assembly.
public property | InboundOperationType | Gets or sets whether you want to perform <languageKeyword>Polling</languageKeyword> or <languageKeyword>Notification</languageKeyword> inbound operation.
public property | IncrPoolSize | Gets or sets the number of new connections to be created when a new connection is requested.
public property | InsertBatchSize | Gets or sets the batch size to insert.
public property | LockAllAttributesExcept | (inherited from ConfigurationElement)
public property | LockAllElementsExcept | (inherited from ConfigurationElement)
public property | LockAttributes | (inherited from ConfigurationElement)
public property | LockElements | (inherited from ConfigurationElement)
public property | LockItem | (inherited from ConfigurationElement)
public property | LongDatatypeColumnSize | Gets or sets the column size. Obsolete.
public property | MaxOutputAssociativeArrayElements | Gets or sets the size of the associate array that the adapter creates when performing operations.
public property | MaxPoolSize | Gets or sets the maximum number of connections allowed in the connection pool for this specific connection string.
public property | MetadataPooling | Gets or sets a value whether the MetadataPooling is specified.
public property | MinPoolSize | Gets or sets the minimum number of connections in a connection pool that the specified connection accepts when establishing a connection with a server.
public property | Name | (inherited from StandardBindingElement)
public property | NotificationPort | Gets or sets the port number that the data provider opens to listen for database change notification from Oracle database.
public property | NotificationStatement | Gets or sets the SELECT statement used to register for getting notifications form Oracle database.
public property | NotifyOnListenerStart | Gets or sets a value that indicates whether the adapter sends a notification message to the adapter clients, informing that the receive location is running, when the listener starts.
public property | OpenTimeout | (inherited from StandardBindingElement)
public property | PolledDataAvailableStatement | Gets or sets the SELECT statement executed to determine whether any data is available for polling for a specific table.
public property | PollingAction | Gets or sets the action for the polling operation.
public property | PollingInterval | Gets or sets the duration (in seconds) of the database's polling interval.
public property | PollingRetryCount | Gets or sets the number of times that polling is retried if an exception is encountered during the polling transaction. Obsolete.
public property | PollingStatement | Gets or sets the polling statement.
public property | PollWhileDataFound | Gets or sets a value that indicates whether the Oracle Database adapter ignores the polling interval and continuously polls the Oracle database, if data is available in the table being polled.
public property | PostPollStatement | Gets or sets the statement block that is executed after the statement specified by the PollingInput binding property is executed.
public property | ReceiveTimeout | (inherited from StandardBindingElement)
public property | SendTimeout | (inherited from StandardBindingElement)
public property | SkipNilNodes | Gets or sets a value that indicates whether the Oracle Database adapter skips inserting or updating values for nodes that are marked as 'nil' in the request XML.
public property | StatementCachePurge | Gets or sets a value whether the StatementCachePurge is specified.
public property | StatementCacheSize | Gets or sets the size of the statement cache.
public property | TransactionIsolationLevel | Gets or sets the transaction isolation level for new transactions created inside the service, and incoming transactions flowed from a client. Obsolete.
public property | UseAmbientTransaction | Gets or sets a value that indicates whether the Oracle Database adapter performs the operations using the transaction context provided by the caller.
public property | UseOracleConnectionPool | Gets or sets a value whether a connection pool is used.
public property | UserAssembliesLoadPath | Gets or sets the name of the DLLs, separated by a semi-colon, which the adapter creates while generating metadata.
public property | UseSchemaInNameSpace | Gets or sets a value that specifies whether the schema name is included in the xml namespace for operations and their associated types.

Protected Properties

 | Name | Description
protected property | BindingElementType | (inherited from StandardBindingElement)
protected property | EvaluationContext | (inherited from ConfigurationElement)
protected property | Properties | Overridden. (inherited from ConfigurationElement)

See Also

Reference

OracleDBBindingConfigurationElement Class


OracleDBBindingConfigurationElement.AcceptCredentialsInUri Property
[image]

Gets or sets a value whether the Oracle connection URI can contain user credentials for the Oracle database.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Boolean

value = instance.AcceptCredentialsInUri

instance.AcceptCredentialsInUri = value

Syntax

Visual Basic
<ConfigurationPropertyAttribute("acceptCredentialsInUri")> _
<BrowsableAttribute(False)> _
<CategoryAttribute("Security")> _
Public Property AcceptCredentialsInUri As Boolean
C#
[ConfigurationPropertyAttribute("acceptCredentialsInUri")]
[BrowsableAttribute(false)]
[CategoryAttribute("Security")]
public bool AcceptCredentialsInUri { get; set; }
C++
[ConfigurationPropertyAttribute(L"acceptCredentialsInUri")]
[BrowsableAttribute(false)]
[CategoryAttribute(L"Security")]
public:
virtual property bool AcceptCredentialsInUri {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
public final boolean get_AcceptCredentialsInUri ()

/** @property */
public final void set_AcceptCredentialsInUri (boolean value)
JScript
public final function get AcceptCredentialsInUri () : boolean

public final function set AcceptCredentialsInUri (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if the Oracle connection URI can contain user credentials for the Oracle database; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.ConnectionLifetime Property
[image]

Gets or sets the maximum duration in seconds of a connection.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Integer

value = instance.ConnectionLifetime

instance.ConnectionLifetime = value

Syntax

Visual Basic
<ConfigurationPropertyAttribute("connectionLifetime")> _
<CategoryAttribute("OracleConnectionPool")> _
Public Property ConnectionLifetime As Integer
C#
[ConfigurationPropertyAttribute("connectionLifetime")]
[CategoryAttribute("OracleConnectionPool")]
public int ConnectionLifetime { get; set; }
C++
[ConfigurationPropertyAttribute(L"connectionLifetime")]
[CategoryAttribute(L"OracleConnectionPool")]
public:
virtual property int ConnectionLifetime {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_ConnectionLifetime ()

/** @property */
public final void set_ConnectionLifetime (int value)
JScript
public final function get ConnectionLifetime () : int

public final function set ConnectionLifetime (value : int)

Property Value

An Int32 value that specifies the maximum duration in seconds of a connection.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.DataFetchSize Property
[image]

Gets or sets the size of data to fetch.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Long

value = instance.DataFetchSize

instance.DataFetchSize = value

Syntax

Visual Basic
<CategoryAttribute("BufferManagement")> _
<ConfigurationPropertyAttribute("dataFetchSize")> _
Public Property DataFetchSize As Long
C#
[CategoryAttribute("BufferManagement")]
[ConfigurationPropertyAttribute("dataFetchSize")]
public long DataFetchSize { get; set; }
C++
[CategoryAttribute(L"BufferManagement")]
[ConfigurationPropertyAttribute(L"dataFetchSize")]
public:
virtual property long long DataFetchSize {
    long long get () sealed;
    void set (long long value) sealed;
}
J#
/** @property */
public final long get_DataFetchSize ()

/** @property */
public final void set_DataFetchSize (long value)
JScript
public final function get DataFetchSize () : long

public final function set DataFetchSize (value : long)

Property Value

The size of data to fetch.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.DecrPoolSize Property
[image]

Gets or sets the number of connections that are closed when an excessive amount of established connections are not in use.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Integer

value = instance.DecrPoolSize

instance.DecrPoolSize = value

Syntax

Visual Basic
<ConfigurationPropertyAttribute("decrPoolSize")> _
<CategoryAttribute("OracleConnectionPool")> _
Public Property DecrPoolSize As Integer
C#
[ConfigurationPropertyAttribute("decrPoolSize")]
[CategoryAttribute("OracleConnectionPool")]
public int DecrPoolSize { get; set; }
C++
[ConfigurationPropertyAttribute(L"decrPoolSize")]
[CategoryAttribute(L"OracleConnectionPool")]
public:
virtual property int DecrPoolSize {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_DecrPoolSize ()

/** @property */
public final void set_DecrPoolSize (int value)
JScript
public final function get DecrPoolSize () : int

public final function set DecrPoolSize (value : int)

Property Value

An Int32 value that specifies the number of connections that are closed when an excessive amount of established connections are not in use.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.EnableBizTalkCompatibilityMode Property
[image]

Gets or sets a value that indicates whether the binding property is set to compatibility mode.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Boolean

value = instance.EnableBizTalkCompatibilityMode

instance.EnableBizTalkCompatibilityMode = value

Syntax

Visual Basic
<ConfigurationPropertyAttribute("enableBizTalkCompatibilityMode")> _
Public Property EnableBizTalkCompatibilityMode As Boolean
C#
[ConfigurationPropertyAttribute("enableBizTalkCompatibilityMode")]
public bool EnableBizTalkCompatibilityMode { get; set; }
C++
[ConfigurationPropertyAttribute(L"enableBizTalkCompatibilityMode")]
public:
virtual property bool EnableBizTalkCompatibilityMode {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
public final boolean get_EnableBizTalkCompatibilityMode ()

/** @property */
public final void set_EnableBizTalkCompatibilityMode (boolean value)
JScript
public final function get EnableBizTalkCompatibilityMode () : boolean

public final function set EnableBizTalkCompatibilityMode (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if the binding property is set to compatibility mode; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.EnablePerformanceCounters Property
[image]

Gets or sets a value whether the performance counters are enabled.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Boolean

value = instance.EnablePerformanceCounters

instance.EnablePerformanceCounters = value

Syntax

Visual Basic
<CategoryAttribute("Diagnostics")> _
<ConfigurationPropertyAttribute("enablePerformanceCounters")> _
Public Property EnablePerformanceCounters As Boolean
C#
[CategoryAttribute("Diagnostics")]
[ConfigurationPropertyAttribute("enablePerformanceCounters")]
public bool EnablePerformanceCounters { get; set; }
C++
[CategoryAttribute(L"Diagnostics")]
[ConfigurationPropertyAttribute(L"enablePerformanceCounters")]
public:
virtual property bool EnablePerformanceCounters {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
public final boolean get_EnablePerformanceCounters ()

/** @property */
public final void set_EnablePerformanceCounters (boolean value)
JScript
public final function get EnablePerformanceCounters () : boolean

public final function set EnablePerformanceCounters (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if performance counters are enabled; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.EnableSafeTyping Property
[image]

Gets or sets a value that indicates whether the safe typing is enabled.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Boolean

value = instance.EnableSafeTyping

instance.EnableSafeTyping = value

Syntax

Visual Basic
<ConfigurationPropertyAttribute("enableSafeTyping")> _
<CategoryAttribute("Metadata")> _
Public Property EnableSafeTyping As Boolean
C#
[ConfigurationPropertyAttribute("enableSafeTyping")]
[CategoryAttribute("Metadata")]
public bool EnableSafeTyping { get; set; }
C++
[ConfigurationPropertyAttribute(L"enableSafeTyping")]
[CategoryAttribute(L"Metadata")]
public:
virtual property bool EnableSafeTyping {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
public final boolean get_EnableSafeTyping ()

/** @property */
public final void set_EnableSafeTyping (boolean value)
JScript
public final function get EnableSafeTyping () : boolean

public final function set EnableSafeTyping (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if the safe typing is enabled; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.GeneratedUserTypesAssemblyFilePath Property
[image]

Gets or sets the name and path of the DLL that the adapter generates, while generating metadata, containing all UDTs that are used in the metadata.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As String

value = instance.GeneratedUserTypesAssemblyFilePath

instance.GeneratedUserTypesAssemblyFilePath = value

Syntax

Visual Basic
<CategoryAttribute("UDT .NET Type Generation - Design Time")> _
<BindingPropertyDirectionAttribute(False, False)> _
<ConfigurationPropertyAttribute("generatedUserTypesAssemblyFilePath")> _
Public Property GeneratedUserTypesAssemblyFilePath As String
C#
[CategoryAttribute("UDT .NET Type Generation - Design Time")]
[BindingPropertyDirectionAttribute(false, false)]
[ConfigurationPropertyAttribute("generatedUserTypesAssemblyFilePath")]
public string GeneratedUserTypesAssemblyFilePath { get; set; }
C++
[CategoryAttribute(L"UDT .NET Type Generation - Design Time")]
[BindingPropertyDirectionAttribute(false, false)]
[ConfigurationPropertyAttribute(L"generatedUserTypesAssemblyFilePath")]
public:
virtual property String^ GeneratedUserTypesAssemblyFilePath {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
public final String get_GeneratedUserTypesAssemblyFilePath ()

/** @property */
public final void set_GeneratedUserTypesAssemblyFilePath (String value)
JScript
public final function get GeneratedUserTypesAssemblyFilePath () : String

public final function set GeneratedUserTypesAssemblyFilePath (value : String)

Property Value

The name and path of the DLL that the adapter generates.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.GeneratedUserTypesAssemblyKeyFilePath Property
[image]

Gets or sets the name and path of the key file that the adapter uses to create a strongly-typed assembly.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As String

value = instance.GeneratedUserTypesAssemblyKeyFilePath

instance.GeneratedUserTypesAssemblyKeyFilePath = value

Syntax

Visual Basic
<BindingPropertyDirectionAttribute(False, False)> _
<CategoryAttribute("UDT .NET Type Generation - Design Time")> _
<ConfigurationPropertyAttribute("generatedUserTypesAssemblyKeyFilePath")> _
Public Property GeneratedUserTypesAssemblyKeyFilePath As String
C#
[BindingPropertyDirectionAttribute(false, false)]
[CategoryAttribute("UDT .NET Type Generation - Design Time")]
[ConfigurationPropertyAttribute("generatedUserTypesAssemblyKeyFilePath")]
public string GeneratedUserTypesAssemblyKeyFilePath { get; set; }
C++
[BindingPropertyDirectionAttribute(false, false)]
[CategoryAttribute(L"UDT .NET Type Generation - Design Time")]
[ConfigurationPropertyAttribute(L"generatedUserTypesAssemblyKeyFilePath")]
public:
virtual property String^ GeneratedUserTypesAssemblyKeyFilePath {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
public final String get_GeneratedUserTypesAssemblyKeyFilePath ()

/** @property */
public final void set_GeneratedUserTypesAssemblyKeyFilePath (String value)
JScript
public final function get GeneratedUserTypesAssemblyKeyFilePath () : String

public final function set GeneratedUserTypesAssemblyKeyFilePath (value : String)

Property Value

The name and path of the key file that the adapter uses to create a strongly-typed assembly.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.InboundOperationType Property
[image]

Gets or sets whether you want to perform <languageKeyword>Polling</languageKeyword> or <languageKeyword>Notification</languageKeyword> inbound operation.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As InboundOperation

value = instance.InboundOperationType

instance.InboundOperationType = value

Syntax

Visual Basic
<ConfigurationPropertyAttribute("inboundOperationType")> _
<BindingPropertyDirectionAttribute(True, False)> _
Public Property InboundOperationType As InboundOperation
C#
[ConfigurationPropertyAttribute("inboundOperationType")]
[BindingPropertyDirectionAttribute(true, false)]
public InboundOperation InboundOperationType { get; set; }
C++
[ConfigurationPropertyAttribute(L"inboundOperationType")]
[BindingPropertyDirectionAttribute(true, false)]
public:
virtual property InboundOperation InboundOperationType {
    InboundOperation get () sealed;
    void set (InboundOperation value) sealed;
}
J#
/** @property */
public final InboundOperation get_InboundOperationType ()

/** @property */
public final void set_InboundOperationType (InboundOperation value)
JScript
public final function get InboundOperationType () : InboundOperation

public final function set InboundOperationType (value : InboundOperation)

Property Value

The inbound operation to perform.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.IncrPoolSize Property
[image]

Gets or sets the number of new connections to be created when a new connection is requested.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Integer

value = instance.IncrPoolSize

instance.IncrPoolSize = value

Syntax

Visual Basic
<ConfigurationPropertyAttribute("incrPoolSize")> _
<CategoryAttribute("OracleConnectionPool")> _
Public Property IncrPoolSize As Integer
C#
[ConfigurationPropertyAttribute("incrPoolSize")]
[CategoryAttribute("OracleConnectionPool")]
public int IncrPoolSize { get; set; }
C++
[ConfigurationPropertyAttribute(L"incrPoolSize")]
[CategoryAttribute(L"OracleConnectionPool")]
public:
virtual property int IncrPoolSize {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_IncrPoolSize ()

/** @property */
public final void set_IncrPoolSize (int value)
JScript
public final function get IncrPoolSize () : int

public final function set IncrPoolSize (value : int)

Property Value

An Int32 value that specifies the number of new connections to be created.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.InsertBatchSize Property
[image]

Gets or sets the batch size to insert.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Integer

value = instance.InsertBatchSize

instance.InsertBatchSize = value

Syntax

Visual Basic
<ConfigurationPropertyAttribute("insertBatchSize")> _
<CategoryAttribute("BufferManagement")> _
Public Property InsertBatchSize As Integer
C#
[ConfigurationPropertyAttribute("insertBatchSize")]
[CategoryAttribute("BufferManagement")]
public int InsertBatchSize { get; set; }
C++
[ConfigurationPropertyAttribute(L"insertBatchSize")]
[CategoryAttribute(L"BufferManagement")]
public:
virtual property int InsertBatchSize {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_InsertBatchSize ()

/** @property */
public final void set_InsertBatchSize (int value)
JScript
public final function get InsertBatchSize () : int

public final function set InsertBatchSize (value : int)

Property Value

An Int32 value of the batch size to insert.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.LongDatatypeColumnSize Property
[image]

Gets or sets the column size.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Long

value = instance.LongDatatypeColumnSize

instance.LongDatatypeColumnSize = value

Syntax

Visual Basic
<CategoryAttribute("BufferManagement")> _
<ConfigurationPropertyAttribute("longDatatypeColumnSize")> _
<ObsoleteAttribute("Long data type is deprecated in Oracle. Refer to Oracle documentation for suggested alternatives")> _
Public Property LongDatatypeColumnSize As Long
C#
[CategoryAttribute("BufferManagement")]
[ConfigurationPropertyAttribute("longDatatypeColumnSize")]
[ObsoleteAttribute("Long data type is deprecated in Oracle. Refer to Oracle documentation for suggested alternatives")]
public long LongDatatypeColumnSize { get; set; }
C++
[CategoryAttribute(L"BufferManagement")]
[ConfigurationPropertyAttribute(L"longDatatypeColumnSize")]
[ObsoleteAttribute(L"Long data type is deprecated in Oracle. Refer to Oracle documentation for suggested alternatives")]
public:
virtual property long long LongDatatypeColumnSize {
    long long get () sealed;
    void set (long long value) sealed;
}
J#
/** @property */
public final long get_LongDatatypeColumnSize ()

/** @property */
public final void set_LongDatatypeColumnSize (long value)
JScript
public final function get LongDatatypeColumnSize () : long

public final function set LongDatatypeColumnSize (value : long)

Property Value

An Int64 value of the column size.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.MaxOutputAssociativeArrayElements Property
[image]

Gets or sets the size of the associate array that the adapter creates when performing operations.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Integer

value = instance.MaxOutputAssociativeArrayElements

instance.MaxOutputAssociativeArrayElements = value

Syntax

Visual Basic
<ConfigurationPropertyAttribute("maxOutputAssociativeArrayElements")> _
<CategoryAttribute("BufferManagement")> _
Public Property MaxOutputAssociativeArrayElements As Integer
C#
[ConfigurationPropertyAttribute("maxOutputAssociativeArrayElements")]
[CategoryAttribute("BufferManagement")]
public int MaxOutputAssociativeArrayElements { get; set; }
C++
[ConfigurationPropertyAttribute(L"maxOutputAssociativeArrayElements")]
[CategoryAttribute(L"BufferManagement")]
public:
virtual property int MaxOutputAssociativeArrayElements {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_MaxOutputAssociativeArrayElements ()

/** @property */
public final void set_MaxOutputAssociativeArrayElements (int value)
JScript
public final function get MaxOutputAssociativeArrayElements () : int

public final function set MaxOutputAssociativeArrayElements (value : int)

Property Value

An Int32 value that specifies the size of the associate array that the adapter creates when performing operations.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.MaxPoolSize Property
[image]

Gets or sets the maximum number of connections allowed in the connection pool for this specific connection string.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Integer

value = instance.MaxPoolSize

instance.MaxPoolSize = value

Syntax

Visual Basic
<ConfigurationPropertyAttribute("maxPoolSize")> _
<CategoryAttribute("OracleConnectionPool")> _
Public Property MaxPoolSize As Integer
C#
[ConfigurationPropertyAttribute("maxPoolSize")]
[CategoryAttribute("OracleConnectionPool")]
public int MaxPoolSize { get; set; }
C++
[ConfigurationPropertyAttribute(L"maxPoolSize")]
[CategoryAttribute(L"OracleConnectionPool")]
public:
virtual property int MaxPoolSize {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_MaxPoolSize ()

/** @property */
public final void set_MaxPoolSize (int value)
JScript
public final function get MaxPoolSize () : int

public final function set MaxPoolSize (value : int)

Property Value

An Int32 value that specifies the maximum number of connections in a connection pool.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.MetadataPooling Property
[image]

Gets or sets a value whether the MetadataPooling is specified.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Boolean

value = instance.MetadataPooling

instance.MetadataPooling = value

Syntax

Visual Basic
<CategoryAttribute("BufferManagement")> _
<ConfigurationPropertyAttribute("metadataPooling")> _
Public Property MetadataPooling As Boolean
C#
[CategoryAttribute("BufferManagement")]
[ConfigurationPropertyAttribute("metadataPooling")]
public bool MetadataPooling { get; set; }
C++
[CategoryAttribute(L"BufferManagement")]
[ConfigurationPropertyAttribute(L"metadataPooling")]
public:
virtual property bool MetadataPooling {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
public final boolean get_MetadataPooling ()

/** @property */
public final void set_MetadataPooling (boolean value)
JScript
public final function get MetadataPooling () : boolean

public final function set MetadataPooling (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if the MetadataPooling is specified; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.MinPoolSize Property
[image]

Gets or sets the minimum number of connections in a connection pool that the specified connection accepts when establishing a connection with a server.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Integer

value = instance.MinPoolSize

instance.MinPoolSize = value

Syntax

Visual Basic
<ConfigurationPropertyAttribute("minPoolSize")> _
<CategoryAttribute("OracleConnectionPool")> _
Public Property MinPoolSize As Integer
C#
[ConfigurationPropertyAttribute("minPoolSize")]
[CategoryAttribute("OracleConnectionPool")]
public int MinPoolSize { get; set; }
C++
[ConfigurationPropertyAttribute(L"minPoolSize")]
[CategoryAttribute(L"OracleConnectionPool")]
public:
virtual property int MinPoolSize {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_MinPoolSize ()

/** @property */
public final void set_MinPoolSize (int value)
JScript
public final function get MinPoolSize () : int

public final function set MinPoolSize (value : int)

Property Value

An Int32 value that specifies the minimum number of connections in a connection pool.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.NotificationPort Property
[image]

Gets or sets the port number that the data provider opens to listen for database change notification from Oracle database.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Integer

value = instance.NotificationPort

instance.NotificationPort = value

Syntax

Visual Basic
<ConfigurationPropertyAttribute("notificationPort")> _
<CategoryAttribute("Notification")> _
<BindingPropertyDirectionAttribute(True, False)> _
Public Property NotificationPort As Integer
C#
[ConfigurationPropertyAttribute("notificationPort")]
[CategoryAttribute("Notification")]
[BindingPropertyDirectionAttribute(true, false)]
public int NotificationPort { get; set; }
C++
[ConfigurationPropertyAttribute(L"notificationPort")]
[CategoryAttribute(L"Notification")]
[BindingPropertyDirectionAttribute(true, false)]
public:
virtual property int NotificationPort {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_NotificationPort ()

/** @property */
public final void set_NotificationPort (int value)
JScript
public final function get NotificationPort () : int

public final function set NotificationPort (value : int)

Property Value

An Int32 value of the port number that the data provider opens.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.NotificationStatement Property
[image]

Gets or sets the SELECT statement used to register for getting notifications form Oracle database.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As String

value = instance.NotificationStatement

instance.NotificationStatement = value

Syntax

Visual Basic
<ConfigurationPropertyAttribute("notificationStatement")> _
<CategoryAttribute("Notification")> _
<BindingPropertyDirectionAttribute(True, False)> _
Public Property NotificationStatement As String
C#
[ConfigurationPropertyAttribute("notificationStatement")]
[CategoryAttribute("Notification")]
[BindingPropertyDirectionAttribute(true, false)]
public string NotificationStatement { get; set; }
C++
[ConfigurationPropertyAttribute(L"notificationStatement")]
[CategoryAttribute(L"Notification")]
[BindingPropertyDirectionAttribute(true, false)]
public:
virtual property String^ NotificationStatement {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
public final String get_NotificationStatement ()

/** @property */
public final void set_NotificationStatement (String value)
JScript
public final function get NotificationStatement () : String

public final function set NotificationStatement (value : String)

Property Value

The SELECT statement used to register for getting notifications form Oracle database.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.NotifyOnListenerStart Property
[image]

Gets or sets a value that indicates whether the adapter sends a notification message to the adapter clients, informing that the receive location is running, when the listener starts.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Boolean

value = instance.NotifyOnListenerStart

instance.NotifyOnListenerStart = value

Syntax

Visual Basic
<ConfigurationPropertyAttribute("notifyOnListenerStart")> _
<CategoryAttribute("Notification")> _
<BindingPropertyDirectionAttribute(True, False)> _
Public Property NotifyOnListenerStart As Boolean
C#
[ConfigurationPropertyAttribute("notifyOnListenerStart")]
[CategoryAttribute("Notification")]
[BindingPropertyDirectionAttribute(true, false)]
public bool NotifyOnListenerStart { get; set; }
C++
[ConfigurationPropertyAttribute(L"notifyOnListenerStart")]
[CategoryAttribute(L"Notification")]
[BindingPropertyDirectionAttribute(true, false)]
public:
virtual property bool NotifyOnListenerStart {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
public final boolean get_NotifyOnListenerStart ()

/** @property */
public final void set_NotifyOnListenerStart (boolean value)
JScript
public final function get NotifyOnListenerStart () : boolean

public final function set NotifyOnListenerStart (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if the adapter sends a notification message to the adapter clients; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.PolledDataAvailableStatement Property
[image]

Gets or sets the SELECT statement executed to determine whether any data is available for polling for a specific table.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As String

value = instance.PolledDataAvailableStatement

instance.PolledDataAvailableStatement = value

Syntax

Visual Basic
<CategoryAttribute("PollingReceive")> _
<ConfigurationPropertyAttribute("polledDataAvailableStatement")> _
<BindingPropertyDirectionAttribute(True, False)> _
Public Property PolledDataAvailableStatement As String
C#
[CategoryAttribute("PollingReceive")]
[ConfigurationPropertyAttribute("polledDataAvailableStatement")]
[BindingPropertyDirectionAttribute(true, false)]
public string PolledDataAvailableStatement { get; set; }
C++
[CategoryAttribute(L"PollingReceive")]
[ConfigurationPropertyAttribute(L"polledDataAvailableStatement")]
[BindingPropertyDirectionAttribute(true, false)]
public:
virtual property String^ PolledDataAvailableStatement {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
public final String get_PolledDataAvailableStatement ()

/** @property */
public final void set_PolledDataAvailableStatement (String value)
JScript
public final function get PolledDataAvailableStatement () : String

public final function set PolledDataAvailableStatement (value : String)

Property Value

A value for the statement.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.PollingAction Property
[image]

Gets or sets the action for the polling operation.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As String

value = instance.PollingAction

instance.PollingAction = value

Syntax

Visual Basic
<CategoryAttribute("PollingReceive")> _
<ConfigurationPropertyAttribute("pollingAction")> _
<BindingPropertyDirectionAttribute(True, False)> _
Public Property PollingAction As String
C#
[CategoryAttribute("PollingReceive")]
[ConfigurationPropertyAttribute("pollingAction")]
[BindingPropertyDirectionAttribute(true, false)]
public string PollingAction { get; set; }
C++
[CategoryAttribute(L"PollingReceive")]
[ConfigurationPropertyAttribute(L"pollingAction")]
[BindingPropertyDirectionAttribute(true, false)]
public:
virtual property String^ PollingAction {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
public final String get_PollingAction ()

/** @property */
public final void set_PollingAction (String value)
JScript
public final function get PollingAction () : String

public final function set PollingAction (value : String)

Property Value

The action for the polling operation.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.PollingInterval Property
[image]

Gets or sets the duration (in seconds) of the database's polling interval.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Integer

value = instance.PollingInterval

instance.PollingInterval = value

Syntax

Visual Basic
<BindingPropertyDirectionAttribute(True, False)> _
<ConfigurationPropertyAttribute("pollingInterval")> _
<CategoryAttribute("PollingReceive")> _
Public Property PollingInterval As Integer
C#
[BindingPropertyDirectionAttribute(true, false)]
[ConfigurationPropertyAttribute("pollingInterval")]
[CategoryAttribute("PollingReceive")]
public int PollingInterval { get; set; }
C++
[BindingPropertyDirectionAttribute(true, false)]
[ConfigurationPropertyAttribute(L"pollingInterval")]
[CategoryAttribute(L"PollingReceive")]
public:
virtual property int PollingInterval {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_PollingInterval ()

/** @property */
public final void set_PollingInterval (int value)
JScript
public final function get PollingInterval () : int

public final function set PollingInterval (value : int)

Property Value

The duration of the database's polling interval.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.PollingRetryCount Property
[image]

Gets or sets the number of times that polling is retried if an exception is encountered during the polling transaction.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Integer

value = instance.PollingRetryCount

instance.PollingRetryCount = value

Syntax

Visual Basic
<BrowsableAttribute(False)> _
<BindingPropertyDirectionAttribute(False, False)> _
<SuppressMessageAttribute("Microsoft.Performance", "CA1822:MarkMembersAsStatic")> _
<ObsoleteAttribute("This field/property/method is deprecated")> _
Public Property PollingRetryCount As Integer
C#
[BrowsableAttribute(false)]
[BindingPropertyDirectionAttribute(false, false)]
[SuppressMessageAttribute("Microsoft.Performance", "CA1822:MarkMembersAsStatic")]
[ObsoleteAttribute("This field/property/method is deprecated")]
public int PollingRetryCount { get; set; }
C++
[BrowsableAttribute(false)]
[BindingPropertyDirectionAttribute(false, false)]
[SuppressMessageAttribute(L"Microsoft.Performance", L"CA1822:MarkMembersAsStatic")]
[ObsoleteAttribute(L"This field/property/method is deprecated")]
public:
property int PollingRetryCount {
    int get ();
    void set (int value);
}
J#
/** @property */
public int get_PollingRetryCount ()

/** @property */
/** @attribute SuppressMessageAttribute("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId="value") */
public void set_PollingRetryCount (int value)
JScript
public function get PollingRetryCount () : int

SuppressMessageAttribute("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId="value")
public function set PollingRetryCount (value : int)

Property Value

The number of times that polling is retried.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.PollingStatement Property
[image]

Gets or sets the polling statement.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As String

value = instance.PollingStatement

instance.PollingStatement = value

Syntax

Visual Basic
<BindingPropertyDirectionAttribute(True, False)> _
<CategoryAttribute("PollingReceive")> _
<ConfigurationPropertyAttribute("pollingStatement")> _
Public Property PollingStatement As String
C#
[BindingPropertyDirectionAttribute(true, false)]
[CategoryAttribute("PollingReceive")]
[ConfigurationPropertyAttribute("pollingStatement")]
public string PollingStatement { get; set; }
C++
[BindingPropertyDirectionAttribute(true, false)]
[CategoryAttribute(L"PollingReceive")]
[ConfigurationPropertyAttribute(L"pollingStatement")]
public:
virtual property String^ PollingStatement {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
public final String get_PollingStatement ()

/** @property */
public final void set_PollingStatement (String value)
JScript
public final function get PollingStatement () : String

public final function set PollingStatement (value : String)

Property Value

The polling statement.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.PollWhileDataFound Property
[image]

Gets or sets a value that indicates whether the Oracle Database adapter ignores the polling interval and continuously polls the Oracle database, if data is available in the table being polled.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Boolean

value = instance.PollWhileDataFound

instance.PollWhileDataFound = value

Syntax

Visual Basic
<CategoryAttribute("PollingReceive")> _
<ConfigurationPropertyAttribute("pollWhileDataFound")> _
<BindingPropertyDirectionAttribute(True, False)> _
Public Property PollWhileDataFound As Boolean
C#
[CategoryAttribute("PollingReceive")]
[ConfigurationPropertyAttribute("pollWhileDataFound")]
[BindingPropertyDirectionAttribute(true, false)]
public bool PollWhileDataFound { get; set; }
C++
[CategoryAttribute(L"PollingReceive")]
[ConfigurationPropertyAttribute(L"pollWhileDataFound")]
[BindingPropertyDirectionAttribute(true, false)]
public:
virtual property bool PollWhileDataFound {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
public final boolean get_PollWhileDataFound ()

/** @property */
public final void set_PollWhileDataFound (boolean value)
JScript
public final function get PollWhileDataFound () : boolean

public final function set PollWhileDataFound (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if the Oracle Database adapter ignores the polling interval; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.PostPollStatement Property
[image]

Gets or sets the statement block that is executed after the statement specified by the PollingInput binding property is executed.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As String

value = instance.PostPollStatement

instance.PostPollStatement = value

Syntax

Visual Basic
<BindingPropertyDirectionAttribute(True, False)> _
<CategoryAttribute("PollingReceive")> _
<ConfigurationPropertyAttribute("postPollStatement")> _
Public Property PostPollStatement As String
C#
[BindingPropertyDirectionAttribute(true, false)]
[CategoryAttribute("PollingReceive")]
[ConfigurationPropertyAttribute("postPollStatement")]
public string PostPollStatement { get; set; }
C++
[BindingPropertyDirectionAttribute(true, false)]
[CategoryAttribute(L"PollingReceive")]
[ConfigurationPropertyAttribute(L"postPollStatement")]
public:
virtual property String^ PostPollStatement {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
public final String get_PostPollStatement ()

/** @property */
public final void set_PostPollStatement (String value)
JScript
public final function get PostPollStatement () : String

public final function set PostPollStatement (value : String)

Property Value

The statement block that is executed after the statement specified by the PollingInput binding property is executed.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.SkipNilNodes Property
[image]

Gets or sets a value that indicates whether the Oracle Database adapter skips inserting or updating values for nodes that are marked as 'nil' in the request XML.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Boolean

value = instance.SkipNilNodes

instance.SkipNilNodes = value

Syntax

Visual Basic
<ConfigurationPropertyAttribute("skipNilNodes")> _
<CategoryAttribute("Run Time Behavior")> _
Public Property SkipNilNodes As Boolean
C#
[ConfigurationPropertyAttribute("skipNilNodes")]
[CategoryAttribute("Run Time Behavior")]
public bool SkipNilNodes { get; set; }
C++
[ConfigurationPropertyAttribute(L"skipNilNodes")]
[CategoryAttribute(L"Run Time Behavior")]
public:
virtual property bool SkipNilNodes {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
public final boolean get_SkipNilNodes ()

/** @property */
public final void set_SkipNilNodes (boolean value)
JScript
public final function get SkipNilNodes () : boolean

public final function set SkipNilNodes (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if the Oracle Database adapter skips inserting or updating values for nodes that are marked as 'nil' in the request XML; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.StatementCachePurge Property
[image]

Gets or sets a value whether the StatementCachePurge is specified.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Boolean

value = instance.StatementCachePurge

instance.StatementCachePurge = value

Syntax

Visual Basic
<CategoryAttribute("BufferManagement")> _
<ConfigurationPropertyAttribute("statementCachePurge")> _
Public Property StatementCachePurge As Boolean
C#
[CategoryAttribute("BufferManagement")]
[ConfigurationPropertyAttribute("statementCachePurge")]
public bool StatementCachePurge { get; set; }
C++
[CategoryAttribute(L"BufferManagement")]
[ConfigurationPropertyAttribute(L"statementCachePurge")]
public:
virtual property bool StatementCachePurge {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
public final boolean get_StatementCachePurge ()

/** @property */
public final void set_StatementCachePurge (boolean value)
JScript
public final function get StatementCachePurge () : boolean

public final function set StatementCachePurge (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if the StatementCachePurge is specified; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.StatementCacheSize Property
[image]

Gets or sets the size of the statement cache.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Integer

value = instance.StatementCacheSize

instance.StatementCacheSize = value

Syntax

Visual Basic
<CategoryAttribute("BufferManagement")> _
<ConfigurationPropertyAttribute("statementCacheSize")> _
Public Property StatementCacheSize As Integer
C#
[CategoryAttribute("BufferManagement")]
[ConfigurationPropertyAttribute("statementCacheSize")]
public int StatementCacheSize { get; set; }
C++
[CategoryAttribute(L"BufferManagement")]
[ConfigurationPropertyAttribute(L"statementCacheSize")]
public:
virtual property int StatementCacheSize {
    int get () sealed;
    void set (int value) sealed;
}
J#
/** @property */
public final int get_StatementCacheSize ()

/** @property */
public final void set_StatementCacheSize (int value)
JScript
public final function get StatementCacheSize () : int

public final function set StatementCacheSize (value : int)

Property Value

A value of the statement cache size.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.TransactionIsolationLevel Property
[image]

Gets or sets the transaction isolation level for new transactions created inside the service, and incoming transactions flowed from a client.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As TransactionIsolationLevel

value = instance.TransactionIsolationLevel

instance.TransactionIsolationLevel = value

Syntax

Visual Basic
<BindingPropertyDirectionAttribute(False, False)> _
<SuppressMessageAttribute("Microsoft.Performance", "CA1822:MarkMembersAsStatic")> _
<ObsoleteAttribute("This field/property/method is deprecated")> _
<BrowsableAttribute(False)> _
Public Property TransactionIsolationLevel As TransactionIsolationLevel
C#
[BindingPropertyDirectionAttribute(false, false)]
[SuppressMessageAttribute("Microsoft.Performance", "CA1822:MarkMembersAsStatic")]
[ObsoleteAttribute("This field/property/method is deprecated")]
[BrowsableAttribute(false)]
public TransactionIsolationLevel TransactionIsolationLevel { get; set; }
C++
[BindingPropertyDirectionAttribute(false, false)]
[SuppressMessageAttribute(L"Microsoft.Performance", L"CA1822:MarkMembersAsStatic")]
[ObsoleteAttribute(L"This field/property/method is deprecated")]
[BrowsableAttribute(false)]
public:
property TransactionIsolationLevel TransactionIsolationLevel {
    TransactionIsolationLevel get ();
    void set (TransactionIsolationLevel value);
}
J#
/** @property */
public TransactionIsolationLevel get_TransactionIsolationLevel ()

/** @property */
/** @attribute SuppressMessageAttribute("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId="value") */
public void set_TransactionIsolationLevel (TransactionIsolationLevel value)
JScript
public function get TransactionIsolationLevel () : TransactionIsolationLevel

SuppressMessageAttribute("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId="value")
public function set TransactionIsolationLevel (value : TransactionIsolationLevel)

Property Value

An IsolationLevel value that specifies the transaction isolation level.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.UseAmbientTransaction Property
[image]

Gets or sets a value that indicates whether the Oracle Database adapter performs the operations using the transaction context provided by the caller.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Boolean

value = instance.UseAmbientTransaction

instance.UseAmbientTransaction = value

Syntax

Visual Basic
<ConfigurationPropertyAttribute("useAmbientTransaction")> _
<CategoryAttribute("Transactions")> _
Public Property UseAmbientTransaction As Boolean
C#
[ConfigurationPropertyAttribute("useAmbientTransaction")]
[CategoryAttribute("Transactions")]
public bool UseAmbientTransaction { get; set; }
C++
[ConfigurationPropertyAttribute(L"useAmbientTransaction")]
[CategoryAttribute(L"Transactions")]
public:
virtual property bool UseAmbientTransaction {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
public final boolean get_UseAmbientTransaction ()

/** @property */
public final void set_UseAmbientTransaction (boolean value)
JScript
public final function get UseAmbientTransaction () : boolean

public final function set UseAmbientTransaction (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if Oracle Database adapter performs the operations using the transaction context provided by the caller; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.UseOracleConnectionPool Property
[image]

Gets or sets a value whether a connection pool is used.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Boolean

value = instance.UseOracleConnectionPool

instance.UseOracleConnectionPool = value

Syntax

Visual Basic
<CategoryAttribute("OracleConnectionPool")> _
<ConfigurationPropertyAttribute("useOracleConnectionPool")> _
Public Property UseOracleConnectionPool As Boolean
C#
[CategoryAttribute("OracleConnectionPool")]
[ConfigurationPropertyAttribute("useOracleConnectionPool")]
public bool UseOracleConnectionPool { get; set; }
C++
[CategoryAttribute(L"OracleConnectionPool")]
[ConfigurationPropertyAttribute(L"useOracleConnectionPool")]
public:
virtual property bool UseOracleConnectionPool {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
public final boolean get_UseOracleConnectionPool ()

/** @property */
public final void set_UseOracleConnectionPool (boolean value)
JScript
public final function get UseOracleConnectionPool () : boolean

public final function set UseOracleConnectionPool (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if a connection pool is used; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.UserAssembliesLoadPath Property
[image]

Gets or sets the name of the DLLs, separated by a semi-colon, which the adapter creates while generating metadata.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As String

value = instance.UserAssembliesLoadPath

instance.UserAssembliesLoadPath = value

Syntax

Visual Basic
<CategoryAttribute("UDT .NET Type Generation - Run Time")> _
<ConfigurationPropertyAttribute("userAssembliesLoadPath")> _
Public Property UserAssembliesLoadPath As String
C#
[CategoryAttribute("UDT .NET Type Generation - Run Time")]
[ConfigurationPropertyAttribute("userAssembliesLoadPath")]
public string UserAssembliesLoadPath { get; set; }
C++
[CategoryAttribute(L"UDT .NET Type Generation - Run Time")]
[ConfigurationPropertyAttribute(L"userAssembliesLoadPath")]
public:
virtual property String^ UserAssembliesLoadPath {
    String^ get () sealed;
    void set (String^ value) sealed;
}
J#
/** @property */
public final String get_UserAssembliesLoadPath ()

/** @property */
public final void set_UserAssembliesLoadPath (String value)
JScript
public final function get UserAssembliesLoadPath () : String

public final function set UserAssembliesLoadPath (value : String)

Property Value

The name of the DLLs.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBBindingConfigurationElement.UseSchemaInNameSpace Property
[image]

Gets or sets a value that specifies whether the schema name is included in the xml namespace for operations and their associated types.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBBindingConfigurationElement
Dim value As Boolean

value = instance.UseSchemaInNameSpace

instance.UseSchemaInNameSpace = value

Syntax

Visual Basic
<CategoryAttribute("Metadata")> _
<ConfigurationPropertyAttribute("useSchemaInNameSpace")> _
Public Property UseSchemaInNameSpace As Boolean
C#
[CategoryAttribute("Metadata")]
[ConfigurationPropertyAttribute("useSchemaInNameSpace")]
public bool UseSchemaInNameSpace { get; set; }
C++
[CategoryAttribute(L"Metadata")]
[ConfigurationPropertyAttribute(L"useSchemaInNameSpace")]
public:
virtual property bool UseSchemaInNameSpace {
    bool get () sealed;
    void set (bool value) sealed;
}
J#
/** @property */
public final boolean get_UseSchemaInNameSpace ()

/** @property */
public final void set_UseSchemaInNameSpace (boolean value)
JScript
public final function get UseSchemaInNameSpace () : boolean

public final function set UseSchemaInNameSpace (value : boolean)

Property Value

<languageKeyword>True</languageKeyword> if schema name is included in the xml namespace for operations and their associated types; otherwise, <languageKeyword>false</languageKeyword>.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBBindingConfigurationElement Class
OracleDBBindingConfigurationElement Members


OracleDBConnectionUri Class
See Also Members
[image]

Represents the class for building the OracleDBConnectionUri.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBConnectionUri

Syntax

Visual Basic
Public NotInheritable Class OracleDBConnectionUri
    Inherits ConnectionUri
C#
public sealed class OracleDBConnectionUri : ConnectionUri
C++
public ref class OracleDBConnectionUri sealed : public ConnectionUri
J#
public final class OracleDBConnectionUri extends ConnectionUri
JScript
public final class OracleDBConnectionUri extends ConnectionUri

Inheritance Hierarchy

System.Object
Microsoft.ServiceModel.Channels.Common.ConnectionUri
Microsoft.Adapters.OracleDB.OracleDBConnectionUri

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBConnectionUri Members


OracleDBConnectionUri Members
See Also Constructors Methods Properties
[image]

Represents the class for building the OracleDBConnectionUri.

The following tables list the members exposed by the OracleDBConnectionUri type.

Public Constructors

Name | Description
OracleDBConnectionUri | Initializes a new instance of the OracleDBConnectionUri class.
Top

Public Properties

 | Name | Description
public property | DataSourceName | Gets or sets the name of the data source.
public property | PollingId | Gets or sets the specified value of the polling id.
public property | PortNumber | Gets or sets the number of the port used to communicate with the server.
public property | SampleUriString | Overridden. Gets a sample URI string.
public property | SecureUriString | (inherited from ConnectionUri)
public property | ServerAddress | Gets or sets the address of the server to which connectivity is to be verified.
public property | ServiceName | Gets or sets the short name used to identify the service to the system.
public property | ServiceType | Gets or sets the type of the service.
public property | Uri | Overridden. Gets or sets the <languageKeyword>uniform resource identifier</languageKeyword> used in the connection.
Top

Public Methods (see also Protected Methods)

 | Name | Description
public method | Equals | (inherited from Object)
public method | GetAttributes | (inherited from ConnectionUri)
public method | GetClassName | (inherited from ConnectionUri)
public method | GetComponentName | (inherited from ConnectionUri)
public method | GetConverter | (inherited from ConnectionUri)
public method | GetDefaultEvent | (inherited from ConnectionUri)
public method | GetDefaultProperty | (inherited from ConnectionUri)
public method | GetEditor | (inherited from ConnectionUri)
public method | GetEvents | (inherited from ConnectionUri)
public method | GetEvents | (inherited from ConnectionUri)
public method | GetHashCode | (inherited from Object)
public method | GetProperties | (inherited from ConnectionUri)
public method | GetProperties | (inherited from ConnectionUri)
public method | GetPropertyOwner | (inherited from ConnectionUri)
public method | GetType | (inherited from Object)
public method | ToString | Overridden. (inherited from Object)
Top

Protected Methods

 | Name | Description
protected method | Finalize | (inherited from Object)
protected method | MemberwiseClone | (inherited from Object)
Top

See Also

Reference

OracleDBConnectionUri Class


OracleDBConnectionUri Constructor
[image]

Initializes a new instance of the OracleDBConnectionUri class.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As New OracleDBConnectionUri

Syntax

Visual Basic
<SuppressMessageAttribute("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily")> _
Public Sub New
C#
[SuppressMessageAttribute("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily")]
public OracleDBConnectionUri ()
C++
[SuppressMessageAttribute(L"Microsoft.Performance", L"CA1805:DoNotInitializeUnnecessarily")]
public:
OracleDBConnectionUri ()
J#
/** @attribute SuppressMessageAttribute("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily") */
public OracleDBConnectionUri ()
JScript
SuppressMessageAttribute("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily")
public function OracleDBConnectionUri ()

Remarks

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBConnectionUri Class
OracleDBConnectionUri Members


OracleDBConnectionUri Methods
[image]

Public Methods (see also Protected Methods)

 | Name | Description
public method | Equals | (inherited from Object)
public method | GetAttributes | (inherited from ConnectionUri)
public method | GetClassName | (inherited from ConnectionUri)
public method | GetComponentName | (inherited from ConnectionUri)
public method | GetConverter | (inherited from ConnectionUri)
public method | GetDefaultEvent | (inherited from ConnectionUri)
public method | GetDefaultProperty | (inherited from ConnectionUri)
public method | GetEditor | (inherited from ConnectionUri)
public method | GetEvents | (inherited from ConnectionUri)
public method | GetEvents | (inherited from ConnectionUri)
public method | GetHashCode | (inherited from Object)
public method | GetProperties | (inherited from ConnectionUri)
public method | GetProperties | (inherited from ConnectionUri)
public method | GetPropertyOwner | (inherited from ConnectionUri)
public method | GetType | (inherited from Object)
public method | ToString | Overridden. (inherited from Object)

Protected Methods

 | Name | Description
protected method | Finalize | (inherited from Object)
protected method | MemberwiseClone | (inherited from Object)

See Also

Reference

OracleDBConnectionUri Class


OracleDBConnectionUri Properties
[image]

Public Properties

 | Name | Description
public property | DataSourceName | Gets or sets the name of the data source.
public property | PollingId | Gets or sets the specified value of the polling id.
public property | PortNumber | Gets or sets the number of the port used to communicate with the server.
public property | SampleUriString | Overridden. Gets a sample URI string.
public property | SecureUriString | (inherited from ConnectionUri)
public property | ServerAddress | Gets or sets the address of the server to which connectivity is to be verified.
public property | ServiceName | Gets or sets the short name used to identify the service to the system.
public property | ServiceType | Gets or sets the type of the service.
public property | Uri | Overridden. Gets or sets the <languageKeyword>uniform resource identifier</languageKeyword> used in the connection.

See Also

Reference

OracleDBConnectionUri Class


OracleDBConnectionUri.DataSourceName Property
[image]

Gets or sets the name of the data source.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBConnectionUri
Dim value As String

value = instance.DataSourceName

instance.DataSourceName = value

Syntax

Visual Basic
<CategoryAttribute("Oracle Server")> _
<BrowsableAttribute(True)> _
<DescriptionAttribute("Oracle TNS Alias Name")> _
Public Property DataSourceName As String
C#
[CategoryAttribute("Oracle Server")]
[BrowsableAttribute(true)]
[DescriptionAttribute("Oracle TNS Alias Name")]
public string DataSourceName { get; set; }
C++
[CategoryAttribute(L"Oracle Server")]
[BrowsableAttribute(true)]
[DescriptionAttribute(L"Oracle TNS Alias Name")]
public:
property String^ DataSourceName {
    String^ get ();
    void set (String^ value);
}
J#
/** @property */
public String get_DataSourceName ()

/** @property */
public void set_DataSourceName (String value)
JScript
public function get DataSourceName () : String

public function set DataSourceName (value : String)

Property Value

The name of the data source.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBConnectionUri Class
OracleDBConnectionUri Members


OracleDBConnectionUri.PollingId Property
[image]

Gets or sets the specified value of the polling id.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBConnectionUri
Dim value As String

value = instance.PollingId

instance.PollingId = value

Syntax

Visual Basic
<CategoryAttribute("PollingReceive")> _
<DescriptionAttribute("Polling Id")> _
<BrowsableAttribute(True)> _
Public Property PollingId As String
C#
[CategoryAttribute("PollingReceive")]
[DescriptionAttribute("Polling Id")]
[BrowsableAttribute(true)]
public string PollingId { get; set; }
C++
[CategoryAttribute(L"PollingReceive")]
[DescriptionAttribute(L"Polling Id")]
[BrowsableAttribute(true)]
public:
property String^ PollingId {
    String^ get ();
    void set (String^ value);
}
J#
/** @property */
public String get_PollingId ()

/** @property */
public void set_PollingId (String value)
JScript
public function get PollingId () : String

public function set PollingId (value : String)

Property Value

A string value of the polling id.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBConnectionUri Class
OracleDBConnectionUri Members


OracleDBConnectionUri.PortNumber Property
[image]

Gets or sets the number of the port used to communicate with the server.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBConnectionUri
Dim value As Integer

value = instance.PortNumber

instance.PortNumber = value

Syntax

Visual Basic
<DefaultValueAttribute(1521)> _
<BrowsableAttribute(True)> _
<CategoryAttribute("Connect Descriptor")> _
Public Property PortNumber As Integer
C#
[DefaultValueAttribute(1521)]
[BrowsableAttribute(true)]
[CategoryAttribute("Connect Descriptor")]
public int PortNumber { get; set; }
C++
[DefaultValueAttribute(1521)]
[BrowsableAttribute(true)]
[CategoryAttribute(L"Connect Descriptor")]
public:
property int PortNumber {
    int get ();
    void set (int value);
}
J#
/** @property */
public int get_PortNumber ()

/** @property */
public void set_PortNumber (int value)
JScript
public function get PortNumber () : int

public function set PortNumber (value : int)

Property Value

An Int32 value that contains the port number used to communicate with the server.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBConnectionUri Class
OracleDBConnectionUri Members


OracleDBConnectionUri.SampleUriString Property
[image]

Gets a sample URI string.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBConnectionUri
Dim value As String

value = instance.SampleUriString

Syntax

Visual Basic
<SuppressMessageAttribute("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings")> _
<SuppressMessageAttribute("Microsoft.Design", "CA1048:DoNotDeclareVirtualMembersInSealedTypes")> _
Public Overrides ReadOnly Property SampleUriString As String
C#
[SuppressMessageAttribute("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings")]
[SuppressMessageAttribute("Microsoft.Design", "CA1048:DoNotDeclareVirtualMembersInSealedTypes")]
public override string SampleUriString { get; }
C++
[SuppressMessageAttribute(L"Microsoft.Design", L"CA1056:UriPropertiesShouldNotBeStrings")]
[SuppressMessageAttribute(L"Microsoft.Design", L"CA1048:DoNotDeclareVirtualMembersInSealedTypes")]
public:
virtual property String^ SampleUriString {
    String^ get () override;
}
J#
/** @property */
public String get_SampleUriString ()
JScript
public override function get SampleUriString () : String

Property Value

Returns a String containing a sample URI string.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBConnectionUri Class
OracleDBConnectionUri Members


OracleDBConnectionUri.ServerAddress Property
[image]

Gets or sets the address of the server to which connectivity is to be verified.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBConnectionUri
Dim value As String

value = instance.ServerAddress

instance.ServerAddress = value

Syntax

Visual Basic
<CategoryAttribute("Connect Descriptor")> _
Public Property ServerAddress As String
C#
[CategoryAttribute("Connect Descriptor")]
public string ServerAddress { get; set; }
C++
[CategoryAttribute(L"Connect Descriptor")]
public:
property String^ ServerAddress {
    String^ get ();
    void set (String^ value);
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public String get_ServerAddress ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public void set_ServerAddress (String value)
JScript
CompilerGeneratedAttribute
public function get ServerAddress () : String

CompilerGeneratedAttribute
public function set ServerAddress (value : String)

Property Value

The address of the server.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBConnectionUri Class
OracleDBConnectionUri Members


OracleDBConnectionUri.ServiceName Property
[image]

Gets or sets the short name used to identify the service to the system.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBConnectionUri
Dim value As String

value = instance.ServiceName

instance.ServiceName = value

Syntax

Visual Basic
<CategoryAttribute("Connect Descriptor")> _
Public Property ServiceName As String
C#
[CategoryAttribute("Connect Descriptor")]
public string ServiceName { get; set; }
C++
[CategoryAttribute(L"Connect Descriptor")]
public:
property String^ ServiceName {
    String^ get ();
    void set (String^ value);
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public String get_ServiceName ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public void set_ServiceName (String value)
JScript
CompilerGeneratedAttribute
public function get ServiceName () : String

CompilerGeneratedAttribute
public function set ServiceName (value : String)

Property Value

The name of the service.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBConnectionUri Class
OracleDBConnectionUri Members


OracleDBConnectionUri.ServiceType Property
[image]

Gets or sets the type of the service.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBConnectionUri
Dim value As OracleServiceType

value = instance.ServiceType

instance.ServiceType = value

Syntax

Visual Basic
<CategoryAttribute("Connect Descriptor")> _
Public Property ServiceType As OracleServiceType
C#
[CategoryAttribute("Connect Descriptor")]
public OracleServiceType ServiceType { get; set; }
C++
[CategoryAttribute(L"Connect Descriptor")]
public:
property OracleServiceType ServiceType {
    OracleServiceType get ();
    void set (OracleServiceType value);
}
J#
/** @property */
/** @attribute CompilerGeneratedAttribute() */
public OracleServiceType get_ServiceType ()

/** @property */
/** @attribute CompilerGeneratedAttribute() */
public void set_ServiceType (OracleServiceType value)
JScript
CompilerGeneratedAttribute
public function get ServiceType () : OracleServiceType

CompilerGeneratedAttribute
public function set ServiceType (value : OracleServiceType)

Property Value

The type of the service.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBConnectionUri Class
OracleDBConnectionUri Members


OracleDBConnectionUri.Uri Property
[image]

Gets or sets the <languageKeyword>uniform resource identifier</languageKeyword> used in the connection.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBConnectionUri
Dim value As Uri

value = instance.Uri

instance.Uri = value

Syntax

Visual Basic
Public Overrides Property Uri As Uri
C#
public override Uri Uri { get; set; }
C++
public:
virtual property Uri^ Uri {
    Uri^ get () override;
    void set (Uri^ value) override;
}
J#
/** @property */
public Uri get_Uri ()

/** @property */
public void set_Uri (Uri value)
JScript
public override function get Uri () : Uri

public override function set Uri (value : Uri)

Property Value

The URI used in the connection.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBConnectionUri Class
OracleDBConnectionUri Members


OracleDBInboundTransactionBehavior Class
See Also Members
[image]

Represents the behavior that controls the transaction settings for WCF-Dispatcher initiated transactions.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBInboundTransactionBehavior

Syntax

Visual Basic
Public NotInheritable Class OracleDBInboundTransactionBehavior
    Inherits BehaviorExtensionElement
    Implements IServiceBehavior
C#
public sealed class OracleDBInboundTransactionBehavior : BehaviorExtensionElement, IServiceBehavior
C++
public ref class OracleDBInboundTransactionBehavior sealed : public BehaviorExtensionElement, IServiceBehavior
J#
public final class OracleDBInboundTransactionBehavior extends BehaviorExtensionElement implements IServiceBehavior
JScript
public final class OracleDBInboundTransactionBehavior extends BehaviorExtensionElement implements IServiceBehavior

Inheritance Hierarchy

System.Object
System.Configuration.ConfigurationElement
System.ServiceModel.Configuration.ServiceModelExtensionElement
System.ServiceModel.Configuration.BehaviorExtensionElement
Microsoft.Adapters.OracleDB.OracleDBInboundTransactionBehavior

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBInboundTransactionBehavior Members


OracleDBInboundTransactionBehavior Members
See Also Constructors Methods Properties Explicit Interface Implementations
[image]

Represents the behavior that controls the transaction settings for WCF-Dispatcher initiated transactions.

The following tables list the members exposed by the OracleDBInboundTransactionBehavior type.

Public Constructors

Name | Description
OracleDBInboundTransactionBehavior | Default Constructor.
Top

Public Properties (see also Protected Properties)

 | Name | Description
public property | BehaviorType | Overridden. Gets the type of behavior.
public property | ConfigurationElementName | (inherited from ServiceModelExtensionElement)
public property | ElementInformation | (inherited from ConfigurationElement)
public property | LockAllAttributesExcept | (inherited from ConfigurationElement)
public property | LockAllElementsExcept | (inherited from ConfigurationElement)
public property | LockAttributes | (inherited from ConfigurationElement)
public property | LockElements | (inherited from ConfigurationElement)
public property | LockItem | (inherited from ConfigurationElement)
public property | TransactionIsolationLevel | Gets or sets the default isolation level for transactions.
public property | TransactionTimeout | Gets or sets the period within which a transaction must complete.
Top

Protected Properties

 | Name | Description
protected property | EvaluationContext | (inherited from ConfigurationElement)
Top

Public Methods (see also Protected Methods)

 | Name | Description
public method | CopyFrom | Overridden. Copies the content of the specified configuration element to this configuration element.
public method | Equals | Overridden. (inherited from Object)
public method | GetHashCode | Overridden. (inherited from Object)
public method | GetType | (inherited from Object)
public method | IsReadOnly | (inherited from ConfigurationElement)
public method | ToString | (inherited from Object)
Top

Protected Methods

 | Name | Description
protected method | Finalize | (inherited from Object)
protected method | IsModified | Overridden. (inherited from ConfigurationElement)
protected method | ListErrors | (inherited from ConfigurationElement)
protected method | MemberwiseClone | (inherited from Object)
protected method | OnDeserializeUnrecognizedAttribute | (inherited from ConfigurationElement)
protected method | OnDeserializeUnrecognizedElement | (inherited from ConfigurationElement)
protected method | OnRequiredPropertyNotFound | (inherited from ConfigurationElement)
protected method | PostDeserialize | (inherited from ConfigurationElement)
protected method | PreSerialize | (inherited from ConfigurationElement)
protected method | Reset | Overridden. (inherited from ConfigurationElement)
protected method | SerializeElement | Overridden. (inherited from ConfigurationElement)
protected method | SetPropertyValue | (inherited from ConfigurationElement)
Top

Explicit Interface Implementations

Name | Description
AddBindingParameters | Adds this instance to a binding parameter collection.
ApplyDispatchBehavior | Applies the dispatch behavior.
Validate | Validates a service description.
Top

See Also

Reference

OracleDBInboundTransactionBehavior Class


OracleDBInboundTransactionBehavior Constructor
[image]

Default Constructor.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As New OracleDBInboundTransactionBehavior

Syntax

Visual Basic
Public Sub New
C#
public OracleDBInboundTransactionBehavior ()
C++
public:
OracleDBInboundTransactionBehavior ()
J#
public OracleDBInboundTransactionBehavior ()
JScript
public function OracleDBInboundTransactionBehavior ()

Remarks

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBInboundTransactionBehavior Class
OracleDBInboundTransactionBehavior Members


OracleDBInboundTransactionBehavior Methods
[image]

Public Methods (see also Protected Methods)

 | Name | Description
public method | CopyFrom | Overridden. Copies the content of the specified configuration element to this configuration element.
public method | Equals | Overridden. (inherited from Object)
public method | GetHashCode | Overridden. (inherited from Object)
public method | GetType | (inherited from Object)
public method | IsReadOnly | (inherited from ConfigurationElement)
public method | ToString | (inherited from Object)

Protected Methods

 | Name | Description
protected method | Finalize | (inherited from Object)
protected method | IsModified | Overridden. (inherited from ConfigurationElement)
protected method | ListErrors | (inherited from ConfigurationElement)
protected method | MemberwiseClone | (inherited from Object)
protected method | OnDeserializeUnrecognizedAttribute | (inherited from ConfigurationElement)
protected method | OnDeserializeUnrecognizedElement | (inherited from ConfigurationElement)
protected method | OnRequiredPropertyNotFound | (inherited from ConfigurationElement)
protected method | PostDeserialize | (inherited from ConfigurationElement)
protected method | PreSerialize | (inherited from ConfigurationElement)
protected method | Reset | Overridden. (inherited from ConfigurationElement)
protected method | SerializeElement | Overridden. (inherited from ConfigurationElement)
protected method | SetPropertyValue | (inherited from ConfigurationElement)

Explicit Interface Implementations

Name | Description
AddBindingParameters | Adds this instance to a binding parameter collection.
ApplyDispatchBehavior | Applies the dispatch behavior.
Validate | Validates a service description.

See Also

Reference

OracleDBInboundTransactionBehavior Class


OracleDBInboundTransactionBehavior.CopyFrom Method
[image]

Copies the content of the specified configuration element to this configuration element.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBInboundTransactionBehavior
Dim from As ServiceModelExtensionElement

instance.CopyFrom(from)

Syntax

Visual Basic
Public Overrides Sub CopyFrom ( _
    from As ServiceModelExtensionElement _
)
C#
public override void CopyFrom (
    ServiceModelExtensionElement from
)
C++
public:
virtual void CopyFrom (
    ServiceModelExtensionElement^ from
) override
J#
public void CopyFrom (
    ServiceModelExtensionElement from
)
JScript
public override function CopyFrom (
    from : ServiceModelExtensionElement
)

Parameters

from

The configuration element to be copied.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBInboundTransactionBehavior Class
OracleDBInboundTransactionBehavior Members


OracleDBInboundTransactionBehavior.AddBindingParameters Method
[image]

Adds this instance to a binding parameter collection.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBInboundTransactionBehavior
Dim serviceDescription As ServiceDescription
Dim serviceHostBase As ServiceHostBase
Dim endpoints As Collection(Of ServiceEndpoint)
Dim bindingParameters As BindingParameterCollection

CType(instance, IServiceBehavior).AddBindingParameters(serviceDescription, serviceHostBase, endpoints, bindingParameters)

Syntax

Visual Basic
Private Sub System.ServiceModel.Description.IServiceBehavior.AddBindingParameters ( _
    serviceDescription As ServiceDescription, _
    serviceHostBase As ServiceHostBase, _
    endpoints As Collection(Of ServiceEndpoint), _
    bindingParameters As BindingParameterCollection _
) Implements IServiceBehavior.AddBindingParameters
C#
void IServiceBehavior.AddBindingParameters (
    ServiceDescription serviceDescription,
    ServiceHostBase serviceHostBase,
    Collection<ServiceEndpoint> endpoints,
    BindingParameterCollection bindingParameters
)
C++
private:
virtual void System.ServiceModel.Description.IServiceBehavior.AddBindingParameters (
    ServiceDescription^ serviceDescription,
    ServiceHostBase^ serviceHostBase,
    Collection<ServiceEndpoint^>^ endpoints,
    BindingParameterCollection^ bindingParameters
) sealed = IServiceBehavior::AddBindingParameters
J#
JScript

Parameters

serviceDescription

A description of the service.

serviceHostBase

The service host base.

endpoints

A collection of service endpoints.

bindingParameters

A collection of binding parameters.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBInboundTransactionBehavior Class
OracleDBInboundTransactionBehavior Members


OracleDBInboundTransactionBehavior.ApplyDispatchBehavior Method
[image]

Applies the dispatch behavior.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBInboundTransactionBehavior
Dim serviceDescription As ServiceDescription
Dim serviceHostBase As ServiceHostBase

CType(instance, IServiceBehavior).ApplyDispatchBehavior(serviceDescription, serviceHostBase)

Syntax

Visual Basic
Private Sub System.ServiceModel.Description.IServiceBehavior.ApplyDispatchBehavior ( _
    serviceDescription As ServiceDescription, _
    serviceHostBase As ServiceHostBase _
) Implements IServiceBehavior.ApplyDispatchBehavior
C#
void IServiceBehavior.ApplyDispatchBehavior (
    ServiceDescription serviceDescription,
    ServiceHostBase serviceHostBase
)
C++
private:
virtual void System.ServiceModel.Description.IServiceBehavior.ApplyDispatchBehavior (
    ServiceDescription^ serviceDescription,
    ServiceHostBase^ serviceHostBase
) sealed = IServiceBehavior::ApplyDispatchBehavior
J#
JScript

Parameters

serviceDescription

The service description.

serviceHostBase

The service host base.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBInboundTransactionBehavior Class
OracleDBInboundTransactionBehavior Members


OracleDBInboundTransactionBehavior.Validate Method
[image]

Validates a service description.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBInboundTransactionBehavior
Dim serviceDescription As ServiceDescription
Dim serviceHostBase As ServiceHostBase

CType(instance, IServiceBehavior).Validate(serviceDescription, serviceHostBase)

Syntax

Visual Basic
Private Sub System.ServiceModel.Description.IServiceBehavior.Validate ( _
    serviceDescription As ServiceDescription, _
    serviceHostBase As ServiceHostBase _
) Implements IServiceBehavior.Validate
C#
void IServiceBehavior.Validate (
    ServiceDescription serviceDescription,
    ServiceHostBase serviceHostBase
)
C++
private:
virtual void System.ServiceModel.Description.IServiceBehavior.Validate (
    ServiceDescription^ serviceDescription,
    ServiceHostBase^ serviceHostBase
) sealed = IServiceBehavior::Validate
J#
JScript

Parameters

serviceDescription

The service description.

serviceHostBase

The service host base.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBInboundTransactionBehavior Class
OracleDBInboundTransactionBehavior Members


OracleDBInboundTransactionBehavior Properties
[image]

Public Properties (see also Protected Properties)

 | Name | Description
public property | BehaviorType | Overridden. Gets the type of behavior.
public property | ConfigurationElementName | (inherited from ServiceModelExtensionElement)
public property | ElementInformation | (inherited from ConfigurationElement)
public property | LockAllAttributesExcept | (inherited from ConfigurationElement)
public property | LockAllElementsExcept | (inherited from ConfigurationElement)
public property | LockAttributes | (inherited from ConfigurationElement)
public property | LockElements | (inherited from ConfigurationElement)
public property | LockItem | (inherited from ConfigurationElement)
public property | TransactionIsolationLevel | Gets or sets the default isolation level for transactions.
public property | TransactionTimeout | Gets or sets the period within which a transaction must complete.

Protected Properties

 | Name | Description
protected property | EvaluationContext | (inherited from ConfigurationElement)

See Also

Reference

OracleDBInboundTransactionBehavior Class


OracleDBInboundTransactionBehavior.BehaviorType Property
[image]

Gets the type of behavior.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBInboundTransactionBehavior
Dim value As Type

value = instance.BehaviorType

Syntax

Visual Basic
Public Overrides ReadOnly Property BehaviorType As Type
C#
public override Type BehaviorType { get; }
C++
public:
virtual property Type^ BehaviorType {
    Type^ get () override;
}
J#
/** @property */
public Type get_BehaviorType ()
JScript
public override function get BehaviorType () : Type

Property Value

A Type.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBInboundTransactionBehavior Class
OracleDBInboundTransactionBehavior Members


OracleDBInboundTransactionBehavior.TransactionIsolationLevel Property
[image]

Gets or sets the default isolation level for transactions.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBInboundTransactionBehavior
Dim value As IsolationLevel

value = instance.TransactionIsolationLevel

instance.TransactionIsolationLevel = value

Syntax

Visual Basic
<ConfigurationPropertyAttribute("transactionIsolationLevel", DefaultValue:=IsolationLevel.Serializable)> _
Public Property TransactionIsolationLevel As IsolationLevel
C#
[ConfigurationPropertyAttribute("transactionIsolationLevel", DefaultValue=IsolationLevel.Serializable)]
public IsolationLevel TransactionIsolationLevel { get; set; }
C++
[ConfigurationPropertyAttribute(L"transactionIsolationLevel", DefaultValue=IsolationLevel::Serializable)]
public:
property IsolationLevel TransactionIsolationLevel {
    IsolationLevel get ();
    void set (IsolationLevel value);
}
J#
/** @property */
public IsolationLevel get_TransactionIsolationLevel ()

/** @property */
public void set_TransactionIsolationLevel (IsolationLevel value)
JScript
public function get TransactionIsolationLevel () : IsolationLevel

public function set TransactionIsolationLevel (value : IsolationLevel)

Property Value

The default isolation level for transactions.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBInboundTransactionBehavior Class
OracleDBInboundTransactionBehavior Members


OracleDBInboundTransactionBehavior.TransactionTimeout Property
[image]

Gets or sets the period within which a transaction must complete.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleDBInboundTransactionBehavior
Dim value As TimeSpan

value = instance.TransactionTimeout

instance.TransactionTimeout = value

Syntax

Visual Basic
<ConfigurationPropertyAttribute("transactionTimeout")> _
Public Property TransactionTimeout As TimeSpan
C#
[ConfigurationPropertyAttribute("transactionTimeout")]
public TimeSpan TransactionTimeout { get; set; }
C++
[ConfigurationPropertyAttribute(L"transactionTimeout")]
public:
property TimeSpan TransactionTimeout {
    TimeSpan get ();
    void set (TimeSpan value);
}
J#
/** @property */
public TimeSpan get_TransactionTimeout ()

/** @property */
public void set_TransactionTimeout (TimeSpan value)
JScript
public function get TransactionTimeout () : TimeSpan

public function set TransactionTimeout (value : TimeSpan)

Property Value

The period within which a transaction must complete.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBInboundTransactionBehavior Class
OracleDBInboundTransactionBehavior Members


OracleDBPerformanceCounterConstants Class
See Also Members
[image]

Specifies a class exposing constants pertaining to OracleDB Adapter.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic

Syntax

Visual Basic
Public NotInheritable Class OracleDBPerformanceCounterConstants
C#
public static class OracleDBPerformanceCounterConstants
C++
public ref class OracleDBPerformanceCounterConstants abstract sealed
J#
public final class OracleDBPerformanceCounterConstants
JScript
public final class OracleDBPerformanceCounterConstants

Inheritance Hierarchy

System.Object
Microsoft.Adapters.OracleDB.OracleDBPerformanceCounterConstants

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBPerformanceCounterConstants Members


OracleDBPerformanceCounterConstants Members
See Also Fields
[image]

Specifies a class exposing constants pertaining to OracleDB Adapter.

The following tables list the members exposed by the OracleDBPerformanceCounterConstants type.

Public Fields

Name | Description
PerformanceCategory | A performance counter category for OracleDB Adapter specific counters.
PerformanceCounterLobLatency | The name of the performance counter that tracks the total time spent in the LOB (or LOB client APIs) for a specific action.
Top

See Also

Reference

OracleDBPerformanceCounterConstants Class


OracleDBPerformanceCounterConstants Fields
[image]

Public Fields

Name | Description
PerformanceCategory | A performance counter category for OracleDB Adapter specific counters.
PerformanceCounterLobLatency | The name of the performance counter that tracks the total time spent in the LOB (or LOB client APIs) for a specific action.

See Also

Reference

OracleDBPerformanceCounterConstants Class


OracleDBPerformanceCounterConstants.PerformanceCategory Field
[image]

A performance counter category for OracleDB Adapter specific counters.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim value As String

value = OracleDBPerformanceCounterConstants.PerformanceCategory

Syntax

Visual Basic
Public Const PerformanceCategory As String
C#
public const string PerformanceCategory
C++
public:
literal String^ PerformanceCategory
J#
public static final String PerformanceCategory
JScript
public const var PerformanceCategory : String

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBPerformanceCounterConstants Class
OracleDBPerformanceCounterConstants Members


OracleDBPerformanceCounterConstants.PerformanceCounterLobLatency Field
[image]

The name of the performance counter that tracks the total time spent in the LOB (or LOB client APIs) for a specific action.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim value As String

value = OracleDBPerformanceCounterConstants.PerformanceCounterLobLatency

Syntax

Visual Basic
Public Const PerformanceCounterLobLatency As String
C#
public const string PerformanceCounterLobLatency
C++
public:
literal String^ PerformanceCounterLobLatency
J#
public static final String PerformanceCounterLobLatency
JScript
public const var PerformanceCounterLobLatency : String

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference

OracleDBPerformanceCounterConstants Class
OracleDBPerformanceCounterConstants Members


OracleServiceType Enumeration
[image]

Specifies the type of Oracle database service.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As OracleServiceType

Syntax

Visual Basic
Public Enumeration OracleServiceType
C#
public enum OracleServiceType
C++
public enum class OracleServiceType
J#
public enum OracleServiceType
JScript
public enum OracleServiceType

Members

Member name | Description
Dedicated | A Dedicated Oracle service is to be used.
Shared | A Shared Oracle service is to be used.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference


TransactionIsolationLevel Enumeration
[image]

Specifies the isolation level of the Transaction.

Namespace: Microsoft.Adapters.OracleDB
Assembly: Microsoft.Adapters.OracleDB (in Microsoft.Adapters.OracleDB.dll)

Usage

Visual Basic
Dim instance As TransactionIsolationLevel

Syntax

Visual Basic
Public Enumeration TransactionIsolationLevel
C#
public enum TransactionIsolationLevel
C++
public enum class TransactionIsolationLevel
J#
public enum TransactionIsolationLevel
JScript
public enum TransactionIsolationLevel

Members

Member name | Description
ReadCommitted | Defines shared locks that are held while the data is being read to avoid reading modified data.
Serializable | Prevents updating or inserting until the transaction is complete.

Remarks

This enum is not used, since the binding property TransactionIsolationLevel is deprecated.

Platforms

Development Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

Target Platforms

The 32-bit and 64-bit editions of Windows Server 2003 R2 (except the Web Editions); The 32-bit and 64-bit editions of Windows Server 2003 with SP2 (except the Web Edition); The 32-bit and 64-bit editions of Windows Server 2008 (except the Web Editions); The 32-bit and 64-bit editions of Windows Vista Ultimate, Enterprise, and Business editions; The 32-bit and 64-bit editions of Windows XP Professional with SP3; Windows Small Business Server 2003 with SP1 or SP2; Windows Small Business Server 2008

See Also

Reference


Copyright Notice

Information in this document, including URL and other Internet Web site references, is subject to change without notice. Unless otherwise noted, the companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted in examples herein are fictitious. No association with any real company, organization, product, domain name, e-mail address, logo, person, place, or event is intended or should be inferred. Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.

© 2014 Microsoft Corporation. All rights reserved.

Microsoft, MS-DOS, Windows, Windows Server, Windows Vista, Active Directory, ActiveX, BizTalk, Excel, FrontPage, InfoPath, JScript, IntelliSense, MSDN, Outlook, PivotChart, PivotTable, Windows SharePoint Services, Tahoma, Visio, Visual Basic, Visual C++, Visual C#, Visual SourceSafe, Visual Studio, Win32, and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

Enterprise integration patterns are taken from Enterprise Integration Patterns, by Gregor Hohpe and Bobby Woolf and the Pattern Catalog Table of Contents (http://go.microsoft.com/fwlink/?LinkID=62480) and are used under permission.

All other trademarks are property of their respective owners.