WIldfly with Oracle UCP, FCF and TAC

49 views
Skip to first unread message

Saulo Carvalho

unread,
Nov 14, 2025, 4:15:08 PMNov 14
to WildFly
Hi,

I'm having issues to set up Wildfly with Oracle using UCP (Universal Connection Pool) with TAC (Transparent Application Continuity) and FCF (Fast Connection FailOver).

My app is using a Wildfly Docker Image and all of our configuration is on a CLI file (Module, datasources, etc).

Is there any documentation that could help me with this issue?

Thanks!

Jose Socola

unread,
Nov 14, 2025, 7:43:18 PMNov 14
to Saulo Carvalho, WildFly
Hi, do you have any log? , We use oracle with pool on Wildfly, but i never set UCP and TAC. I think special features like TAC  need write customize JNDI Pool on Java it's better, but when i tried force setup i don't see error on start. I share my steps maybe can help

1. Download oracle drivers, ojdbc17.jar, ucp17.jar
2. Configure module on /wildfly/modules/system/layers/base/com/oracle/main
  • create Folder /wildfly/modules/system/layers/base/com/oracle/main
  • create file module.xml
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.5" name="com.oracle">
    <resources>
        <resource-root path="ojdbc17.jar"/>
<resource-root path="ucp17.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>
</module>

  • paste jars on path

3. Configure standalone.xml datasource
 <datasource jta="true" jndi-name="java:jboss/datasources/mypool" pool-name="mypool" enabled="true" use-java-context="true" statistics-enabled="true">
                    <datasource-class>oracle.ucp.jdbc.PoolDataSourceImpl</datasource-class>
                    <!-- <connection-url>jdbc:oracle:thin:@//myip:1521/database</connection-url> Force set URL on property -->
                    <connection-property name="URL">jdbc:oracle:thin:@//myip:1521/database</connection-property> 
                    <connection-property name="ConnectionFactoryClassName">oracle.jdbc.replay.OracleDataSourceImpl</connection-property>
                    <connection-property name="FastConnectionFailoverEnabled">true</connection-property>
                    <connection-property name="ONSConfiguration">nodes=db1:6200,db2:6200</connection-property>
                    <driver>oracle</driver>
                    <pool>
                        <min-pool-size>0</min-pool-size>
                        <max-pool-size>1</max-pool-size>
                        <prefill>false</prefill>
                        <flush-strategy>FailingConnectionOnly</flush-strategy>
                    </pool>
                    <security>
                        <user-name>user</user-name>
                        <password>pwd</password>
                    </security>
                    <validation>
                        <check-valid-connection-sql>SELECT 1 FROM DUAL</check-valid-connection-sql>
                    </validation>
                </datasource>


4. Configure Driver 
 <drivers>
                    <driver name="h2" module="com.h2database.h2">
                        <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                    </driver>
                   ....
                    <driver name="oracle" module="com.oracle">
                        <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
                    </driver>
</drivers>

Do you have a log?



Regards,
JS

--
You received this message because you are subscribed to the Google Groups "WildFly" group.
To unsubscribe from this group and stop receiving emails from it, send an email to wildfly+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/wildfly/ad567e6b-2ddf-4d95-9d7f-a0d8578b46f5n%40googlegroups.com.

Saulo Carvalho

unread,
Nov 17, 2025, 10:32:32 AM (14 days ago) Nov 17
to WildFly
Hi Jose,

I've been trying to implement it via the CLI, but I'm not sure if it's possible.

I was able to get it working with UCP, and our database shows that TAC is enabled. However, when we attempted a switchover or brought down one of the nodes, we experienced a high error rate—something that doesn't occur when using Spring. This makes me think I might be doing something wrong.

We encountered exceptions with "The connection is closed" and several UCP-45064 errors.

Thank you for your attention.

Saulo Carvalho

unread,
Nov 17, 2025, 10:34:10 AM (14 days ago) Nov 17
to WildFly
I wrote a issue on Wildfly's Jira too.

tada...@redhat.com

unread,
Nov 28, 2025, 2:45:12 PM (3 days ago) Nov 28
to WildFly
Hi Saulo,

As Jose noted above, we would have to see the logs to say anything. 

In general, those Oracle specific functionalities are implemented by their driver so it is probable that it would have to be consulted with Oracle, but I would be able to confirm that based on the logs.

Regards,
Tomek

Reply all
Reply to author
Forward
0 new messages