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 :

Délai d'attente long à la BDD


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 54
    Points : 58
    Points
    58
    Par défaut Délai d'attente long à la BDD
    Bonjour,
    J'utilise le driver jtds et lorsque ma BDD n'est pas connecté le temps pour que mon logiciel me le dise est de 1 min 30 environ ce qui est beaucoup trop long, je voudrais qu'au bout de 4 sec si il n'arrive pas à se connecté il me renvoie une erreur cependant lorsque j'utilise la fonction ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DriverManager.setLoginTimeout(4);
    il continue de mettre 1min ... pourriez vous m'aider ? MERCI.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ça dépend de ton driver jdbc. Par exemple, avec mysql, tu peux mettre

    ?connectTimeout=4000

    sur l'url de connexion.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 54
    Points : 58
    Points
    58
    Par défaut
    j'ai essayer jdbc:jtds:sqlserver://192.168.1.9:1433/***?connectTimeout=4000; mais apparemment avec jtds cela ne fonctionne pas

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 797
    Points
    4 797
    Par défaut
    Citation Envoyé par millecius Voir le message
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DriverManager.setLoginTimeout(4);
    il continue de mettre 1min ... pourriez vous m'aider ? MERCI.
    Tu peux mettre ton code complet connexion pour voir où tu places le setLoginTimeout ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 54
    Points : 58
    Points
    58
    Par défaut
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    public class ConnectToDB extends AsyncTask<String, String, String> {
    
        public String result = "",refInterne;
        Connection conn = null;
    
        protected String doInBackground(String... params) {
            try {
                String driver = "net.sourceforge.jtds.jdbc.Driver";
                Class.forName(driver).newInstance();
    
                String connString = "jdbc:jtds:sqlserver://192.168.1.9:1433/***;";
                String sqlusername = "***";
                String sqlpassword = "***";
    
                DriverManager.setLoginTimeout(4);
                conn = DriverManager.getConnection(connString, sqlusername, sqlpassword);
                if(conn != null)
                {
                    String articleQuery = "SELECT ref_interne, ref_client FROM articles WHERE ref_interne = '" + refInterne + "';";
    
                    PreparedStatement stmt = conn.prepareStatement(articleQuery);
    
                    ResultSet rs;
    
                    rs = stmt.executeQuery();
    
                    while (rs.next()) {
                        result = rs.getString("ref_client");
                    }
                    conn.close();
    
                    if (result.length() <= 1) {
                        return "Référence " + refInterne + " non trouvée !\n";
                    } else {
                        return "La référence client est : " + result;
                    }
                }
            } catch (Exception e){
                result = e.toString();
                if(conn == null)
                {
                    return "Impossible de se connecté à la BDD";
                }
            }
            return result;
        }

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    ça dépend de ton driver jdbc. Par exemple, avec mysql, tu peux mettre

    ?connectTimeout=4000

    sur l'url de connexion.
    Citation Envoyé par millecius Voir le message
    j'ai essayer jdbc:jtds:sqlserver://192.168.1.9:1433/***?connectTimeout=4000; mais apparemment avec jtds cela ne fonctionne pas
    Mon exemple concernait mysql, chaque driver jdbc a ses propre paramètres.

    Le driver jdbc de microsoft donne ceci dans la doc.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    loginTimeout
     
     
    int [0..65535]
     
     
    15
     
     
    The number of seconds the driver should wait before timing out a failed connection. A zero value indicates that the timeout is the default system timeout, which is specified as 15 seconds by default. A non-zero value is the number of seconds the driver should wait before timing out a failed connection.
     
    If you specify a Virtual Network Name in the Server connection property, you should specify a timeout value of three minutes or more to allow sufficient time for a failover connection to succeed. See JDBC Driver Support for High Availability, Disaster Recovery for more information.

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 54
    Points : 58
    Points
    58
    Par défaut
    Donc j'ai essayer se que dit la doc c'est à dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DriverManager.getConnection("jdbc:jtds:sqlserver://192.168.1.9:1433/GMDAUTO;loginTimeout=4;", sqlusername, sqlpassword);
    mais toujours la même chose, 1 min 30 environ d'attente pour que le driver s’aperçoive que la BDD n'est pas connecté ...

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 54
    Points : 58
    Points
    58
    Par défaut
    Bon c'était un problème de version apparemment ma version ne supportait pas cette déclaration ..
    Bref merci tchize_.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par millecius Voir le message
    Donc j'ai essayer se que dit la doc c'est à dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DriverManager.getConnection("jdbc:jtds:sqlserver://192.168.1.9:1433/GMDAUTO;loginTimeout=4;", sqlusername, sqlpassword);
    C'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DriverManager.getConnection("jdbc:jtds:sqlserver://192.168.1.9:1433/GMDAUTO?loginTimeout=4", sqlusername, sqlpassword);
    un ? par un ; pour introduire les paramètres!

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 54
    Points : 58
    Points
    58
    Par défaut
    Dans la donc il dise que ses des point-virgules, j'ai mis un ; et sa fonctionne donc non se n'est pas un ? du moins pas pour le driver jtds.

  11. #11
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 797
    Points
    4 797
    Par défaut
    Je vais tout de même ajouter mon grain de sel.
    On peut aussi mettre le timeout sur le statement et non sur la connexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
               
                    ...
                    PreparedStatement stmt = conn.prepareStatement(articleQuery);
                    stmt.setQueryTimeout(4);
                    ResultSet rs;
                    ...
    ce qui règle au passage le problème de syntaxe éventuellement différente d'un driver à l'autre
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ça nécessite un statement, donc un objet Connection, donc on a déjà attendu 1 minute pour l'avoir

  13. #13
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 797
    Points
    4 797
    Par défaut
    Ah ben oui tient ! ça m'apprendra à lire correctement la question posée au début !!!
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/05/2006, 11h39
  2. Délai d'attente expiré !
    Par Le Pharaon dans le forum MS SQL Server
    Réponses: 15
    Dernier message: 22/05/2006, 19h25
  3. "Délai d'attente expiré" aléatoire
    Par denilson74 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/07/2005, 10h48
  4. Délai d'attente expiré
    Par zut94 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 06/07/2005, 21h50
  5. Délai d'attente expiré
    Par amiral thrawn dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/04/2003, 12h04

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