我是Websphere MQ V7 C++。我正在考慮創建多線程應用程序以獲取並響應隊列中的消息。你們可以給我一個關於這個使用pthread庫的多線程方法的例子嗎?我不知道如何創建一個。Websphere MQ C++多線程
謝謝! :)
我是Websphere MQ V7 C++。我正在考慮創建多線程應用程序以獲取並響應隊列中的消息。你們可以給我一個關於這個使用pthread庫的多線程方法的例子嗎?我不知道如何創建一個。Websphere MQ C++多線程
謝謝! :)
就我個人而言,我不會推薦使用C++ API - 它已經穩定下來,並且不會被擴展用於更新的功能。使用來自C++應用程序的C調用而不是
http://pic.dhe.ibm.com/infocenter/wmqv7/v7r1/index.jsp?topic=%2Fcom.ibm.mq.doc%2Fzd00030_.htm 「從WebSphere MQ V 7.0開始,對WebSphere MQ編程接口的增強將不會應用於C++類。
就多線程方法而言,它應該與任何正常的線程程序沒有區別......如果您不使用共享hconns,那麼hconn只對其創建的線程有效,並且如果您確實使用shared hconns我不會嘗試同時在線程間共享它們(通常根據共享選項阻止呼叫)。
在其他情況下,如果您讓使用mesage的程序執行某些操作並放置mesagge作爲響應,並且不會執行另一個複雜的邏輯。如果您沒有足夠的P-trhead經驗,您可以實例化該程序的n次。
感謝您的回覆,我真的很感激。 :) – watangka
關於多線程MQ C API的使用,有什麼方法可以中止等待的MQGET(例如終止應用程序時)?如果MQGET正在進行,MQDISC和MQCLOSE似乎都會阻塞。 – rustyx
每個hconn只能有一個API在任何時間點進行。所以你會有幾個選擇...有2個連接,並在第二個喚醒mqget(虛擬消息,使隊列被禁止)或者使用更新的MQCB,而不是坐在MQGET中,當消息可用。如果必須通過單個連接來完成,請考慮MQGET /等待,如果超時,請檢查是否應該中止,如果不是,則返回等待狀態。 – JasonE