0
我有4個ejb客戶端訪問不同應用程序服務器中的POJO類。這個POJO類會將一些數據寫入數據庫。現在,當從兩個應用程序服務器同時調用更新數據到數據庫時,會創建一個數據庫鎖並且所有數據都無法成功存儲。多個應用程序服務器同時更新數據時處理數據庫鎖
約束:該類不能被創建爲EJB,並且應用程序服務器的默認設置不能被更改(例如:事務超時)。
如何解決這個問題?
我有4個ejb客戶端訪問不同應用程序服務器中的POJO類。這個POJO類會將一些數據寫入數據庫。現在,當從兩個應用程序服務器同時調用更新數據到數據庫時,會創建一個數據庫鎖並且所有數據都無法成功存儲。多個應用程序服務器同時更新數據時處理數據庫鎖
約束:該類不能被創建爲EJB,並且應用程序服務器的默認設置不能被更改(例如:事務超時)。
如何解決這個問題?
您的情況看起來與操作系統中的信號量概念類似。你爲什麼不通過延遲或睡眠來嘗試相同的事情。
什麼是錯誤?第一次會議保持交易持續多久?第二次會議的交易超時是多少?爲什麼在兩個不同的應用程序服務器上運行兩個會話來更新同一個表中的同一行?這通常不是您想要設計系統的方式。 – 2012-03-29 03:40:15
錯誤是:java.sql.SQLException:ORA-02049:超時:分佈式事務正在等待鎖定。事務超時是Application Server的默認設置。 – Rekha 2012-03-29 03:45:40
什麼是應用程序服務器上的事務超時?爲什麼有分佈式事務?您預計第一筆交易在持有鎖期間持續多久? – 2012-03-29 04:57:09