[fcrepo-user] using oracle db - failure rebuilding database.

0 views
Skip to first unread message

Donald Lee

unread,
Oct 25, 2010, 2:36:17 PM10/25/10
to fedora-com...@lists.sourceforge.net
Hi,

I'm having an issue with Fedora 3.3. when I try to install fedora or use the fedora rebuild script, I encounter this error. It seems like the installer passes a NULL value into the primary key? And help on how to solve this? Thanks.

-don

./fedora-rebuild.sh

Fedora Rebuild Utility
..........................

WARNING: Live rebuilds are not currently supported.
Make sure your server is stopped before continuing.

Server directory is /usr/local/fedora/server

---------------------------------------------------------------------

What do you want to do?

1) Rebuild the Resource Index.
2) Rebuild SQL database.
3) Exit

Enter (1-3) --> 2

Rebuild SQL database.

Start rebuilding with the above options?

1) Yes
2) No, let me re-enter the options.
3) No, exit.

Enter (1-3) --> 1

Rebuilding...
Cleaning up table: DATASTREAMPATHS
Cleaning up table: DCDATES
Cleaning up table: DOFIELDS
Cleaning up table: DOREGISTRY
Cleaning up table: MODELDEPLOYMENTMAP
Cleaning up table: OBJECTPATHS
Cleaning up table: PIDGEN
fedora.server.errors.LowlevelStorageException: ending rebuild unsuccessfully put into db registry failed for [fedora-system:ContentModel-3.0] ORA-01400: cannot insert NULL into ("SEDORA_PROD"."OBJECTPATHS"."TOKENDBID")

at fedora.server.storage.lowlevel.DBPathRegistry.rebuild(DBPathRegistry.java:216)
at fedora.server.storage.lowlevel.DefaultLowlevelStorage$Store.rebuild(DefaultLowlevelStorage.java:210)
at fedora.server.storage.lowlevel.DefaultLowlevelStorage.rebuildObject(DefaultLowlevelStorage.java:90)
at fedora.server.storage.lowlevel.DefaultLowlevelStorageModule.rebuildObject(DefaultLowlevelStorageModule.java:140)
at fedora.server.utilities.rebuild.SQLRebuilder.start(SQLRebuilder.java:127)
at fedora.server.utilities.rebuild.Rebuild.<init>(Rebuild.java:107)
at fedora.server.utilities.rebuild.Rebuild.main(Rebuild.java:420)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at fedora.server.utilities.rebuild.cli.CLILoader.main(CLILoader.java:77)
Caused by: fedora.server.errors.ObjectNotInLowlevelStorageException: put into db registry failed for [fedora-system:ContentModel-3.0] ORA-01400: cannot insert NULL into ("SEDORA_PROD"."OBJECTPATHS"."TOKENDBID")

at fedora.server.storage.lowlevel.DBPathRegistry.put(DBPathRegistry.java:175)
at fedora.server.storage.lowlevel.PathRegistry.traverseFiles(PathRegistry.java:136)
at fedora.server.storage.lowlevel.PathRegistry.traverseFiles(PathRegistry.java:94)
at fedora.server.storage.lowlevel.PathRegistry.traverseFiles(PathRegistry.java:94)
at fedora.server.storage.lowlevel.PathRegistry.traverseFiles(PathRegistry.java:94)
at fedora.server.storage.lowlevel.PathRegistry.traverseFiles(PathRegistry.java:94)
at fedora.server.storage.lowlevel.PathRegistry.traverseFiles(PathRegistry.java:94)
at fedora.server.storage.lowlevel.PathRegistry.traverseFiles(PathRegistry.java:191)
at fedora.server.storage.lowlevel.DBPathRegistry.rebuild(DBPathRegistry.java:210)
... 11 more
Caused by: java.sql.SQLIntegrityConstraintViolationException: ORA-01400: cannot insert NULL into ("SEDORA_PROD"."OBJECTPATHS"."TOKENDBID")

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:440)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:837)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:445)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:523)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1010)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1315)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3576)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3657)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1350)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:101)
at fedora.server.utilities.SQLUtilityImpl.i_addRow(SQLUtilityImpl.java:264)
at fedora.server.utilities.SQLUtilityImpl.i_replaceInto(SQLUtilityImpl.java:144)
at fedora.server.utilities.SQLUtility.replaceInto(SQLUtility.java:91)
at fedora.server.utilities.SQLUtility.replaceInto(SQLUtility.java:64)
at fedora.server.storage.lowlevel.DBPathRegistry.put(DBPathRegistry.java:172)
... 19 more
SUCCESS: 0 objects rebuilt.
Finished.

Chris Wilper

unread,
Oct 26, 2010, 10:17:59 AM10/26/10
to fcrepo-user
Hi Donald,

That error is indicating that an insert to the objectPaths table is
failing because a value isn't being specified for one of the columns
(tokenDbId). It is normal for Fedora to not specify this value, as it
should be an auto-generated one. It sounds like the auto-generation
of the id isn't working for some reason. In Oracle, auto-generation
of the ids is done via a trigger and a sequence.

Normally, Fedora auto-creates the necessary triggers+sequences when
the tables are created the first time Fedora is started. It sounds
like perhaps these don't exist in your database, but the tables do,
and this is confusing the rebuilder because it thinks it just has to
remove the content from the tables...and not re-create the triggers
and sequences.

Can you try manually dropping those tables? This should signal to the
rebuilder that the database tables (and necessary sequences and
triggers, for Oracle) need to be re-created rather than just having
thier rows removed.

- Chris
> ------------------------------------------------------------------------------
> Nokia and AT&T present the 2010 Calling All Innovators-North America contest
> Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
> $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
> Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
> http://p.sf.net/sfu/nokia-dev2dev
> _______________________________________________
> Fedora-commons-users mailing list
> Fedora-com...@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/fedora-commons-users
>

Reply all
Reply to author
Forward
0 new messages