Time Out em Action - Struts 1.2.7

Galera tô com um problema que ta meio difícil resolver. Se alguém conseguir ajudar eu agradeço muito!

Seguinte, no sistema que estou trabalhando (struts 1.2 e ejb 2.1) existe uma action que quando é chamada executa uma serie de chamadas a serviços remotos para validar algumas contas. Dentre os serviço existem diversas chamadas a filas de mensagens. Se algum serviço esta fora, simplesmente gravo o histórico da execução e envio um email inforando o pessoal da infra.
O problema é que o numero de validações aumentou, e no meu teste reparei que ao verificar o último serviço, este esta fora do ar, e ao tentar fazer um lookup para envio do email o sistema dá um rollback exception.
Fiz alguns testes e descobri que o problema nao esta na validação: removi algumas e a minha última funcionou (mesmo estando fora). Descobri também que se nenhum serviço estiver fora o sistema tudo funciona sem problemas.
Isolando o problema, tudo leva a crer que a action esta sobrecarregada: existem muitas rotinas sendo executadas e quando chega no fim, se algum serviço esta fora, ele perde mais tempo tentando obter resposta que estoura algum time out relacionado a action, forçando um rollback e fazendo estourar o erro quando tenho fazer o lookup do ejb no final. A minha dúvida é: estou certo? Isso é possível? Onde posso configurar esse tempo de timeout?

O erro continua… ninguem tem uma ideia de como fazer isso?

Tem como eu em algum lugar onde estão todas as transações ativas, para pelo menos eu saber qual é a que está estourando o tempo de conexão?

Bom, vou colocando aqui as coisas conforme for descobrindo hehe

Dei uma boa debugada no sistema, mas não adiantou muita coisa. O Log do servidor indica algum erro ocorreu (sem informar qual) e que foi marcada a UserTransaction com setRollBackOnly. Como disse antes, acredito que foi marcado com rollback a transaction pois foi atingido o tempo de timeout, mas não consigo verificar isso. Dentre os diversos logs, estão os seguintes:

Exception = org.omg.CORBA.TRANSACTION_ROLLEDBACK
Source = com.ibm.ejs.container.RemoteExceptionMappingStrategy.setUncheckedException
probeid = 200
Stack Dump = org.omg.CORBA.TRANSACTION_ROLLEDBACK: javax.transaction.TransactionRolledbackException:  ; nested exception is: 
	com.ibm.websphere.csi.CSITransactionRolledbackException: Transaction rolled back  vmcid: 0x0  minor code: 0  completed: No
	at java.lang.Throwable.<init>(Throwable.java)
	at java.lang.Throwable.<init>(Throwable.java)
	at org.omg.CORBA.SystemException.<init>(SystemException.java:81)
	at org.omg.CORBA.TRANSACTION_ROLLEDBACK.<init>(TRANSACTION_ROLLEDBACK.java:70)
	at com.ibm.ejs.csi.OrbUtilsImpl.mapException(OrbUtilsImpl.java:76)
	at com.ibm.ejs.container.RemoteExceptionMappingStrategy.mapCSIException(RemoteExceptionMappingStrategy.java:305)
	at com.ibm.ejs.container.RemoteExceptionMappingStrategy.mapException(RemoteExceptionMappingStrategy.java:102)
	at com.ibm.ejs.container.RemoteExceptionMappingStrategy.setUncheckedException(RemoteExceptionMappingStrategy.java:202)
	at com.ibm.ejs.container.EJSDeployedSupport.setUncheckedException(EJSDeployedSupport.java:296)
	at com.ibm.ejs.container.EJSContainer.preInvoke_internal(EJSContainer.java:2787)
	at com.ibm.ejs.container.EJSContainer.preInvoke(EJSContainer.java:2487)
	at com.ibm.ejs.container.EJSContainer.preInvoke(EJSContainer.java:2472)
Exception = com.ibm.websphere.csi.CSITransactionRolledbackException
Source = com.ibm.ejs.container.RemoteExceptionMappingStrategy.setUncheckedException
probeid = 200
Stack Dump = com.ibm.websphere.csi.CSITransactionRolledbackException: Transaction rolled back
	at java.lang.Throwable.<init>(Throwable.java)
	at java.lang.Throwable.<init>(Throwable.java)
	at java.rmi.RemoteException.<init>(RemoteException.java:71)
	at com.ibm.websphere.csi.CSIException.<init>(CSIException.java:60)
	at com.ibm.ejs.csi.TransactionControlImpl.getCurrentTransactionalUOW(TransactionControlImpl.java:674)
	at com.ibm.ejs.csi.TransactionControlImpl.preInvoke(TransactionControlImpl.java:365)
	at com.ibm.ejs.container.EJSContainer.preInvoke_internal(EJSContainer.java:2733)
	at com.ibm.ejs.container.EJSContainer.preInvoke(EJSContainer.java:2487)
	at com.ibm.ejs.container.EJSContainer.preInvoke(EJSContainer.java:2472)
Exception = com.ibm.websphere.csi.CSITransactionRolledbackException
Source = com.ibm.ejs.container.EJSContainer.preInvoke_internal
probeid = 2038
Stack Dump = com.ibm.websphere.csi.CSITransactionRolledbackException: Transaction rolled back
	at java.lang.Throwable.<init>(Throwable.java)
	at java.lang.Throwable.<init>(Throwable.java)
	at java.rmi.RemoteException.<init>(RemoteException.java:71)
	at com.ibm.websphere.csi.CSIException.<init>(CSIException.java:60)
	at com.ibm.ejs.csi.TransactionControlImpl.getCurrentTransactionalUOW(TransactionControlImpl.java:674)
	at com.ibm.ejs.csi.TransactionControlImpl.preInvoke(TransactionControlImpl.java:365)
	at com.ibm.ejs.container.EJSContainer.preInvoke_internal(EJSContainer.java:2733)
	at com.ibm.ejs.container.EJSContainer.preInvoke(EJSContainer.java:2487)
	at com.ibm.ejs.container.EJSContainer.preInvoke(EJSContainer.java:2472)
Exception = com.ibm.websphere.csi.CSITransactionRolledbackException
Source = com.ibm.ejs.csi.TransactionControlImpl.preInvoke
probeid = 266
Stack Dump = com.ibm.websphere.csi.CSITransactionRolledbackException: Transaction rolled back
	at java.lang.Throwable.<init>(Throwable.java)
	at java.lang.Throwable.<init>(Throwable.java)
	at java.rmi.RemoteException.<init>(RemoteException.java:71)
	at com.ibm.websphere.csi.CSIException.<init>(CSIException.java:60)
	at com.ibm.ejs.csi.TransactionControlImpl.getCurrentTransactionalUOW(TransactionControlImpl.java:674)
	at com.ibm.ejs.csi.TransactionControlImpl.preInvoke(TransactionControlImpl.java:365)
	at com.ibm.ejs.container.EJSContainer.preInvoke_internal(EJSContainer.java:2733)
	at com.ibm.ejs.container.EJSContainer.preInvoke(EJSContainer.java:2487)
	at com.ibm.ejs.container.EJSContainer.preInvoke(EJSContainer.java:2472)
Exception = javax.transaction.xa.XAException
Source = com.ibm.ws.Transaction.JTA.RegisteredResources
probeid = 651
Stack Dump = javax.transaction.xa.XAException
	at java.lang.Throwable.<init>(Throwable.java)
	at javax.transaction.xa.XAException.<init>(XAException.java:63)
	at com.ibm.ws.Transaction.JTS.CORBAResourceWrapper.processCORBASystemException(CORBAResourceWrapper.java:450)
	at com.ibm.ws.Transaction.JTS.CORBAResourceWrapper.rollback(CORBAResourceWrapper.java:348)
	at com.ibm.ws.Transaction.JTA.RegisteredResources.distributeOutcome(RegisteredResources.java:1112)
	at com.ibm.ws.Transaction.JTA.RegisteredResources.distributeRollback(RegisteredResources.java:1838)
	at com.ibm.ws.Transaction.JTA.TransactionImpl.internalRollback(TransactionImpl.java:1461)
	at com.ibm.ws.Transaction.JTA.TransactionImpl.rollback(TransactionImpl.java:1129)
	at com.ibm.ws.Transaction.JTA.TranManagerImpl.rollback(TranManagerImpl.java:177)
	at com.ibm.ws.Transaction.JTA.TranManagerSet.rollback(TranManagerSet.java:228)
	at com.ibm.ejs.csi.TranStrategy.rollback(TranStrategy.java:908)
	at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:155)
	at com.ibm.ejs.csi.TranStrategy.handleException(TranStrategy.java:210)
	at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:567)
	at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:3038)