2010-11-16 64 views
7

我想設置一個小程序,它從數據庫中檢索信息,然後在請求時將該信息分發給另一個程序。例如,一個名爲'Master'的程序將從數據庫中檢索數據並創建一個對象集合(列表,數組等),然後一個名爲'從屬'(從多個桌面運行)的程序可以調用一個方法(即GetNextRecord)從'Master'中檢索集合中的下一條記錄。從另一個Delphi程序調用Delphi方法

我希望能夠只允許一個「從屬」能夠一次調用GetNextRecord方法,以避免給多個從屬同一個記錄。 'Master'將在數據庫的服務器上運行,而'Slave'將在多臺臺式機上運行。

有沒有人有這樣的例子或教程如何做到這一點?

TIA, 布賴恩·恩德勒

回答

1

您所描述的內容也被稱爲load balancing,它可以使用Message Queue實施。

查一查面向消息的中間件,並檢查存在的實施方式中,像Microsoft Message Queuing (MSMQ)

MSMQ本質上是一種消息傳遞協議 ,允許應用程序運行 在單獨的服務器/處理 在故障安全方式進行通信。

推薦閱讀也是本書Enterprise Integration Patterns


注:我對開源消息隊列/消息代理Delphi和自由帕斯卡爾客戶端庫的作者(ActiveMQ的問題,HornetQ,OpenMQ, RabbitMQ)

0

我會看看Delphi XE中的DataSnap。有一個免費的DataSnap 2010白皮書,其視頻位於http://www.embarcadero-info.com/in_action/radstudio/db.html,目前我正在爲另一份白皮書(可能在下個月或2011年初發布)開發Delphi XE小型但實際的案例研究應用程序。同時,您還可以查看我今天發佈的Delphi XE DataSnap Development Essentials課件手冊http://www.eBob42.com/courseware(請參閱TOC http://www.ebob42.com/training/DataSnapXE.pdf)。

如果您沒有Delphi的企業版,並且不想升級到它,那麼您可能想要給RemObjects SDK一看。

注:我兩個經銷商,但我都在與客戶實際的項目也使用,所以我不知道我在說什麼;-)