2010-06-18 20 views
3

J'ai plusieurs versions d'Oracle et il a enregistré les fichiers tnsnames.ora partout. Les plus anciens ont été stockés dans des fichiers de programme sous Oracle, mais les plus récents ont été stockés dans un répertoire d'applications sur mon disque dur. J'utilise les bibliothèques .net fournies par Oracle pour me connecter à une application .net et elle me dit qu'elle ne trouve pas le nom auquel je veux me connecter.Comment savoir quel fichier tnsnames.ora est utilisé par un appel .net?

J'ai mis à jour tous les fichiers tnsnames.ora que j'ai pu trouver. Y at-il un moyen de dire ce que tnsnames.ora mon application essaie d'utiliser pour se connecter à Oracle avec?

Répondre

8

arrivé en retard à la fête, mais je l'ai utilisé Sysinternals' procmon.exe pour faire quelque chose comme ça. Voici mes notes à moi-même:

  1. Démarrer procmon.exe
  2. Fichier> Acquisition des événements pour désactiver la capture
  3. Appuyez sur le bouton Afficher l'activité du système de fichiers (le reste à droite devrait être unset)
  4. fichier> capture d'événements pour commencer la capture
  5. exécuter l'activité que vous voulez un suivi
  6. Fichier> Capture Events pour arrêter la capture
  7. Outils> Fichier Résumé pour trouver tnsnames.ora dans la liste des noms de fichiers
3

Les liens suivants pourraient fournir des informations:

http://www.dba-oracle.com/t_windows_tnsnames.ora_file_location.htm

http://dbaforums.org/oracle/index.php?showtopic=2554

Pour votre environnement de développement, vous pouvez essayer de mettre le tnsnames.ora dans le répertoire où vos programmes exécutables sont générés pour l'instant tout vous déterminez lequel est utilisé. Le premier fichier tnsnames.ora utilisé est celui du répertoire en cours d'exécution de l'application.

+0

Merci beaucoup pour cette réponse, il semble que mettre le tnsnames.ora dans le même directement est très largement connu. J'ai [blogué à ce sujet] (http://www.matthewedmondson.info/2012/10/using-tnsnamesora-with-your-net.html) et cité votre réponse. Merci encore! –

+0

@m.edmondson Poste de blog très intéressant et j'ai particulièrement aimé l'analogie avec le DNS. Aussi, j'apprécie la citation, merci. –

+0

Pas de problème, content que vous l'ayez trouvé intéressant. –

3

Vous pouvez utiliser la variable d'environnement TNS_ADMIN pour consolider toutes les connexions à un endroit. C'est très utile surtout dans les environnements domestiques multiples.

Définissez la variable TNS_ADMIN sur le chemin où se trouve le fichier tnsnames.ora. Notez que ce fichier peut être stocké n'importe où, mais généralement sous l'un des ORACLE_HOME \ network \ admin.

IC

+0

J'ai utilisé cette solution et il semble que cela a bien fonctionné. – dtc

0

Je viens de rencontrer ce problème. C'est le commentaire que je mets dans mon programme: 'Note: Programme construit avec Ora 11 OracleDataAdaptor. Pour que cela trouve «nom de base de données», l'entrée de registre ORACLE \ KEY_OraClient11g_home1 doit avoir une valeur pour TNS_ADMIN pointant vers le répertoire correct pour TNSNAMES.ORA.

+0

Peut-être que je suis obtuse mais, comment cela répond-il à la question? – Brian

+0

Ce type de commentaire doit être posté en tant que commentaire et non en tant que réponse à la question. –

Questions connexes