Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

6.6.0 and Later is Supports TAC setup config? #1717

Open
NeroHin opened this issue Dec 23, 2024 · 4 comments
Open

6.6.0 and Later is Supports TAC setup config? #1717

NeroHin opened this issue Dec 23, 2024 · 4 comments
Labels

Comments

@NeroHin
Copy link

NeroHin commented Dec 23, 2024

Hello, thank you for maintaining the node-oracledb project.

I am using Transparent Application Continuity (TAC) in my Oracle Database setup and have the following questions regarding the compatibility of node-oracledb. Your guidance on this matter would be greatly appreciated.

  1. What versions are you using?
    • Database Version: Oracle Database 19.20+
    • Node-oracledb Version: 6.6.0
    • Node.js Version: 18.18.2
    • Platform: darwin
    • Architecture: arm64

  2. Describe the problem

Currently, the database has Transparent Application Continuity (TAC) enabled.
I would like to confirm if node-oracledb 6.6.0 or later supports the following features:
• fastConnectionFailoverEnabled=true
• validateConnectionOnBorrow=true

Thanks!

@sharadraju
Copy link
Member

sharadraju commented Dec 23, 2024

It depends on if you are connecting using node-oracledb's Thick mode or not. Thick mode calls Oracle Client libraries and if your Oracle Client library versions supports these features, then Thick mode supports them.
If you are using the default Thin mode, then TAC is not supported.

Please go through these blogs for more clarity on node-oracledb's Thin and Thick modes:
https://medium.com/oracledevs/usher-in-a-new-era-with-the-node-oracledb-6-0-pure-javascript-thin-driver-e10e2af693b2
https://medium.com/@sharad-chandran/how-do-i-choose-between-thin-and-thick-modes-in-node-oracledb-6-0-c516d202a71f

The latest version 6.7.1 just released today btw :)

@NeroHin
Copy link
Author

NeroHin commented Dec 24, 2024

Thank you for your reply! I have some follow-up questions about setting up specific configurations with node-oracledb.
I found a website that discusses the features supported by Thin and Thick drivers, but I can't find any information on how to set up TAC or other settings with Node.js examples.
Could you provide me with any resources or hints for the configuration setup? For example:

fastConnectionFailoverEnabled = true
validateConnectionOnBorrow = true

@cjbj
Copy link
Member

cjbj commented Dec 24, 2024

AC or TAC are enabled on the DB service. As long as node-oracledb is in Thick mode, then you just need to follow the AC/TAC best practices given in the DB doc. (By the way, there is currently a project to update that doc, and update driver doc too.)

Here's a very, very high level slide. It mentions python-oracledb but you can map the names to the equivalent node-oracledb names.

Screenshot 2024-12-24 at 5 03 24 PM

@NeroHin
Copy link
Author

NeroHin commented Dec 24, 2024

Thank you for your reply and sharing @cjbj . So I can understand that in node-oracledb, as long as

  1. Thick Mode is enabled in the connection between the Node.js Client/Application and Oracle DB (or RAC)
  2. oracledb.create_pool is set up as the method of connection

It can achieve a configuration that complies with TAC best practices?

Because currently there are some test scenarios: whether effective synchronous writes to Oracle instances can be performed under insert or update situations in the Node.js application, and whether it meets the aforementioned equivalent settings?

For example: Fast Connection Failover and validate connection on borrow (such as a config setting with universal connection pool, UCP)

These two parameters can be found in JDBC development documentation, but I couldn't find similar phrases or detailed configuration examples in the node-oracledb documentation.

Once again, thank you for your valuable time and assistance. Wishing you a Merry Christmas!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants