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 :

com.sun.appserv.jdbc.DataSource & BadConnectionException


Sujet :

JDBC Java

  1. #1
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 103
    Points
    103
    Par défaut com.sun.appserv.jdbc.DataSource & BadConnectionException
    Bonjour, j'ai trouvé ce code tres interessant, mais je ne trouve pas de bonnes infos sur "BadConnectionException"

    Savez vous ou je peux trouver cette classe ?

    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
    com.sun.appserv.jdbc.DataSource ds=
       (com.sun.appserv.jdbc.DataSource)context.lookup("dataSource");
    Connection con = ds.getConnection();
    Statement stmt = null;
    try{
       stmt = con.createStatement();
       stmt.executeUpdate("Update");
    }
    catch (BadConnectionException e){
       dataSource.markConnectionAsBad(con) //marking it as bad for removal
    }
    finally{
       stmt.close();	
       con.close(); //Connection will be destroyed during close.
    }

  2. #2
    Membre éprouvé Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Points : 934
    Points
    934
    Par défaut
    je ne trouve pas de bonnes infos sur "BadConnectionException"
    Savez vous ou je peux trouver cette classe ?
    google ?
    http://publib.boulder.ibm.com/infoce...Exception.html

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    pourquoi utiliser des package en com.sun?? C'est package ne sont pas garantis de pérénité d'une version à l'autre, pourquoi ne pas utiliser l'api JDBC plutot?

  4. #4
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 103
    Points
    103
    Par défaut


    j'avais vu ce liens, je ne suis pas chaud pour prendre un package IBM

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    je réitère ma question, pourquoi ne pas prendre directement les package JDBC?

  6. #6
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    pourquoi utiliser des package en com.sun?? C'est package ne sont pas garantis de pérénité d'une version à l'autre, pourquoi ne pas utiliser l'api JDBC plutot?
    j'utilise "com.sun.appserv.jdbc.DataSource" pour la methode "getNonTxConnection" qui permet d'obtenir une connection non transactionnelle.

    Puis j'ai vu la methode "markConnectionAsBad" que je trouvais pas mal.

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    sauf que dans ton code ça ne sert à rien. Le datasource est supposé capable de gérer lui même l'état des connection (quitte à lui donner dans sa config une requete de validation) et tu récupère une connection via la voie standard.

    En pratique, il vaut mieux éviter de commencer à jouer avec des apis spécifique à un conteneur, sinon tu l'aura dans l'OS à la première migration / mise à jour

  8. #8
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 103
    Points
    103
    Par défaut
    ca ce tient, j'ai trouvé cette info dans le guide du dev pour Glassfish
    http://docs.sun.com/app/docs/doc/819-3672/beamr?a=view

    Mais pour la connexion non transactionnelle ? le l'ai paramétré comme tel dans ma datasource, mais les arguments du site semblent valables

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    le site en question donne des méthodes plus standard pour avoir des connection qui ne font pas partie de la transaction englobant, sans devoir recourir à du typecasting propriétaire.


    Aussi, depuis quelques années que je fais du java en conteneur web, jamais je n'ai du demander explicitement au conteneur de retirer une connection du pool, je reste donc dubitatif quand à l'utilité de la méthode markAsBad.

  10. #10
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    le site en question donne des méthodes plus standard pour avoir des connection qui ne font pas partie de la transaction englobant, sans devoir recourir à du typecasting propriétaire.
    c'est à dire ?
    J'ai toujours utilisé le Datasource standard, mais en regardant cette doc, je me suis dis pourquoi pas ?

Discussions similaires

  1. [JNDI][DATASOURCES] jdbc -> datasources
    Par mlequim dans le forum JDBC
    Réponses: 6
    Dernier message: 15/04/2009, 09h58
  2. [JAXP] com.sun.xml.parser.ValidatingParser
    Par yolepro dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 05/11/2008, 15h36
  3. Où trouver la classe com.sun.appserv.DataSource ?
    Par tidou dans le forum Glassfish et Payara
    Réponses: 1
    Dernier message: 12/05/2007, 09h55
  4. [JDBC]datasource-pool-transactionUser
    Par Wessim dans le forum JDBC
    Réponses: 1
    Dernier message: 19/03/2005, 20h56

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