【问题标题】:FhirContext reusing best practice returns exception "Timeout waiting for connection from pool"FhirContext 重用最佳实践返回异常“等待来自池的连接超时”
【发布时间】:2016-11-18 09:25:58
【问题描述】:

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

原因:org.apache.http.conn.ConnectionPoolTimeoutException: 等待连接池超时

公共类 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");

【问题讨论】:

    标签: java hl7-fhir dstu2-fhir


    【解决方案1】:

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

    您可以使池更大,或者更好地通过将它们全部(或它们的组)作为批处理请求发出来减少请求的数量 - 有关详细信息,请参阅 http://hl7.org/fhir/DSTU2/http.html#transaction

    我们在 FHIR 客户端中广泛使用批处理请求以取得良好效果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-14
      • 2013-02-02
      • 2017-01-04
      • 1970-01-01
      • 2011-07-04
      • 1970-01-01
      • 2011-11-08
      相关资源
      最近更新 更多