Return-Path: Delivered-To: apmail-avalon-dev-archive@avalon.apache.org Received: (qmail 78665 invoked by uid 500); 30 May 2003 17:54:07 -0000 Mailing-List: contact dev-help@avalon.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Avalon Developers List" Reply-To: "Avalon Developers List" Delivered-To: mailing list dev@avalon.apache.org Received: (qmail 78644 invoked from network); 30 May 2003 17:54:06 -0000 Received: from ns1.tanukisoftware.com (HELO tanukisoftware.com) (61.202.211.179) by daedalus.apache.org with SMTP; 30 May 2003 17:54:06 -0000 Received: from tanukisoftware.com (127.0.0.1) by localhost (127.0.0.1) with [XMail 1.9 (Win32/Ix86) ESMTP Server] id for from ; Sat, 31 May 2003 02:53:52 +0900 Message-ID: <3ED79AAF.40201@tanukisoftware.com> Date: Sat, 31 May 2003 02:53:51 +0900 From: Leif Mortenson User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.0.2) Gecko/20021120 Netscape/7.01 X-Accept-Language: en, ja, en-us MIME-Version: 1.0 To: Avalon Developers List Subject: Re: [Fortress] Proposed algorithm to fix shutdown order when using a roles file. (Was [VOTE] Is Fortress Good Enough ) References: <005d01c326ba$5c66a830$0801a8c0@Lagrange> <3ED79395.8010203@tanukisoftware.com> <3ED796AF.7080104@apache.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N Berin Loritsch wrote: > So what you are saying is to build the dependency list at run time? Yes, That is the only way I could think of other than using that counting method we had implemented for the ECM. By building up a dependency list at runtime, it will allow for the calculation of an optimal shutdown order that is not dependent on whether or not the user code correctly releases components. If we called the Vertex.resolveOrder() method whenever a new dependency was discovered, this would even make it possible to throw an exception when a circular dependency is encountered. Currently, Fortress will look through the circular dependency list, recursively trying to initialize the components until you finally get an OutOfMemoryException. I found out about that the hard way. This is only a problem if the roles file is used, If meta data is used, then circular dependencies are correctly detected. > I like that idea, but we should log any dependency that is found at run > time so that we can account for missed dependencies even if the user is > using meta-info. Great, I am glad you like it. The question then is: when should this get fixed? I also want to get Fortress out the door. But the majority of our users are still using roles files so I think it would be worth fixing the shutdown problems before the release. Unfortunately, I have a long list of deadlines next week, so I can't promise to be the one to implement this. If you know where to to implement it, I don't think it should take all that much code to get this implemented though. Without more time digging though, I am not yet sure where exactly in the code the ThreadLocal code should go. Cheers, Leif --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org For additional commands, e-mail: dev-help@avalon.apache.org