PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Apache Cayenne / PostgreSQL :trop de clients déjà en erreur

D'après la trace de la pile et l'exemple de code, il semble que vous ne réutilisiez pas la pile Cayenne (objet ServerRuntime), en en créant une nouvelle à chaque fois. En plus d'être lent, cela introduit également une fuite de ressources. Chaque ServerRuntime détient son propre pool de connexions que vous ne fermez pas. Ainsi, tôt ou tard, le serveur PostreSQL est surchargé de connexions ouvertes.

La solution consiste à transformer ServerRuntime en un singleton étendu à l'application (par exemple, en faire une variable statique de AccountsDBRuntime) et à le réutiliser chaque fois que vous avez besoin d'un nouvel ObjectContext.