Welcome to the Striim Help Center and Community Site

3.10.3 Oracle GoldenGate


GG Trail Reader can be used to write Striim applications for auditing and troubleshooting Oracle GoldenGate. If your Striim cluster is licensed for Oracle GoldenGate, GG Trail Reader will be available in the Flow Designer. Striim supports GoldenGate 11g (all versions), 12c (all versions), 18.1, and 19.1.

Running GG Trail Reader on the GoldenGate host

If the GoldenGate trail files are not directly readable over the network by the Striim host, the GG Trail Reader source must be run on the remote GoldenGate host using the Striim Forwarding Agent. See Installing the Striim Forwarding Agent and Using the Striim Forwarding Agent.

GG Trail Reader properties

To rewrite an application using FileReader + GG Trail Parser to use GG Trail Reader, copy the values for the deprecated old properties to the corresponding new properties:

  • FileReader Compression Type > GG Trail Reader Trail Compression type

  • FileReader Directory > GG Trail Reader Trail Directory

  • FileReader Wildcard > GG Trail Reader Trail FIle Pattern

  • GG Trail Parser Metadata > GG Trail Reader Definition File



default value


Charset Map


Optionally, override the GoldenGate source character set mapping (see SOURCECHARSET using the syntax <character set 1>,<Java charset 1>;<character set 2>,<Java charset 2>;....




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.

DB Charset ID


When the database does not use the ASCII character set, specify the character set here, for example, Cp037. When this property is specified, the Support Column Charset setting is ignored.

Definition File


With GoldenGate version 12.2 or later, leave this property blank to read the metadata from the trail file.

Otherwise, specify the path (from root or relative to the .../Striim directory) and name of a GoldenGate source definition file (generated by the GoldenGate defgen utility) containing the metadata description of all the tables for which trail data was captured.

Exclude Tables


If a wildcard is specified for Tables, any tables specified here will be excluded from the query. Specify the value as for Tables.

Filter Transaction Boundaries



With the default value of True, begin and commit transactions are filtered out. Set to False to include begin and commit transactions.

Start Position


Optionally, specify an offset (FileName:<filename>; offset:<offset>) or RBA value (FileName:<filename>; RBA:<RBA value>) from which to start reading the trail file(s).

Support Column Charset



Use the default value of False when all columns use the ASCII character set.

Set to True if the data contains a mix of ASCII and non-ASCII columns. The DEFGEN must include the database locale and character set and the character set for each column. When a character set is specified using the DB Charset ID property, this setting is ignored.




The table(s) to be read. With the default value, all tables will be read. Alternatively, specify one or more table names, separated by semicolons, or a string ending with the % wildcard, such as HR.%.

Trail Byte Order



Set to LittleEndian if that is the TRAILBYTEORDER of the trail file.

Trail Compression Type


Set to gzip when Trail File Pattern specifies a file or files in gzip format. Otherwise, leave blank.

Trail Directory


Specify the path to the directory containing the trail files.

Trail File Pattern


Specify the name of the file, or a wildcard pattern to match multiple files. When reading multiple files, Striim will read them in the default order for the operating system. Once Striim has read a file, it will ignore any further updates to it.


OUTPUT TO GGTrailStream;

GG Trail Reader WAEvent fields

The output data type for GG Trail Reader is WAEvent. The elements are:

metadata: a map including:

  • CSN: the Commit Sequence Number for the transaction

  • FileName: name of the trail file from which the operation was read

  • Offset: the position of the operation record in the trail file

  • OperationName: INSERT, UPDATE, or DELETE

  • OracleROWID: the Oracle ID for the inserted, updated, or delete row

  • TxnID: transaction ID

  • TimeStamp: timestamp from the CDC log

  • TableName: fully qualified name of the table

To retrieve the values for these elements, use the META function. See Parsing the fields of WAEvent for CDC readers.

data: an array of fields, numbered from 0, containing:

  • for an INSERT or DELETE operation, the values that were inserted or deleted

  • for an UPDATE, the values after the operation was completed

To retrieve the values for these fields, use SELECT ... (DATA[]). See Parsing the fields of WAEvent for CDC readers.

before (for UPDATE operations only): the same format as data, but containing the values as they were prior to the UPDATE operation

dataPresenceBitMap, beforePresenceBitMap, and typeUUID are reserved and should be ignored.

GG Trail Reader sample code and output

Sample code:

CREATE SOURCE GgTrailReadSrc USING GGTrailReader (
  ExcludeTables :’QATEST.MULTTBL2’
OUTPUT TO GGTrailReadStream;

Sample output, insert:

data: ["1","CharInsert1         ","VCahrInsert1","1","1.1",[2000,4,22,0,0,0,0],
[2015,10,29,12,57,37,153],"NCharInsert1        ","NVCharInsert1","1"]
  metadata: {"TableID":0,"TableName":"QATEST1.MULTTBL3","TxnID":"2.17.1883",
"TimeStamp":1446103675037,"Oracle ROWID":"AAAXOvAAEAAAAyEAAA","CSN":"2222016",
  userdata: null
  before: null
  dataPresenceBitMap: "fwc="
  beforePresenceBitMap: "AAA="
  typeUUID: {"uuidstring":"01eaaa3d-0dc1-4b81-b8b4-acde48001122"}

Sample output, update:

  data: ["1","Update1             ","Update1","2","2.2",[1970,12,12,0,0,0,0],
[2015,10,29,12,58,39,327],"Update1             ","Update1",null]
  metadata: {"TableID":0,"TableName":"QATEST1.MULTTBL3","TxnID":"2.25.1884",
"TimeStamp":1446103733953,"Oracle ROWID":"AAAXOvAAEAAAAyEAAA","CSN":"2222056",
  userdata: null
  before: ["1",null,null,null,null,null,null,null,null,null]
  dataPresenceBitMap: "fwM="
  beforePresenceBitMap: "AQA="
  typeUUID: {"uuidstring":"01eaaa3d-0dc1-4b81-b8b4-acde48001122"}

Sample output, delete:

  data: ["1",null,null,null,null,null,null,null,null,null]
  metadata: {"TableID":0,"TableName":"QATEST1.MULTTBL3","TxnID":"6.30.2195",
"TimeStamp":1446103861964,"Oracle ROWID":"AAAXOvAAEAAAAyEAAA","CSN":"2222189",
  userdata: null
  before: null
  dataPresenceBitMap: "AQA="
  beforePresenceBitMap: "AAA="
  typeUUID: {"uuidstring":"01eaaa3d-0dc1-4b81-b8b4-acde48001122"}
Was this article helpful?
0 out of 0 found this helpful