Return-Path: Delivered-To: apmail-geronimo-dev-archive@www.apache.org Received: (qmail 75769 invoked from network); 10 Feb 2005 02:34:39 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 10 Feb 2005 02:34:39 -0000 Received: (qmail 69938 invoked by uid 500); 10 Feb 2005 02:34:27 -0000 Delivered-To: apmail-geronimo-dev-archive@geronimo.apache.org Received: (qmail 69898 invoked by uid 500); 10 Feb 2005 02:34:27 -0000 Mailing-List: contact dev-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Reply-To: dev@geronimo.apache.org Delivered-To: mailing list dev@geronimo.apache.org Received: (qmail 69883 invoked by uid 99); 10 Feb 2005 02:34:27 -0000 X-ASF-Spam-Status: No, hits=0.2 required=10.0 tests=FORGED_RCVD_HELO,NO_REAL_NAME X-Spam-Check-By: apache.org Received-SPF: neutral (hermes.apache.org: local policy) Received: from mail.tsainc.com (HELO lng002.tsacorp.com) (206.201.23.30) by apache.org (qpsmtpd/0.28) with ESMTP; Wed, 09 Feb 2005 18:34:26 -0800 In-Reply-To: <824060659.1107496405708.JavaMail.jira@ajax.apache.org> To: dev@geronimo.apache.org Subject: Re: [jira] Created: (GERONIMO-568) Switch system-datasource plan to the derby xa connector MIME-Version: 1.0 X-Mailer: Lotus Notes Release 6.5.2 June 01, 2004 From: sissonj@insession.com Message-ID: Date: Thu, 10 Feb 2005 12:34:22 +1000 X-MIMETrack: Serialize by Router on lng002/SVR/TSA(Release 6.5.2|June 01, 2004) at 02/09/2005 20:34:38, Serialize complete at 02/09/2005 20:34:38 Content-Type: text/plain; charset="US-ASCII" X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N I am working on a patch for switching system-datasource plan to the derby xa connector as well as moving the timer gbeans to the system datasource plan. http://issues.apache.org/jira/browse/GERONIMO-568 I am having a problem where the JDBCStoreThreadPooledNonTransactionalTimer GBean is being invoked before the DerbySystemGBean. The JDBCStoreThreadPooledNonTransactionalTimer constructor creates a new instance of JDBCWorkerPersistence, which then calls the execSQL method in its superclass that opens a database connection, therefore initialising the embedded derby database. One of the problems with this is that the SystemDatabase and derby.log are not created under geronimo\var\derby (since the derby.system.home property is set by the DerbySystemGBean, which hasn't been started yet. Both the timer GBeans have a reference to geronimo.server:J2EEApplication=null,J2EEServer=geronimo,JCAResource=org/apache/geronimo/SystemDatabase,j2eeType=JCAManagedConnectionFactory,name=SystemDatasource,* The SystemDatasource GBean reference is shown as started in the log before Derby has been initialised. Some options to discuss: * Have the Timer GBeans have a reference to the DerbySystem GBean, so they aren't started until the DerbySystem GBean has started. Do you really want a DerbySystem parameter on the constructor of the Timer GBeans? Even if we do this, it won't stop future GBeans referencing the SystemDatasource when Derby hasn't been initialised. * Have the SystemDatasource Gbean have a reference to the DerbySystem GBean, so the SystemDatasource is not started until the DerbySystem GBean has started. Not sure how this can be done and how practical it is. * Have a new system-derby-plan.xml file with configId="org/apache/geronimo/DerbySystem" and parentId="org/apache/geronimo/Server" that contains the DerbySystem and DerbyNetwork gbeans . Change the system-database-plan.xml file to have parentId="org/apache/geronimo/DerbySystem". Thanks, John