Exactly same issue we got. We use a WAR application in tomcat, each request is creating a static IntialContext object and the next request is closing the previous one of it and creating a new one.
same thing- "too many channels open".
it is a bug in your client code, there ware many threads on this subject on this forum
you should be closing initial context for example.
It depends on your client side code (which approach you use)
You should read the documentation EJB invocations from a remote client using JNDI (wildFly is ok for this and contain the latest informations)
If you can't get it to work you should open a new thread and provide more details about your client approach