質問
RESTコネクターなどの「トランザクションをサポートしていない」コネクターを使用した場合のコネクションプールの生存期間を教えてください。
回答
トランザクションをサポートしてないコネクターのコネクションプールの生存期間は、そのコネクターが参加しているトランザクションが終了するまでです。
また、[トランザクション]処理や[スレッド]処理内でトランザクションをサポートしていないコネクターを使用した場合、新たにコネクションプールが生成されます。
例として、下図のようなスクリプト構成である場合のコネクションプールの生存期間を示します。
「REST:A」および「REST:C」は同じコネクションプールが使用されます。
「REST:B」は「REST:A」、「REST:C」とは異なるコネクションプールが使用されますが、[スレッド]処理外に処理が進むと、「REST:B」のコネクションプールは破棄されます。
ご注意点
上図のような構成で、かつ同一の OAuth 2.0 コネクションを使用している場合、以下の条件を満たすケースでは注意が必要です。
- 接続先サービスの仕様で、アクセストークンの更新時にリフレッシュトークンも同時に更新される場合
「REST:B」の時点で更新したアクセストークンおよびリフレッシュトークンは「REST:C」には引き継がれません。
「REST:C」は「REST:A」の時点で生成したコネクションプールを参照するためです。
「REST:C」は処理の開始時に再びアクセストークンを更新しようとします。
そのため、対向先がリフレッシュトークンの再利用を禁止している場合、アクセストークンの更新に失敗するのでご注意ください。
なお、対向先のリフレッシュトークンおよびアクセストークンの仕様については対向先の仕様書等をご参照ください。
コメント
0件のコメント
記事コメントは受け付けていません。