This content has been marked as final. Show 2 replies
The reason the container is not getting started is due to the dependency on the http-invoker:
2008-10-20 00:57:25,599 DEBUG [org.jboss.system.ServiceController] (RMI TCP Connection(6)-127.0.0.1) Waiting in create of jboss.j2ee:jndiName=helloworld/HelloLogHTTP,service=EJB on jboss:service=invoker,type=http
It looks like the EjbModule is starting the pm before the entity container has been started. Why don't we start the pm from the EntityContainer.startService?
It's dictated by the current logic behind the (CMP) persistence manager start:
- first every persistence manager in the EJB module performs its initStoreManager();
- then after all of them initialized, they can be started which includes resolution of CMR and foreign keys (which is the reason why they are started in this way).
So, calling start on one of the PMs won't actually start the PM. Only when the last PM in the EJB module receives the start call they get started.
So, if the PM.start() were in EntityContainer.startService() then after return from EntityContainer.startService(), the container's PM might not had been started and the container would not be usable.