Description
Hi all!
It seems that DRCP is broken from oracledb for Oracle 23. Trying to connect with DRCP pooling hangs forever.
We tried connecting to
- oracledb-python 2.5/3.1/3.2, Oracle 23 / without DRCP: OK
- oracledb-python 2.5/3.1/3.2, Oracle 23 / with DRCP: Broken
- oracledb-python 2.5/3.1/3.2, Oracle 19 / without DRCP: OK
- oracledb-python 2.5/3.1/3.2, Oracle 19 / with DRCP: OK
- SQL Developer, Oracle 23 / without DRCP: OK
- SQL Developer 2.5/3.1/3.2, Oracle 23 / with DRCP: OK
- SQL Developer 2.5/3.1/3.2, Oracle 19 / without DRCP: OK
- SQL Developer 2.5/3.1/3.2, Oracle 19 / with DRCP: OK
So it seems that this is a client problem with oracledb-python and Oracle 23.
- What versions are you using?
connection.version='23.8.0.25.6' Autonomous database on Azure
platform.platform: macOS-15.5-arm64-arm-64bit
sys.maxsize > 2**32: True
platform.python_version: 3.12.7
oracledb.__version__: 3.2.0
-
Is it an error or a hang or a crash?
hang -
What error(s) or behavior you are seeing?
import oracledb
con = oracledb.connect(
user='ADMIN',
password='admin',
dsn='xxx.adb.eu-frankfurt-1.oraclecloud.com/xxx_adb_low.adb.oraclecloud.com:pooled',
cclass="PYTHONDEMO",
purity=oracledb.PURITY_SELF,
ssl_server_dn_match=False,
protocol="tcps",
port = 1521
)
hangs forever. We tried many of the documented approaches, including passing the parsed connstring as parameters, passing a ".ORA" formatted connstring as dsn, with (SERVER=POOLED), using oracledb.create_pool, but all of these approaches just hang.
Running it without without the ':pooled' dsn suffix and without cclass
and purity
kwargs connects succesfully.
On the other hand, connecting with the same script (only changing host, service_name),
to a '19.28.0.1.0' Oracle (also autonomous on Azure), works well.
- Does your application call init_oracle_client()?
No, only thin
- Include a runnable Python script that shows the problem.
Not possible, depends on exact database setup