Spring et Apache J'utilise le BasicDataSource Apache pour les DBCP communes et une piscine connexion:JDBC reconnectez problèmes avec pilote Teradata à l'aide DataSource
org.apache.commons.dbcp.BasicDataSource
et sa gestion par Spring:
org.springframework.jdbc.datasource.DataSourceTransactionManager
Bien que en utilisant cette combinaison avec le pilote Teradata JDBC si ma base de données tombe en panne ou il y a un problème de réseau, je reçois l'erreur suivante:
08S01 804 : I/O Error, Socket closed. Packet stream write error
Ce qui reflète la situation correctement, mais le problème est avec la reconnexion. Lorsque l'erreur est corrigée physiquement ou lorsque DB réapparaît et que mon programme tente de l'interroger, je finis toujours par obtenir la même erreur pendant une certaine période, qui varie par exemple. 20 minutes, heures, jamais. Le problème disparaît lorsque je redémarre ma machine virtuelle Java ou que vous modifiez la chaîne de connexion, par exemple. utilise l'adresse IP au lieu du nom d'hôte.
Existe-t-il un paramètre dans DataSource ou le gestionnaire de transactions de Spring qui peut le corriger? ou peut-être un paramètre TCP/IP?
Nous utilisons déjà la commons pool de connexion (j'ai édité cela dans la question, merci) Ceci fonctionne sur la JVM simple sous un Java Service Wrapper (http://wrapper.tanukisoftware.com) pour l'exécuter en tant que service Windows/démon Unix. –
Je les ai vérifiés. Il y a des paramètres pour l'inactivité, attendez mais rien pour l'erreur ou reconnectez –