Yii Cache: SQLite DB Lock

Yii Cache was working fine for me until today when I saw DB exception in a script using cache:

exception 'CDbException' with message 'CDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: General error: 5 database is locked. The SQL statement executed was: DELETE FROM YiiCache WHERE id='9ccac723c84ae75582784f9e3738d781'' in 

I have no idea why this error came up while everything was normal a minute before. After that I saw couple of more same exceptions Yii cache and then another:

exception 'CDbException' with message 'CDbCommand failed to execute the SQL statement: CDbCommand failed to prepare the SQL statement: SQLSTATE[HY000]: General error: 1 table YiiCache already exists. The SQL statement executed was: CREATE TABLE YiiCache



	expire INTEGER,

	value BLOB

)' in C:\xampp\htdocs\framework\db\CDbCommand.php:336

Since cache is being used on many places in the code so I cannot put the try catch everywhere, instead I would like to settle the root cause. This problem was solved when I removed the db cache file and framework started a new file. The old file size was around 71MB.



Yii Framework: 1.1.8

PHP version: 5.3.8

Please let me know so I can avoid this in future.

Thank you


Thanks for the link but like I said that the problem was resolved after deleting the cache db file.

Then link you mentioned also saying the same but I cannot find the actual cause till now :)

read the error it says

"database is locked"

I am guessing you have multiple database connections

is it because I’m using the same cache for web and cli apps both ?

My cache needs to be shared on web and CLI scripts. Will this create the problem ?


I would like to add some information which might be helpful. The SQlite cache db file size increases insanely sometimes which causes the slower DB open and close operations. Normally a file does not have more then 500KB data but sometimes suddenly it goes upto 40MB and hence slowdown the operations.