Java JDBC: Réponse.fill()
- Je obtenir de l'exception suivante:
com.ibm.db2.ccc.b.gm: [ccc][t4][2030][11211][3.50.152] Une erreur de communication s'est produite au cours des opérations sur la connexion sous-jacente du socket, socket flux d'entrée,
ou de la prise de sortie de flux. Localisation d'erreur: Réponse.fill(). Message: Connection reset. ERRORCODE=-4499, SQLSTATE=08001
Le problème est que le code s'exécute avec succès depuis un certain temps et puis soudain, je reçois cette exception. Cependant, il fonctionne perfrectly lorsque j'exécute le code à nouveau.
Peut-on me dire ce qui pourrait être mal et de me fournir quelques conseils pour résoudre ce problème.
Veuillez consulter ce lien www-01.ibm.com/support/docview.wss?uid=swg21962086 et www-01.ibm.com/support/docview.wss?uid=swg21600160
OriginalL'auteur | 2009-09-10
Vous devez vous connecter pour publier un commentaire.
C'est un signe de ne pas fermer correctement/en libérant les ressources JDBC. Vous avez besoin d'acquérir et fermer toutes les ressources JDBC dans le plus court possible, c'est à dire que vous devez les fermer dans l'ordre inverse dans le
finally
bloc de latry
bloc de la même méthode de bloc que vous avez acquis. E. g.Si vous ne fermez pas correctement dès que possible, la DB va le prendre en mains propres, tôt ou tard, et que votre demande peut briser tôt ou plus tard que vous avez rencontré vous-même.
Pour améliorer les performances de la connexion, utiliser un pool de connexion --vous avez encore besoin d'acquérir et de les fermer de la même manière que ci-dessus! Il est maintenant juste un pool de connexion en œuvre, sous le capot de soucis au sujet de fait la fermeture de la connexion ou non.
certainement BRAS aidera beaucoup dans la réduction de la
close()
-en-finally
standard. Cependant, vous pouvez également opter pour JPA, qui à son tour réduit l'ensemble de JDBC standard pour un oneliner.Intéressant. Connaissez-vous des articles sur la JPA vs pure JDBC. Je suppose que je suis venue à partir de l'expérience où les couches d'abstraction ont rendu parfois notre pire et plus difficile à déboguer. J'ai trouvé pure JDBC assez simple (du moins lorsque l'on travaille avec juste une pure chaînes SQL). Je peux voir où il serait mieux travailler avec les Objets. Et il gère les ressources de fermeture pour vous?
Aucun ne me vient à l'esprit. De travail par le biais de certains de base JPA tutoriels doivent donner de bonnes idées si. E. g. vogella.de/articles/JavaPersistenceAPI/article.html et eclipse.org/webtools/dali. Oui, de manière transparente les poignées de fermeture (et aussi le transactionnel des trucs avec
begin()
etcommit()
quand vous le faites dans un EJB).OriginalL'auteur BalusC
nous avons aussi récemment fait face à ce problème, et c'était dû à la confusion ET des clauses OU avec un et rownum < clause. Mettre des croisillons à la bonne place résolu.
OriginalL'auteur ManojM
Il semble que votre connexion est le moment de sortir. Je ne suis pas vraiment où est le problème. Il pourrait être avec la connexion à votre serveur de base de données. Je suis désolé, je ne peux pas vous aider plus, mais je espère que cette aide.
OriginalL'auteur John Kane
Je semble que cela peut être causé par
https://www-304.ibm.com/support/docview.wss?uid=swg1IC63952
Au moins pour nous, il est.
Vérifier votre db2diag.journal pour
ZRC=0x8005006D=-2147155859=SQLE_CA_BUILT
des messages d'erreur lorsque vous obtenez ces déconnexions."SQLCA has been built and saved in component specific
control
block."
Plus tard cette semaine, nous avons l'intention de mettre à niveau vers DB2 9.7 FixPack 3a-va écrire de nouveau si cela a aidé.
OriginalL'auteur Maxym