Не мога да помогна с конвертирането на страната на Java в страната C, необходима на cx_Oracle, но може би следното ще помогне да се покаже от какво има нужда cx_Oracle. Ще използвам пример, базиран на Oracle Exadata Express, който използва портфейл за свързване, вижте общите инструкции за свързване на скриптови езици към Exadata Express тук .
Вашата точна конфигурация и файлове може да се различават. Както посочи Антъни, настройката за защита не е специфична за cx_Oracle. По-опитни и полезни експерти по сигурността може да се спотайват в други форуми.
За Exadata Express се изтегля предварително предоставен zip файл на портфейла. За приложения на Oracle Call Interface като cx_Oracle просто се нуждаем от тези файлове от zip:sqlnet.ora, tnsnames.ora и cwallet.sso. Ще трябва да създадете/намерите тези (или каквито ви трябват) файлове.
Моите файлове са:
sqlnet.ora :
WALLET_LOCATION = (SOURCE = (METHOD = file)
(METHOD_DATA = (DIRECTORY="$TNS_ADMIN")))
SSL_SERVER_DN_MATCH=yes
tnsnames.ora :
dbaccess = (description=
(address=(protocol=tcps)(port=1522)(host=whereever.com))
(connect_data=(service_name=whereever2.com))
(security=(ssl_server_cert_dn="CN=wherever2.com,O=Oracle Corporation,L=Redwood Shores,ST=California,C=US"))
)
cwallet.sso :Ще оставя това на вашето въображение...
Сложих тези три файла в /Users/cjones/Cloud
и задайте средата за намирането им:
$ export TNS_ADMIN=/Users/cjones/Cloud
Сега мога да се свържа, като използвам името на връзката в tnsnames.ora
файл:
$ sqlplus -l cj/[email protected]
SQL*Plus: Release 12.2.0.1.0 Production on Fri Jul 6 10:20:21 2018
Copyright (c) 1982, 2017, Oracle. All rights reserved.
Last Successful login time: Tue Jul 03 2018 13:00:06 +10:00
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL>
В cx_Oracle вашият dsn
ще бъде dbaccess
също.