IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces de programmation Oracle Discussion :

[OCILIB] OCI_Initialize est très long...


Sujet :

Interfaces de programmation Oracle

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 41
    Points : 28
    Points
    28
    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.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 41
    Points : 28
    Points
    28
    Par défaut
    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.

  3. #3
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    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

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 41
    Points : 28
    Points
    28
    Par défaut
    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.

  5. #5
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    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

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 41
    Points : 28
    Points
    28
    Par défaut
    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...

  7. #7
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    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

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 41
    Points : 28
    Points
    28
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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)

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 41
    Points : 28
    Points
    28
    Par défaut
    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.

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/11/2006, 16h13
  2. Réponses: 1
    Dernier message: 19/09/2005, 15h44
  3. imposer une hauteur de div meme si le texte est plus long
    Par bébé dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 24/08/2005, 11h29
  4. Très long texte dans Quick Report - Comment faire ?
    Par delphi+ dans le forum Composants VCL
    Réponses: 2
    Dernier message: 21/08/2005, 22h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo