下载本文示例代码
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应用服务器提供的实用工具以及其诊断标志有个了解。
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应用服务器提供的实用工具以及其诊断标志有个了解。
下载本文示例代码
Insprise 运用于服务器的容器Insprise 运用于服务器的容器Insprise 运用于服务器的容器Insprise 运用于服务器的容器Insprise 运用于服务器的容器Insprise 运用于服务器的容器Insprise 运用于服务器的容器Insprise 运用于服务器的容器Insprise 运用于服务器的容器Insprise 运用于服务器的容器Insprise 运用于服务器的容器Insprise 运用于服务器的容器Insprise 运用于服务器的容器Insprise 运用于服务器的容器Insprise 运用于服务器的容器
阅读(132) | 评论(0) | 转发(0) |