2016-07-14 1 views
3

J'essaye d'établir une connexion jdbc-oci à une base de données oracle sur un serveur std coldfusion v 10. La raison de l'utilisation de jdbc oci est la nécessité de crypter les données circulant entre le serveur d'applications et la base de données (en utilisant les paramètres communs de sqlnet.ora). Cependant, quelle que soit la syntaxe que nous essayons, ni un service basé sur ni un jdbc basé sur tnsnames ne fonctionnera. Immédiatement après l'enregistrement (et le test automatique) de la connexion, les erreurs coldfusion sortent avec "java.sql.SQLException: expiré en essayant d'établir la connexion".coldfusion v 10 std impossible de se connecter à oracle via le pilote oci de jdbc

Il semble bizarre qu'un délai d'attente ait pu se produire puisque l'erreur sera toujours levée immédiatement. Donc, je suppose qu'il y a une autre cause fondamentale pour ne pas avoir établi la connexion.

Des idées là-bas?

Veuillez noter que nous avons simulé l'établissement de connexion avec une application de console en dehors de coldfusion mais en utilisant les mêmes pilotes jvm et jdbc avec succès. il ne semble donc pas être un jvm ou un pilote ou un problème connexe oci.dll .

  • paramètres de la source de données:

    • classe Driver: oracle.jdbc.driver.OracleDriver
    • JDBC URL (en utilisant tnsnames.ora): jdbc:oracle:oci:@<theName>
    • JDBC URL (en utilisant IP, port, service): jdbc:oracle:oci:@//<IP>:1521/<SID>
  • message d'erreur:

    • vérification de connexion a échoué pour la source de données: theName
      java.sql.SQLException: Expiration du délai d'essayer d'établir une connexion
      La cause profonde est que: java.sql.SQLException: Expiration du délai d'essayer d'établir une connexion
  • environnement:

    • ojdbc6 vie du pilote dans un répertoire connu pour coldfusion
    • oci.dll vit dans un répertoire connu de la variable path du système, vérifié par sysinternals processexplorer sur le service coldfusion
    • pour l'URL JDBC (en utilisant tnsnames.ora), le répertoire contenant tnsnames.ora est connu comme une variable système TNS_ADMIN , vérifié par Sysinternals ProcessExplorer sur le service coldfusion
    • avec tnsnames.ora il y a un fichier sqlnet.ora comprenant les paramètres pour activer le chiffrement des données

Stacktrace:

a no Une erreur n-SQL s'est produite lors de la demande d'une connexion de "nom de source de données ici". chronométré à essayer d'établir une connexion

Exception in thread "Thread-2120" java.lang.UnsatisfiedLinkError: no ocijdbc11 in java.library.path 
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860) 
    at java.lang.Runtime.loadLibrary0(Runtime.java:845) 
    at java.lang.System.loadLibrary(System.java:1084) 
    at oracle.jdbc.driver.T2CConnection$1.run(T2CConnection.java:3560) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at oracle.jdbc.driver.T2CConnection.loadNativeLibrary(T2CConnection.java:3556) 
    at oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:269) 
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:553) 
    at oracle.jdbc.driver.T2CConnection.<init>(T2CConnection.java:165) 
    at oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:53) 
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:528) 
    at coldfusion.server.j2ee.sql.pool.JDBCPool.createPhysicalConnection(JDBCPool.java:614) 
    at coldfusion.server.j2ee.sql.pool.ConnectionRunner$RunnableConnection.run(ConnectionRunner.java:67) 
    at java.lang.Thread.run(Thread.java:722) 
A non-SQL error occurred while requesting a connection from "datasource-name here". 
Timed out trying to establish connection 
[Fatal Error] :2662:4: The element type "view" must be terminated by the matching end-tag "</view>". 
+0

Pourriez-vous publier l'intégralité de la pile de la SQLException? –

+0

S'il vous plaît modifier votre message et le stacktrace là, ne pas utiliser de commentaires pour cela. –

Répondre

0

Ajout du chemin vers l'oracle client instant le fichier de configuration cf-répertoire \ cfusion \ bin \ jvm.config a résolu le problème.

+0

Publier un exemple de ce chemin a été ajouté au jvm.config (et où) serait utile pour le gars suivant qui se heurte à ce problème :) – Leigh