Weblogic "Отказ от транзакции" предупреждение - PullRequest
1 голос
/ 28 февраля 2009

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

Отмена транзакции после 86 606 секунды: XID = BEA1-52CE4A8A9B5CD2587CA9 (14534444), Статус = Совершение, numRepliesOwedMe = 0, numRepliesOwedOthers = 0, секунды с начала = 86605, секунд left = 0, XAServerResourceInfo [JMS_goJDBCStore] = (ServerResourceInfo [JMS_goJDBCStore] = (состояние = зафиксировано, назначено = go_server), xar = JMS_goJDBCStore, перерегистрировано = true), XAServerResourceInfo [weblogic.jdbc.wrapper.JTSXAResourceImpl] = (ServerResourceInfo [weblogic.jdbc.wrapper.JTSXAResourceImpl] = (состояние = новый, назначается = нет), XAR = weblogic.jdbc.wrapper.JTSXAResourceImpl @ 1a8fb80, перерегистрирован = true), SCInfo [go + go_server] = (состояние = зафиксировано), свойства = ({weblogic.jdbc = t3: //10.6.202.37: 18080}), локально свойства = ({Weblogic.transaction.recoveredTransaction = истина}), OwnerTransactionManager = ServerTM [ServerCoordinatorDescriptor = (CoordinatorURL = go_server + 10.6.202.37: 18080 + Go + t3 +, XAResources = {JMS_goJDBCStore, weblogic.jdbc.wrapper.JTSXAResourceImpl}, NonXAResources = {})], CoordinatorURL = go_server + 10.6.202.37: 18080 + Go + T3 +)

Я понимаю объяснение BEA :

Ошибка : отмена транзакции через секунды: tx

Описание : Когда транзакция отменяется, знание сделки удален из менеджера транзакций который пытался водить транзакция до завершения. JTA атрибут конфигурации AbandonTimeoutSeconds определяет, как долго менеджер транзакций должен упорно пытаются совершить или откат транзакции.

Причина : ресурс или участвующий сервер могут были недоступны в течение AbandonTimeoutSeconds period.

Действие : проверьте участвующие ресурсы на наличие эвристики дополнения и исправить любые несоответствия данных.

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

Предупреждения относятся к JMS и нашему магазину JMS. Мы используем JMS. Мы просто не понимаем, почему там торчат транзакции и почему они будут "заброшены" ??

1 Ответ

2 голосов
/ 02 марта 2009

Я знаю, что это не очень хорошо, но мы удаляем файлы * .tlog перед запуском в нашем приложении, размещенном на WLS 7.

Наше приложение представляет собой серверную часть обработки событий, в значительной степени управляемую JMS. Мы не заинтересованы в сохранении транзакций при перезапуске WLS. Если он не завершился до выключения, он имеет тенденцию не завершаться после перезапуска. Таким образом, очистка журнала * .tlog устраняет некоторые предупреждения и возможное некорректное поведение.

Кстати, я не думаю, что JMS имеет фундаментальное значение для всего этого. По крайней мере, не то, что я знаю.

Кстати, мы перешли из хранилища JDBC JMS в локальные файлы. Говорят, что это было лучше, и нам не требовалась независимость от местоположения, которую мы получили бы от использования JDBC. Если это также описывает вашу ситуацию, возможно, переход на локальные файлы устранит основную причину для вас?

...