I am confused about the use of the depends attribute. I want to ensure that all of my web applications and EJBs are started in the correct order so that if I start my application while there are messages in my JMS queues or requests coming in through Tomcat I can ensure that everything runs correctly.
My confusion is related to which service I should put a dependency against and when it is necessary to explicitly declare a dependency. To me it seems like an ejb-ref, resource-ref, resource-env-ref is an implicit dependency anyway but I have found that my MDBs are being executed before some of these objects are started.
I can identify three main objects I would like to declare dependencies against, EJBs, JMS queues, JCA connection factories. JMS queues are straight forward because there is only one object relating to the queue. However, with EJBs there is a home object, a pool and a cache (under jboss.j2ee). Should I just declare a dependency on the home object? With JCA conection factories there is a connection manager, connection factory and a pool. Should I just declare a dependency on the factory object? With JMS connection factories I can't see an object that corresponds to the non-TX connection factory? Also, there are object relating to each IL. Do I need to declare a dependency on the specific IL I want to use?
Any help would be much appreciated. There seem to be a lot of objects I could potentially declare dependencies against and I don't want to declare unnecessary dependencies but I do want to make sure my application starts up in a stable state.