[jboss-user] [EJB 3.0] - MDB Problem:=DestinationManager not Registeres => InstanceNo
MarcReis
do-not-reply at jboss.com
Thu Sep 21 11:15:40 EDT 2006
Hi,
I have written a very simple MDB for testing purpose. I am running two 4.0.4GA servers clustered. My MDB is part of an ear.
The problem occurs when I start both servers simultaneously, starting sequentially does not produce this error.
The first error message shows up on the "second started server". Not sure why it can?t find the queue...
| 2006-09-21 18:22:42,603 WARN [org.jboss.ejb3.mdb.MDB] Could not find the queue
| destination-jndi-name=queue/mdb
| 2006-09-21 18:22:42,643 WARN [org.jboss.ejb3.mdb.MDB] destination not found: q
| ueue/mdb reason: javax.naming.NameNotFoundException: queue not bound
| 2006-09-21 18:22:42,644 WARN [org.jboss.ejb3.mdb.MDB] creating a new temporary
| destination: queue/mdb
| 2006-09-21 18:22:42,648 WARN [org.jboss.system.ServiceController] Problem star
| ting service jboss.j2ee:ear=CLUSTERINGEAR.ear,jar=CLUSTERINGEJB.jar,name=MDBean
| ,service=EJB3
| javax.management.InstanceNotFoundException: jboss.mq:service=DestinationManager
| is not registered.
| at org.jboss.mx.server.registry.BasicMBeanRegistry.get(BasicMBeanRegist
| ry.java:523)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:653)
| at org.jboss.ejb3.mdb.MDB.createDestination(MDB.java:671)
| at org.jboss.ejb3.mdb.MDB.innerCreateQueue(MDB.java:407)
| at org.jboss.ejb3.mdb.MDB.innerCreate(MDB.java:347)
| at org.jboss.ejb3.mdb.MDB.innerStart(MDB.java:225)
| at org.jboss.ejb3.mdb.MDB.start(MDB.java:214)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl
| .java:39)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcce
| ssorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.ejb3.ServiceDelegateWrapper.startService(ServiceDelegateWr
| apper.java:99)
| at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBean
| Support.java:289)
| at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceM
| BeanSupport.java:245)
| ...
|
Ending with an incomplete deployment:
| ...
| 2006-09-21 18:22:48,638 ERROR [org.jboss.deployment.scanner.URLDeploymentScanne
| r] Incomplete Deployment listing:
|
| --- MBeans waiting for other MBeans ---
| ObjectName: jboss.j2ee:ear=CLUSTERINGEAR.ear,jar=CLUSTERINGEJB.jar,name=MDBean,
| service=EJB3
| State: FAILED
| Reason: javax.management.InstanceNotFoundException: jboss.mq:service=Destinat
| ionManager is not registered.
| ...
|
When I now shut down the "first server" the second keeps throwing this error:
| 2006-09-21 18:32:02,791 WARN [org.jboss.mq.Connection] Connection failure, use
| javax.jms.Connection.setExceptionListener() to handle this error and reconnect
| org.jboss.mq.SpyJMSException: Exiting on IOE; - nested throwable: (java.io.EOFE
| xception)
| at org.jboss.mq.SpyJMSException.getAsJMSException(SpyJMSException.java:
| 78)
| at org.jboss.mq.Connection.asynchFailure(Connection.java:420)
| at org.jboss.mq.il.uil2.UILClientILService.asynchFailure(UILClientILSer
| vice.java:174)
| at org.jboss.mq.il.uil2.SocketManager$ReadTask.handleStop(SocketManager
| .java:440)
| at org.jboss.mq.il.uil2.SocketManager$ReadTask.run(SocketManager.java:3
| 72)
| at java.lang.Thread.run(Thread.java:595)
| Caused by: java.io.EOFException
| at java.io.ObjectInputStream$BlockDataInputStream.readByte(ObjectInputS
| tream.java:2670)
| at java.io.ObjectInputStream.readByte(ObjectInputStream.java:864)
| at org.jboss.mq.il.uil2.SocketManager$ReadTask.run(SocketManager.java:3
| 17)
| ... 1 more
|
|
My MDB Client looks like this:
| public class ClientMDB implements Runnable{
| ...
| private void sendMsg(String msg){
| Queue jmsQueue = null;
| QueueConnectionFactory factory = null;
| QueueConnection qCnct = null;
| QueueSession qSess = null;
| QueueSender qSnd = null;
| ExceptionListener qExcLsnr = new MyMDBExceptionListner();
|
| try{
| time = System.currentTimeMillis();
|
| jmsQueue =(Queue) doLookUp("queue/mdb");
| factory = (QueueConnectionFactory) doLookUp("ConnectionFactory");
|
| qCnct = factory.createQueueConnection();
| qCnct.setExceptionListener(qExcLsnr);
| qSess = qCnct.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
|
| for(int i=0; i < 2; i++){
| TextMessage txtMsg = qSess.createTextMessage("This is "+Thread.currentThread().getName()+" calling ("+i+")");
| qSnd = qSess.createSender(jmsQueue);
| qSnd.send(txtMsg);
| }
| }catch(Exception e){
| System.out.println(e);
| e.printStackTrace();
| }
| }
|
| private Object doLookUp(String JNDIName){
| doLogin(XXX","xxx");
| try{...
| }catch(Exception e){
| return null;
| }
| }
|
| private void doLogin(String user, String pw){
| ?
| }
| public class MyMDBExceptionListner implements ExceptionListener{
| int cnt = 0;
|
| public void onException(JMSException arg0) {
| // TODO Auto-generated method stub
| cnt++;
| if(cnt>1){
| System.out.println(cnt+" Los of connection to the JMS due to: "+ arg0.getStackTrace().toString());
| }
| }
| }
| }
|
|
and the MDB like this:
| @MessageDriven(activationConfig =
| { @ActivationConfigProperty(propertyName="destinationType",
| propertyValue="javax.jms.Queue"),
| @ActivationConfigProperty(propertyName="destination",
| propertyValue="queue/mdb")})
| public class MDBean implements MessageListener{
|
| public void onMessage(Message arg0) {
| // TODO Auto-generated method stub
| try{
| TextMessage txtMsg = (TextMessage)arg0;
| String message = txtMsg.getText();
|
| System.out.println("I received a message: "+message);
| txtMsg.acknowledge();
|
| }catch(Exception e){
| System.out.println(e);
| e.printStackTrace();
| }
| }
| }
|
|
I am thankful for any help !
Sincerely
Marc
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3973317#3973317
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3973317
More information about the jboss-user
mailing list