今天在測試微軟訊息佇列,打算把訊息發到伺服器的,用ip位址來指定。
開發時用本地環迴ip127.0.0.1來測試,方便提交後其他同事使用,結果發現坑爹的事情了
system.messaging.messagequeue queue = new system.messaging.messagequeue("formatname:direct=tcp:127.0.0.1\\private$\\test");
傳送的訊息,堆在「傳出佇列」裡面,狀態是等待連線
讀取時也發生異常system.messaging.messagequeueexception
hresult=-2147467259
message=佇列不存在,或您沒有足夠的許可權執行該操作。
反覆測試後發現,用127.0.0.1是不行的,換成乙個本機ip就可以了
system.messaging.messagequeue queue = new system.messaging.messagequeue("formatname:direct=tcp:192.168.2.88\\private$\\test");
現象傳送接收**如下:
傳送system.messaging.messagequeue queue = new system.messaging.messagequeue(arpauploadmessagequeuename);
var msg = new system.messaging.message();
msg.body = new mydata();
msg.formatter = new system.messaging.xmlmessageformatter(new type );
msg.recoverable = true;
接收system.messaging.messagequeue queue = new system.messaging.messagequeue("formatname:direct=tcp:192.1.0.127\\private$\\arpatest");
var msg = queue.receive();
msg.formatter = new xmlmessageformatter();
console.writeline("讀取佇列物件."+msg.body);
訊息佇列的使用
剛開始看的時候,由兩個疑問,我自己的答案是這樣的 1.訊息佇列在系統中的最大個數,關於這個問題,書上有明確的答案 書上有個 列明了linux free bsd,mac os x solaris中的典型值。當然也可以通過一些手段來修改。sysctl就可以修改。2.在多個執行緒 或程序 同時對乙個訊息佇...
使用微軟訊息佇列實現C 程序間通訊(二)
列表e messageenumerator enumerator queue.getmessageenumerator2 while enumerator.movenext enumerator.removecurrent 在使用getmessageenumerator2方法時,還要考慮另外乙個問題...
如何使用訊息佇列的事務訊息
發訊息 過程,往往是為通知另外乙個系統更新資料,mq的 事務 主要解決訊息生產者和訊息消費者的資料一致性問題。先把商品加到購物車 然後幾件商品一起下單 最後支付 完成購物流程,就可以愉快地等待收貨 該過程中有個需用mq。訂單系統建立訂單後,發訊息給購物車模組,將已下單商品從購物車刪除。從購物車刪除已...