0

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 client = MyFHIRContext.ctx.newRestfulGenericClient("server url");

4

1 に答える 1

1

例外は、接続プールが、重複する多くのリクエストをサポートするのに十分な大きさではないことを示唆しています。

プールを大きくするか、すべて (またはそれらのグループ) をバッチ リクエストとして発行することで、リクエストの数を減らすことができます。詳細。

私たちは、FHIR クライアントでバッチ リクエストを広範囲に使用して効果を上げています。

于 2016-11-18T01:25:58.523 に答える