This article provides troubleshooting tips for accessing Cloudscape databases.
Tip: Cloudscape errorCodes (2000, 3000, 4000) indicate levels of severity, not specific error conditions. In diagnosing Cloudscape problems, pay attention to the given sqlState value.
This problem can occur because Cloudscape databases use a large number of files. Some operating systems, such as the Solaris Operating Environment, limit the number of files an application can open at one time. If the default is a low number, such as 64, you can get this exception.
If your operating system lets you configure the number of file descriptors, you can correct the problem by setting the number to a high value, such as 1024.
If a select for update operation on one row locks the entire table, which creates a deadlock condition, there might be undefined indexes on that table. The lack of an index on the columns you use in the where clause can cause Cloudscape to create a table lock rather than a row level lock.
To resolve this problem, create an index on the affected table.
This problem occurs because Cloudscape embedded framework only allows one Java virtual machine (JVM) to access the database instance at a time. To resolve this problem:
Error "The version of the IBM Universal JDBC driver in use is not licensed for connectivity to Cloudscape databases"
The version of the IBM Universal JDBC driver in use is not licensed for connectivity to Cloudscape databases. To connect to this DB2 server, please obtain a licensed copy of the IBM DB2 Universal Driver for JDBC and SQLJ. An appropriate license file db2jcc_license_*.jar for this target platform must be installed to the application classpath. Connectivity to Cloudscape databases is enabled by any of the following license files: { db2jcc_license_c.jar, b2jcc_license_cu.jar, db2jcc_license_cisuz.jar }The problem occurs because an incorrect JDBC driver jar file name is specified in the class path for JDBC provider. For example, the jar file name may have an extra '_', as follows:
${UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc_license__cu.jarTo resolve the problem:
At client runtime, you may receive a message similar to the following: Caused by: com.ibm.db2.jcc.a.SqlException: DB2 SQL error: SQLCODE: -1, SQLSTATE: 42X05, SQLERRMC: ANNUITYHOLDER20^T42X05
The problem occurs because the property retrieveMessagesfromServerOnGetMessage, which is required by WebSphere Application Server, has not been set. To resolve the problem, on the admininstrative console
The SystemOut.log will now generate readable messages so that you can
resolve the underlying problem.