Oracle - Failed to get transaction id for current SCN

78 views
Skip to first unread message

Johan Vandevenne

unread,
Jun 16, 2022, 6:29:45 AMJun 16
to debezium
Hello,

Using the Oracle connector, we receive the error "Failed to get transaction id for current SCN"

What could be the cause of this ?

kind regards
Johan

Chris Cranford

unread,
Jun 16, 2022, 10:15:22 AMJun 16
to debe...@googlegroups.com, Johan Vandevenne
Hi Johan -

We introduced some new functionality in 1.9.3.Final that causes this. There are three ways to work around this problem:

Option 1:
You can add "internal.log.mining.query.logs.for.snapshot.offset=false" to your connector configuration.  This internal option disables the inspection of the redo logs for in-progress transactions and instead only relies on the data available in V$TRANSACTION when we perform the snapshot.  This internal option is removed in 1.9.4.Final, and is superseded by a new option called "internal.log.mining.transaction.snapshot.boundary.mode".

Option 2:
Use 1.9.4.Final, which we intend to release tomorrow, in conjunction with the "internal.log.mining.transaction.snapshot.boundary.mode" option.  This option can be set to "skip", "transaction_view_only", or "all".  The default is to use "skip", which means we do not inspect any in-progress transactions that the snapshot boundary, which basically returns the connector's default behavior back to that from Debezium 1.8.0.Final.  The "transaction_view_only" setting means we only inspect the V$TRANSACTION table for in-progress transactions.  This enables the behavior the connector had in 1.8.1.FInal and 1.9.0.Final onward.  For most systems, this is likely adequate.  The last option, "all", not only looks at V$TRANSACTION but it also looks at the redo logs to gather every in-progress transaction.  This mode seems to not work on Oracle RAC but does seem to work on Standalone installations (I'm investigating the RAC compatibility issue now).  This was added in 1.9.3.Final and is the cause for your error most likely.

My hope with this option is that once we address the RAC concerns with the "all" setting, we can promote this from "internal." to a documented option for the connector.  Right now since the default is to "skip" and use older behavior that we know works and is stable, it made no sense to document it yet until we can guarantee we get the right behavior we're aiming for across both Standalone & RAC environments.

Option 3:
Fallback to 1.9.0.Final, 1.9.1.Final, or 1.9.2.Final until we release 1.9.4.Final tomorrow.

Hope that helps.
Chris

--
You received this message because you are subscribed to the Google Groups "debezium" group.
To unsubscribe from this group and stop receiving emails from it, send an email to debezium+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/debezium/b66684f1-8466-4c71-860e-e80d08484ec3n%40googlegroups.com.

Reply all
Reply to author
Forward
0 new messages