打开 ObjectDB 资源管理器,同时 运行 tomcat 服务器/实例

Open ObjectDB explorer whilst running the tomcat server / instance

我是 ObjectDB 的新手,不确定我是否在这里做错了什么,但我遇到了几个问题,我希望社区可以帮助我。

首先是当服务器 运行 时无法在资源管理器中查看数据库的烦人问题。如果先打开资源管理器,那么 tomcat/server/idea 将崩溃并烧毁。

我明白了:

另一方面,如果资源管理器打开并且我尝试重新启动服务器:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is com.objectdb.o._PersistenceException: Attempt to open a database file '/Users/SteveGreen/Development/Dev Workspace/RatedPlate_Java/RatedPlate/target/RatedPlate/WEB-INF/db/ratedplate.odb' that is currently in use by another process
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978)

然后我需要关闭资源管理器中的连接并重新启动服务器,但是传奇仍在继续,因为我现在收到:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is com.objectdb.o._PersistenceException: Attempt to open a database file '/Users/SteveGreen/Development/Dev Workspace/RatedPlate_Java/RatedPlate/target/RatedPlate/WEB-INF/db/ratedplate.odb' with an old unsupported format
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978)

我需要在再次继续之前清理安装 mV 版本。

根据 pom,我使用的是 2.2.5 版,资源管理器来自 2.6.3 版,因为我下载的映射到我的版本的早期 jar 没有显示查询选项。如果我向 IDE 建议我现在使用 2.2.5 以外的版本,那么一切都会崩溃,我不确定最好的行动方案是什么。正如您所想象的那样,它会造成一个非常糟糕的调试环境。

非常感谢任何帮助,谢谢!

来自我的 pom: com.objectdb 对象数据库 2.2.5

坚持:

<?xml version="1.0" encoding="UTF-8"?>

http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">

<persistence-unit name="RatedPlateDB" transaction-type="RESOURCE_LOCAL">
    <provider>com.objectdb.jpa.Provider</provider>
    <properties>
        <property name="javax.persistence.jdbc.url" value="$objectdb/db/ratedplate.odb"/>
        <property name="javax.persistence.jdbc.user" value="admin"/>
        <property name="javax.persistence.jdbc.password" value="admin"/>
    </properties>
</persistence-unit>

编辑:我相信我已经找到并解决了升级问题 - 2.6.3 不附带 Jta 或持久性

详情:http://m2.objectdb.com

更新的 pom:

  <dependency>
        <groupId>com.objectdb</groupId>
        <artifactId>objectdb</artifactId>
        <version>2.6.3</version>
    </dependency>
    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>javax.persistence</artifactId>
        <version>2.1.0</version>
    </dependency>
    <dependency>
        <groupId>javax.transaction</groupId>
        <artifactId>jta</artifactId>
        <version>1.1</version>
    </dependency>

在嵌入式模式下,数据库文件被一个进程锁定,因此您无法在资源管理器和您的应用程序中同时访问同一个数据库(在嵌入式模式下)。

要同时通过多个进程访问数据库,请使用客户端-服务器模式或embedded-server mode