Bonjour à tous,
Je rencontre un soucis en passant d'un client 7 à 9i.
J'ai un programme en VB6 utilisant OO4O, qui modifie le TNSNames.ORA afin de changer l'adresse IP d'une entrée. Ceci nous permet d'exécuter par exemple une requête sur une 100aine de serveurs en automatique.
En Oracle 7, aucun soucis, à chaque nouvelle connexion on pointe bien sur le bon serveur. Depuis le passage en Oracle 9, pendant 1 à 2 secondes, une nouvelle connexion ne se fait pas sur le contenu réel du fichier TNSNames mais sur un précédent. Je pense donc à une mise en cache du fichier par le client Oracle.
Pour que cela passe, je suis obligé de mettre une pause de 2 secondes entre chaque connexion sinon j'ai qlq chose comme :
Vous auriez une idée pour résoudre ça ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 TNSNAME Connexion réelle Serveur1 Serveur1 Serveur2 Serveur1 Serveur3 Serveur1 Serveur4 Serveur4 Serveur5 Serveur4 Serveur6 Serveur4
J'ai testé ma pause de 2 secondes avant de modifier le fichier TNSNames afin de m'assurer que ce n'est pas provoqué par une lenteur de prise en compte de la modification du fichier. Ca fait donc [Pause] Modif - connexion [Pause] Modif - connexion d'où mon idée de mise en cache par le client.
Merci !
Niveau code VB, je fais du classique :
Et le contenu de mon SqlNet.ora (la partie Trace a été ajoutée après constatation du soucis, mais rien vu de probant dedans) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Set gsesOraSession = CreateObject("OracleInProcServer.XOraSession") Set gdtbOraDataBase = gsesOraSession.OpenDatabase("oracle", "User/Mdp", 0&) ...mon traitement... Set gdtbOraDataBase = Nothing Set gsesOraSession = Nothing
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 # SQLNET.ORA Network Configuration File: c:\oracle\ora92\NETWORK\ADMIN\sqlnet.ora # Generated by Oracle configuration tools. TRACE_DIRECTORY_CLIENT = C:\oracle\ora92\network\log LOG_FILE_CLIENT = journal.log TRACE_UNIQUE_CLIENT = on SQLNET.CLIENT_REGISTRATION = 0 TRACE_DIRECTORY_SERVER = C:\oracle\ora92\network\log LOG_DIRECTORY_CLIENT = C:\oracle\ora92\network\log TRACE_FILE_CLIENT = client.log TRACE_FILE_SERVER = serveur.log TRACE_LEVEL_CLIENT = USER TRACE_LEVEL_SERVER = USER AUTOMATIC_IPC = OFF NAMES.DEFAULT_DOMAIN = world NAME.DEFAULT_ZONE = world SQLNET.CRYPTO_SEED = "1008983755-86573922" NAMES.DIRECTORY_PATH= (TNSNAMES)
Partager