Mongoose House

          Technical Edition

          統計

          留言簿(4)

          積分與排名

          閱讀排行榜

          解決RMI調用timeout的問題

          最近遇到一個問題, 某系統, 有外部系統通過RMI調用來訪問此系統. 現在有一個問題是, 如果當此系統某調用花費時間過長, 那么就需要使此次調用timeout. 而默認地, timeout的時間是2小時, 現在需要找到一種辦法縮短這個時間.

          解決辦法
          查閱資料發現, 可以設置sun.rmi.transport.tcp.responseTimeout(Java1.4 and above)來達到這個效果. 在Sun RMI上測試通過.

          測試方法, 首先, 讓某remote method執行2分鐘左右, 模擬一個long time method.
          ?1?public?void?aMethod()?throws?RemoteException?{
          ?2?????
          ?3?????//long?time?op.
          ?4?????try?{
          ?5?????????Thread.sleep(100000L);
          ?6?????}catch?(Exception?e)?{
          ?7?????????e.printStackTrace();
          ?8?????}
          ?9?????
          10?????System.out.println("It's?a?long?time?method.");
          11?????
          12?}

          在客戶端執行調用的時候使用如下代碼, 則可以避免2分鐘的調用等待, 使其盡快timeout, 釋放資源.
          1?java?-Dsun.rmi.transport.tcp.responseTimeout=50?mongoose.TestClient


          相關資料
          Re: Is there timeout parameter
          Re: socket timeouts taking 2 hours
          FAQ of RMI
          Does RMI have a timeout period...
          Connection reset
          sun.rmi Properties


          posted on 2006-08-14 13:20 Mongoose 閱讀(2524) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 城步| 津市市| 台北县| 沈丘县| 临汾市| 潜江市| 获嘉县| 泸定县| 康乐县| 渝中区| 西和县| 望都县| 万安县| 泽库县| 永善县| 永安市| 桐乡市| 望都县| 阿拉善盟| 萝北县| 通州区| 福海县| 金秀| 晴隆县| 会昌县| 白沙| 桂阳县| 西峡县| 巴林右旗| 榕江县| 天台县| 尖扎县| 嘉定区| 晋宁县| 南京市| 县级市| 平凉市| 新和县| 彰化市| 左权县| 枝江市|