geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From siss...@insession.com
Subject Re: [jira] Created: (GERONIMO-568) Switch system-datasource plan to the derby xa connector
Date Thu, 10 Feb 2005 02:34:22 GMT
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


Mime
View raw message