sql >> Base de Datos >  >> RDS >> PostgreSQL

Apache Cayenne / PostgreSQL:demasiados clientes ya fallan

A partir del seguimiento de la pila y el ejemplo del código, parece que no está reutilizando la pila de Cayenne (objeto ServerRuntime), sino que está creando una nueva cada vez. Además de ser lento, esto también introduce una fuga de recursos. Cada ServerRuntime tiene su propio conjunto de conexiones que no cierra. Entonces, tarde o temprano, el servidor PostreSQL se desborda con conexiones abiertas.

La solución es convertir ServerRuntime en un singleton con ámbito de aplicación (por ejemplo, convertirlo en una variable estática de AccountsDBRuntime) y reutilizarlo cada vez que necesite un nuevo ObjectContext.