2016-11-18 3 views
0

dstu2を使用して25 hl7 hapi fhir呼び出しを非同期に呼び出すJSPがあります。ベストプラクティスで提案されているように、私はfhirコンテキストを静的なロードを使用して作成し、すべてのサービス呼び出しで再使用します。しかし、以下のスタックトレースでは、サービスコールが断続的に失敗します。(サービスコールごとにfhirコンテキストが初期化され、この問題は解決されますが、これによりコールが遅くなります。 org.apache.http.conn.ConnectionPoolTimeoutException::)間違っによって引き起こさベストプラクティスを再利用するFhirContextが例外を返します。 "プールからの接続を待っているタイムアウト"

をやっているのタイムアウトは、プール

パブリッククラスMyFHIRContext {

public static FhirContext ctx; 

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

}

CALからの接続を待っていますlingコード: IGenericClientクライアント= MyFHIRContext.ctx.newRestfulGenericClient( "サーバーURL");

答えて

1

例外は、接続プールが多数の重複要求をサポートするのに十分でないことを示しています。

プールを大きくするか、バッチリクエストとしてすべての(またはそのグループを)発行することで、リクエストの数を減らすことができます。詳しくは、http://hl7.org/fhir/DSTU2/http.html#transactionを参照してください。

FHIRクライアントでは、バッチリクエストを幅広く活用しています。

関連する問題