MDB consuming from temporary JMS destination with '/' characters broken in JBoss EAP CP
Environment
- Red Hat JBoss Enterprise Application Platform (EAP)
- 4.3 CP08
Issue
We use MDBs which consume messages from destinations which aren't explicitly defined. Because they aren't explicitly defined the container creates temporary destinations automatically when the MDBs are deployed. In JBoss Enterprise Application Platform (EAP) 4.3 CP07 this worked when the destinations had '/' characters in the name. However, in JBoss EAP 4.3 CP08 this no longer works. An error like this is thrown:
INFO [EJBContainer] STARTED EJB: com.redhat.example.ExampleEJB3MDB ejbName: ExampleEJB3MDB
WARN [MessagingContainer] Could not find the queue destination-jndi-name=queue/example/tests/myqueue/ver1
WARN [MessagingContainer] destination not found: queue/example/tests/myqueue/ver1 reason: javax.naming.NameNotFoundException: example not bound
WARN [MessagingContainer] creating a new temporary destination: queue/example/tests/myqueue/ver1
ERROR [ExceptionUtil] Queue[(destination.getName() == NULL)] startService
java.lang.IllegalStateException: The queue name should not contain forward slash: example/tests/myqueue/ver1
at org.jboss.jms.server.destination.DestinationServiceSupport.startService(DestinationServiceSupport.java:108)
...
Resolution
Apply JBPAPP-4481 to restore the default behaviour.
Root Cause
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.
Comments