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 :

[JDBC][Thin] Comment définir le nom de machine !!


Sujet :

JDBC Java

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    377
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 377
    Points : 356
    Points
    356
    Par défaut [JDBC][Thin] Comment définir le nom de machine !!
    Bonjour,

    Voilà , j'utilise comme beaucoup je pense les drivers thin d'Oracle pour connecter à ma base.
    En ce moment, je rencontre un problème sur mes connexions , et malheureusement, les DBAs ne peuvent pas faire la différence entre les connexions qui viennent de mon serveur, et celles qui viennent d'un autre.
    Deux serveurs distincts connecte la même base avec le driver thin.

    J'aimerais savoir s'il existe un moyen de définir le nom du serveur, via les Properties du getConnection ou autre.

    J'espère être clair. Dites le moi si besoin est.
    D'avance merci.

    Ou sinon si quelqu'un a les sources des drivers Oracle. Je suis preneur.

  2. #2
    Membre averti
    Avatar de JHelp
    Inscrit en
    Octobre 2002
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 185
    Points : 444
    Points
    444
    Par défaut
    Bonjour,
    Moi je prendrais le probléme autrement (je dis pas que ca soit infaisable de la façon dont tu proposes) Je créearais deux utilisateurs différents sur la base, ainsi tu sais d'ou viens la requete, puisque tu as l'utilisateur, en plus en faisant des vue visible par l'un et pas par l'autre par exemple, si y a en plus un probléme de sécurité dans ta demande.
    Pour avoir une réponse efficace :
    1) Soyez précis dans vos questions
    2) Choisssez bien votre forum
    3) Consultez la FAQ et la doc avant

  3. #3
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Etonnant !!

    N'as-tu pas la possibilité de voir les sessions d'Oracle?
    Et les SysDBA ne peuvent pas t'aider?

    Sinon essaie ce sql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select OSUSER, MACHINE, PROGRAM from v$session where username is not null order by logon_time, sid
    Il te retourne les sessions ouvertes.
    Bien le bonjour chez vous
    Jowo

  4. #4
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    je plussoie pour les 2 utilisateurs différents.

    Sinon ça m'étonne que tes 2 connexions ne soient pas différenciables par les dba. Normalement la requête de jowo devrait suffire.
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  5. #5
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    377
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 377
    Points : 356
    Points
    356
    Par défaut
    Alors pour répondre à toutes les questions.
    Quand je fais select .... from v$session.

    J'obtiens OSUSER = oracle, MACHINE=jdbcclient et PROGRAM=JDBC-1.0-Client

    Donc rien sur le serveur.

    Pour ce qui est de doubler le user, en fait ce sont deux applications différentes, mais qui agisse exactement sur les même données.
    Deux visions distinctes.
    Donc pour éviter d'oublier de modifier un schema si un est modifié, je préfère pas faire çà.
    D'autant que je connais mes DBAs et l'autre équipe en charge du projet, et ils voudront rien changer.

    Désolé, personne a les sources sinon des drivers ??

  6. #6
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut Re: [JDBC][Thin] Comment définir le nom de machine !!
    Citation Envoyé par ZeKiD
    Bonjour,

    Voilà , j'utilise comme beaucoup je pense les drivers thin d'Oracle pour connecter à ma base.
    En ce moment, je rencontre un problème sur mes connexions , et malheureusement, les DBAs ne peuvent pas faire la différence entre les connexions qui viennent de mon serveur, et celles qui viennent d'un autre.
    Deux serveurs distincts connecte la même base avec le driver thin.
    Quel est ce problème de connection?

    Donne-nous plus d'information.

    Car dans la vue v$session, tu as toutes les sessions ouvertes.
    Bien le bonjour chez vous
    Jowo

  7. #7
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    377
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 377
    Points : 356
    Points
    356
    Par défaut
    Oui pardon .
    Autant pour moi , ce n'est pas vraiment un problème sur la connexion.
    J'ai en fait une classe qui fait appel à un :

    SELECT FOR UPDATE NOWAIT.

    Les deux serveurs peuvent faire ce genre de requete sur la même table, mais pas sur la même ligne.
    Il semblerait que l'un des deux serveurs provoque un lock car cela m'arrive d'obtenir de temps en temps des exceptions sur NOWAIT qui permet de ne pas figer.
    Et le problème est que je ne sais pas comment cela est possible.
    Je voulais donc effectuer une requete de vérification des locks lorsque je tombe sur l'exception afin de savoir lequels des deux serveurs bloque la ligne.

    Je suis plus clair ?

  8. #8
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Bon je viens de regarder mais il me semble qu'effectivement tu pourrais régler le problème en modifiant les informations.

    Tu peux récupérer les propriétés de la connexion pour l'entrée "machine" ?
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  9. #9
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    On peut dire que c'est plus un problème SQL que Java.
    Bien le bonjour chez vous
    Jowo

  10. #10
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    377
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 377
    Points : 356
    Points
    356
    Par défaut
    Bah en fait je pense que l'on ait à la frontière.
    A la fois cela devra être dans Java lors de la connexion.
    Mais à la fois Oracle devrait savoir à qui il doit renvoyer ces résultats....
    Cruel dileme.
    J'ai essayé avant du côté Oracle, mais le problème n'a pas vraiment été résolu ;-)
    Pour info , avec OCI , on obtient bien les noms de machine.
    Mais je ne peux pas passer en OCI malheureusement en prod pour des raisons de sécurité.
    Et je n'ai le problème qu'en prod .....

    nuke_y , tu penses à quelles informations à modifier ?
    Bah je n'arrive pas à trouver les informations concernant les infos machine client (pour Oracle) dans les drivers.
    Quelqu'un aurait un lien vers la javadoc des drivers Oracle classes12.zip ?

  11. #11
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Fais une recherche sur Google avec
    "select for update nowait" jdbc lock
    . Une littérature importante existe sur ce problème.
    Bien le bonjour chez vous
    Jowo

  12. #12
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    377
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 377
    Points : 356
    Points
    356
    Par défaut
    Ouai mais en fait le problème c'est que c'est toujours la même réponse.
    Vérifier qui lock la ligne en question avant toute chose.
    Là j'ai probablement un problème de synchronisation des deux serveurs ou dans mon serveur peut-être.
    Mais pour l'instant je ne sais pas qui lock en même temps que moi.
    Et le temps que je demande au DBA qui lock (celui-ci a disparu).
    C'est pour çà que je voulais le faire juste après l'exception du NOWAIT.

  13. #13
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Certes certes mais ça ne résoud pas le problème que ses 2 serveurs sont indifférenciables.

    Au fait est-ce qu'on a pas moyen de connaître l'IP du client sous Oracle??!! Avec l'IP le problème serait contourné (à défaut d'être résolu).

    Sinon pour ton problème essaye de définir le nom du serveur dans les property qui vont être utilisées pour créer la connexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DriverManager.getConnection(java.lang.String, java.util.Properties),
    Je pense que si tu donnes au DriverManager des Properties avec "user" = "le user", "password" = "le mot de pass", "machine" = "le nom de la machine ou son ip ou je sais pas quoi" ça devrait marcher.
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  14. #14
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    377
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 377
    Points : 356
    Points
    356
    Par défaut
    Ok je vais essayé çà.
    J'y es pensé , mais je ne savais pas quoi comme clé.
    Allez au diable les varices , j'essaie avec machine ;-)

  15. #15
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Si tu peux poster ton bout de code aussi, histoire qu'on voit le problème. J'essaye de voir si j'ai pas un classes12.zip qui traine dans le coin pour tester.
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  16. #16
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    377
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 377
    Points : 356
    Points
    356
    Par défaut
    Bon test non concluant.
    Ni avec MACHINE, ni avec OSUSER

  17. #17
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Mince... Ca a RIIIIIIEN changé ? Bon alors est-ce que tu peux regarder la liste des properties ? Et poster ton bout de code
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  18. #18
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    377
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 377
    Points : 356
    Points
    356
    Par défaut
    Regarder quelle liste de Properties, c'est à moi de la définir.
    Sinon pour mon bout de code , cela ne donnera rien du tout malheureusement....
    Ce qui m'importe c'est de savoir qui mets ce PU..... de LOCK !!!!

  19. #19
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Ben si parce que comme ça je le reproduit chez moi et je peux tester
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  20. #20
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    377
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 377
    Points : 356
    Points
    356
    Par défaut
    Bah c'est facile pour tester tu créé une connexion avec Oracle et ensuite tu récupère la connexion, et vérifie que sur ton serveur tu as ta session avec jdbcclient d'indiqué plutôt que le nom de ta machine.
    Je comprends pas, tu veux quoi comme code ??

Discussions similaires

  1. [AC-2007] Comment définir un nom de table sous forme d'une variable ?
    Par JPJOLY dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 01/02/2011, 22h16
  2. [USER] Comment définir le nom d'utilisateur ?
    Par narmataru dans le forum NetBeans
    Réponses: 4
    Dernier message: 27/12/2006, 09h30
  3. [Vurtualhost]Comment définir un nom de domaine
    Par Jean_Benoit dans le forum Apache
    Réponses: 1
    Dernier message: 16/06/2006, 08h13
  4. Réponses: 4
    Dernier message: 09/11/2005, 17h11
  5. Réponses: 6
    Dernier message: 16/06/2005, 09h07

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