Return-Path: Delivered-To: apmail-avalon-dev-archive@avalon.apache.org Received: (qmail 71386 invoked by uid 500); 11 Jun 2003 15:52:49 -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 71367 invoked from network); 11 Jun 2003 15:52:48 -0000 Received: from onramp.i95.net (205.177.132.17) by daedalus.apache.org with SMTP; 11 Jun 2003 15:52:48 -0000 Received: from apache.org ([66.208.12.130]) by onramp.i95.net (8.12.9/8.12.9) with ESMTP id h5BFqo07009159 for ; Wed, 11 Jun 2003 11:52:50 -0400 Message-ID: <3EE75094.9020009@apache.org> Date: Wed, 11 Jun 2003 11:53:56 -0400 From: Berin Loritsch User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.3.1) Gecko/20030425 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Avalon Developers List Subject: Re: [Fortress] Minimizing stack traces on startup. References: In-Reply-To: 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 Peter Royal wrote: > On Wednesday, June 11, 2003, at 11:26 AM, Leif Mortenson wrote: > >> One comment that came up, which I have also thought about as well, is why >> Fortress continues to attempt to initialize additional components >> after one >> has failed. > > > It is due to the async initialization of components. There is a command > in the queue to initialize each component, and when one fails, the queue > continues to process commands. > -pete There are ways around that though... Hmm. We have the dependency information recorded now, so we can fail early if there are missing dependencies. We are ignoring the "optional" attribute for now, but we should probably add that in now. The issue derives from the following scenario: 1) ECM had zero dependency tracking, so there was no way to tell which components were needed or not. 2) Fortress has limited dependency tracking, but there is no way to tell which components are *required* or not. 3) If you cannot tell if a component is required or not, maybe it isn't so keep on going. So if we add a "synchronization" point so that we can be notified when all components have been asynchronously initialized, we can perform the proper validation and shut down if any required component is not available. If an optional component is not available, then we should place a warning in the log file, but not shut down. We need to keep track of whether initialization is done for a component or not, so we don't attempt a repeat.... It is doable. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org For additional commands, e-mail: dev-help@avalon.apache.org