无法同时从两个进程连接 derby 数据库

Posted

技术标签:

【中文标题】无法同时从两个进程连接 derby 数据库【英文标题】:failed to connect derby database from two processes simultaneously 【发布时间】:2016-01-09 03:50:50 【问题描述】:

在 Websphere Application Server 中,我有一个在应用程序 PlantsByWebSphere.ear 中使用的 derby 数据库。我启动了 WAS 服务器和应用程序,应用程序运行良好,这意味着数据库运行良好。

我想监视数据库中的数据,所以我使用 Rational Application Developer(或 Eclipse)连接数据库,但它失败了,并出现了错误消息。但是,如果我关闭已启动的 WAS 服务器,数据库将变为可连接的。 Derby 是否允许多个进程(即 WAS 和 RAD/Eclipse)同时连接到数据库?如果不允许,有没有什么方便的方法可以在应用程序运行时监控数据库中的数据?

无法连接到 PLANTSDB。 创建 SQL 模型连接时出错 连接到 PLANTSDB。 (错误:启动数据库失败 'C:\IBM\SDP\runtimes\base_v7\profiles\was70profile2\installedApps\acerwinNode05Cell\PlantsByWebSphere.ear\Database\PLANTSDB', 有关详细信息,请参阅下一个异常。)无法启动数据库 'C:\IBM\SDP\runtimes\base_v7\profiles\was70profile2\installedApps\acerwinNode05Cell\PlantsByWebSphere.ear\Database\PLANTSDB', 有关详细信息,请参阅下一个例外。 创建 JDBC 连接时出错 连接到 PLANTSDB。 (错误:启动数据库失败 'C:\IBM\SDP\runtimes\base_v7\profiles\was70profile2\installedApps\acerwinNode05Cell\PlantsByWebSphere.ear\Database\PLANTSDB', 有关详细信息,请参阅下一个异常。)无法启动数据库 'C:\IBM\SDP\runtimes\base_v7\profiles\was70profile2\installedApps\acerwinNode05Cell\PlantsByWebSphere.ear\Database\PLANTSDB', 有关详细信息,请参阅下一个例外。

【问题讨论】:

【参考方案1】:

首先,顺便说一句:当您的异常说“请参阅下一个异常以了解详细信息”时,请执行以下操作:http://wiki.apache.org/db-derby/UnwindExceptionChain

现在关于您的更大问题:确实,您可能无法同时使用 Derby Embedded Engine 从两个不同的进程连接到同一个 Derby 数据库。

要更详细地了解这一点,请花一些时间阅读:https://db.apache.org/derby/docs/10.3/devguide/cdevdvlp27610.html 和此:https://db.apache.org/derby/docs/10.12/devguide/cdevdvlp20458.html#cdevdvlp20458

您可以在客户端-服务器配置中部署 Derby,在这种情况下,只有一个 Derby 网络服务器,所有应用程序都使用网络连接(以及类路径中略有不同的 JDBC 驱动程序)连接到它。

要了解有关 Derby 网络服务器配置的更多信息,请从这里开始:https://db.apache.org/derby/docs/10.12/getstart/cgsquck70629.html

花一两个小时在你的系统上解决这个问题可能不会有什么坏处:https://db.apache.org/derby/docs/10.12/getstart/cgstutorialintro.html

祝你好运!

【讨论】:

谢谢布莱恩。现在我明白了我不能同时从 WAS 和 RAD/Eclipse 连接到数据库,因为在我的情况下,Derby 在嵌入式环境中工作。

以上是关于无法同时从两个进程连接 derby 数据库的主要内容,如果未能解决你的问题,请参考以下文章

无法在 MyEclipse 中使用 struts 连接 Derby 数据库

Derby 客户端 jdbc 驱动程序连接错误:无法创建数据库“示例”

Derby 数据库连接问题

如何将数据从 Ms 访问迁移到 Derby 数据库或如何将数据从 My sql 迁移到 Derby 数据库

Derby/JDBC 连接生命周期(或空闲超时)

如何连接 Derby 数据库和 Servlet?