Откройте проводник 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 ответ
Во встроенном режиме файл базы данных блокируется одним процессом, поэтому вы не можете получить доступ к одной и той же базе данных (во встроенном режиме) одновременно в Проводнике и в вашем приложении.
Для доступа к базе данных более чем одним процессом одновременно используйте режим клиент-сервер или режим встроенного сервера.