This page is intended to house resources and facilitate information sharing on troubleshooting upgrades to Kuali Rice 2.0. Feel free to post comments or add topics to this page in order to help others in the community should they encounter similar issues.
Database upgrade script issues
Upgrade scripts reference sample app/demo data (KULRICE-7410):
To prevent errors upgrading your database, remove all sql statements referencing trv_acct, trv_acct_type, trv_acct_fo, trv_acct_ext. These are the first 8 statements in update_final_mysql.sql and update_final_oracle.sql that are delivered with Rice 2.0.
Upgrade scripts drop tables (KULRICE-7448):
There are a number of places in the upgrade scripts where tables are dropped. Particularly in the oracle version, critically important tables are modified via creating new tables with the updated structure, selecting the existing data into them, and then dropping the old tables. If anything goes wrong, and the script does not stop on failure (which depends on the tool used to run the scripts), you could drop a table with un-copied data. Hopefully you are taking precautions not to run the script against production data until you have tested them against a copy, but if you are concerned about this issue then you will want to pull all of the DROP TABLE statements out of the scripts and put them into a separate cleanup script that can be run when you've verified that all the data has successfully been migrated to the new tables.
Upgrade scripts reach undo tablespace limit
In some areas where there are "CREATE TABLE..." and "INSERT INTO...SELECT..." pairs for copying data into tables with redefined columns (at least with the Oracle scripts), the copy-and-insert operation may run for an excessive amount of time before running out of "undo" tablespace room. The reason for this is some of those areas in the scripts create the constraints/indexes on the destination table prior to the insert. To avoid this issue, rearrange the "INSERT INTO...SELECT..." blocks to place them before the index creation commands.
Upgrade scripts are performing lengthy copying operations on large tables more than once
In the current upgrade scripts (at least the Oracle versions), some of the column redefinitions are spread out to multiple "CREATE TABLE..." and "INSERT INTO...SELECT..." pairs per table. This duplication can be avoided by commenting out one of the duplicate pairs and moving its column-casting operations to the other pair for the same table. (In the Oracle scripts, the first such pairs in the 2011-04-28 changeset are implicitly casting DOC_HDR_ID values to VARCHAR2(40), so adding an explicit DOC_HDR_ID cast to VARCHAR2(40) in the other pair should eliminate much of the duplication.)
Upgrade scripts for 1.0.3-to-2.0.0 fail to convert certain columns to VARCHAR2(40)
There are a couple of areas in the Oracle upgrade scripts where the create-and-insert commands mentioned above will try to leave certain column datatypes as numeric, as opposed to the proper VARCHAR2(40) datatypes for consistency with similar column updates. The columns KREW_RTE_NODE_T.DOC_TYP_ID and KREW_DOC_TYP_PROC_T.INIT_RTE_NODE_ID are at least two known examples of this problem. The 2.0.0-to-2.0.1 upgrade scripts contain SQL that fixes these column datatypes via create-and-insert operations.
Performance tweaks for create-and-insert operations
If faster execution of the Oracle scripts' "CREATE TABLE..." and "INSERT INTO...SELECT..." statement pairs is desired (even after fixing the indexing and duplication issues above), rewriting each pair as a basic "CREATE TABLE...AS SELECT..." query may result in the operations completing several times faster. However, care must be taken to ensure that such queries explicitly cast the old column values to the new types, especially since some of the existing create-and-insert operations perform implicit casts. In addition, columns created from casted values will not preserve their non-nullability configurations (if any) from the old table columns, so such columns will need to have their NOT NULL config enabled in a separate statement. There may be other factors (like needing to manually create certain uniqueness constraints in separate statements) that further increase the risk of performing such script rewrites, so use caution if attempting this strategy.
Error: Invalid bean definition with name 'rice'
Solution: Check your SpringBeans.xml and ensure you've replaced the rice bean with the appropriate moduleConfigurer beans as described in the #Configuration System section
Solution: Outdated libraries, specifically Spring 3.1. Please double check your libraries against the #Updated Libraries section.
Error: ConfigurationException: ConfigContext has not yet been initialized
Solution: Config Factory Bean needs to be explicitly set to initialize (changed as of Rice 2.0)
TLD Warning on startup
Solution: Verify that you have all of the kuali tld's in your web content
Error creating bean with name 'knsConfigurer' defined in class path resource due to No JTA UserTransaction available
Solution: Verify that the depends-on="coreConfigurer" is added to each of the to each of the configurers in your spring beans file. See the configuration section in the upgrade guide for a detailed coding example.
Error on initing jotm
Solution: Verify that you have updated your jta.jar to 1.1
Error: Failed to locate resource during start up
Solution: Verify that you have the rice.ksb.registry.serviceUrl set correctly in your config file
Error: No enum const class org.kuali.rice.core.api.config.module.RunMode.embedded
Solution: change kim.mode and kew.mode to EMBEDDED (all caps)
ERROR: org.kuali.rice.krad.datadictionary.AttributeDefinition - Unable to validate attribute class
Solution: Check commons-beanutils.jar to make sure it is up to dateThe correct version is commons-beanutils-1.8.3-kuali.jar
Problem - My application starts up, but my lookup and other screens all stay the same size, about 2 inches high
Solution: jquery needs to be updated
- Check to make sure the krad webapp files have been brought into your application.
- Make sure to replace any of your local jquery files with the same jruery files that are used by Kuali. Current verions :
Error: DWRUtil or DWREngine is not defined
Solution: Change the code to use dwr.util and dwr.engineRice 2.0 has been upgraded to use DWR version 3.0. The DWR libary has transitioned away from using DWRUtil and DWREngine in favor of dwr.util and dwr.engine. DWR 3.0 has dropped the support of the DWRUtil and DWREngine methods. Code needs to be updated to use the dwr.util and dwr.engine methods. (Reference: http://directwebremoting.org/dwr/downloads/upgrading/dwr30.html)