Từ dấu vết ngăn xếp và ví dụ mã, có vẻ như bạn không sử dụng lại ngăn xếp Cayenne (đối tượng ServerRuntime), thay vào đó hãy tạo một ngăn xếp mới. Ngoài việc chậm, điều này cũng dẫn đến rò rỉ tài nguyên. Mỗi ServerRuntime có một nhóm kết nối riêng mà bạn không tắt. Vì vậy, sớm muộn gì máy chủ PostreSQL cũng bị tràn các kết nối mở.
Giải pháp là biến ServerRuntime thành một singleton phạm vi ứng dụng (ví dụ:đặt nó thành var tĩnh của AccountsDBRuntime) và sử dụng lại nó bất cứ khi nào bạn cần ObjectContext mới.