I am trying to track down some slow code in my JBoss/JBoss-Seam JSF code. After debugging into the source, I have found the culprit. The problem is in the code that is attempting a JNDI lookup. This lookup is resulting in a CommunicationException with the message "Receive timed out".
The code that is being used:
return (UserTransaction) Naming.getInitialContext().lookup(userTransactionName);
This is Seam code. The initial properties it is using are:
java.naming.factory.url.pkgs = org.jboss.naming:org.jnp.interfaces
java.naming.factory.initial = org.jnp.interfaces.NamingContextFactory
The "lookup" method on the naming context is what is throwing the CommunicationException
This is resulting in really bad performance from our application as it takes some time to time out (a few seconds makes a big difference when you are dealing with 100s of web requests).
I am not all that familiar with JBoss and its JNDI configuration. Is there someone that can point me in the right direction for determining what is wrong? (I cannot even find what URL it is trying to use to lookup the object).
Found a solution. I created seam-jndi.properties and added: