回复:建立和部署PowerBuilder组件-数据库专栏,其他相关
二、修改pb对象为组件
有时候需要将一个已存在的pb对象升级为一个组件。这时就需要增加一些事件,还需要为部署该组件创建一个工程。
1. 添加事件
将一个传统的pb对象升级为一个jaguar组件,需要另外添加一些事件,包括 activate, deactivate 和可选的canbepooled事件。
activate – 该事件映射到“pbm_component_activate”。该事件代码每次在组件被激活时执行。这里需要注意的是映射事件是“pbm_component_activate”而不是平常很熟悉的pbm_activate。 deactivate – 该事件映射到“pbm_component_deactivate”。当组件不活动时激活该事件。 canbepooled –该事件映射到“pbm_component_canbepooled”。他用来程式控制组件的实例缓冲。返回1时,允许实例缓冲,返回0时,禁止实例缓冲。2. 创建一个部署工程
一旦将一个传统意义上的powerbuilder对象升级为一个jaguar组件,还需要另外创建一个部署工程,在下一节中对其进行周详讨论。
三、部署组件的过程和选项
在客户端应用程式使用组件之前,必须将该组件部署到一个应用服务器中。在powerbuilder 7中,能够利用pb和jaguar的集成特性,在pb中每次对组件进行修改保存后,直接将其部署到jaguar服务器中。这种特性在pb中被称为现场调试(live editing),这在研发和测试环境中是很有帮助的,但不能将其应用到实际应用环境中。
1. pb组件的组成powerbuilder pbds
一个部署过的powerbuilder组件具备许多的元素。第一个就是编译过的pb代码,存放在一个或多个pbd中。在操作系统中必须要指定这些组件库的路径,这样powerbuilder的 pbds才能够被jaugar中的powerbuilder运行时间库引擎存取。 idl
除了powerbuilder代码以外,还需要一个界面描述,他在客户端应用向服务器中的组件请求服务时使用。这些界面信息采用界面定义语言(idl)来描述。 resources
资源是组件动态应用需要的位图或数据窗口,这些资源保存在pbr文档中。
2. 部署过程
下面来看将一个powerbuilder组件部署到jaugar服务器上时,系统会进行那些操作。一般部署一个组件包括在jaguar知识库(repository)中配置一些文档和属性,这样当一个客户端应用请求时组件才能够被找到、定位和执行。这里需要注意的是最好不要手工操作jaguar知识库中的文档,但是假如您对这些属性文档了解较多,则能够直接编辑这些属性文档,很方便快捷。
jaguar知识库(repository)
在jaguar cts目录下,有一个文档夹叫“repository”。该目录包括了任何部署到该服务器的pb组件的相关文档。java组件(.calss文档)的可执行代码在jaguar cts 3.5\java\classes 目录下,不在repository目录下。
添加组件和包属性到知识库(repository)
每一个组件或包都有一系列的相关属性属性文档。在repository目录下包含了许多以“.props”为后缀的文档,这些文档保存了jaugar的安装(包括server)、包和组件的各个方面的信息。在jaugar manager中看到的任何属性就是这些.props文档。repository目录是这样组织的,每一个powerbuilder组件的属性文档在包目录下的组件目录里面,包的属性在包目录下面的.props文档中。
添加powerbuilder代码到repository
编译过的powerbuilder代码将被添加到知识库repository目录下的“components” 目录。部署到jaugar的每一个包在componets目录下都有一个子目录,包中的每一个组件都有一个目录存放在包目录的下面。假如组件是powerbuilder组件,那么就会有一系列的以“c”开头的目录在components目录下。
生成idl并且添加到repository
idl描述了一个组件是如何被客户端应用调用的。在repository目录下的idl目录下,能够看到jaguar组件的idl。idl文档是以包为单位组织的,在idl目录下每个包具备一个子目录,里面包含了任何包中组件的idl文档。
关于“cookies”
每当一个powerbuilder组件被部署到jaguar服务器上时,他都被放置到了repository目录下的一个新的目录,这些目录以c1开始顺序命名,能够在repository目录下的components目录下看到这些目录,其中每一个目录都包含了编译过的powerbuilder代码。jaguar对这些目录的管理是通过组件的属性-“com.sybase.jaguar.component.pb.cookie”进行的,该属性的值就是现在使用的“cookie”,也就是子目录号。我们能够删除任何数字比他小的目录而不会对组件构成任何影响,这样能够释放许多的磁盘空间出来。
三、jaugar工程向导1. 创建一个jaugar工程
创建一个组件后,还需要一个jaguar工程来部署组件。创建一个jaguar工程的步骤和前面谈到的创建一个组件的过程很相似。在powerbuilder中选择“file | new” ,然后在“projects”标签中选择“jaguar component wizard”,和组件向导不同的是在工程(projects)标签,而组件向导则在对象(objects)标签。
建立一个部署工程以后,就能够在powerbuilder中打开这个工程选择“design |build project”菜单来部署组件到jaguar服务器。
2. 现场编辑
在第一次利用组件向导创建一个组件时,能够选择“live editing”这个选项。然而,假如在第一次创建组件时没有选择该选项,那么以后更有没有办法选择该选项呢?回答当然是有,能够通过下面的步骤来使该功能有效。
在jaguar工程中选择组件; 在powerbuilder中打开组件。在属性面版选择该工程,就能够修改该选项。