Apache Derby: “ERROR 25502: An SQL data change is not permitted for a read-only connection, user or database.”
December 30, 2019 Leave a comment
Problem:
During testing Oracle ZDM (Zero Downtime Migration), I’ve stopped ZDM host ungracefully. After that zdmservice was not able to start:
[zdmuser@primracq ~]$ /u01/app/zdmhome/bin/zdmservice start ... CRS_ERROR:TCC-0004: The container was not able to start. CRS_ERROR:One or more listeners failed to start. Full details will be found in the appropriate container log fileContext [/rhp] startup failed due to previous errors ... Start operation could not start zdmservice. zdmservice start failed…
Troubleshooting:
Check logs under [/rhp], in my case /u01/app/zdmbase/crsdata/primracq/rhp/logs/
[zdmuser@primracq ~]$ ll /u01/app/zdmbase/crsdata/primracq/rhp/logs/ total 3748 -rw-r--r-- 1 zdmuser zdm 277774 Dec 17 19:19 catalina.2019-12-17.log -rw-r--r-- 1 zdmuser zdm 186117 Dec 18 18:12 catalina.2019-12-18.log -rw-r--r-- 1 root root 24133 Dec 19 19:12 catalina.2019-12-19.log -rw-r--r-- 1 root root 541694 Dec 22 20:31 catalina.2019-12-22.log -rw-r--r-- 1 zdmuser zdm 35666 Dec 23 12:40 catalina.2019-12-23.log -rw-r--r-- 1 zdmuser zdm 2407571 Dec 23 12:40 catalina.out -rw-r--r-- 1 zdmuser zdm 12541 Dec 23 12:40 derby.log -rw-r--r-- 1 zdmuser zdm 273095 Dec 23 12:40 jwc_checker_stdout_err_0.log -rw-r--r-- 1 zdmuser zdm 155 Dec 23 12:40 JWCStartEvent.log -rw-r--r-- 1 zdmuser zdm 5083 Dec 17 19:19 localhost.2019-12-17.log -rw-r--r-- 1 zdmuser zdm 5083 Dec 18 18:12 localhost.2019-12-18.log -rw-r--r-- 1 root root 5083 Dec 19 19:12 localhost.2019-12-19.log -rw-r--r-- 1 root root 5083 Dec 22 20:31 localhost.2019-12-22.log -rw-r--r-- 1 zdmuser zdm 18708 Dec 23 12:40 localhost.2019-12-23.log
catalina.out
showed the following error:
Internal Exception: java.sql.SQLException: An SQL data change is not permitted for a read-only connection, user or database. ... Caused by: ERROR 25502: An SQL data change is not permitted for a read-only connection, user or database.
Solution:
Remove db.lck file under /u01/app/zdmbase/derbyRepo:
# rm -rf /u01/app/zdmbase/derbyRepo/db.lck
And start the service again.