Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Interfaces de programmation
Interfaces de programmation Forum d'entraide sur l'utilisation des API Oracle : Pré-compilateurs, OCI, OCCI, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/12/2011, 00h15   #1
Invité régulier
 
Inscription : juillet 2009
Messages : 41
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 41
Points : 8
Points : 8
Par défaut [OCILIB] OCI_Initialize est très long...

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.
cobfly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 09h55   #2
Invité régulier
 
Inscription : juillet 2009
Messages : 41
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 41
Points : 8
Points : 8
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.
cobfly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 10h41   #3
Rédacteur/Modérateur
 
Avatar de Vincent Rogier
 
vincent rogier
Inscription : juillet 2007
Messages : 2 355
Détails du profil
Informations personnelles :
Nom : vincent rogier
Âge : 34

Informations forums :
Inscription : juillet 2007
Messages : 2 355
Points : 3 108
Points : 3 108
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
Vincent Rogier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 10h50   #4
Invité régulier
 
Inscription : juillet 2009
Messages : 41
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 41
Points : 8
Points : 8
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.
cobfly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 10h57   #5
Rédacteur/Modérateur
 
Avatar de Vincent Rogier
 
vincent rogier
Inscription : juillet 2007
Messages : 2 355
Détails du profil
Informations personnelles :
Nom : vincent rogier
Âge : 34

Informations forums :
Inscription : juillet 2007
Messages : 2 355
Points : 3 108
Points : 3 108
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
Vincent Rogier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 10h58   #6
Invité régulier
 
Inscription : juillet 2009
Messages : 41
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 41
Points : 8
Points : 8
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...
cobfly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 19h18   #7
Rédacteur/Modérateur
 
Avatar de Vincent Rogier
 
vincent rogier
Inscription : juillet 2007
Messages : 2 355
Détails du profil
Informations personnelles :
Nom : vincent rogier
Âge : 34

Informations forums :
Inscription : juillet 2007
Messages : 2 355
Points : 3 108
Points : 3 108
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
Vincent Rogier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 11h18   #8
Invité régulier
 
Inscription : juillet 2009
Messages : 41
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 41
Points : 8
Points : 8
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 :
1
2
3
4
5
6
7
8
9
10
11
 
# sqlnet.ora Network Configuration File: C:\oracle\product\11.2.0\client_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.
 
# This file is actually generated by netca. But if customers choose to 
# install "Software Only", this file wont exist and without the native 
# authentication, they will not be able to connect to the database on NT.
 
SQLNET.AUTHENTICATION_SERVICES= (NTS)
 
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
cobfly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 18h02   #9
Invité régulier
 
Inscription : juillet 2009
Messages : 41
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 41
Points : 8
Points : 8
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.
cobfly est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h39.


 
 
 
 
Partenaires

Hébergement Web