[英]How do I decrease the timeouts to create a c3p0 ComboPooledDataSource and get an Oracle db connection?
[英]decrease Wildfly connection timeouts
我的 java 應用程序在 Wildfly 中運行時遇到資源匱乏問題。 它正在對其他 REST 資源進行大量 API 調用,如果這些 API:s 之一變慢,我們的系統也會出現故障。
發生過后端系統在 14 秒內沒有響應的情況。 所以我希望我的應用程序在 4 秒后斷開連接。 “問題”是我們正在使用javax.ws.rs.client
Client
和ClientBuilder
並且我們使用 wildfly 作為實現。
所以我不知道如何設置這個超時參數。 從代碼中似乎不可能,而且我對哪個 Wildfly 子系統受到影響以及要設置哪些屬性感到非常迷茫。
有沒有人以前做過這個並且知道如何設置超時?
因此,由於wildfly 與resteasy 捆綁在一起,因此您必須為該特定實現實現超時。 或者強制wildfly使用其他東西。 由於在 Wildfly 上強制使用球衣似乎不是最好的(或最簡單的)想法,因此我開始配置它。
http://blog.eisele.net/2014/12/setting-timeout-for-jax-rs-20-resteasy-client.html
import javax.ws.rs.client.Client;
import org.jboss.resteasy.client.jaxrs.ResteasyClient;
import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
Client client = new ResteasyClientBuilder()
.establishConnectionTimeout(100, TimeUnit.SECONDS)
.socketTimeout(2, TimeUnit.SECONDS)
.build();
我在 pom.xml 中添加了以下內容:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>3.0.19.Final</version>
</dependency>
鑒於已棄用建立連接超時和套接字超時。
redhat 網站對 jboss v7.3 的解釋如下:
以下符合 ClientBuilder 規范的方法替換了某些已棄用的 RESTEasy 方法:
該connectTimeout方法代替establishConnectionTimeout方法。
- connectTimeout方法確定客戶端在建立新的服務器連接時必須等待的時間。
readTimeout方法取代了socketTimeout方法。
- readTimeout方法確定客戶端必須等待服務器響應的時間。
這對我有用 RestEASY 3.12.1.Final :
private Client clientBuilder() {
return new ResteasyClientBuilder()
.connectTimeout(2, TimeUnit.SECONDS)
.readTimeout(10, TimeUnit.SECONDS)
.build();
}
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>3.12.1.Final</version>
</dependency>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.