On Thursday 12 February 2004 21:51, De Lima, Claude wrote: > That worked. But what exactly is being timed during deployment. Is it > construction > and each lifestyle method (configure, service, inialize etc.)? Does the > timeout apply > to each one, or all of them together?
SInce I am the one who introduced it, maybe I should try to explain the rationale behind it. We are trying to create a robust platform, and not depend on 100% 'friendly' components. If bad components are in the system, the container should get rid of them. So, internally in Merlin there is something we call "activation", which takes the deployment model (a memory structure of how to assemble tha application), and instantiates the components, its context objects, staging and calls the life cycle methods. All of this (more or less) happens in a "deploy()" method in the Appliance* of the component. What happens is that there is a Deployer thread, which is given the component to deploy, and the main thread monitors the progress. If the Deployer thread has not completed within the timeout, the main thread will try to recover. It does this by calling interrupt() on the thread and allow for up to the same timeout for that to complete. If the Deployer was successfully cancelled, the deployment continues, otherwise a fatal exception is thrown, which should terminate the JVM. The timeout is per component, but there is (still?) an issue that containers can expose services, and are internally considered to be components, and therefor the timeout will have to cover the aggregated time of all the components within such container. BUT, it may be that Stephen has fixed this recently. Does that makes things more or less clear ;o) * Appliance is a controller for each component, and handles many of the runtime management aspect of the component. Cheers Niclas --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
