First off want to say that I am out of my element here. I am an Oracle DBA trying to help an application team work through an issue with XA recovery. I am mostly involved due to the load that it is putting on my Database.
Environment - Exadata Cloud at Customer
2 Node RAC
We recently upgraded one of our databases from Oracle 12.1 to 19.13. At the same time the application team moved to Wildfly.. If details are needed I can get them.. Like I mentioned above the database is much more my area.
Since the upgrade we see a large number of sessions running dist_txn_sync which is an expensive operation. Literally ran it 1.2 million times in 32 hours. It appears that it is running every few minutes or so across a set of sessions in the database. A SQL Trace on one of the DB's shows this to be the case.
I understand that this is caused by calls to oracle.jdbc.xa.OracleXAResource.recover() but there is not a lot of information available on what is happening and why.. This appears to be a new thing happening since the upgrade to 19c and wildfly. our previous environment never saw this. It did how up in testing but the impact was so small it wasn't noticed until we went looking for it. Oracle has a support not that essentially says tell the application to stop calling it so often ( Doc ID 2332314.1) .
I have seen an option to turn recovery off completely but there does not appear to be a way to just slow it down and stop it from running so often.
Can anyone offer any insight on this or ways we might be able to control this without stopping it completely. stopping it may be an option but that is no my area.