跳轉到內容

OpenClinica 使用者手冊/ChangeLogLock

來自華夏公益教科書

等待變更日誌鎖定錯誤

[編輯 | 編輯原始碼]

偶爾你會發現自己處於一種 Tomcat 陷入困境,除了強制關閉別無選擇的情況。 然後你啟動 Tomcat,但 OpenClinica 無法使用。 在 stdout.log 中,你會看到最後幾行

Waiting for changelog lock....
Waiting for changelog lock....
Waiting for changelog lock....
[repeated]

以及最終

AbandonedObjectPool is used (org.apache.commons.dbcp.AbandonedObjectPool@195092c0)
   LogAbandoned: true
   RemoveAbandoned: true
   RemoveAbandonedTimeout: 300
AbandonedObjectPool is used (org.apache.commons.dbcp.AbandonedObjectPool@1f2be27)
   LogAbandoned: true
   RemoveAbandoned: true
   RemoveAbandonedTimeout: 300
AbandonedObjectPool is used (org.apache.commons.dbcp.AbandonedObjectPool@bb0620c)
   LogAbandoned: true
   RemoveAbandoned: true
   RemoveAbandonedTimeout: 300

同時,在你的 <server>.<date>.log 中,你會看到

core-db.xml]: Invocation of init method failed; nested exception is liquibase.exception.LockException: Could not acquire change log lock.  Currently locked by UNKNOWN

在這種情況下,你必須刪除表 "databasechangeloglock" 中的所有記錄(可能只有一條)(參見 關於“liquibase 具有防止多次更新的機制”的這個帖子)。 首先關閉 Tomcat,或在 Tomcat-manager 中停止 OpenClinica 應用程式。 啟動 pgadmin 並瀏覽到該表; 右鍵單擊它,檢視資料 - 檢視所有行。 選擇該行並按刪除鍵。

或者從命令提示符

sudo -u postgres /usr/bin/psql
\c openclinica
delete from databasechangeloglock;

重新啟動 Tomcat。

華夏公益教科書