|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 41 ![]() |
Bonjour,
Pour une raison indépendante de ma bonne volonté, je dois compiler une application en mode 32 bits sur une plateforme Windows 64 bits. Dans mon cas, la fonction OCI_Initialize est très longue (plus de 2 minutes...). Pourrais-je avoir une piste? Client ORACLE 11gR2 en mode 32 bits. Version OCILIB : 3.9.3 sur Windows 7 64 bits D'avance merci. Franck. |
|
|
00
|
|
|
#2 |
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 41 ![]() |
Bonjour,
Petite précision : l'initialisation a lieu au moment du load de la librairie que j'ai développée (sur Windows, utilisation du DllMain) Fly. |
|
|
00
|
|
|
#3 |
![]() ![]() vincent rogier Inscription : juillet 2007 Messages : 2 355 ![]() |
Ceci semble tres bizarre.
Sous Windows, OCI_Initialize(), grosse modo ne fait que 2 choses : - charger ocilib.dll et les fonctions oci utilisée par ocilib - créer un environnement OCI. C'est tout. je vais voir si y rien sur metalink...
__________________
Vincent Rogier. Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique ! OCILIB (C Driver for Oracle) Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle |
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 41 ![]() |
Re,
J'ai regardé le code de OCI_Initialize et fais quelques tests sur la partie load de oci.dll et maj des pointeurs de fonction. Il n'y a pas de souci dans cette partie... ... A suivre Fly. |
|
|
00
|
|
|
#5 |
![]() ![]() vincent rogier Inscription : juillet 2007 Messages : 2 355 ![]() |
Ca serait pars OCIEnvCreate() qui met du temps ?
__________________
Vincent Rogier. Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique ! OCILIB (C Driver for Oracle) Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle |
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 41 ![]() |
Je n'ai pas été jusque là...
Enfin si, j'ai ajouté un OCIEnvCreate en dur dans ma fonction appelée dans le DLL_PROCESS_ATTACH et effectivement il prend un certain temps... |
|
|
00
|
|
|
#7 |
![]() ![]() vincent rogier Inscription : juillet 2007 Messages : 2 355 ![]() |
Si tu crée un app simple et vide qui fait juste un OCI_Initialize() (donc un OCIEnvCreate()) et que tu lance l'app en standalone, c'est le même temps ?
Si oui, peux tu me faire parvenir le contenu de ton sqlnet.ora ?
__________________
Vincent Rogier. Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique ! OCILIB (C Driver for Oracle) Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle |
|
00
|
|
|
#8 | ||
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 41 ![]() |
Bonjour Vincent,
Voici les tests que j'ai effectués : 1) création d'un projet de type dll, 2) création d'un projet console, 3) tests avec l'OCI_Initialize dans une fonction de la dll Le temps de load est ok 4) tests avec l'OCI_Initialize dans une fonction de load de la dll Que ce soit en DLL_PROCESS_ATTACH ou DLL_THREAD_ATTACH, le temps d'exécution de OCI_Initialize est long J'ai sur mon poste un client 11gR2 donc voici le contenu du sqlnet.ora, je ne l'ai pas modifié. Code :
|
||
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 41 ![]() |
Un début d'explication ...?
Si je modifie mon sqlnet.ora côté client en ajoutant la ligne suivante: cela va beaucoup mieux, je confirme que le problème se pose uniquement si OCIEnvCreate est dans la DLLMain... Fly. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com