我的應用程序在Jboss 2.4上的EJB 1.1上運行並使用Sybase。最近我們看到一個問題,那就是某個表上有無限制的鎖,導致後續查詢等待鎖釋放,從而導致整個應用程序失敗。數據庫管理員聲稱,該應用程序沒有釋放任何鎖,並且我們沒有對處理該特定表的代碼進行任何更改。我的問題是,是否有任何常見問題與需要檢查的Jboss 2.4或任何特定領域尋找?在Sybase ASE中未釋放的鎖
我運行的查詢只是一個簡單的選擇/更新語句與read_committed事務隔離。我從jboss池中獲取連接並執行select或update,然後關閉連接,語句和結果集。
爲什麼問題是隨機發生的?
對不起,我無法提供任何代碼。
只需添加到下面的答案,如果您不希望進行服務器範圍更改,也可以基於每個表配置鎖。啓用數據行時會有額外的開銷,所以如果您只有一些表有問題,您可能只想更改這些表。 http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc20021_1251/html/locking/X12029.htm –
我會建議詢問數據庫管理員有關鎖定連接的所有信息。假設此RDBMS是Sybase ASE而不是ASA或其他,則可以在syslocks中查詢鎖,在鎖中可以獲取鎖定進程的連接標識(spid)。從spid中可以得到sysprocesses中的一些信息:開始時間,用戶和一些依賴於應用程序的信息。收集所有,也許這允許識別jboss交易並推斷結論。 – Corral