編程生活

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            113 隨筆 :: 0 文章 :: 18 評論 :: 0 Trackbacks

          遠程接口采用Call-by-value 是傳值,傳值就要對參數進行copy,所以要求參數必須是可序列化,性能也比較低。因此參數在ejb內部改變對外部對象沒有影響。

          本地接口采用Call-by-reference 是傳引用,可以提高性能,不過這樣作,有可能改變參數的值,此時的參數可以是非序列化的

          如果采用本地接口就必須采用Call-by-reference,不是可以,是必須
          如果采用遠程接口,必須用Call-by-Value,但是調用關系完全在一個VM內的時候,WebLogic可以優化成Call-by-reference,這時后遠程調用就自動退化為本地調用,性能上有提高。那個警告就是說你禁止了這個優化,可以不理。建議打開優化提升性能。

          如果開發的應用將web和ejb部署成一個ear文件,那么ejb和ejb之間的調用,web和ejb之間的調用都是采用Call-By-Reference的方式,能大大提高效率。
          如果你不采用這種方式,那么你使用的是remote的方式,無論處于一個JVM中,都是采用Call-By-Value的方式調用的。

          1??梢允褂胏all-by-reference的條件,必須在同一個application中。


          2。call-by-reference的設置,在weblogic.xml中

          <weblogic-enterprise-bean>
               <entity-descriptor>
                    <ejb-name>testBean</ejb-name>
                    ...
                    <enable-call-by-reference>True</enable-call-by-reference>
               </entity-descriptor>
          </weblogic-enterprise-bean>

          posted on 2008-08-08 09:12 wilesun 閱讀(541) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 巨野县| 汉沽区| 肇庆市| 玉树县| 当雄县| 阿荣旗| 蓬莱市| 祥云县| 温泉县| 卢湾区| 沂水县| 岐山县| 尼勒克县| 普陀区| 老河口市| 双桥区| 顺义区| 准格尔旗| 密山市| 河池市| 蓝田县| 柞水县| 沅陵县| 沂南县| 闻喜县| 大姚县| 安丘市| 宜兰市| 大英县| 徐闻县| 额尔古纳市| 洪洞县| 涟源市| 南投市| 庆云县| 蓬溪县| 吉木乃县| 乾安县| 大悟县| 河北区| 武平县|