Google Code Prettify

2015年5月5日 星期二

Tibco RV 的 Queue

回顧「Tibco RV request/reply 的同步與非同步」一文裡面的 Server.java,它使用的是 Tibco RV 的 default queue 進行訊息的分派 (line 36、39),這麼做的最大好處是簡單,但是,基於以下理由,一般的應用程式不會使用 default queue,而是會每個應用程式自行建立自己的 queue,理由如下:

  1. 每個 queue 的訊息是以 FIFO 的方式消化掉,如果所有應用程式共用一個,所有的訊息會混雜在一起,會造成塞車。
  2. 不同的 queue 是以 round-robin 的方式消化,default queue 的優先順序是 1,也就是最低的優先順序!
  3. 使用自己建立的 queue,可以設定一些參數,以自己希望的方式消化訊息。

這裡將 Server.java 的訊息分派那一段程式改寫,如下:
             TibrvQueue queue = new TibrvQueue();
             queue.setPriority(10);
             queue.setName("MyQueue");
             queue.setLimitPolicy(TibrvQueue.DISCARD_LAST, 100, 1);
           
             new TibrvListener(queue, this, transport, subject, null);
           
             while (!eventReceived) {
                 eventReceived = queue.timedDispatch(server_timeout);
                 if (eventReceived) {
                     System.out.println("receive a message");
                 }
                 else {
                     System.out.println("timeout");
                 }
             }
從上面的程式,可以看到我們為 queue 設定了比較高的優先順序,也為 queue 取名,以方便 debug,最重要的是,還可以用 setLimitPolicy 設定一些訊息的處理原則,它的三個參數說明如下:
  1. 第一個參數: 當 queue 的訊息滿了,又有新的訊息傳過來,來不及處理時,queue 該如何處理?
  2. 第二個參數: 這個 queue 最多可以放幾個訊息。
  3. 第三個參數: 當要放棄一些訊息時,一次要放棄幾個?




【日劇 - 影子寫手】
同一個故事,每個人看到的面向多不盡相同,這部影集在川原由樹 (水川麻美 飾) 揭露出自己長期當名作家遠野理紗 (中谷美紀 飾) 的槍手後,除了真相被新聞媒體聯手封殺外,她的寫作之路也被各大出版社聯手斬斷了! 最後更在司法上慘敗,面臨鉅額賠償! 這是很正常的,社會的各既得利益者會為保護自己的權益及權力,聯手且不擇手段的打擊任何對手。

台灣這幾年喊的震天響的「轉型正義」,真的要成功,一定會讓目前的許多既得利益階級喪失非常多的特權,這些特權對他們說都是天經地義,原本就屬於他們自己的,就像皇后生下的長子就該立為太子,就該繼承皇位那麼的自然。所以當改革真的開始啟動後,這些既得利益階級(反動勢力?)的反撲是必然的,也絕對是會讓台灣陷入一段時間的動盪、不安。

【每日一字】
class warfare - fighting or disagreement between social classes, usually with the lower classes trying to take power and money away from the upper classes (階級鬥爭)
* Some people think that class warfare is unavoidable and that as the upper classes continue to get richer, the lower classes will star a revolution.
(資料來源: ESL Podcast 573)

沒有留言:

張貼留言