Installing/upgrading Bamboo with Oracle fails with a ORA-00942 SQLException
症状
Installing/upgrading Bamboo fails with the following error logged:
Caused by: java.sql.SQLException: ORA-00942: table or view does not exist
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439)
診断
Case #1
Try connecting to your Oracle database with a database client such as SQLDeveloper or DBVisualizer using the login credentials of your Bamboo database user.
Once you are connected, try to manually create a table in the database.
create table t (
a number,
b varchar2(10)
);
If you are thrown a permission error, then your Bamboo database user does not have sufficient privileges to create tables in the database. After failing to create tables Bamboo tries to insert data into the tables and throws the above error.
Case #2
Turn on SQL debug logging as described in How to Enable Detailed SQL Logging.
If you see the following in the logs, it means that Bamboo is picking up tables from other schemas and is not able to see tables in Bamboo schema:
2010-07-19 12:42:40,960 INFO [main] [TableMetadata] table found: CONFLUENCE.BANDANA
2010-07-19 12:42:40,960 INFO [main] [TableMetadata] columns: [bandanakey, bandanaid, bandanavalue, bandanacontext]
2010-07-19 12:42:40,961 INFO [main] [TableMetadata] foreign keys: []
2010-07-19 12:42:40,961 INFO [main] [TableMetadata] indexes: [sys_c003995, band_context_idx, band_key_idx]
...
2010-07-19 12:42:44,783 INFO [main] [TableMetadata] table found: CONFLUENCE.NOTIFICATIONS
ソリューション
Ensure that the Bamboo database user:
- has at least the
connect
andresource
privileges to the Bamboo database. If you are unsure how to grant this permission, talk to your Oracle DBA. The user and password are stored in the<BAMBOO_HOME>/bamboo.cfg.xml
file as the hibernate user and hibernate password elements. Make sure to configure only the needed level of permissions as per documentation recommendations because giving the Bamboo user more permissions than it needs might cause confusions. - is not able to view tables from other schemas (e.g., Confluence and JIRA).