-1

为了保证每个数据库/资源​​只有一个写入事务,我正在创建一个 .lock 文件,以防止其他 JVM 启动会话。

但是,如果应用程序崩溃,我不确定如何在 Eclipse 中处理它。我想我必须手动删除文件?!那么,这是一个常见的解决方案还是存在其他解决方案?我认为重新启动的应用程序(崩溃后)无法与通常的应用程序区分开来,我认为这是 Eclipse 困扰我一两次的一件事,它没有显示我必须删除锁的正确消息 -重新启动 Eclipse 之前的文件。但我不确定这是否是问题所在。

好的,我可能有另一种写入事务的解决方案,它必须检查一个事务日志,该事务日志被删除以确保正确提交的事务。但是,写事务是在检查之后使用的。是否存在其他解决方案?我想不出任何...

4

2 回答 2

1

长期以来,数据库一直在处理事务和隔离。我一生都无法理解为什么你会看到重新发明这个轮子的必要性。你没听说过JTA吗?

看看 Spring 及其事务管理器。这个问题已经被其他人更好地解决了。

更新:NoSQL 意味着设计上没有 ACID。如果您需要 ACID,请不要使用 NoSQL。您正在增加复杂性以弥补糟糕的设计决策。

Eclipse 与此有什么关系?这是一个IDE。我认为您的用户不必启动 IDE 即可运行您的应用程序。

于 2012-09-23T21:08:18.620 回答
0

你真的应该试着躲避这颗子弹。

但是,如果您使用的是能够在过去使用事务的 dbms,这是应用程序或用户锁定的一种技巧

您创建一个表,例如 applicationLocks 然后您启动事务并插入/更新特定记录,但不要提交它。后面的任何人都无法进入,因为该行已锁定,您需要采取一些适当的措施。

当应用程序关闭时,回滚。

如果应用程序崩溃,连接将关闭并且事务无论如何都会回滚。

于 2012-09-23T21:41:29.550 回答