python-oracledb icon indicating copy to clipboard operation
python-oracledb copied to clipboard

Thin client error: DPY-6000: cannot connect to database. Listener refused connection. (Similar to ORA-12660)

Open harri-pasanen opened this issue 2 years ago • 2 comments

  1. What versions are you using?

python-oracledb 1.0.3 Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 platform.platform: Linux-3.10.0-1160.71.1.el7.x86_64-x86_64-with-glibc2.17 platform.python_version: 3.9.6 sys.maxsize > 2**32: True

  1. Is it an error or a hang or a crash?

Connection fails to Exadata RAC with the thin client.

connection = oracledb.connect(user=admin, password=args.adminpwd, dsn=args.service_name, config_dir = tnsdir)

  1. What error(s) or behavior you are seeing?

With thin client connection to a single instance non RAC db seems to work fine. But I cannot connect to Exadata RAC instance with thin client, it causes the exception:

oracledb.exceptions.OperationalError: DPY-6000: cannot connect to database. Listener refused connection. (Similar to ORA-12660)

Problem tns entry is like: x01 = (DESCRIPTION = (ADDRESS_LIST = (FAILOVER = ON) (LOAD_BALANCE = ON) (ADDRESS = (PROTOCOL = TCP)(HOST = xt01dev-scan.home.net)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = xt02dev-scan.home.net)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = dbox_svc.tst.tns) ) )

if I call init_oracle_client() it starts working.

  1. Does your application call init_oracle_client()?

No.

But if I call init_oracle_client(), it starts working.

  1. Include a runnable Python script that shows the problem.
# Uncomment below line and the problem goes away
# oracledb.init_oracle_client()  
connection = oracledb.connect(user=admin, password=args.adminpwd, 
                                dsn=args.service_name, config_dir = tnsdir)

harri-pasanen avatar Aug 19 '22 11:08 harri-pasanen

Note that I tried pretty much all connection modes, including those not using tnsnames.ora, but could not make a connection to this particular db with the thin client. Thick client works fine.

harri-pasanen avatar Aug 19 '22 11:08 harri-pasanen

This is a known limitation of the thin driver as can be seen in the documentation. The only solution (if you want to use thin mode) is to make the native network encryption and checksumming not mandatory; otherwise, you will have to use thick mode. You can make this an enhancement request if you'd like, but I'm not sure where the priority would be as we have a long list of enhancement requests for thin mode!

anthony-tuininga avatar Aug 19 '22 13:08 anthony-tuininga

This thread helped a lot 👍 and saved an unnecessary issue being opened.

bassg0navy avatar Sep 11 '22 04:09 bassg0navy

Closing. We have NNE support on our 'todo' list.

cjbj avatar Sep 14 '22 21:09 cjbj