barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

пятница, 12 августа 2011 г.

org.h2.jdbc.JdbcSQLException: Connection is broken: [90067-140]

Если верить документации h2 (http://www.h2database.com/javadoc/org/h2/constant/ErrorCode.html#c90067), сообщение такого вида при попытке подключения к БД h2 должно говорить о том, что сервер БД недоступен, не является сервером h2 или сетевое соединение потеряно.

Однако, в моём случае, с сервером все было в порядке - он принимал соединения и через веб-интерфейс, и по tcp, причем даже к выбранной БД я мог через веб интерфейс подключиться и даже выполнять запросы. Но вот WSO2GREG и WSO2ESB упорно заваливали логи исключениями такого вида (а также другими, типа Read Timeout и т.п.) при попытке соединиться с этой же базой.

Проблема оказалось в следующем: БД была повреждена (как оказалось, БД h2 состоит не только из файла dbname.h2.db, но и ещё из директории dbname.lobs.db/ в той же папке, что и .h2.db-файл, а я эту самую директорию при перемещении базы не перевез =) ).

Комментариев нет:

Отправить комментарий