You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ignite Cache执行close+destroy后报“Cache已关闭”异常问题咨询

Ignite缓存销毁异常原因及正确操作方式

异常原因

  • cache.close()仅关闭当前节点的缓存本地实例,释放该节点上的缓存资源,但集群中缓存的元数据和其他节点的缓存实例仍然存在。
  • 调用close()后,当前节点的缓存实例已处于失效状态,再调用cache.destroy()时,这个失效的实例无法发起集群级的销毁指令,因此抛出Cache has been closed异常。

为什么仅调用destroy()无异常

cache.destroy()是集群级操作,它内部会自动完成以下流程:

  1. 通知所有节点关闭各自的缓存实例
  2. 清理集群中的缓存元数据
  3. 彻底移除整个集群中的该缓存资源
    不需要手动提前调用close(),Ignite已经在destroy()内部处理了节点级的关闭逻辑。

缓存是否彻底销毁的验证方式

调用destroy()后,可通过以下方式确认:

  • 执行ignite.cacheNames(),查看返回的缓存名称列表中是否还包含目标缓存
  • 在集群其他节点上尝试获取该缓存,确认是否返回null或抛出缓存不存在的异常

正确操作流程

直接调用cache.destroy()即可,无需先执行cache.close():

// 正确的缓存销毁操作
cache.destroy();

内容的提问来源于stack exchange,提问作者Rohan19

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 16:02:03