Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik and ServiceNow Partner to Bring Trusted Enterprise Context into AI-Powered Workflows. Learn More!
cancel
Showing results for 
Search instead for 
Did you mean: 
iti-attunity-sup
Partner - Creator III
Partner - Creator III

How to Check the SCN

Hello Support Team,

I hope you are doing well.

When the source is Oracle Database, I would like to check the lastest SCN read by Qlik Replicate.

Currently, I confirm this by setting the log level of SOURCE_CAPTURE to VERBOSE, which outputs the following message in the log, and converting the "current scn" to decimal.

[SOURCE_CAPTURE  ]V:  RANGE HEADER: vld 04 start range scn: 00000000.01ef09de current scn: 00000000.01ef09de.0001 next range scn: 00000000.01ef09df strands in range 1 current strand in range 0  (oradcdc_thread.c:2100)

However, depending on the customer's operating environment, changing the log level may not always be feasible.

Is there any way to identify the latest SCN being read by Qlik Replicate without changing the log level?

Best Regards.

Labels (1)
1 Solution

Accepted Solutions
john_wang
Support
Support

Hello @iti-attunity-sup ,

There are several options to Identify the Processed SCN:

  1. Replication Status Table (RDBMS): Enable the attrep_status internal table and check the SCN within the stream position columns.

  2. Task Recovery Data: Enable "Store task recovery data in target database" to retrieve the stream position directly from the table attrep_recovery (supported endpoints only).

  3. Heartbeat Table: Manually create a heartbeat table on the source to record the current SCN or timestamp (the timestamp can be used to convert to SCN format); this is a reliable fallback if internal tables aren't an option.

  4. Task Log Analysis: As a non-intrusive alternative and even Verbose logging is not an acceptable approach, stop/resume the task and check the log files for the "Last saved transaction position."

Hope this helps.

John.

Help users find answers! Do not forget to mark a solution that worked for you! If already marked, give it a thumbs up!

View solution in original post

7 Replies
SachinB
Support
Support

Hello @iti-attunity-sup ,

If you are using the Store Changes option, you can use the header__stream_position column in the Change Table, which contains the source CDC stream position(SCN/LSN)

ChangeTable 

Alternatively, you can add AR_H_STREAM_POSITION using the Expression Builder in the Transformer tab to capture the source stream position.

AR_H_STREAM_POSITION 

Hope this helps.


Regards,

Sachin B

 

john_wang
Support
Support

Hello @iti-attunity-sup ,

There are several options to Identify the Processed SCN:

  1. Replication Status Table (RDBMS): Enable the attrep_status internal table and check the SCN within the stream position columns.

  2. Task Recovery Data: Enable "Store task recovery data in target database" to retrieve the stream position directly from the table attrep_recovery (supported endpoints only).

  3. Heartbeat Table: Manually create a heartbeat table on the source to record the current SCN or timestamp (the timestamp can be used to convert to SCN format); this is a reliable fallback if internal tables aren't an option.

  4. Task Log Analysis: As a non-intrusive alternative and even Verbose logging is not an acceptable approach, stop/resume the task and check the log files for the "Last saved transaction position."

Hope this helps.

John.

Help users find answers! Do not forget to mark a solution that worked for you! If already marked, give it a thumbs up!
iti-attunity-sup
Partner - Creator III
Partner - Creator III
Author

Hello @john_wang and @SachinB ,

Thank you for your response.

The issue has been resolved.

Best Regards.

SachinB
Support
Support

Hello @iti-attunity-sup ,


Thank you for the update.

Glad to hear that the issue has been resolved

Regards,
Sachin B

john_wang
Support
Support

Thanks for your support! @iti-attunity-sup 

Help users find answers! Do not forget to mark a solution that worked for you! If already marked, give it a thumbs up!
iti-attunity-sup
Partner - Creator III
Partner - Creator III
Author

Hello @john_wang ,

I apologize for the confusion.

After checking on the actual system, some additional questions have come up, so I would like to reconfirm.

Regarding item 4, after stopping the task and checking the logs, I was unable to find the message "Last saved transaction position." Instead, I found the following message:

 
00003444: 2026-05-19T05:02:05:215123 [SORTER          ]I:  Final saved task state. Stream position 00000000.01f0d8e5.00000001.0000.00.0000:1881.220166.16, Source id 1001531, next Target id 4000049, confirmed Target id 0, last source timestamp 1779165625000000  (sorter.c:781)

Is it correct to understand that this Stream position represents the SCN up to which Qlik Replicate has finished reading?

Additionally, when deleting archive logs that have already been replicated, if there is no latency, is it acceptable to include the SCN value of the current SCN or Stream position when deleting?

Best Regards.

 

john_wang
Support
Support

Hello @iti-attunity-sup ,

You are right - Stream position contains the SCN information. Please check the article: How to start a Replicate task with Oracle source endpoint from a requested SCN.

Regarding the redo log cleanup, we'd like suggest you keep at least 1 extra redo log files there.

Thanks,

John.

Help users find answers! Do not forget to mark a solution that worked for you! If already marked, give it a thumbs up!