ser*_*man 5 sqlite locking connection-pooling jdbc
我正在使用sqlite 实现基于文件的队列(请参阅我之前的问题).我在后台运行以下线程:
现在我想要的行为是每个线程获得它需要的任何锁(如果可能的话,等待超时),然后完成事务.如果线程不同时运行也没关系 - 重要的是事务一旦开始就不会因"锁定"错误(例如"数据库被锁定")而失败.
我查看了事务文档,但似乎没有"超时"工具(我正在使用JDBC).可以在连接中将超时设置为大量吗?
我能想到的一个解决方案(未经验证)是拥有最多1个连接的连接池.因此,一次只能连接一个线程,因此我们不应该看到任何锁定错误.还有更好的方法吗?
感谢名单!
如果是我,我会使用单个数据库连接句柄。如果一个线程需要它,它可以在关键部分(或互斥锁或类似的)内分配它 - 这基本上是一个穷人的连接池,池中只有一个连接:)它可以与数据库一起处理事务。完成后,它退出关键部分(或释放互斥体或?)。如果您仔细使用单个数据库连接,则不会出现锁定错误。
-大学教师
| 归档时间: |
|
| 查看次数: |
1290 次 |
| 最近记录: |