Bonjour,
J'ai un problème d'exécution d'une requête sql vers un AS400. Celle-ci reste bloquée indéfiniment (au bout de plusieurs heures sans réponse, je pense qu'on peut employer le mot "indéfiniment" ) sans qu'aucune exception ne sois sortie. Le code est on-ne-peut-plus simple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
            Connection connection = getConnexion(); // création de la connection si elle est "morte" ou inexistante
            Statement stmt = connection.createStatement();
            ResultSet rs = stmt.executeQuery(request);
            /* traitement du résultat */
En ayant encadré le code de message vers la log, je suis certain que le problème vient de la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ResultSet rs = stmt.executeQuery(request);
Le problème intervient de façon aléatoire, mais environ tous les jours (voir avec de la "chance" tous les 2 jours).
Comme je cherche à me connecter via une connexion bancale sur un serveur bancal (oui, tout ça ne tient pas trop, la preuve... ) je pense que je perd la connexion pendant l'exécution de la requête (j'ai d'ailleurs assez souvent des time out sur le getConnexion()).

J'ai tenté de mettre un time out sur le statement (stmt.setQueryTimeout(60)) avant l'exécution de la requête mais rien ne change.

Note : en recréant une connexion vers ce même serveur, j'arrive à le débloquer (il n'aime pas trop qu'on ouvre 2 fois la même ).