gpt4 book ai didi

java - FhirContext 重用最佳实践返回异常 "Timeout waiting for connection from pool"

转载 作者:行者123 更新时间:2023-12-01 09:14:33 25 4
gpt4 key购买 nike

我有一个 jsp,它使用 dstu2 异步进行 25 个 hl7 hapi fhir 调用。正如最佳实践中所建议的,我使用静态加载创建一次 fhir 上下文,并在每个服务调用中重用它。但是,服务调用间歇性地失败,并显示以下堆栈跟踪:(我为每个服务调用初始化了 fhir 上下文,并且此问题得到了解决。但是,这会减慢调用速度。有人可以帮助我使用任何替代方法或告诉我我要做什么吗?我做错了)

原因:org.apache.http.conn.ConnectionPoolTimeoutException:WAITING池中的连接超时

公共(public)类 MyFHIRContext{

public static FhirContext ctx;

static{
ctx = FhirContext.forDstu2();
ctx.getRestfulClientFactory().setSocketTimeout(60 * 1000);
ctx.getRestfulClientFactory().setConnectTimeout(60 * 1000);
ctx.getRestfulClientFactory().setServerValidationMode(ServerValidationModeEnum.NEVER);
}

}

调用代码:IGenericClient 客户端 = MyFHIRContext.ctx.newRestfulGenericClient("服务器 url");

最佳答案

该异常表明您的连接池不够大,无法支持那么多重叠请求。

您可以使池更大,或者更好的是,通过将所有(或一组)请求作为批处理请求发出来减少请求数量 - 请参阅 http://hl7.org/fhir/DSTU2/http.html#transaction了解详情。

我们在 FHIR 客户端中广泛使用批量请求,取得了良好的效果。

关于java - FhirContext 重用最佳实践返回异常 "Timeout waiting for connection from pool",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40667839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com