[jboss-user] [JNDI/Naming/Network] - spi.NotBoundException

remi-at-work do-not-reply at jboss.com
Fri Feb 6 09:43:24 EST 2009


Hi all,

first - sorry for mu English.

I have following problem. I create the EJB3 bean DbCleanerBean which I want to be executed when JBoss (v5.0) starts. So I create the MBean AutostartService that is looking for the DbCleanerBean  in JNDI and executing the method after start.

In 98% it works fine but sometime I got such exception:

ERROR [AbstractKernelController] Error installing to Start: name=jboss:service=AutostartService state=Create mode=Manual requiredState=Installed
org.jboss.ejb3.common.registrar.spi.NotBoundException: Object is bound at key jboss.j2ee:ear=myear.ear,jar=myjar.jar,name=DbCleanerBean,service=EJB3, but is not fully installed, instead of state: ControllerState at 180b4f9{Start}
      at org.jboss.ejb3.common.registrar.plugin.mc.Ejb3McRegistrar.lookup(Ejb3McRegistrar.java:169)
      at org.jboss.ejb3.common.registrar.plugin.mc.Ejb3McRegistrar.lookup(Ejb3McRegistrar.java:133)
      at org.jboss.ejb3.proxy.handler.ProxyInvocationHandlerBase.getContainerLocally

XML:

  | <mbean code="com.myservice.mbeans.AutostartService"
  | 		name="jboss:service=AutostartService">
  | 		<depends>jboss.j2ee:ear=myear.ear,jar=myjar-ejb.jar,name=DbCleanerBean,service=EJB3</depends>
  | 	</mbean>
  | 

AutostartService.java

  | public class AutostartService implements AutostartServiceMBean {
  | 	
  | 	protected Logger log = Logger.getLogger(getClass());
  | 	
  | 	@Override
  | 	public void start() throws Exception {
  | 		log.info("AutostartService started");
  | 		DbCleanerBusinessLocal bean = (DbCleanerBusinessLocal)new InitialContext().lookup("DbCleanerBean");
  | 		if (bean == null) {
  | 			log.error("Cannot find bean DbCleanerBean in JNDI. Autostartfailed!");
  | 		}
  | 
  | 		bean.startup();
  | 		
  | 		log.info("AutostartService finished");
  | 	}
  | ...
  | }
  | 

As I said - it works in 98% but sometimes I got the NotBoundException.
Why such problem occur? From second hand - how to handle this exception. I try to run this in the loop 3 times (each try after 10 seconds). So the loop execute following code:


  | DbCleanerBusinessLocal bean = (DbCleanerBusinessLocal)new InitialContext().lookup("DbCleanerBean");
  | 		if (bean == null) {
  | 			log.error("Cannot find bean DbCleanerBean in JNDI. Autostartfailed!");
  | 		}
  | 
  | 		bean.startup();
  | 
  | 

this doesn't help. How should I handle this exception correctly?

Thanks in advance.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4207743#4207743

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4207743



More information about the jboss-user mailing list