Nie mogę pomóc w konwersji strony Java na stronę C potrzebną przez cx_Oracle, ale być może poniższe informacje pomogą pokazać, czego potrzebuje cx_Oracle. Użyję przykładu opartego na Oracle Exadata Express, który używa portfela do połączenia, zobacz ogólne instrukcje łączenia języków skryptowych z Exadata Express tutaj .
Twoja dokładna konfiguracja i pliki mogą się różnić. Jak wskazał Anthony, konfiguracja zabezpieczeń nie jest specyficzna dla cx_Oracle. Bardziej doświadczeni i pomocni eksperci ds. bezpieczeństwa mogą czaić się na innych forach.
W przypadku Exadata Express pobierany jest wstępnie dostarczony plik zip portfela. W przypadku aplikacji Oracle Call Interface, takich jak cx_Oracle, potrzebujemy tylko tych plików z archiwum:sqlnet.ora, tnsnames.ora i cwallet.sso. Będziesz musiał utworzyć/znaleźć te (lub inne potrzebne) pliki.
Moje pliki to:
sqnet.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 :Zostawiam to twojej wyobraźni...
Umieściłem te trzy pliki w /Users/cjones/Cloud
i ustaw środowisko, aby je znaleźć:
$ export TNS_ADMIN=/Users/cjones/Cloud
Teraz mogę się połączyć używając nazwy połączenia w tnsnames.ora
plik:
$ 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>
W cx_Oracle Twój dsn
byłoby dbaccess
też.