Я использую Hibernate 3.6.0 с JBoss 6.0-Final выпуск, а моя база данных - MS-SQL Server 2008 .
Мне нужно получить данные о сотрудниках с сервера LDAP и вставить их в базу данных - количество записей LDAP составляет 180 000 или больше.
Я использую транзакцию, управляемую компонентом , потому что при использовании CMT моя транзакция никогда никогда не фиксируется (из-за большого количества вставок).
Логика такова: в while-loop Я продолжаю получать и создавать записи в базе данных с помощью JPA (Hibernate). Таким образом, я выполняю длинную серию операций fetch-create как часть API EJB без сохранения состояния. Я вызываю entityManager.flush () / clear () и завершаю транзакцию после обработки каждых 20 записей.
Я получаю следующее ПРЕДУПРЕЖДЕНИЕ сообщение в JBoss Serevr.log после того, как я вставил 40 000 записей.
Не уверены, действительно ли это предупреждение или ошибка?
Хотя я получаю эту ошибку, сервер все еще работает и продолжает вставку новых записей в БД.
Кто-нибудь может предположить, что я делаю что-то не так? Или что вызывает эту ошибку?
Есть ли способ увеличить время ожидания EJB ?
16:52:49,690 WARN [com.arjuna.ats.arjuna] ARJUNA-12117 TransactionReaper::check timeout for TX 0:ffff105966b8:126a:4db9fc0a:a4 in state RUN
16:52:49,691 WARN [com.arjuna.ats.arjuna] ARJUNA-12121 TransactionReaper::doCancellations worker Thread[Transaction Reaper Worker 0,5,jboss] successfully canceled TX 0:ffff105966b8:126a:4db9fc0a:a4
Мы будем очень благодарны за любую помощь.