Red Hat Bugzilla – Bug 109380
ccm status mistakenly checks for Oracle JAR even when JDBC url is set for PostgreSQL
Last modified: 2007-04-18 12:59:14 EDT
Description of problem:
The 'ccm status' tool does a number of checks & reports any problems
found. The Oracle JAR check, however, is performed regardless of
whether Oracle is configured as the database in the JDBC url. This
will confuse administrators who are running on PostgreSQL, because
they'll wonder why they should need an Oracle JAR installed.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Set JDBC url to point to a PostgreSQL database
2. Run ccm status
Class not found
WARNING: Oracle JDBC driver not found
The CCM persistence layer requires the Oracle JDBC driver in order to
function. The Oracle JDBC driver is typically in a file called
"classes12.zip" or "classes12.jar". Check your classpath.
The classpath of the CCM runtime includes
* jar files in JAVA_HOME/jre/lib/ext
* jars, zips, or class files under one of the paths listed in
CCM_HOME/ccm.classpath if it exists or /etc/ccm/ccm.classpath
* the CLASSPATH environment variable.
No warning shown.
What's the intended use of the "ccm status" command?
You do want to check for classes12.(zip|jar) if you are setting
up a development environment. We have a compile-time dependency
on the Oracle JDBC drivers, do we not?
Its for validating a server configuration before trying to start it.
The ccm tools depends on Core having previously being built since it
is implemented using classes in the c.a.packaging package. This if
classes12 were missing in development, you wouldn't even be able to
compile core & thus you wouldn't even get as far as running 'ccm status'.
Before we implement the check, we need to audit the code to make sure
there are no run-time dependencies on classes12. Moving to RC0 for now.
The fact that this is an extraneous error message (and will be fixed
in RC0) should be included in the known bugs list.
Per rhs's suggestion, I added the following line to testFairness in
I moved my classes12 (oracle-jdbc-xxx.jar) to /tmp/ so it would not
appear in the classpath, and then ran all the persistence tests on
[junit] Tests run: 193, Failures: 2, Errors: 4, Time elapsed:
Failures were testLoopDetection, testOrderLineAssociation. Errors were
testAggressiveClosing, testFairness (as expected),
testStatementClosing, and testStatementClosingTestCase. The latter two
depend on aggressive close.
Testcase: testFairness took 0.015 sec
Caused an ERROR
at java.security.AccessController.doPrivileged(Native Method)
at java.lang.Class.forName0(Native Method)