Looking for advice on configuring the underlying Apache HttpClient within the Genesys Cloud Java SDK to prevent connection pool exhaustion during rapid WebSocket reconnection attempts for supervisor dashboard stats. I am implementing a custom reconnection handler that aggressively retries the /api/v2/analytics/queue/events endpoint when the WebSocket drops, but I am seeing java.util.concurrent.TimeoutException: Timeout waiting for connection from pool errors after roughly 500 reconnection cycles. The documentation explicitly states, “The SDK uses a default connection pool of 20 connections which may be insufficient for high-throughput event streaming applications.” I have attempted to inject a custom HttpClientBuilder via the PlatformClient.setHttpClient method, but the SDK seems to ignore my custom PoolingHttpClientConnectionManager settings. Here is my configuration snippet:
PlatformClient client = PlatformClientFactory.createClient();
PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager();
connManager.setMaxTotal(200);
connManager.setDefaultMaxPerRoute(100);
HttpClient customClient = HttpClients.custom()
.setConnectionManager(connManager)
.build();
client.setHttpClient(customClient);
Despite this, the pool remains capped at the default. Is there a specific internal factory method I need to override, or am I missing a required configuration flag in the PlatformClient.Builder to enforce custom connection management? The error logs indicate the pool is full but connections are not being released, suggesting a potential thread-safety issue with how the SDK handles WebSocket closure events versus HTTP keep-alive states.