Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java EE (J2EE) и Spring > log4j: JDBCAppender не находит таблицу |
Автор: check 9.7.2008, 18:14 | ||||
Требуется организовать логгирование в базу данных. База - HQLDB, встроенная в JBoss. Проблема с последним условием, поскольку c MySQL аппендер работает нормально. В случае с HSQLDB при запуске сервера log4j выдает следующее
JDBC-аппендер прикручен следующим образом
Специально упростил до предела таблицу, чтобы исключить ошибки с layout-ом. Как я уже сказал, с MySQL аппендер работает нормально(правда JBoss при запуске потормаживает). |
Автор: ivg 9.7.2008, 23:46 | ||
Проблема в том, что в режиме In-Process (Standalone) Mode, а судя по URL - это так, таблицы и данные, (частично или целиком) хранятся в памяти того приложения, в котором они были записаны. Чтобы эти изменения отразились в файлах, нужно либо 1. выполнить команду SHUTDOWN и закрыть Connection, либо 2. Открывать соединение с URL="jdbc:hsqldb:<path_to_hsqldb_dir>/<db_name>;shutdown=true", в этом случае команду SHUTDOWN можно не выполнять, достаточно просто закрыть Connection. По видимому из-за этого в другом приложении (JBoss) таблица не найдена. Что касается логгирования, то аналогично: допишите ;shutdown=true в URL'е. И в коде, который выполняется при остановке приложения, добавьте:
|
Автор: ivg 10.7.2008, 20:00 | ||
Можно на них посмотреть? |
Автор: check 11.7.2008, 20:17 |
Нет, с файлами всё в порядке. Посмотрел под дебагом исходники log4j, оказывается некорректно считывался URL при парсинге конфига - оттуда удалялись все слеши. |