We have an external "tracer" that needs to track which EJBs are used in an application to satisfy each individual client request. This "tracer" is an external program, which means that it runs in a different machine than the application server (JBoss) machine. What we need to do is to instrument/modify the middleware and/or communications layer between EJBs so that it sends a packet to the "tracer" indicating the EJBs used in a request. We think that we have to modify the EJB container to do this (but not sure). For example, when a client enters to the Welcome page, the application runs EJB1, EJB2 and EJB3. For this request, the "tracer" needs to receive a packet indicating that these three EJBs where used.