Hi Marco - thanks for the reply. Here are the answers to your questions.
Oracle 19.3.0 (19c)
sql grants (from another redhat blog posting):
grant select on pending_trans$ to <user>;
grant select on dba_2pc_pending to <user>;
grant select on dba_pending_transactions to <user>;
grant execute on dbms_system to <user>; (If using Oracle 10.2.0.3 or lower JDBC driver) <-- we are 19.3 so didn't run this one
grant execute on dbms_xa to <user>; (If using Oracle 10.2.0.4 or higher JDBC driver)
Note: Another blog suggested after running the grant updates one might need to "clear the oracle transaction log" or the error messages might continue. I've requested the DBA do this but I'm still waiting. I will also point out the problem exists in our lower envs but not in the production env. Prod data is refreshed down to the lower envs periodically. Did that refresh move an incongruent transaction log as well? I don't know. Is there even anything in the transaction log? I don't know. But it might be part of the problem. Of course, prod would be immune as nothing is refreshing to it. As far as I know there isn't any other state in tables that might be a mis-match to the lower envs (other than the transaction log, if that is even a problem).
Another note question: An IBM Websphere blog suggests this same grant statements update as the solution. (
https://www.ibm.com/support/pages/exception-occurs-during-recovery-oracle-database-transactions). They also say to delete the transaction logs. But it is unclear if what they mean by transaction logs is the application server transaction logs or the Oracle transaction log. So now I wonder what was meant by "transaction log" in the wildfly directed blogs: (i.e. application or Oracle?). As I mentioned before, I attempted to clean out wildfly dirs under ../standlalone/data/* - that didn't help.
XA config from standalone.xml
----------------------------------------
<xa-datasource jndi-name="java:jboss/datasources/ras-ds" pool-name="rasPool" enabled="true" use-java-context="true" use-ccm="true">
<xa-datasource-property name="URL">
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=devDbHost)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=devDbServiceName)))
</xa-datasource-property>
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
<driver>oracle</driver>
<xa-pool>
<is-same-rm-override>false</is-same-rm-override>
<no-tx-separate-pools>true</no-tx-separate-pools>
</xa-pool>
<security>
<user-name>DEVDBA</user-name>
<credential-reference store="ras_store" alias="DEVDBApwd"/>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/>
<stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"/>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/>
</validation>
</xa-datasource>
<xa-datasource jndi-name="java:jboss/datasources/jbpm-ds" pool-name="jbpmPool" enabled="true" use-java-context="true" use-ccm="true">
<xa-datasource-property name="URL">
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=devDbHost)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=devDbServiceName)))
</xa-datasource-property>
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
<driver>oracle</driver>
<xa-pool>
<is-same-rm-override>false</is-same-rm-override>
<no-tx-separate-pools>true</no-tx-separate-pools>
</xa-pool>
<security>
<user-name>jbpm6</user-name>
<credential-reference store="ras_store" alias="JBPMpwd"/>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/>
<stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"/>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/>
</validation>
</xa-datasource>
<xa-datasource jndi-name="java:jboss/datasources/ifx" pool-name="bxPool" enabled="true" use-java-context="true" use-ccm="true">
<xa-datasource-property name="IfxIFXHOST">
ifxDevHost
</xa-datasource-property>
<xa-datasource-property name="ServerName">
ifxServerName
</xa-datasource-property>
<xa-datasource-property name="PortNumber">
ifxPort
</xa-datasource-property>
<xa-datasource-property name="DatabaseName">
ifxDev
</xa-datasource-property>
<xa-datasource-class>com.informix.jdbcx.IfxXADataSource</xa-datasource-class>
<driver>informix</driver>
<xa-pool>
<is-same-rm-override>false</is-same-rm-override>
<no-tx-separate-pools>true</no-tx-separate-pools>
</xa-pool>
<security>
<user-name>ifxUser</user-name>
<credential-reference store="our_store" alias="ifxUserpwd"/>
</security>
</xa-datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<driver name="oracle" module="oracle">
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
</driver>
<driver name="informix" module="informix">
<xa-datasource-class>com.informix.jdbcx.IfxXADataSource</xa-datasource-class>
</driver>
</drivers>
-------------------------------------------