我正在使用 Apache Axis 2 实现 SOAP 客户端。由于 SOAP 客户端必须处理大量请求,我正在使用连接池。
为此,我必须为从 WSDL 文件生成的 stub 设置一些传输层配置:
stub._getServiceClient().getOptions().setProperty(HTTPConstants.REUSE_HTTP_CLIENT, Constants.VALUE_TRUE);
MultiThreadedHttpConnectionManager connectionManager = new MultiThreadedHttpConnectionManager();
connectionManager.getParams().setDefaultMaxConnectionsPerHost(MAX_CONNECTIONS_PER_HOST);
connectionManager.closeIdleConnections(IDLE_CONNECTION_TIMEOUT);
HttpClient httpClient = new HttpClient(connectionManager);
stub._getServiceClient().getOptions().setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpClient);
我的客户似乎工作得很好。但是,我想知道如何测试连接池是否以正确的方式工作(即创建的连接仅在 IDLE_CONNECTION_TIMEOUT 常量定义的时间后才被销毁)。有什么想法吗?
最佳答案
基于 JUnit 3.x 的伪代码:
setUp() {
initialize connection manager;
initialize connection by creating client;
}
tearDown() {
close connection if necessary;
close connection manager if necessary;
}
testConnectionOpen() {
assert that connection is open;
pause for time of idle connection timeout - 1 second;
assert that connection **is still open**;
}
testConnectionClosed() {
assert that connection is open;
pause for time of idle connection timeout + 1 second;
assert that connection **is closed**;
}
加 1 秒和减 1 秒应根据连接管理器的灵敏度进行调整。
关于java - 我如何测试我的连接池是否以正确的方式工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1093888/