开发中遇到的神奇问题集

1、org.apache.lucene.store.LockObtainFailedException: Lock held by this virtual machine: /data/statics/upload/index/write.lock

lucene释放不了锁

原因:我使用了 try-with-resources实现自动关闭流。本地和测试机都没问题。正式机之前也没问题,换了文件共享盘之后就报错了

解决过程:

   (1)删除write.lock文件,无效果

   (2)删除全部索引文件,再重新生成,无效果

   (3)重启项目  无效果

   (4) try-with-resources方式改成try-catch-finally 在finally中释放, 重启项目生效。

            按理说try-with-resources是可以自动释放资源的,Lucene中需要关闭的资源也满足try-with-resources自动关闭流的条件

            但是一操作正式机就报错,其中原因未找到

      try-with-resources知识点:try-with-resources 是 JDK 7 中一个新的异常处理机制,它能够很容易地关闭在 try-catch 语句块中使用的资源。所谓的资源(resource)是指在程序完成后,必须关闭的对象。try-with-resources 语句确保了每个资源在语句结束时关闭。所有实现了 java.lang.AutoCloseable 接口(其中,它包括实现了 java.io.Closeable 的所有对象),可以使用作为资源。

try-with-resources 声明在 JDK 9 已得到改进。如果你已经有一个资源是 final 或等效于 final 变量,您可以在 try-with-resources 语句中使用该变量,而无需在 try-with-resources 语句中声明一个新变量。(详见:Java 9 改进的 try-with-resources

2、nested exception is org.hibernate.exception.LockAcquisitionException: could not execute statement

锁请求异常

出现情况:(1)并发通过条件删除,删除的是空行。并发3就这个错了

                  (2)并发批量更新,项目下的数据全部查出来,一起保存,但实际只更新了几条或者不更新。然后并发这个接口。并发10失败7个

                     得出结论:在删除和更新的时候尽量只操作受影响的行,否则并发会出现问题

                     原因:暂时未找到,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值