39 キャッシュ操作でのタイムアウトの使用
多くのスレッドがCoherenceキャッシュに同時にアクセスすると、Coherenceキャッシュ操作のコール元が共通のロックでブロックされることがあります。このブロックにより、スタック・スレッドが蓄積する可能性があります。これらのスタック・スレッドを回避するために、Coherenceは中断可能なロックを使用し、指定したタイムアウト間隔後に操作を中断できます。タイムアウトAPIを使用することで、ブロック時間が指定のタイムアウト間隔を超えると、ブロック操作を中断し、エラーを発生させることができます。
次に、
getCache
操作が指定した2分間のタイムアウト間隔より時間がかかる場合に、タイムアウトAPIを使用してこの操作を中断する方法の例を示します。try (Timeout t = Timeout.after(2, TimeUnit.MINUTES))
{
NamedCache cache = CacheFactory.getCache("myCache");
}
catch (InterruptedException e)
{
// error out getCache() due to timed out.
}
親トピック: データ・グリッド操作の実行