Network Deployment (Distributed operating systems), v8.0 > Reference > Troubleshoot tips
Data access problems for Apache Derby databases
This topic provides troubleshooting tips for accessing Apache Derby databases.
What problem are you having accessing your Apache Derby database?
- Unexpected IOException wrapped in SQLException, accessing Apache Derby database
- The "select for update" operation causes table lock and deadlock when accessing Apache Derby
- Error "The version of the IBM Universal JDBC driver in use is not licensed for connectivity to Apache Derby databases"
- Run an application causes a runtime exception which produces an unreadable message
Attention: Apache Derby errorCodes 2000, 3000, and 4000, indicate levels of severity, not specific error conditions. In diagnosing Apache Derby problems, pay attention to the given sqlState value.
Unexpected IOException wrapped in SQLException, accessing Apache Derby database
This problem can occur because Apache Derby databases use many 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 you can configure the number of file descriptors on your operating system, you can correct the problem by setting the number to a high value, such as 1024.
The "select for update" operation causes table lock and deadlock when accessing Apache Derby
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 Apache Derby to create a table lock rather than a row level lock.
To resolve this problem, create an index on the affected table.
Error "The version of the IBM Universal JDBC driver in use is not licensed for connectivity to Apache Derby databases"
At the client run time, an error similar to the following occurs:
The version of the IBM Universal JDBC driver in use is not licensed for connectivity to Apache Derby 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 Apache Derby 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 might have an extra '_', as follows:${UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc_license__cu.jarTo resolve the problem:
- Correct the UNIVERSAL_JDBC_DRIVER_PATH JAR file name in the JACL script.
- Restart the cluster.
- Rerun the client.
Run an application causes a runtime exception which produces an unreadable message
At client run time, you might 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 WAS, has not been set.
To resolve the problem, on the administrative console
- Click Resources > JDBC Providers.
- Click an Apache Derby provider
- Scroll down and click Data Sources.
- Select your data source or add a new one.
- Select Custom Properties.
- If the property, retrieveMessagesFromServerOnGetMessage exists, set its value to true. If the property does not exist, select New and add the property, retrieveMessagesFromServerOnGetMessage with a value true.
- Rerun the client.
The SystemOut.log now generates readable messages so that you can resolve the underlying problem.
New feature: Beginning in WAS v8.0 you can configure the server to use the HPEL log and trace infrastructure instead of using SystemOut.log , SystemErr.log, trace.log, and activity.log files or native z/OS logging facilities. If you are using HPEL, you can access all of your log and trace information using the LogViewer command-line tool from your server profile bin directory. See the information about using HPEL to troubleshoot applications for more information on using HPEL.New feature:
Troubleshoot and support
Develop data access applications
Use HPEL to troubleshoot applications
Related
Data access problems
Data access problems for Oracle data sources
Data access problems for DB2 databases
Data access problems for Microsoft SQL Server data sources
Data access problems for Sybase data sources