クエリ
がデータベースからデータを取得するのに 1 分以上かかっているとします (データの量が多いため)。
select タグに "timeout" 属性を設定する (単一のクエリのみの場合) または settings タグに "defaultStatementTimeout" 属性を設定する (SqlMapConfig.xml - すべてのクエリの場合) 実行中のクエリを強制的に終了させることができることはわかっています。
<select id='uniqueName' parameterClass='java.util.Map' resultClass = "java.lang.String" timeout="60">
また
<settings useStatementNamespaces="false" defaultStatementTimeout="60"/>
上記の設定を行うことで、IBatis は「ユーザーがリクエストをキャンセルしました」というエラーをスローし、実行を終了します。
実行を終了する他の方法はありますか?
私のシナリオは次のとおりです。
ユーザーが 3 年分のデータを要求すると、データベースからデータを取得するのに 1 分以上かかります。
その間、ユーザーが1日分のデータをリクエストしたり、「キャンセル」リクエストを送信したりすると、限られたユーザーでもパフォーマンスに影響を与えるため、前回の実行(3年間のデータ取得)を強制的に終了する必要があります。
注
上記の設定は使用しませんでした。
これに対する解決策を教えてください。前もって感謝します。