Ok, the ejb-jar should still be one deployment unit.  The init/start
shouldn't affect anything except mbeans in a *service.xml file.  Almost
certainly I broke something like ContainerFactory. Could you send me your
test cases and I will see if I can figure this out?


Thanks
david jencks

On 2001.11.14 18:12:36 -0500 Dain Sundstrom wrote:
> 
> 
> > -----Original Message-----
> > From: David Jencks [mailto:[EMAIL PROTECTED]]
> > Sent: Wednesday, November 14, 2001 4:58 PM
> > To: Dain Sundstrom
> > Cc: [EMAIL PROTECTED]
> > Subject: Re: [JBoss-dev] MBean init/start change broke CMR
> > 
> > 
> > On 2001.11.14 17:11:52 -0500 Dain Sundstrom wrote:
> > > Hi all,
> > > 
> > > I think that the merging of init and start has broken the 
> > CMR code.  The
> > > CMR
> > > code depends on having a complete two-phase startup.  In the phase 1
> > > (init)
> > > all of the relation ships are connected, and in phase 2 
> > (start) these
> > > relationships are used to create the entity tables with 
> > fks, relation
> > > tables, and parse ejb-ql queries.  I think that merging the two has
> > > changed
> > > the system to call init and then start for each bean 
> > instead of init for
> > > each bean and then start for each bean.
> > 
> > This is correct.
> 
> Yep, I added some code to verify the order.  I am getting:
> ejb1.init();
> ejb1.start();
> 
> ejb2.init();
> ejb2.start();
> 
> ejb3.init();
> ejb3.start();
> 
> ejb4.init();
> ejb4.start();
> 
> > > 
> > > I wasn't following the discussion about this, because I 
> > didn't think it
> > > applied to the CMR code (and the messages were very long). 
> > 
> > The first one wasn't, asking if it would break anything.
> 
> I know, but I thought the ejb-jar was one unit.  So the order wouldn't
> change.
> 
> >  I'm going to
> > > go
> > > back and read the messages, but if anyone has a suggestion 
> > or can tell me
> > > the resolution, I would appreciate it.
> > 
> > How can I tell if it is broken? Is there a test case?  
> 
> I know. There are test cases. I just haven't added them to the source
> tree.
>  
> > What are the "beans"
> > you mention, mbeans from a *service.xml or ejbs or generated 
> > mbeans from
> > ContainerFactory or what? What is calling the init and start?  I might
> > simply have done something stupid in ContainerFactory.
> 
> I am talking about ejbs.  And the container init() and start methods,
> which
> are passed through to my JDBCStoreManager class.
> 
> > If the problem is due to unexpressed dependencies between 
> > mbeans, generally
> > the solution is to explicitly state those dependencies using 
> > mbean-ref and
> > mbean-ref-list elements.
> 
> It is an expressed dependency between entities, but it is expressed in
> the
> ejb-jar.xml file.
> 
> > For instance, if you have mbeans A and B that registered with 
> > C on init,
> > and C did something with A and B in its start, put a 
> > mbean-ref-list element
> > in C containing A and B's object names: in C's start, first 
> > iterate through
> > the list, calling the new registerWithC(C) method (formerly 
> > init()), and
> > then the previous start code.
> 
> I don't have that level of control all the way down at the StoreManager.
> 
> > I'm happy to help with fixing this if you can give me some 
> > clues about what
> > is going on and where.
> >
> > Thanks
> > david jencks
> 
> I still putting all the pieces together my self.  
> 
> The way my code works is in the init each entity creates a set of objects
> that represent the cmp-fields, cmr-fields, and queries for that entity. 
> As
> each cmr-field is created it checks to see if the related entity's
> cmr-field
> has been created.  If it has not been created, it does nothing.  If it
> has
> then it creates a reference to the related cmr-field object, and gives a
> reference to the related entity. Only at the end of the init phase is it
> guaranteed that all relationships are full setup.
> 
> In the start phase, tables are created for each entity, that may contain
> fks
> for the related entity, or an additional table is created for the
> relationship.  In this phase the ejb-ql is cross compiled to SQL, and
> this
> process requires that any referenced relationships be fully connected.
> 
> Hope that helps.
> 
> -dain
> 
> 

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to