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)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 高尔夫| 江口县| 油尖旺区| 修文县| 浑源县| 天柱县| 东海县| 徐水县| 曲阜市| 修文县| 高邑县| 宝清县| 平原县| 永州市| 南丹县| 修文县| 南雄市| 琼海市| 明光市| 卫辉市| 桐庐县| 广宗县| 峨山| 灵山县| 利辛县| 顺义区| 峨眉山市| 洛宁县| 崇礼县| 万州区| 上饶县| 苏尼特右旗| 南陵县| 沾益县| 巴林右旗| 高密市| 汉川市| 开平市| 耒阳市| 安岳县| 关岭|