Mongoose House

          Technical Edition

          統(tǒng)計

          留言簿(4)

          積分與排名

          閱讀排行榜

          解決RMI調(diào)用timeout的問題

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

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

          測試方法, 首先, 讓某remote method執(zhí)行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?}

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


          相關(guān)資料
          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 閱讀(2521) 評論(0)  編輯  收藏


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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 泸水县| 宁津县| 泸西县| 灵台县| 醴陵市| 如东县| 新安县| 康定县| 大方县| 巴南区| 陆河县| 太白县| 徐闻县| 黄冈市| 松原市| 科尔| 兰考县| 德清县| 鄯善县| 多伦县| 新密市| 景谷| 庆云县| 武功县| 二连浩特市| 渑池县| 鞍山市| 宝丰县| 陕西省| 麻阳| 晋城| 柳江县| 黔西县| 松桃| 襄汾县| 长治县| 英吉沙县| 武威市| 谢通门县| 军事| 镇坪县|