В нашем MDB у нас есть Xatransaction между DB и Tibco Foreign Server Queue. мы зачислили зарубежный сервер XaResouce, используя ниже.Освобождение XASession XAResource - ручной ввод
MDB находится на сервере Weblogic 10.3.6, JDK 1.6.
init()---
XAConnection tempXAConn = xaConn;
TibjmsXAConnectionFactory xaConnFactory = (TibjmsXAConnectionFactory)ServiceLocator.getInstance().getJNDIReferencedObject(JMS_Q_CONNECTION_FACTORY_JNDI_XA);
xaConn = xaConnFactory.createXAConnection(JMS_USER,JMS_PSWD);
getsession()---
XASession xaSession = xaConn.createXASession();
TransactionHelper txHelper = TransactionHelper.popTransactionHelper();
Transaction tx = txHelper.getTransaction();
tx.enlistResource(xaSession.getXAResource());
Сделки работают нормально. мы используем одно соединение и создаем новую xasession для каждого сообщения.
но проблема освобождает ресурсы. после нескольких тысяч msgs я вижу кучу, содержащую такое же количество Tibjmsxasession, Tibjmsxaresource, объектов Tibjmslongkey. это приводит к нарушению проблемы.
мы не можем использовать session.close() между транзакцией.
Сделка осуществляется через контейнер. только завершение выполняется вручную.