2012-03-08 29 views
4

我正在使用通過Pro * C將Oracle作爲後端的C++服務器。從多個線程訪問Oracle的Pro * C

現在我們有一個重要的問題在多個線程的無關表上運行查詢。我可以找到有關使用互斥鎖等進行同步的文檔。

如果您通過多個線程使用單個連接,那麼我在使用Linux等其他數據庫(如MySQL上的MySQL)時遇到問題。我通過創建每個線程的連接句柄來解決問題。

是否有這樣的技巧讓我們以類似的方式使用Oracle Pro * C?似乎在10+版本中不支持這種功能的企業級數據庫有點不太可能。

+0

你知道pro * c預編譯器選項[線程](http://docs.oracle.com/cd/B13789_01/appdev.101/a97269/pc_11thr.htm#i997959)和[多線程編程考慮(http://docs.oracle.com/cd/B13789_01/appdev.101/a97269/pc_11thr.htm#i999517)?可能會有所幫助...切換到「OCCI」也會讓你的生活更輕鬆。 – nabulke 2012-03-08 15:13:29

+0

@nabulke這可能工作。把它放在答案中我會接受它。不幸的是,在這個階段OCCI不是一種選擇。 – Karlson 2012-03-08 15:25:38

回答

4

你知道pro * c預編譯器選項Threadsmultithreaded programming considerations嗎?

隨着THREADS = YES在命令行上指定,PRO * C/C++預編譯器保證所生成的代碼是線程安全,因爲你遵循的準則。

+0

好文檔!非常感謝你! – 2015-12-09 08:51:42