H2: Исключение JdbcSQLException: время ожидания этой ссылки на сгусток или большой двоичный объект истекло

#java #jdbc #h2

#java #jdbc #h2

Вопрос:

При использовании h2 в java (вызывающая getBytes функция) Я получаю следующую ошибку. Google меня никуда не привел. Интересно, есть ли у кого-нибудь подсказки, что происходит.

 Caused by: org.h2.jdbc.JdbcSQLException: This CLOB or BLOB reference timed out: "533668/-3" [90039-190]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
    at org.h2.message.DbException.get(DbException.java:179)
    at org.h2.message.DbException.get(DbException.java:155)
    at org.h2.store.LobStorageMap.getInputStream(LobStorageMap.java:287)
    at org.h2.value.ValueLobDb.getInputStream(ValueLobDb.java:384)
    at org.h2.value.ValueLobDb.getBytesNoCopy(ValueLobDb.java:318)
    at org.h2.value.ValueLobDb.getBytes(ValueLobDb.java:304)
    at org.h2.jdbc.JdbcResultSet.getBytes(JdbcResultSet.java:1059)
    at edu.illinois.cs.cogcomp.srl.caches.SentenceDBHandler$1.next(SentenceDBHandler.java:214)
 

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

1. Не могли бы вы добавить пример кода?

Ответ №1:

Это сообщение об ошибке может появиться, например, при длительной выполняемой транзакции. Вы можете увеличить время ожидания, установив свойство LOB_TIMEOUT для подключения к базе данных.

Настройка базы данных LOB_TIMEOUT (по умолчанию: 300000, что означает 5 минут). Количество миллисекунд, в течение которых временная ссылка на большой объект сохраняется до истечения времени ожидания. По истечении времени ожидания объект LOB больше не доступен с помощью этой ссылки.

https://www.h2database.com/javadoc/org/h2/engine/DbSettings.html#LOB_TIMEOUT