hi all, I create a CloudSolrServer Connection by singleton pattern like this
public synchronized static CloudSolrServer getSolrCloudReadServer() { if (reviewSolrCloudServer == null) { ModifiableSolrParams params = new ModifiableSolrParams(); params.set(HttpClientUtil.PROP_MAX_CONNECTIONS, 10000); params.set(HttpClientUtil.PROP_MAX_CONNECTIONS_PER_HOST, 500); HttpClient client = HttpClientUtil.createClient(params); LBHttpSolrServer lbServer = new LBHttpSolrServer(client); lbServer.setConnectionTimeout(ReviewProperties.getCloudConnectionTimeOut()); lbServer.setSoTimeout(ReviewProperties.getCloudSoTimeOut()); reviewSolrCloudServer = new CloudSolrServer(ReviewProperties.getZkHost(),lbServer); reviewSolrCloudServer.setDefaultCollection("commodityReview"); reviewSolrCloudServer.setZkClientTimeout(ReviewProperties.getZkClientTimeout()); reviewSolrCloudServer.setZkConnectTimeout(ReviewProperties.getZkConnectTimeout()); reviewSolrCloudServer.connect(); } return reviewSolrCloudServer; } and I see the solrj API, the method to create an instance, and the method of shutdown public CloudSolrServer(String zkHost, LBHttpSolrServer lbServer) { this.zkHost = zkHost; this.lbServer = lbServer; this.updatesToLeaders = true; shutdownLBHttpSolrServer = false; } public void shutdown() { if (zkStateReader != null) { synchronized(this) { if (zkStateReader!= null) zkStateReader.close(); zkStateReader = null; } } if (shutdownLBHttpSolrServer) { lbServer.shutdown(); } if (myClient!=null) { myClient.getConnectionManager().shutdown(); } if(this.threadPool != null && !this.threadPool.isShutdown()) { this.threadPool.shutdown(); } } this kind of method by create an instance with a LBHttpSolrServer does not need to release LBHttpSolrServer and HttpClient?? look forward to your reply! Best Regards! Kent Mu