2013-08-30 29 views
5

我打算構建一個將使用Hibernate和MySQL作爲其數據源的桌面應用程序。我想在多臺機器上執行桌面應用程序,但是我希望它們都可以讀/寫同一個MySQL數據庫。這甚至有可能嗎?我關心的是兩個應用程序試圖訪問/修改相同信息時的併發問題。是否有多種ORM應用程序實現實時數據庫同步(如果不允許單個數據庫)的替代解決方案?使用Hibernate將兩個或多個應用程序連接到同一個數據庫

有一些類似的問題,我的stackoverflow但他們的答案不滿足我。

+0

:S併發屬於處理mysql引擎..不是你的應用程序。 dbms會爲你做這件事 – nachokk

+0

雖然你必須確保你已經爲它配置了MySQL。默認值(據稱其性能很好)不具有事務安全性。 – chrylis

回答

6

您可以讓多個基於hibernate的應用程序與同一個數據庫交談。大部分情況下,這與運行多個線程與同一個數據庫進行交談幾乎相同。

最常見的問題,你可能會看到,如果你的Hibernate配置使用第二級緩存會發生。當hibernate配置了二級緩存時,它假定緩存與底層數據庫一致。當一個應用程序連接到數據庫時,二級緩存可以存在於應用程序服務器的本地RAM中,並且一切都很好。

如果你有多個服務器(它們是否運行相同的應用程序或不同的),你需要有一個由所有服務器共享一個單一的二級緩存。或者你不需要使用二級緩存。對Hibernate的二級緩存

一些分佈式緩存解決方案可供選擇 - 谷歌將幫助你研究你的各種選項,如果你決定走這條路線。

相同的參數也適用於查詢緩存。

相關問題