Mongoose House

          Technical Edition

          統(tǒng)計(jì)

          留言簿(4)

          積分與排名

          閱讀排行榜

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

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

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

          測(cè)試方法, 首先, 讓某remote method執(zhí)行2分鐘左右, 模擬一個(gè)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)用的時(shí)候使用如下代碼, 則可以避免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) 評(píng)論(0)  編輯  收藏


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 汶上县| 桂阳县| 孝义市| 平昌县| 军事| 和田市| 鹤岗市| 禹城市| 镇宁| 礼泉县| 普兰县| 塔城市| 车险| 深泽县| 图木舒克市| 安丘市| 襄汾县| 玉门市| 米易县| 通化市| 凤冈县| 保德县| 西平县| 和平区| 泰和县| 海晏县| 南雄市| 怀柔区| 肇州县| 都江堰市| 万全县| 杭锦旗| 黑山县| 五河县| 肇源县| 大安市| 房山区| 武威市| 中宁县| 天门市| 溆浦县|