3

The case I encounter is that if one of the database on RAC array is suddenly down, the transaction is rolled back and connections between JBoss and Database are broken.

What I want is to preserve the JDBC connections and redirect them to another oracle database on the array. Also, can transactions preserved?

In this case, should I use TAF or FCF?

Besides, if TAF is suggested to be used, is it true that thick driver has to be used in JBoss?

7

In this case, should I use TAF or FCF?

TAF- Transparent Application Failover is a database session-level connection failover mechanism and works only for OCI clients.

FCF- Fast Connection Failover is a application-level failover mechanism. It depends on the implicit connection cache feature and implicit connection caching must be enabled.

TAF would be very useful for long running sessions whereas FCF is useful for pooled connections.

What I want is to preserve the JDBC connections and redirect them to another oracle database on the array. Also, can transactions preserved?

TAF will fail over standard SQL SELECT statements that have been caught during a node crash in an in-flight transaction failure. Transactions involving INSERT, UPDATE, or DELETE statements are not supported by TAF.

Besides, if TAF is suggested to be used, is it true that thick driver has to be used in JBoss?

Yes.

Reference:

  • Client Failover Best Practices - Oracle
  • Understanding How Fast Connection Failover Works
  • Comparison of TAF and Fast Connection Failover

    • Thanks for your answer. Does it mean that no matter whether I use TAF or FCF, INSERT, UPDATE, or DELETE will be rolled back? – Harold Chan Nov 2 '16 at 6:34
    • 1
      @HaroldChan: Yes. – JSapkota Nov 2 '16 at 8:13
    • 1
      It should be noted that stateful PL/SQL packages are incompatible to TAF. – hvb Nov 2 '16 at 9:31

    Your Answer

    By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

    Not the answer you're looking for? Browse other questions tagged or ask your own question.