Вопрос о Hibernate и Informix - PullRequest
       21

Вопрос о Hibernate и Informix

1 голос
/ 26 июля 2011

В настоящее время я сталкиваюсь с проблемой, когда я не могу сохранить объект CLOB в режиме гибернации, если его длина превышает 4096 символов.Все, что ниже, работает правильно и как ожидалось.Исключение Hibernate бросает следующее на session.save (pojo):

java.sql.SQLException: System or internal error java.sql.SQLException: System or internal error java.security.PrivilegedActionException: java.io.IOException: Permission denied

Текущая база данных, которую мы используем, - Informix.Любая помощь по этому вопросу будет принята с благодарностью.

Спасибо.

1 Ответ

5 голосов
/ 26 июля 2011

Драйвер informix использует переменную среды, называемую LOBCACHE , чтобы определить, сколько памяти использовать при записи CLOB в базу данных.

По умолчанию это значение равно 4096, если значение LOBCACHE не определено..

Если ваш объект CLOB больше этого, он пытается создать временный файл и затем в основном выполняет буферизованную запись 4096 байт за раз.Готов поспорить, что исключение «Отказано в доступе» происходит, потому что он не может создать этот временный файл.

Попробуйте вручную установить для переменной среды большее значение.Если нет, вам следует посмотреть, какие разрешения и где создать этот временный файл, и предоставить серверу приложений или обработать это разрешение.

...