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 :

[Sybase ASA] Problème avec 2 bases de données sur le même serveur


Sujet :

JDBC Java

  1. #1
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut [Sybase ASA] Problème avec 2 bases de données sur le même serveur
    Bonjour à toutes et à tous,

    Mon application se connecte à divers types de bases dont Sybase.
    Pour ce faire, j'utilise jConnect (le driver "officiel" de Sybase il me semble), pour la simple et bonne raison que jTds ne semble pas vouloir se connecter à des bases ASA (juste ASE) (ASA = Adaptive Server Anywhere, ASE = Adaptive Server Enterprise)...
    A noter également que je fais mes tests sur une version assez ancienne de cette base de données (8.x).

    Mon souci, c'est quand il y a 2 (ou plus) bases de données tournant sur le même serveur.
    Par exemple, appellons les UNE_BASE et AUTRE_BASE.

    Mon url de connection est la suivante :

    jdbc:sybase:Tds:localhost:2638/UNE_BASE?charset=utf8

    Or, je m'apperçois que mon application va se connecter à la base AUTRE_BASE. Il suffit de stopper AUTRE_BASE pour que mon programme se connecte à UNE_BASE.
    J'ai l'impression qu'il n'en a rien à faire du nom de la base de données que je lui donne dans mon url et qu'il va prendre la 1e base qu'il trouve sur le serveur...

    Mon code Java pour exécuter une requête doit ressembler à un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ...
    Driver driver = (Driver) Class.forName("com.sybase.jdbc3.jdbc.SybDriver").newInstance();
    DriverManager.registerDriver(driver);
    Connection connection = DriverManager.getConnection(url, user, password);
    Statement statement = connection.createStatement();
    ResultSet set = statement.executeQuery("...");
    ...
    Y a-t-il un problème dans mon code (vu sa basicité, j'en doute) ou est-ce un bug connu de ces drivers ?
    Comment puis-je résoudre ce problème (je n'ai pas le choix de la base de données, inutile donc de me dire de changer de Bd ) ?

    Merci.
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  2. #2
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 544
    Points
    1 544
    Par défaut
    Fait voir l'url que tu passe en parametre du getConnexion stp
    "vaste programme"

  3. #3
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    je dis ça un peu au pif, mais changes tu le numéro de port ?

    Enfin je veux dire si ça se trouve la connexion se fait plutot en fonction du port. Je suppose que tes 2 bases ne sont pas sur le même port ?
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  4. #4
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    BainE> L'URL que je passe c'est ça : jdbc:sybase:Tds:localhost:2638/UNE_BASE?charset=utf8

    in> C'est une bonne question ça. De mon côté, je spécifie le port 2638 et je n'en change jamais. Maintenant, je ne sais pas comment c'est fait et géré par le serveur Sybase. Est-ce qu'il met sa 1e base sur le 2638 puis les suivantes sur un autre port ? Ce qui expliquerait qu'une fois AUTRE_BASE arrêtée, je peux me connecter sans problème à UNE_BASE...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  5. #5
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 544
    Points
    1 544
    Par défaut
    j'ai du mal a comprendre tu a 2 serveur ou 2 bases dans le meme serveur ?
    Est tu sur de ton URL, si tu fais un System.out.println(url); juste avant le getConnexion c'est ca qu'est afficher.
    de plus tu bosse en local ?
    "vaste programme"

  6. #6
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Bon, quelques évolutions :

    La réalité c'est que UNE_BASE et AUTRE_BASE sont 2 serveurs différents et non juste deux bases de données différentes.
    De ce fait, ASA va démarrer la 1e base de données sur le port 2638, tandis que la seconde sera démarrée sur un autre port. Du coup, je me connecte bien sur la base de données qui est présente sur le port 2638.
    Cependant, ce qui est bizarre, c'est que le nom de la base de données dans l'URL n'a aucune importance pour lui. Il trouve un serveur sur le port 2638, bah zou, il prend la 1e bd qu'il trouve.

    Du coup, je décide de faire un autre test : Je mets UNE_BASE et AUTRE_BASE sur le même serveur cette fois-ci, et sont donc toutes les 2 accessibles avec le même port (2638). Et là, le problème ne change pas. Quelque soit la valeur du nom de base dans l'URL, je me connecte à la même base.

    Je me demande si au lieu de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Connection connection = DriverManager.getConnection(url, user, pass);
    je ne devrais pas faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Connection connection = DriverManager.getConnection(url, props);
    props est un java.util.Properties. Mais dans ce cas, quelles informations dois-je mettre (or user et password) dans ces propriétés ?

    Merci pour vos réponses.
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  7. #7
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 544
    Points
    1 544
    Par défaut
    oui il faut passer user et password comme ca par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Properties props = new Properties();
    			props.put( "user", user );
    			props.put( "password", password );
    			props.put( "CHARSET_CONVERTER_CLASS", defaultCharsetConvertor );
    ...
    pour les autres infos je te conseille d'aller voir la doc j'ai pas en tete
    "vaste programme"

  8. #8
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Bon, je viens de trouver

    En fait, il me faut spécifier le nom du service :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    props.put("SERVICENAME", "UNE_BASE");
    ...
    Et là, ça marche

    Bon, va falloir que j'implémente tout ça moi...

    Merci pour vos réponses.
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  9. #9
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 544
    Points
    1 544
    Par défaut
    pour nous remercier si tu pouvait mettre le thread a resolu

    [edit] dsl j avais pas vu
    "vaste programme"

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

Discussions similaires

  1. [MySQL-5.5] Comment synchroniser deux bases de données sur le même serveur ?
    Par AssoumaniSaid dans le forum Administration
    Réponses: 1
    Dernier message: 29/08/2014, 17h35
  2. [VB]Problème avec les bases de données
    Par boudincweole10 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 22/04/2006, 20h24
  3. problème avec ma base de donnée
    Par polace dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 22/10/2005, 22h26
  4. problème avec ma base de données
    Par pmboutteau dans le forum ASP
    Réponses: 6
    Dernier message: 25/02/2005, 12h59

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