Red Hat Bugzilla – Bug 118632
PooledConnectionSource.test() does not work for SQL Server
Last modified: 2008-05-01 11:39:17 EDT
Description of problem:
The comment says:
// This should guarantee a db roundtrip on any normal JDBC
Well I guess SQL Server is not a "normal" JDBC implementation because
the test does not work. When the db goes down, no exception is
thrown when the current test is run. I changed the test to the
ps = conn.prepareStatement("select 1 from dual");
This can throw a "Connection reset by peer: socket write error"
exception where as the previous implementation would not.
BTW the current PooledConnectionSource is much better than previous
The reason I didn't use that test is that postgres doesn't have a dual
table so we'd actually have to use a different SQL string depending on
the database. I was hoping the getTables() call would be a clever way
to avoid doing that, but I guess not.
SQL Server doesn't have a dual table either.
In the oracle-compatibility.sql file I added this line:
-- The equivalent of oracle's dual table.
create view dual as select 1 as dummy;
It works great. I think I even got that idea from an old nightly
build where postgresql's oracle-compatibility.sql had that line in
it. I'm not sure what happened to it. Yep I just checked.
ccm-core-5.3.0.AUTO.08.11.2003 as that line in it.
That dual view is still there in postgresql. You should be able to
use that test no problem.