I've run into an interesting (read: "agrivating") problem: I can run an instance of JBoss with my .ear just fine from Eclipse using the JBoss tools, but if I try to deploy it by throwing what's in the deploy folder in the Eclipse project into the default/deploy folder in JBoss and running using run.conf.bat I run into some rather nasty JMS problems with one of four queues:
10:50:51,750 ERROR [org.hornetq.ra.HornetQRASessionFactoryImpl] Could not create session: javax.jms.IllegalStateException: Only allowed one session per connection. See the J2EE spec, e.g. J2EE1.4 Section 6.6
at org.hornetq.ra.HornetQRASessionFactoryImpl.allocateConnection(HornetQRASessionFactoryImpl.java:816) [:6.1.0.Final]
This, of course, doesn't happen in Eclipse using the JBoss tools. There is literally nothing else (as far as applications not provided by JBoss) on the server. This has worked in the past, but due to the fact that the project in question is being developed quickly and without much support for infrastructure (read: There's one person on it and no supporting resources) determining what's gone wrong is less about rolling back (which might work, but, since I haven't identified the actual problem, might not) and more about process of elimination.
So, why would launching from Eclipse using the tools prevent the above error? Why would that error happen in the first place if the only things referencing the queue are one bean that sends messages in and one that takes them out (a paradigm that works for the other three queues without producing the error)? And, possibly the most unanswerable, why would it previously have worked and not be working now?
I know the typical response is to post everything. I can't do that. But I can post parts. I'm using vanilla JBoss 6.1.0 Final, Eclipse Java EE IDE Indigo SR1, JBoss Seam Tools for Eclipse 3.3.0.v20120302-2019-H81-Beta1, and Java 7.
I've got four queues, in addition to DLQ and ExpiryQueue:
<component class="org.jboss.seam.jms.ManagedQueueSender" name="dispatchQueueSender">
<component class="org.jboss.seam.jms.ManagedQueueSender" name="scheduleQueueSender">
<component class="org.jboss.seam.jms.ManagedQueueSender" name="registerQueueSender">
<component class="org.jboss.seam.jms.ManagedQueueSender" name="resultsQueueSender">
<queue name="DnR Dispatch">
<queue name="DnR Scheduling">
<queue name="DnR Registration">
<queue name="DnR Results">
I'm using hibernate in my project with MySQL, and everything is configured as an .ear (with ejb's and a .war inside).