1 Reply Latest reply: Aug 26, 2010 2:47 PM by 794032 RSS

    Help with interceptors / deadlock


      I'm having an issue with a deadlock in a big J2EE application in a 6 servers cluster environment.

      Im trying to trace the problem with a J2EE interceptor that will log all EJB method calls and i will later parse the method calls grouping them by transaction.

      My interceptor:
      public class ServiceLoggingInterceptor {

           private static final Logger LOG = Logger
                     .getLogger(ServiceLoggingInterceptor.class); // log4j

           //SessionContext sCtx;
           public Object logServiceUsage(InvocationContext ctx) throws Exception {
                try {
                     LOG.debug("????????????"); // this is where i need help
                     LOG.debug("EJB call: \""     + ctx.getMethod().toString() + "\" with arguments: " + Arrays.toString(ctx.getParameters()));
                     return ctx.proceed();
                } catch (Exception e) {
                     ..... // Exception handling and logging
                     throw e;
      What i need help is: how do i get the global transaction ID or all javax.transaction.xa.Xid from the resources used in the current transaction?? Withouth this i cant parse the log results (i wont be able to check which method was called in which transaction).

      PS: There is no UserTransaction in this application. Its all Container Managed Transaction.

      ------ Edit to post environment ------
      OC4J: Oracle OC4J
      Platform: Windows


      Edited by: user6754259 on 26/08/2010 11:55