同时从eclipse和ij访问derby数据库

时间:2014-05-10 08:33:11

标签: eclipse apache tomcat derby

我正在eclipse中开发一个动态Web项目,它要求我连接到数据库并显示我选择的字段。

我创建了一个名为javadb的数据库。我可以单独从ij脚本工具和eclipse IDE访问javadb,但不能同时访问两者。 当我在tomcat服务器上部署我的web应用程序并运行使用数据库javadb的应用程序时,当我尝试使用命令通过ij工具连接到数据库时 connect 'jdbc:derby:javadb';
显示的错误是

ERROR XJ040: Failed to start database 'javadb' with class loader sun.misc.Launcher$AppClassLoader@74b10b, see the next exception for details.
ERROR XSDB6: Another instance of Derby may have already booted the database /home/computer/javadb.

我使用命令

启动apache derby网络服务器
java -jar $DERBY_HOME/lib/derbyrun.jar server start

我只能在关闭服务器并重新启动它后才能访问javadb。

我使用Eclipse Kepler,Apache derby 10.10创建数据库,Apache tomcat 7作为服务器。操作系统Ubuntu 12.04

任何人都可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

我也得到了同样的异常,这就是帮助我的东西 - 删除数据库根目录下的.lck文件。确保没有其他应用程序正在访问数据库后删除它们。

答案 1 :(得分:0)

在嵌入式配置中,Derby数据库一次只能由一个Java应用程序访问。

为了让多个应用程序同时访问同一个Derby数据库,您需要在客户端 - 服务器配置中运行Derby,并确保Derby服务器正在运行。

除了部署Derby服务器之外,您必须做的唯一其他更改是更改连接URL和JDBC类名。

以下是一些文档:http://db.apache.org/derby/docs/10.10/adminguide/cadminov17524.html  和http://db.apache.org/derby/docs/10.10/adminguide/cadminov825266.html