2012-02-21 2 views
0

Я разрабатываю VAADIN с использованием Db4O для хранения. Обычно мне нравится, что я могу изменить исходный код, сохранить его и voi-lá: сервер автоматически перезагружается, и я могу видеть изменения в браузере.Db4O - DatabaseFileLockedException при перезапуске сервера

Но всегда, когда я перезапускаю сервер tomcat, я получаю исключение DatabaseFileLockedException. Мое обходное решение - остановить сервер и запустить его снова. Но делать это вручную каждые 1 минуту раздражает.

INFO: Я использую конфигурацию сервера клиента, но само приложение Vaadin является сервером db4o (другие приложения подключиться к нему):

ServerConfiguration serverConfig = Db4oClientServer.newServerConfiguration(); 
//Configure server... 
ObjectServer server = Db4oClientServer.openServer(serverConfig, DBFILE, PORT); 
server.grantAccess(...); //GRANT ACCESS TO OTHER APPLICATIONS 

// LOCAL ИСПОЛЬЗОВАНИЯ:

private ObjectContainer client = server.openClient(); 
//PS.: I never close the client locally. Can that be a problem? 

Кто-нибудь знает, как избавиться от этого?

Заранее спасибо.

+0

Можете ли вы предоставить более подробную информацию о том, как вы используете db4o? Может быть, показать какой-то код? Используете ли вы несколько клиентов по одной базе данных db4o? (т. е. контейнеры с несколькими объектами) – German

+0

@ Герман: Да, я отредактировал мой вопрос. Vielen Dank im Voraus! – jcdmb

ответ

1

Хм, вы даже закрываете сервер. В противном случае сервер db4o будет продолжать работать и создавать это исключение.

Есть ли какой-то «shutdown» -ответчик в VAADIN? Это обычно место для закрытия сервера db4o. Когда вы закрываете сервер, все локальные и удаленные клиентские соединения также будут закрыты или будут вызывать исключение при обращении к ним в следующий раз.

Смежные вопросы