ucanaccess 驱动程序是不是处理多个并发 Java 应用程序?
Posted
技术标签:
【中文标题】ucanaccess 驱动程序是不是处理多个并发 Java 应用程序?【英文标题】:does ucanaccess driver handle multiple concurrent java applications?ucanaccess 驱动程序是否处理多个并发 Java 应用程序? 【发布时间】:2016-04-28 14:35:09 【问题描述】:UCanAccess 驱动程序能否在 Java 应用程序、在 Tomcat 下运行的 web 应用程序以及可能打开 MS Access GUI 的用户都可能对数据库进行更新的情况下正常工作?
Java appl 和 webapp 都将使用 UCanAccess 驱动程序。尽管 Java 应用程序是更新的主要来源,而 web 应用程序主要只是读取/呈现数据,但在某些情况下,这 3 个中的任何一个都可以执行更新。我目前正在使用 Sun JDBC-ODBC 桥,但正在寻找替代品。
除了使用 KeepMirror(和 Memory=false)选项之外,不确定应用程序和 web 应用程序如何保持同步。谁能确认一下?
【问题讨论】:
【参考方案1】:我只能说这种情况ucanaccess 并不绝对支持。您可以只拥有一个在数据库上写入的应用程序,否则您将面临数据库损坏的风险。另请参阅 ucanaccess 网站中的 Openexclusive 连接设置。此外,您提到的选项与问题无关。
【讨论】:
绕过此限制的一种方法是设置一个负责所有数据库交互的单一数据服务(使用 UCanAcess)并从两个应用程序调用此服务。 或者只是停止滥用桌面数据库并更改为真正的客户端服务器数据库。 “不完全支持”是指“不完全支持(但部分支持)”还是“根本不支持”?不需要 Openexclusive 选项,因为这会将更新限制为仅 1 个应用程序。 UCanAccess 不会将 hsqldb 中的更改写回 mdb/accdb 吗?不会使用相同的镜像(MirrorFolder 选项)和 KeepMirror 选项将 java appl 和 webapp 指向同一个数据库吗?文档说“如果访问数据库被不同的程序修改,hsqldb 将被重新创建”即 GUI,所以如果在有限的情况下可以接受? 单一数据服务可以工作。一个真正的客户端服务器数据库会很好(并且应该知道会被建议),但由于多种原因不是配置。 亲爱的,显然 ucanaccess 会将 hsqldb 中的更改写回 mdb/accdb。对同一文件的并发无中介写入操作可能会损坏 mdb,如果它们没有同步,因此中间没有任何东西可以做到这一点。 Openexclusive 使用类似于 Access 的基于文件的方法来同步写入操作。我实施它是有原因的。在回答其他问题之前,您为什么要使用 keepMirror?以上是关于ucanaccess 驱动程序是不是处理多个并发 Java 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章