Hi,
One of our customers has strict rules for DB access: the application can only
do data manipulation, which means that the database user configured in
Jackrabbit's repository.xml is not the schema owner. Of course, Jackrabbit can
then only start if the schema is already present in the DB. The
DatabaseFileSystem.checkSchema method, however, fails to detect that situation:
Mar 3, 2009 4:00:53 PM org.apache.jackrabbit.core.fs.db.DatabaseFileSystem init
SEVERE: failed to initialize file system
java.sql.SQLException: CREATE TABLE permission denied in database 'wm98nute'.
at
net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368)
at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2816)
at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2254)
at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:631)
at
net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:584)
at
net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:546)
at
net.sourceforge.jtds.jdbc.JtdsStatement.executeImpl(JtdsStatement.java:723)
at
net.sourceforge.jtds.jdbc.JtdsStatement.executeUpdate(JtdsStatement.java:1163)
at
net.sourceforge.jtds.jdbc.JtdsStatement.executeUpdate(JtdsStatement.java:1116)
at
org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.checkSchema(DatabaseFileSystem.java:1169)
at
org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFileSystem.java:184)
at
org.apache.jackrabbit.core.config.FileSystemConfig.createFileSystem(FileSystemConfig.java:47)
at
org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:244)
at
org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:557)
This is a stacktrace for an MSSQL DB, but I guess that the problem exists
elsewhere too (at least on Oracle). In order to fix this it seems necessary to
fix all "checkSchema" methods (DB file systems, (bundle) persistence managers,
db datastore, db journal). Wat do you think?
Best regards,
Martijn
--
Martijn Hendriks
<GX> creative online development B.V.
t: 024 - 3888 261
f: 024 - 3888 621
e: [email protected]
Wijchenseweg 111
6538 SW Nijmegen
http://www.gx.nl/