摘要: 當系統有海量數據需要級聯刪除時,我們需要小心,如果同步刪除用戶體驗會很差,他會等相當長的時間,直到系統超時,另外還會給系統突發地增加很大的負載, 閱讀全文
Oracle
Oralce plsql, sql tunning, concurrent control and so on
摘要: 在分布式應用中,單個業務應用的toplink運行在多個jvm上,同時開啟了會話緩存,而這些在多個jvm上會話緩存中的domain對象就需要進行同步,這樣可以及時拿到最新的domain對象而不需要每次都查詢database,這大大減少了樂觀鎖沖突。在Oracle Application Server上Ormi端口是動態分配的,而opmn request端口氏固定的,所以我們用opmn作為jndi lookup的url。經過測試OC4J in memory jms作為同步消息的傳輸和發現方式效率是最高的,所以采用OC4J in memory jms作為消息同步的傳輸方式。具體實現方法參見本文。 閱讀全文
摘要: 晚上要下班的時候,application team那里使用Tibco EMS做消息集成服務時候出了bug,錯誤是:java.sql.SQLException: 當全局事務處理處于活動狀態時, 無法調用方法 'commit',應該是在全局事務中使用了本地事務并提交了。幫忙看了一下,它的oc4j, toplink, spring的使用上都存在著一些問題,并把要注意的地方總結了一下。包括oc4j,toplink,spring三塊。 閱讀全文
摘要: 在java端調用存儲過程的時候需要存儲過程串行的執行,如果使用synchronized lock在應用服務器突然down掉的情況下會出現問題,因為session并沒有立即斷掉,后臺的存儲過程還在繼續執行,這樣如果應用服務器立即重啟,再調用該存儲過程或者其他需要一起串行化處理的存儲過程就會違反同步執行的原則,所以我們必須把鎖放在oracle db端,利用oracle鎖機制來完成存儲過程的同步,文章總結了一下在java端如何使用oracle這個用戶鎖機制。 閱讀全文
摘要: 上次用Coherence實現緩存數據同步的transport manager之后,對它進行了壓力測試并和EMS JMS和 OracleAS JMS(內存)進行了性能對比。文中描述了測試的過程,并共享了代碼和測試結果。 閱讀全文
摘要: Toplink提供了很強大的Cache功能,利用cache可以大大減少直接和DB通信的次數,特別是讀事務比較多的情況下。在分布式應用中,多個toplink session cache之間需要即時的同步數據,保證各個cache中的數據都是最新的數據,避免頻繁地出現stale數據或樂觀鎖異常。Toplink默認支持的兩種同步機制:JMS和RMI,有時為了考慮一些特殊的需求,必須性能,我們可能需要自定義一個Toplink的Transport Manager,本文給出了一個用Oracle Coherence實現Toplink Tranport Manager的具體例子,注意只是用了Coherence的通信并沒有把Coherence整合成Toplink的Session Cache。 閱讀全文