Striim 4.1.0 documentation

Oracle Reader properties

Before you can use this adapter, Oracle must be configured as described in the parts of Configuring Oracle to use Oracle Reader that are relevant to your environment.

Note

The Oracle JDBC driver must be installed on each Forwarding Agent that will run Oracle Reader. See Install the Oracle JDBC driver.

Striim provides templates for creating applications that read from Oracle and write to various targets. See Creating an application using a template for details.

The adapter properties are:

property

type

default value

notes

Bidirectional Marker Table

String

When performing bidirectional replication, the fully qualified name of the marker table (see Bidirectional replication). This setting is case-sensitive.

CDDL Action

enum

Process

18c and earlier only: see Handling schema evolution.

CDDL Capture

Boolean

False

18c and earlier only: see Handling schema evolution. When set to True, Dictionary Mode must be set to Offline Catalog.

Committed Transactions

Boolean

True

LogMiner only: by default, only committed transactions are read. Set to False to read both committed and uncommitted transactions.

Compression

Boolean

False

If set to True, update operations for tables that have primary keys include only the primary key and modified columns, and delete operations include only the primary key. With the default value of False, all columns are included. See Oracle Reader example output for examples.

Set to True when Oracle Reader's output stream is the input stream of Cassandra Writer.

Connection Retry Policy

String

timeOut=30, retryInterval=30, maxRetries=3

With the default setting:

  • Striim will wait for the database to respond to a connection request for 30 seconds (timeOut=30).

  • If the request times out, Striim will try again in 30 seconds (retryInterval=30).

  • If the request times out on the third retry (maxRetries=3), a ConnectionException will be logged and the application will stop.

Negative values are not supported.

Connection URL

String

<hostname>:<port>:<SID> or <hostname>:<port>/<service name>

If using Oracle 12c with PDB, use the SID for the CDB service. (Note that with DatabaseReader and DatabaseWriter, you must use the SID for the PDB service instead.)

If using Amazon RDS for Oracle, the connection URL is <endpoint>:<port>:<DB name>. The required values are displayed at Instance Actions > see details

Database Role

String

PRIMARY

Leave set to the default value of PRIMARY except when you Reading from a standby.

Dictionary Mode

String

OnlineCatalog

Leave set to the default of OnlineCatalog except when CDDL Capture is True or you are Reading from a standby.

Excluded Tables

String

When a wildcard is specified for Tables, you may specify here any tables you wish to exclude from the query. Specify the value exactly as for Tables. For example, to include data from all tables whose names start with HR except HRMASTER:

Tables='HR%',
ExcludedTables='HRMASTER'

Exclude Users

String

Optionally, specify one or more Oracle user names, separated by semicolons, whose transactions will be omitted from OracleReader output. Possible uses include:

  • omitting transactions that would cause an endless endless loop when data previously read by OracleReader is eventually written back to the same table by DatabaseWriter, for example, in the context of high-availability "active/active" replication

  • omitting transactions involving multiple gigabytes of data, thus reducing Striim's memory requirements

  • omitting long-running transactions, ensuring that OracleReader will restart from a recent SCN after Striim is restarted

External Dictionary File

String

Leave blank except when you Reading from a standby.

Fetch Size

Integer

1000

LogMiner only: the number of records the JDBC driver will return at a time. For example, if Oracle Reader queries LogMiner and there are 2300 records available, the JDBC driver will return two batches of 1000 records and one batch of 300.

Filter Transaction Boundaries

Boolean

True

With the default value of True, BEGIN and COMMIT operations are filtered out. Set to False to include BEGIN and COMMIT operations.

Ignorable Exception

String

Do not change unless instructed to by Striim support.

JAAS Configuration

String

If you Enable Kerberos authentication for Oracle and PostgreSQL, use this property to configure it.

To authenticate Oracle using a Kerberos principal, specify java.security.krb5.conf=/<path>/krb5.conf; doNotPrompt=true; principal=oracleclient@<Kerberos realm>.

For example, java.security.krb5.conf=/etc/krb5.conf; doNotPrompt=true; principal=oracleclient@MYDOMAIN.COM

To authenticate Oracle using a Kerberos credential cache, specify java.security.krb5.conf=/<path>/krb5.conf; doNotPrompt=true; useTicketCache=true; ticketCache=<fully qualified credential cache file name.

For example, java.security.krb5.conf=/etc/krb5.conf; doNotPrompt=true; useTicketCache=true; ticketCache=/home/Jdbc/Security/krbcache/krb5cc'

Password

encrypted password

the password specified for the username (see Encrypted passwords)

Queue Size

Integer

2048

Quiesce Marker Table

String

QUIESCEMARKER

See Creating the QUIESCEMARKER table for Oracle Reader. Modify the default value if the quiesce marker table is not in the schema associated with the user specified in the Username. Three-part CDB / PDB names are not supported in this release.

Send Before Image

Boolean

True

set to False to omit before data from output

Set Conservative Range

Boolean

False

If reading from Oracle 19c, you have long-running transactions, and parallel DML mode is enabled (see Enable Parallel DML Mode), set this to True.

SSL Config

String

If using SSL with the Oracle JDBC driver, specify the required properties. Examples:

If using SSL for encryption only:

oracle.net.ssl_cipher_suites=
  (SSL_DH_anon_WITH_3DES_EDE_CBC_SHA,
    SSL_DH_anon_WITH_RC4_128_MD5, 
    SSL_DH_anon_WITH_DES_CBC_SHA)

If using SSL for encryption and server authentication:

javax.net.ssl.trustStore=
/etc/oracle/wallets/ewallet.p12;
javax.net.ssl.trustStoreType=PKCS12;
javax.net.ssl.trustStorePassword=********

If using SSL for encryption and both server and client authentication:

javax.net.ssl.trustStore=
/etc/oracle/wallets/ewallet.p12;
javax.net.ssl.trustStoreType=PKCS12;
javax.net.ssl.trustStorePassword=********;
javax.net.ssl.keyStore=/opt/Striim/certs;
javax.net.ssl.keyStoreType=JKS;
javax.net.ssl.keyStorePassword=********

Start SCN

String

Optionally specify an SCN from which to start reading (See Replicating Oracle data to another Oracle database for an example).

See also Switching from initial load to continuous replication.

Start Timestamp

String

null

With the default value of null, only new (based on current system time) transactions are read. If a timestamp is specified, transactions that began after that time are also read. The format is DD-MON-YYYY HH:MI:SS. For example, to start at 5:00 pm on July 15, 2017, specify 15-JUL-2017 17:00:00.

Support PDB and CDB

Boolean

False

Set to True if reading from CDB or PDB.

Tables

String

The table or materialized view to be read (supplemental logging must be enabled as described in Configuring Oracle to use Oracle Reader) in the format <schema>.<table>. (If using Oracle 12c with PDB, use three-part names: <pdb>.<schema>.<table>.) Names are case-sensitive.

You may specify multiple tables and materialized views as a list separated by semicolons or with the % wildcard. For example, HR.% would read all tables in the HR schema. You may not specify a wildcard for the schema (that is, %.% is not supported).

Unused columns are supported. Values in virtual columns will be set to null. If a table contains an invisible column, the application will crash.

See also Specifying key columns for tables without a primary key.

Transaction Buffer Disk Location

String

striim/LargeBuffer

See Transaction Buffer Type.

Transaction Buffer Spillover Size

String

100MB

When Transaction Buffer Type is Disk, the amount of memory that Striim will use to hold each in-process transactions before buffering it to disk. You may specify the size in MB or GB.

When Transaction Buffer Type is Memory, this setting has no effect.

Transaction Buffer Type

String

Disk

When Striim runs out of available Java heap space, the application will crash. With Oracle Reader, typically this will happen when a transaction includes millions of INSERT, UPDATE, or DELETE events with a single COMMIT, at which point the application will crash with an error message such as "increase the block size of large buffer" or "exceeded heap usage threshold."

To avoid this problem, with the default setting of Disk, when a transaction exceeds the Transaction Buffer Spillover Size, Striim will buffer it to disk at the location specified by the Transaction Buffer Disk Location property, then process it when memory is available.

When the setting is Disk and recovery is enabled (see Recovering applications), after the application crashes or is stopped the buffer will be reset, and during recovery any previously buffered transactions will restart from the beginning.Recovering applications

To disable transaction buffering, set Transaction Buffer Type to Memory.

Username

String

the username created as described in Configuring Oracle to use Oracle Reader; if using Oracle 12c with PDB, specify the CDB user (c##striim)