Bonjour à tous, Vendredi dernier j'ai commencé a faire des tests pour reproduire l'erreur SocketClosed entre Postgres et ToPIA. L'erreur semble se produire après un certain temps d'exécution, mais la cause n'est pas perceptible. Première version : ------------------ 1 seul Thread qui fait une lecture écriture toutes les 100ms lancé à partir d'un Servlet dans Tomcat.
résultats : impossible de reproduire l'erreur après 2 jours d'exécution.
Deuxième version : ------------------ 2 Thread, un qui écrit (create/update/delete) et l'autre qui lit. Problème de ConcurrentModificationException. Je pensais que cela pouvait provenir d'une simple logique : impossible d'écrire pendant une lecture. Du coup j'ai placé des lock synchronisés. Les Threads sont exécutés en même temps (avec intervalle de 1sec) puis executent une 20aine d'actions par minute.
résultats : encore un problème de ConcurrentModificationException, les locks ne semblent pas efficaces. L'exécution a cependant durée une journée environ.
Troisième version : ------------------- Les deux Thread font les même actions que précédemment. La mise en place de lock autour de chacune des exécutions des Thread n'est pas une bonne idée. Il n'y a plus de concurrence. Cependant aucune ConcurrentModificationException n'apparait. Cette exception provient en fait d'un bug dans ToPIA : voir Ano#546 http://nuiton.org/issues/show/546 Donc maintenant les deux Threads sont prêt et les locks ne sont plus nécessaire. Un temps d'inactivité a été ajouté a l'algorithme d'execution. Les deux Threads vont tournés pendant 1h puis s'arreté pour être relancé 2h après. Cela permettra de détecter si l'inactivité de l'application est un facteur majeure pour reproduire le Socket Closed. Je vais lancer la dernière version pour la laisser tourner voir si cela plante. Les sources du test sont situées dans la sandbox sur nuiton : http://nuiton.org/repositories/browse/sandbox/testTopiaPostgresError Cordialement, -- Florian Desbois <fdesbois@codelutin.com> SSLL Code Lutin Tel: 02 40 50 29 28 http://www.codelutin.com Membre du Réseau Libre-entreprise