Откройте проводник ObjectDB во время работы сервера / экземпляра Tomcat

Я новичок в ObjectDB и не уверен, что сделал что-то не так, но у меня есть пара вопросов, которые, я надеюсь, сообщество может мне помочь.

Во-первых, это досадная невозможность просмотра базы данных в проводнике во время работы сервера. Если проводник открыт первым, то tomcat/server/idea рухнет и сгорит.

Я получаю это: ярость

С другой стороны, если Explorer открыт и я пытаюсь перезапустить сервер:

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, прежде чем продолжить снова.

Я использую версию 2.2.5 в соответствии с pom, проводник из версии 2.6.3, поскольку предыдущий загруженный мной jar-файл, сопоставленный с моей версией, не отображал опцию запроса. Если я предложу IDE использовать сейчас версию, отличную от 2.2.5, тогда весь ад провалится, и я не уверен, как лучше поступить. Как вы можете себе представить, это создает довольно дерьмовую среду отладки.

Любая помощь очень ценится, спасибо!

Из моего pom: com.objectdb 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/

Обновленный пом:

  <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>

1 ответ

Решение

Во встроенном режиме файл базы данных блокируется одним процессом, поэтому вы не можете получить доступ к одной и той же базе данных (во встроенном режиме) одновременно в Проводнике и в вашем приложении.

Для доступа к базе данных более чем одним процессом одновременно используйте режим клиент-сервер или режим встроенного сервера.

Другие вопросы по тегам