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

Connexions aux bases de données Oracle Discussion :

Connexion Doctrine et Oracle, "unknow database type aq$_subscribers requested"


Sujet :

Connexions aux bases de données Oracle

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Avril 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2018
    Messages : 3
    Points : 6
    Points
    6
    Par défaut Connexion Doctrine et Oracle, "unknow database type aq$_subscribers requested"
    Bonjour,

    J'espère que je poste au bon endroit.

    Je dois passer de MySql à Oracle une application réalisée avec Symfony. Pour cela, j'ai installé l'instant client et le driver oci8 sur un serveur Debian.
    J'ai renseigné les paramètres de la base dans l'application. Puis je lance la commande php qui génère les tables et j'obtiens l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ php app/console doctrine:schema:update --dump-sql 
      [Doctrine\DBAL\DBALException]
      Unknown database type aq$_subscribers requested, Doctrine\DBAL\Platforms\OraclePlatform may not support it.
    Je tente de la résoudre depuis un moment. Je me demande si je suis connectée à la bonne base.


    Pour mettre à jour la table, doctrine compare les colonnes des tables de la base de données avec les indications du code php. Il a trouvé dans la base une colonne du type « aq$_subscribers » et ce type n’existe pas dans mon code. D’où vient ce aq$_subscribers ?

    Voici un extrait des colonnes qui sont comparées jusqu’à l’arrivée de l’erreur (trouvé en affichant les variables qui passent par la fonction qui lance l’erreur) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ****** column name = DB_ID  ----------------- data type = number
    ****** column name = PREV_RESET_SCN  ----------------- data type = number
    ****** column name = PREV_RESET_TIMESTAMP ----------------- data type = number
    ****** column name = RESET_SCN ----------------- data type = number
    […]
    ****** column name = RETRY_DELAY ----------------- data type = number
    ****** column name = RET_TIME ----------------- data type = number
    ****** column name = SERVICE_NAME ----------------- data type = varchar2
    ****** column name = SUBSCRIBERS ----------------- data type = aq$_subscribers

    Aucune de ses colonnes n’appartient au code de l’application, je suppose que je mets à jour la mauvaise base. Ou un schéma qui n'est pas vide. J'avoue que je découvre Oracle et je ne retrouve pas mes repères MySql.

    Voici mes fichiers de configuration de mon application :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    parameters:
        database_host: 192.168.70.175
        database_port: 1521
        database_name: xe
        database_user: system
        database_password: oracle
        mailer_transport: smtp
        mailer_host: 127.0.0.1
        mailer_user: mailer
        mailer_password: mailer
        secret: 5fdd756772ec0555065de867c96ac85023aa943a
    Voici mes fichiers de configuration pour Oracle :

    1. tnsname.ora

    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
    20
    21
    22
    # /u01/app/oracle/product/11.2.0/xe/network/admin/
    # tnsnames.ora Network Configuration File:
     
    XE =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = integration)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = XE)
        )
      )
     
    EXTPROC_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
        )
        (CONNECT_DATA =
          (SID = PLSExtProc)
          (PRESENTATION = RO)
        )
      )
    2. listener.ora
    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
    20
    21
    # /u01/app/oracle/product/11.2.0/xe/network/admin/
    # listener.ora Network Configuration File:
     
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe)
          (PROGRAM = extproc)
        )
      )
     
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
          (ADDRESS = (PROTOCOL = TCP)(HOST = integration)(PORT = 1521))
        )
      )
     
    DEFAULT_SERVICE_LISTENER = (XE)

    3. Variables d’environnement Debian :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
    export ORACLE_HOME
    ORACLE_SID=MYDATABASE
    export ORACLE_SID
    PATH=$PATH:$ORACLE_HOME/bin
    export PATH

    4. Résultat de lsnrtcl status
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 06-APR-2018 09:17:44
     
    Copyright (c) 1991, 2011, Oracle.  All rights reserved.
     
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
    STATUS of the LISTENER
    ------------------------
    Alias                     LISTENER
    Version                   TNSLSNR for Linux: Version 11.2.0.2.0 - Production
    Start Date                06-APR-2018 09:03:24
    Uptime                    0 days 0 hr. 14 min. 19 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Default Service           XE
    Listener Parameter File   /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora
    Listener Log File         /u01/app/oracle/product/11.2.0/xe/log/diag/tnslsnr/integration/listener/alert/log.xml
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_FOR_XE)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=integration)(PORT=1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=integration)(PORT=8080))(Presentation=HTTP)(Session=RAW))
    Services Summary...
    Service "PLSExtProc" has 1 instance(s).
      Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Service "XE" has 1 instance(s).
      Instance "XE", status READY, has 1 handler(s) for this service...
    Service "XEXDB" has 1 instance(s).
      Instance "XE", status READY, has 1 handler(s) for this service...
    The command completed successfully
    5. Apex
    J’ai créé un schéma MYDATABASE pour l’utilisateur SYSTEM. Ce schéma contient déjà des tables mais je ne retrouve pas les variables citées plus haut (DB_ID, SUBSCRIBERS…).
    Nom : apex oracle object browser.jpg
Affichages : 758
Taille : 95,2 Ko

    A votre avis, est-ce que je me connecte au bon listener ? à la bonne base de données ?
    Je ne sais plus dans quelle direction chercher.


    Merci beaucoup

  2. #2
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Houla, il y a trop d'infos

    Pour savoir si tu te connectes à la bonne base, fais sous SQL*Plus ou autre client
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT name FROM v$database;
    Si ce n'est pas la bonne, vérifie si la variable d'environnement TWO_TASK est renseignée. C'est une belle "saleté" car elle prend le pas sur ORACLE_SID en cas de connexion non explicite à une base.
    Par exemple si sous SQL*Plus tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ORACLE_SID=MYDATABASE
    export ORACLE_SID
    ou bien
    mais que TWO_TASK vaut ANOTHER_DB, alors si tu lances SQL*Plus comme ça, sans être explicite pour le nom de la base,
    tu n'es pas dans MYDATABASE mais dans ANOTHER_DB.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Avril 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2018
    Messages : 3
    Points : 6
    Points
    6
    Par défaut
    Oui c’est chargé, j’ai préféré en mettre trop que pas assez

    Merci beaucoup pour ta réponse !
    Je teste tout ça et je te dis

    Edit :
    Dans SQL*Plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT name FROM v$database
     
    NAME
    ---------
    XE
    Je m’attendais à avoir MYDATABASE et non pas le listener comme résultat.

    Lorsque je lance les autres requêtes, j’obtiens des « unknown command »
    La variable TWO_TASK n’est pas renseignée, je vais me renseigner dessus.

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Avril 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2018
    Messages : 3
    Points : 6
    Points
    6
    Par défaut
    J'ai fini par trouver ! Je me connectais au bon listener mais le user doit correspondre au schéma
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    parameters:
        database_host: 192.168.70.175
        database_port: 1521
        database_name: xe
        database_user: mydatabase
        database_password: oracle

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 26/04/2012, 11h41
  2. [Oracle][JDBC] Récupération du type LONG
    Par ZeKiD dans le forum JDBC
    Réponses: 3
    Dernier message: 08/09/2005, 13h29
  3. Réponses: 2
    Dernier message: 30/08/2004, 14h48
  4. [Oracle][Delphi 7] Problème type de champ
    Par tiennos dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/07/2004, 10h17
  5. [Tomcat]Connexion à une DataSource Oracle
    Par iceman dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 04/08/2003, 16h48

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