Bugs item #844654, was opened at 2003-11-18 20:06
Message generated for change (Comment added) made by cazzius
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=844654&group_id=22866
Category: JBossCX
Group: v3.2
Status: Open
Resolution: None
Priority: 5
Submitted By: Elias Ross (genman)
Assigned to: Claudio Vesco (cazzius)
Summary: HSQL datasource -- should issue "SHUTDOWN"
Initial Comment:
This may or may not be JMS specific, but it relates to
the default Persistence Manager used in JBoss 3.2.2
which uses "cached" tables.
It appears that SHUTDOWN is not issued to the HSQL DB
when JBoss is taken down.
It should be easy to make the HSQL plug service work
with cached tables and then do the right thing upon
shutdown. Or, create a new service which issues the
shutdown request.
----------------------------------------------------------------------
>Comment By: Claudio Vesco (cazzius)
Date: 2004-01-15 16:20
Message:
Logged In: YES
user_id=211618
fixed on Branch_3_2
----------------------------------------------------------------------
Comment By: Elias Ross (genman)
Date: 2004-01-12 18:43
Message:
Logged In: YES
user_id=556458
Is there any chance you can fix this for the next 3.2 release?
----------------------------------------------------------------------
Comment By: Claudio Vesco (cazzius)
Date: 2003-12-02 13:27
Message:
Logged In: YES
user_id=211618
I agree with you, Adrian.
I think that registering and unregistering a JDBC Driver can be
done by a MBean. This is what is done already by
org.jboss.jdbc.HypersonicDatabase, for example :-)
But I propose another thing :-)
In Connector spec (1.1 or 1.5) if you want to initialize the
resource adapter you can do the initialization in
ManagedConnectionFactory.createConnectionFactory but
there is no a callback to deinitialize the resource adapter.
I propose to add a shutdown (jboss only, obviously not in
javax.resource.spi.ManagedConnectionFactory) to deinitialize
the resource adapter.
This is not only for a Database MCF, but can be applied to
every resource adapter if the developer/deployer want it.
In this moment I run the testsuite (in jboss head) with this
semantic, I am waiting to see what happens :-)
If you don't like this proposal, please reassign to you this bug
id.
Claudio
----------------------------------------------------------------------
Comment By: Adrian Brock (ejort)
Date: 2003-12-02 12:25
Message:
Logged In: YES
user_id=9459
Hi Guys,
I disgree with the assumption that MCF <-> Database
There can be other services using the database that do not
go through
the ManagedConnectionFactory.
There might even be two deployments over the same database.
IMHO the use of DriverClass on the jdbc
LocalManagedConnectionFactory is too cute.
What should really happen is that a separate MBean is
responsible
for registering (and unregistering) the jdbc driver.
For backwards compatibility (and cuteness),
we can alter ConnectionFactoryTemplate.xsl
to instantiate that MBean
if it sees <driver-class>
Finally, to solve this problem an hsql specific version of
the MBean can add the extra processing in
stopService()
This would be a specific MBean deployment rather
than specifying <driver-class> on the connection factory.
Regards,
Adrian
----------------------------------------------------------------------
Comment By: Adrian Brock (ejort)
Date: 2003-12-02 12:24
Message:
Logged In: YES
user_id=9459
Hi Guys,
I disgree with the assumption that MCF <-> Database
There can be other services using the database that do not
go through
the ManagedConnectionFactory.
There might even be two deployments over the same database.
IMHO the use of DriverClass on the jdbc
LocalManagedConnectionFactory is too cute.
What should really happen is that a separate MBean is
responsible
for registering (and unregistering) the jdbc driver.
For backwards compatibility (and cuteness),
we can alter ConnectionFactoryTemplate.xsl
to instantiate that MBean
if it sees <driver-class>
Finally, to solve this problem an hsql specific version of
the MBean can add the extra processing in
stopService()
This would be a specific MBean deployment rather
than specifying <driver-class> on the connection factory.
Regards,
Adrian
----------------------------------------------------------------------
Comment By: Claudio Vesco (cazzius)
Date: 2003-12-02 10:49
Message:
Logged In: YES
user_id=211618
In Connector spec there is no a clean way to shutdown a
ManagedConnectionFactory.
I propose to add to RARDeployer MBean the
ManagedConnectionFactory shutdown handling.
For example:
public interface ShutdownHook {
void shutdown(ManagedConnectionFactory mcf);
}
shutdown(mcf) method can be invoked in stopService() of
RARDeployer MBean.
For the HSQL problem, when we have this hook then we can
implement a class which send SHUTDOWN COMPACT to HSQL.
I'll commit it in jboss head branch and if there are no
problems, in jboss 3.2 branch.
----------------------------------------------------------------------
Comment By: Elias Ross (genman)
Date: 2003-11-20 18:11
Message:
Logged In: YES
user_id=556458
The problem is the HSQLMBean isn't used for the cached DS
configuration, it is just used to provide a HSQL DB
TCP/IP-enabled datasource. There are three HSQL operating
modes: in memory only, on disk, and network-enabled.
Anyway, the datasource configuration for JMS uses on disk,
which means the HSQLMBean service isn't configured or
deployed. Take a look at this deployed file:
$JBOSS/server/default/deploy/hsqldb-ds.xml
The default configuration is broken.
It might be possible to have the HSQLMBean take care of both
issuing SHUTDOWN to a HSQL cached table configuration and
the network configuration. However, looking at the source,
it didn't seem elegant to write it as such.
----------------------------------------------------------------------
Comment By: Heiko W.Rupp (pilhuhn)
Date: 2003-11-20 17:07
Message:
Logged In: YES
user_id=217112
Shouldn't / couldn't that go into the stop() method of the
HSQLMBean? That is called by the server anyway and could do
the right thing.
I think it is wrong to have two Mbeans for one service.
----------------------------------------------------------------------
Comment By: Elias Ross (genman)
Date: 2003-11-18 23:18
Message:
Logged In: YES
user_id=556458
I wrote an MBean to do this and it works okay. I don't know
if it would be better to update the connection manager (RA
deployer???) or make people use this externally declared
MBean instead. I'm starting to to think this is the wrong
approach:
<datasources>
<local-tx-datasource>
...
<depends>jboss:service=HSQLShutdown</depends>
</local-tx-datasource>
<!-- This MBean should be used for cached tables. -->
<mbean code="org.jboss.jdbc.DBShutdown"
name="jboss:service=HSQLShutdown">
<attribute
name="ConnectionURL">jdbc:hsqldb:${jboss.server.data.dir}/jms</attribute>
<attribute
name="DriverClass">org.hsqldb.jdbcDriver</attribute>
<attribute name="UserName">sa</attribute>
<attribute name="Password"></attribute>
<attribute name="ShutdownSQL">SHUTDOWN COMPACT</attribute>
</mbean>
</datasources>
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=844654&group_id=22866
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
JBoss-Development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development