Apache Camel MyBatis: 90-секундный тайм-аут при удалении

Это добавляет много времени к маршруту и ​​довольно раздражает.

В исходниках выглядит так

from( ... ) 
.stuff()
.to( "mybatis:deleteTable?statementType=Delete" )

соответствующий с

<delete id="deleteTable" parameterType="java.lang.Object" >
    delete from table;
</delete>

предположительно, он ожидает ответа с 90-секундным тайм-аутом на вызов удаления, а затем продолжает работу.

Это 90 секунд независимо от размера данных в таблице. будь то пустые или фактические записи внутри.

похоже, что он ожидает ответа, которого не получает, и ждет тайм-аута, прежде чем продолжить.

Это очень раздражает, и я не могу найти обходной путь

глядя в код, это может быть связано с тем, что реализация сеанса mybatis sql org.apache.ibatis.session.defaults.DefaultSqlSession delete(...) просто делегирует методы update(...) , которые могут ожидать отклик...


person Community    schedule 27.02.2013    source источник


Ответы (1)


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

вы можете обойти это, установив statementType=InsertList, который ожидает, что аналогичный возврат будет удален, и передает список как отдельный объект, не повторяя его содержимое

person Community    schedule 27.02.2013