Jason, The threads will have to clean up after them selves in order to make HiveMind discard the service implementations. See http://jakarta.apache.org/hivemind/hivemind/apidocs/org/apache/hivemind/Registry.html#cleanupThread()
HTH, --knut On 2/5/06, Jason L. Buberel <[EMAIL PROTECTED]> wrote: > I am using HiveMind v1.1.1 with Hibernate to manage a multi-threaded database > application that uses HiveMind as the central factory for all > interfaces/classes. I have adopted the ISessionOwner/SessionOwnerImpl session > Hibernate management pattern from Kent Truong's e-book 'Enjoying Web > Development with Tapestry'. > > I have defined the following interface: > > public interface ISessionOwner extends Discardable { > Session getSession(); > } > > And the following implementation: > > public class SessionOwnerImpl implements ISessionOwner, Discardable { > public Session getSession() { > ... > } > > public void threadDidDiscardService() { > LOGGER.debug("discarding instance of SessionOwner"); > ... > } > } > > The hivemodule.xml snippet for this service point is: > > <service-point id="ISessionOwner" > interface="com.altosresearch.ISessionOwner"> > <invoke-factory model="threaded"> > <construct class="com.altosresearch.SessionOwnerImpl"/> > </invoke-factory> > </service-point> > > I have confirmed that the basic functionality (instantiation) works just fine. > Callers to Registry.getService(ISessionOwner.class) are indeed being returned > instances of SessionOwnerImpl on a per-thread basis. > > The objects that are obtaining references to these instances are running in > the 'main' thread as well as from within one of several ThreadPoolExecutors > that I use. > > However, when any of these threads terminate or the application exits, I do > not see the log message "discarding instance of SessionOwner" ever appear in > my log files. > > I have inserted similar statments into the finalize() method for this class, > but I do not see those being recorded either. > > I am using JDK1.5_06 on RedHat ES3.0. I invoke the application via an ant > task, from the command line, with fork="true". > > I'm hoping that I am just doing something obviously wrong here. Anyone have > any pointers/suggestions? > > Thanks, > jason > > -- > Jason L. Buberel -- www.buberel.org -- skype:jbuberel > +1.650.483.1989 -- im:[EMAIL PROTECTED] > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]