如何避免Informix中的锁定异常

胡迪

我有一个uuid表,其中包含四列:id,uuid,used(true / false)和用于乐观锁定的版本。大约有10000条记录。当我想向桌子人插入新人时,我首先从桌子中读取了未使用过的uuid。然后,我更新此已使用的记录并插入新人员。但是,当我运行性能测试时,我在使用表uuid以及选择或更新记录时遇到问题。有很多超时锁定ISAM错误:

Caused by: java.sql.SQLException: ISAM error: Lock Timeout Expired
    at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:413) ~[ifxjdbc.jar:?]
    at com.informix.jdbc.IfxSqli.E(IfxSqli.java:3982) ~[ifxjdbc.jar:?]
    at com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2698) ~[ifxjdbc.jar:?]
    at com.informix.jdbcx.IfxXASqli.receiveMessage(IfxXASqli.java:116) ~[ifxjdbcx.jar:?]
    at com.informix.jdbc.IfxSqli.executeCommand(IfxSqli.java:939) ~[ifxjdbc.jar:?]
    at com.informix.jdbc.IfxResultSet.b(IfxResultSet.java:304) ~[ifxjdbc.jar:?]
    at com.informix.jdbc.IfxStatement.c(IfxStatement.java:1283) ~[ifxjdbc.jar:?]
    at com.informix.jdbc.IfxPreparedStatement.executeUpdate(IfxPreparedStatement.java:421) ~[ifxjdbc.jar:?]
    at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteUpdate(WSJdbcPreparedStatement.java:1187) ~[com.ibm.ws.runtime.jar:?]
    at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeUpdate(WSJdbcPreparedStatement.java:804) ~[com.ibm.ws.runtime.jar:?]

我如何避免这种异常?网站中的隔离级别设置为TRANSACTION_READ_COMMITTED锁定模式,等待时间设置为2s,并且表具有行锁定

用户名

2秒的超时时间非常短。您正在使用多少个并发线程进行测试?我敢打赌,您几乎没有时间在2s到期之前提交。使用30s,并修改您的代码以从uuid表中获取下一个值,并尽快提交!不要执行其他工作。我建议分配一个新的uuid,插入新的用户行并提交。然后继续其他工作。

另外,添加用户并不会令我感到震惊,因为需要对并发活动进行严格的性能测试。但是,如果要在另一个将被大量访问的表上使用此技术,则可能会遇到真正的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何避免锁定在mongodb中

来自分类Dev

如何避免cpp中的异常?

来自分类Dev

如何避免Java中的空指针异常

来自分类Dev

如何避免BufferOverflow异常?

来自分类Dev

如何避免Android中未找到类的异常?

来自分类Dev

如何避免在onCompleted中引发的异常被吞下

来自分类Dev

如何避免未使用的SIMD通道中的浮点异常

来自分类Dev

如何避免从arraylist中索引出p绑定异常

来自分类Dev

如何避免从arraylist中索引出p绑定异常

来自分类Dev

如何避免在onCompleted中引发的异常被吞下

来自分类Dev

如何动态锁定线程并避免竞争条件

来自分类Dev

登录错误时如何避免锁定UI?

来自分类Dev

如何避免Parquet MemoryManager异常

来自分类Dev

如何避免线程中断异常

来自分类Dev

如何避免ActionController :: InvalidCrossOriginRequest异常?

来自分类Dev

如何避免 Django 中的“数据库被锁定”sqlite3 错误?

来自分类Dev

尝试在锁定的代码块中捕获异常

来自分类Dev

如何避免Java中的“线程“主”中的异常” java.util.ConcurrentModificationException”错误

来自分类Dev

如何避免android view膨胀异常?

来自分类Dev

如何处理或避免BlockedIndefinitelyOnSTM异常?

来自分类Dev

如何避免从finally块引发异常

来自分类Dev

如何处理或避免BlockedIndefinitelyOnSTM异常?

来自分类Dev

如何避免异常EXC_RESOURCE-WAKEUPS?

来自分类Dev

如何在Informix中过滤dbaccess输出?

来自分类Dev

如何在Informix中过滤dbaccess输出?

来自分类Dev

如何在Informix中创建BTS索引

来自分类Dev

如何在Silex应用程序中避免超出请求范围的异常?

来自分类Dev

如何避免Winform服务总线消息接收器中的跨线程操作无效异常

来自分类Dev

如何在将字符串转换为long时避免android中的数字格式异常?

Related 相关文章

  1. 1

    如何避免锁定在mongodb中

  2. 2

    如何避免cpp中的异常?

  3. 3

    如何避免Java中的空指针异常

  4. 4

    如何避免BufferOverflow异常?

  5. 5

    如何避免Android中未找到类的异常?

  6. 6

    如何避免在onCompleted中引发的异常被吞下

  7. 7

    如何避免未使用的SIMD通道中的浮点异常

  8. 8

    如何避免从arraylist中索引出p绑定异常

  9. 9

    如何避免从arraylist中索引出p绑定异常

  10. 10

    如何避免在onCompleted中引发的异常被吞下

  11. 11

    如何动态锁定线程并避免竞争条件

  12. 12

    登录错误时如何避免锁定UI?

  13. 13

    如何避免Parquet MemoryManager异常

  14. 14

    如何避免线程中断异常

  15. 15

    如何避免ActionController :: InvalidCrossOriginRequest异常?

  16. 16

    如何避免 Django 中的“数据库被锁定”sqlite3 错误?

  17. 17

    尝试在锁定的代码块中捕获异常

  18. 18

    如何避免Java中的“线程“主”中的异常” java.util.ConcurrentModificationException”错误

  19. 19

    如何避免android view膨胀异常?

  20. 20

    如何处理或避免BlockedIndefinitelyOnSTM异常?

  21. 21

    如何避免从finally块引发异常

  22. 22

    如何处理或避免BlockedIndefinitelyOnSTM异常?

  23. 23

    如何避免异常EXC_RESOURCE-WAKEUPS?

  24. 24

    如何在Informix中过滤dbaccess输出?

  25. 25

    如何在Informix中过滤dbaccess输出?

  26. 26

    如何在Informix中创建BTS索引

  27. 27

    如何在Silex应用程序中避免超出请求范围的异常?

  28. 28

    如何避免Winform服务总线消息接收器中的跨线程操作无效异常

  29. 29

    如何在将字符串转换为long时避免android中的数字格式异常?

热门标签

归档