Recently, I’ve been doing some work with a client where tokens need to be used. It came to my attention that the basic usage of tokens is misunderstood. Let’s see if I can clear this up a bit for people reading.
In Oracle GoldenGate, tokens are a way to capture and store data in the header of the trail file (more info on trail headers here). Once a token has been defined, captured and stored in the header, it can be retrieved, on the apply side, and used in many ways to customize what information is delivered by Oracle GoldenGate.
Defining a token is pretty simple; however, keep these three points in mind:
- You define the token and associated data
- The token header in the trail file header permits up to a total of 2,000 bytes (token name, associated data, and length of data)
- Use the TOKEN option of the TABLE parameter in Extracts
In order to define a token in an extract, the definition should follow this basic syntax:
TABLE <schema>.<table>, TOKENS( SRC_CSN_TS = @GETENV(‘GGHEADER’,’COMMITTIMESTAMP’));
In the example above, the token will be populated with the timestamp of the last commit on the table it is defined against. After restarting the extract, the token (SRC_CSN_TS) will be included in the header of the trail file.
Once the trail file is shipped to the target side and read by the replicat, the token is mapped to a column in the target table.
MAP <schema>.<table>, target <schema>.<table>, COLMAP ( [email protected](’SRC_CSN_TS’) );
Image 1, is a view of a table where I have mapped the token (SRC_CSN_TS) to a target table to keep track of the committed timestamps of a transaction on the source system.
Tokens are simple to create, use, and are a powerful feature for mapping data between environments.
I’m Bobby Curtis and I’m just your normal average guy who has been working in the technology field for awhile (started when I was 18 with the US Army). The goal of this blog has changed a bit over the years. Initially, it was a general blog where I wrote thoughts down. Then it changed to focus on the Oracle Database, Oracle Enterprise Manager, and eventually Oracle GoldenGate.
If you want to follow me on a more timely manner, I can be followed on twitter at @dbasolved or on LinkedIn under “Bobby Curtis MBA”.