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

JDBC Java Discussion :

[oracle thin] simple connexion


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 59
    Points : 45
    Points
    45
    Par défaut [oracle thin] simple connexion
    bonjour,

    je n'arrive pas a faire une simple connection

    Voici mon code de connection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	Class.forName("oracle.jdbc.driver.OracleDriver");
    	con = DriverManager.getConnection("jdbc:oracle:thin:"+login+"/"+password+"@"+host);
    avec host egal à "//172.19.1.104:1521/adm1"

    j'obtiens l'exception
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    java.sql.SQLException: Listener refused the connection with the following error:
    ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
    The Connection descriptor used by the client was:
    //172.19.1.104:1521/adm1
    je ne sais pas exactement ce qu'il faut mettre comme host :
    la doc dit que host doit etre d'une des formes suivantes
    • //<host>:<port>/<service>
    • <host>:<port>:<SID>
    • <TNSName>


    le probleme c'est que je ne sais pas vraiment ce qu'il faut mettre comme service ...

    en essayent de mettre directement un tnsname declaré dans tnsnames.ora, j'obtiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    java.sql.SQLException: Io exception: Unknown host specified 
     
    	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
    	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
    	at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
    	at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:420)
    	at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
    	at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
    	at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
    	at java.sql.DriverManager.getConnection(Unknown Source)
    	at java.sql.DriverManager.getConnection(Unknown Source)
    	at com.airbus.elogbook.dao.OracleConnection.connect(OracleConnection.java:32)
    	at com.airbus.elogbook.dao.OracleConnection.main(OracleConnection.java:20)
    ce qui me fait dire que mon appli java ne va pas lire mon tnsnames.ora et je ne sais pas comment lui dire ...

    Donc les 2 facons de resoudre mon probleme (si j'ai bien compris) sont soit de trouver ce qu'il faut mettre comme service, soit lui permettre de connaitre ce que j'ai defini dans mon tnsnames.ora.

    Merci d'avoir lu jusque la . Maintenant si vous pouvez me donner des elements de reponse, n'hesitez pas
    _pirBD_

  2. #2
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Bonjour,

    Il ne me semble pas que le parametre "jdbc:oracle:thin:"+login+"/"+password+"@"+host que tu passes puisse corresponde à 1 signature de getConnection.
    Essaies comme ça :
    DriverManager.getConnection ( "URL", "username", "password")
    avec par exemple :
    url = jdbc:oracle:thin:@''nom ou @ du host":1521:''sid de la base''
    username = scott
    password = tiger

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 352
    Points : 445
    Points
    445
    Par défaut
    Si il est possible de passer une url comportant le user/password et d'utiliser la méthode DriverManager.getConnection( String ).

    Par contre, ton programme Java ne va pas "lire" le fichier tnsnames.ora, il va en fait se connecter à sqlnet qui lui va tenter de "binder" ton nom de service sur une entrée du fichier tnsnames.ora. Donc ton programme Java n'a pas besoin d'avoir de visibilité sur ce fichier.

    Pour ton problème, avec le driver thin, il te faut utiliser une url sous la forme
    "jdbc:oracle:thin:"+login+"/"+password+"@"+host+":"+port+":"+SID
    avec host : le nom ou l'adresse IP du serveur Oracle
    port : le port d'écoute du service SqlNet
    SID : le nom de la base de données.
    Si tu n'es pas sûr des 2 derniers paramètres, ce sont eux que tu pourras trouver dans le fichier tnsnames.ora, dans la ligne correspondant au service associé à ta base de données.
    Voisi un exemple:

    TEST =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = <host>)(PORT = <port>))
    )
    (CONNECT_DATA =
    (SID = <SID>)
    (SERVER = DEDICATED)
    )
    )

    Jacques Desmazières

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 59
    Points : 45
    Points
    45
    Par défaut
    Merci pour les reponses ,

    J'ai reussi a faire marcher une connexion en precisant le sid correpsondant de mon fichier tnsnames.ora.

    Cette solution est a demi satisfaisante. N'est il pas possible de preciser directement le nom de l'alias (je sais pas si le terme est bon) :

    Exemple:

    si dans le fichier tnsnames.ora, on a
    TEST =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = <host>)(PORT = <port>))
    )
    (CONNECT_DATA =
    (SID = <SID>)
    (SERVER = DEDICATED)
    )
    )


    je veux pouvoir donner a ma chaine de connection seulement TEST, et mes identifiants (login, password). Est-ce possible ?
    _pirBD_

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 352
    Points : 445
    Points
    445
    Par défaut
    Oui il est possible d'utiliser le nom de service, mais dans ce cas il te faut utiliser le driver OCI, et par conséquent installer un client Oracle sur le(s) poste(s) clients (en fait si tu bidouilles un peu il suffit de 2 ou 3 dlls misent au bon endroit )

    Jacques Desmazières

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 59
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par Jacques - 06
    Oui il est possible d'utiliser le nom de service, mais dans ce cas il te faut utiliser le driver OCI, et par conséquent installer un client Oracle sur le(s) poste(s) clients (en fait si tu bidouilles un peu il suffit de 2 ou 3 dlls misent au bon endroit )

    Jacques Desmazières
    Ok, merci encore


    Par contre je trouve bizarre qu'avec les drivers thin on ne puisse pas utiliser directement le nom du service (TEST) puisqu'apparement, d'apres les tests effectués il va de toute facon chercher l'information de SID dans tnsnames.ora (meme si c'est en passant par sqlnet)!!
    _pirBD_

Discussions similaires

  1. Oracle - Simple connexion + requête
    Par jeyGey dans le forum C#
    Réponses: 3
    Dernier message: 02/12/2014, 11h30
  2. Oracle XE et connexion client : erreur ora-12145
    Par safisafi dans le forum Oracle
    Réponses: 10
    Dernier message: 29/12/2006, 09h41
  3. ASP - Oracle : Problème de connexion
    Par opheliegomes dans le forum ASP
    Réponses: 1
    Dernier message: 22/09/2005, 08h24
  4. [Oracle]8i et connexion
    Par exe dans le forum Bases de données
    Réponses: 4
    Dernier message: 01/07/2004, 11h41
  5. [tomcat 4.1] [oracle] Pool de connexion
    Par Franco dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 23/09/2003, 00h42

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