top
Loading...
Insprise運用于服務器的容器
p align="JUSTIFY">上篇介紹了簡單的介紹了運行EJB容器時的一些參數的意義,下面先介紹EJB容器和EJB服務的基本概念,然后介紹一些EJB容器運行的診斷標志。最后介紹了EJB的使用工具。

一、EJB服務和EJB容器的基本關系:

EJB服務是一個邏輯上需要為Enterprise beans提供服務集合。例如名字服務,事務服務等。可以將這些服務配置到同一個地址空間中,也可以配置到不同的地址空間,甚至在不同的機器上。

EJB容器是一個特殊的服務,所有的Enterprise Beans都配置在容器里面。根據EJB規范中的約定和描述,容器這個特殊的服務管理著Beans的生命周期,事務處理,安全性能,名字服務,持久性等等系統級的內容。當然,要達到這些目的,容器也使用服務器提供的一些基本的服務。例如,如下命令行啟動了一個EJB容器:

prompt% vbj com.inprise.ejb.Container test beans.jar -jns -jts -jdb

用這樣的命令行啟動了一個容器。本身啟動了基本的服務進程。從邏輯上來看,可以把它看成具有四個基本EJB服務(在同一個地址空間里面),加上第五個特殊的服務-EJB容器。特殊的服務(容器)將Enterprise beans放在文件beans.jar中。

現在,有了一個分布式應用程序的系統框架的。EJB服務是一個邏輯上的基本的EJB服務集合器。為了容錯冗余,還可能有一個復制的容器。

診斷標志:

在Inprise的EJB容器中,有各種各樣的診斷標志。這些診斷標志為配置Inprise容器提供了方便,為調試Enterprise Bean的代碼提供了手段。通過對診斷標志的設定,就可以讓Inprise的EJB容器按你所需要的方式運行。診斷標志有很多,下面是一些最常用的診斷標志:

EJBDebug:提供了EJB容器的EJB狀態機,消息中斷,容器管理的持久性的診斷。

EJBException:當異常從RMI傳遞到CORBA中時,打印出異常信息。但同時也會丟失一些信息。例如,丟失了堆棧的消息。這個標志使跟蹤堆棧的信息輸出到標準錯誤(standard error)。

EJBTimers:如果將這個標志置ON。則允許容器開發者管理使用CPU。

EJBDetailTimers:如果將EJBTim 標志置為ON,將打印所有由EJBTimers標志產生的信息。另外加上方法層的Timing信息。此標志允許開發者監視不同的Enterprise beans如何使用CPU資源。命令行輸出需要你把你的終端設得稍微寬點,以避免輸出行的饒行。

EJBCopyArgs:使在Beans內部過程調用參數是采用拷貝方式。缺省方式是的引用傳遞(pass-by-reference)方式的。如果這個標志置ON,參數就用值(pass-by-value)方式。注意,如果用值傳遞(pass-by-value)方式,如果有大量的Enterprise beans的運行,速度將會顯著的變慢。例如,在Sort例子中就會因為將大量的CPU時間花在參數的拷貝上面而使速度五倍的變慢。

注:這些標志在JAVA虛擬機中有詳細的定義。在上一個例子中如果要將EJBDebug標志置ON,用如下命令行:

prompt% vbj -DEJBDebug com.inprise.ejb.Container test beans.jar -jts -jns -jdb

使用VisiBroker的標志:

跟EJB和RMI中的標志一樣,能夠設定VisiBroker for Java 的標志。其中有兩個最常用的標志是:ORBwarn和ORBdebug。如下所示:

Vbroker.orb.warn:可以將這個標志置成大于或等于2,可將ORB error診斷標志置ON。Vbroker.orb.debug:將這個標志置為true,則將ORB的詳細的診斷置ON。否則置OFF。Vbroker.agent.port:這個標志顯示的指定OSAgent的端口。

Inprise的EJB工具:

編寫Enterprise Bean,要用到很多有關的實用工具。使用這些工具,將Enterprise Bean的實現分成了很多的步驟,這樣通過使用這些工具,一步一步的編寫你的Enterprise Bean。實用工具也有很多,下面提供了一些比較常用實用工具:

配置描述編輯器:此工具使用戶能夠方便的進入配置描述信息。產生XML配置描述文件。

EJB代碼生成器:這是一個增強的RMI-IIOP編譯器版本。產生了客戶訪問EJB服務時所需要的stubs。也產生了服務端的skeleton和其它的一些服務端代碼。詳細的使用方法,參見makefiles文件。

EJB代碼驗證器:這個工具檢查ejb-jar文件并且驗證其中的代碼和配置描述是否符合EJB規范。例如,此工具檢查的bean類是否實現了所有的遠程(remote)接口中定義的方法。此工具是在com.inprise.ejb.util.Verify中。它使用與dd2xml工具的同樣的文件類型定義(DTD)來執行驗證。缺省情況下,即使當前沒有文件類型定義,使XML有效。通過設定系統屬性EJBValidatingParser為OFF來設定本標志為OFF。例如:EJBValidatingParser=”OFF”。

EJB Container ShutDown實用程序:這個實用工具使EJB容器正常的關閉。容器也能夠容忍硬性的被關閉。例如一個kill的信號或者機器的直接關閉。但是,在硬性關閉容器之后如果再重新啟動,就必須要同步JDataStore 數據庫。這個進程需要運行超過10秒鐘的時間。這個實用程序能使重新啟動容器的時候速度快一些。這個工具是在com.inprise.ejb.util.Shutdown里面。

EJB1.0到EJB1.1的轉換器:實用程序dd2xml將EJB1.0的描述器轉化成EJB1.1的XML描述器。此工具也能將其它的代理商的Enterprise beans配置到到Inprise的EJB容器中。dd2xml工具將產生的文檔類型定義(DTD)放到到XML描述器中。例子cart就演示了從EJB1.0到EJB1.1的全過程。

JDK中標準的實用程序jar可以用來產生jar文件。詳細使用情況參加例子。要了解這些工具的詳細用法,可以不帶參數的運行每個工具。將會得到工具的幫助信息。例如:運行以下命令行:

prompt% vbj com.inprise.ejb.util.Verify

提供了如下信息:

Usage:vbj com.inprise.ejb.util.Verify $#@60;ejb-server-name$#@62; [host-name]

注:EJB容器產品提供了一個圖形用戶界面GUI來替代這些命令行的功能,但還是有必要了解怎么通過命令行啟動服務,怎么通過命令行的參數配置服務,拋開圖形對理解Inprise容器系統體系結構,從系統的角度對EJB容器,EJB服務,Inprise應用服務器提供的實用工具以及其診斷標志有個了解。

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗