Flyingis

          Talking and thinking freely !
          Flying in the world of GIS !
          隨筆 - 156, 文章 - 16, 評論 - 589, 引用 - 0
          數據加載中……

          AE92 for Java 中手動釋放 COM 對象

              作者:Flyingis 

              用Java進行ArcEngine或ArcGIS Server開發,在底層實際上是用Java調用AO COM對象,ESRI用Jintegra庫來解決Java對COM的調用問題,如果Java對象不再使用,Java虛擬機會自動將這些對象回收,然后 Jintegra將這些對象所指的實際COM對象銷毀,默認情況下時間間隔是10秒,對于快速大量調用COM對象的操作來說,如在循環中,COM對象往往得不到及時的銷毀,以至于內存報錯,這時我們需要手動銷毀COM。

              Jintegra釋放方法:

              com.linar.jintegra.Cleaner.release(objectRef);

              在ArcEngine和ArcGIS Server中如何釋放COM呢?Jintegra為ArcObjects生成了一組proxy類,可以參考com.esri.arcgis.interop命名空間,經常用的是 com.esri.arcgis.interop.Cleaner,它的release(java.lang.Object anObject)和releaseAll()用來釋放指定的或所有的COM對象,同時可以為COM連接和釋放增加監聽, addConnectionListener(ConnectionListener listener)和allUnreferencedListener(Unreferenced listener)。

              同時可以參考:

              HowTo:  Explicitly release a COM object accessed in a Java application
              J-Integra for COM Document
              Garbage Collection: Releasing Java References to COM Objects
              Java調用COM的中間件Jintegra初探

          posted on 2007-07-09 14:10 Flyingis 閱讀(3703) 評論(1)  編輯  收藏 所屬分類: ArcEngine

          評論

          # re: AE92 for Java 中手動釋放 COM 對象  回復  更多評論   

          能不能寫一篇 網絡分析的java。我想寫一個開源的類似arcserve的程序
          2008-01-17 09:38 | 阿笨
          主站蜘蛛池模板: 红河县| 沙坪坝区| 手游| 隆尧县| 涡阳县| 佛教| 长治县| 汾阳市| 修文县| 象山县| 尉犁县| 南平市| 磐石市| 麻城市| 轮台县| 永宁县| 卓资县| 揭阳市| 普定县| 石河子市| 乾安县| 定州市| 卓资县| 和田市| 巩留县| 昌吉市| 吉首市| 湖南省| 宝清县| 会宁县| 措美县| 二连浩特市| 商洛市| 安宁市| 绩溪县| 大关县| 康平县| 开封市| 丁青县| 阳山县| 红河县|