TUXEDO程序员指南.doc

上传人:文库蛋蛋多 文档编号:2881496 上传时间:2023-03-01 格式:DOC 页数:91 大小:445.50KB
返回 下载 相关 举报
TUXEDO程序员指南.doc_第1页
第1页 / 共91页
TUXEDO程序员指南.doc_第2页
第2页 / 共91页
TUXEDO程序员指南.doc_第3页
第3页 / 共91页
TUXEDO程序员指南.doc_第4页
第4页 / 共91页
TUXEDO程序员指南.doc_第5页
第5页 / 共91页
点击查看更多>>
资源描述

《TUXEDO程序员指南.doc》由会员分享,可在线阅读,更多相关《TUXEDO程序员指南.doc(91页珍藏版)》请在三一办公上搜索。

1、1序论 BEA TUXEDO系统开发环境这一章介绍BEA TUXEDO系统开发环境。你要编写的应用软件,也就是在此环境下进行的。你除了用C程序来表述应用软件的逻辑性外,你将会用到“应用交易监控接口”(ATMI),它涉及到BEA TUXEDO系统交易监控和应用软件间的界面。ATMI基本件是类UNIX系统调用的C语言函数;但它们,在BEA TUXEDO系统交易监控的控制下,在应用模块间实现通讯(包括所有你需要的相关资源),有特殊的用途。BEA TUXEDO系统着重于“客户服务”这种体系结构。这本书的第2到第7章描述了ATMI是怎样用于编写、调试客户端和服务端的程序。本章只作简要介绍。客户进程 一个

2、客户进程要求用户发送一个请求给服务进程,服务进程将返回一个响应。 基本的客户端操作一个客户进程用一ATMI基本件介入一个应用系统,利用另一基本件进行信息缓存的分配。这些基本件的应用,持续到信息缓存被送往一个服务并且得到响应为止。 下面是一个简单的描述:main() allocate a TPINIT buffer place initial client identification in buffer enroll as a client of the BEA TUXEDO application allocate buffer do while true place user input

3、in buffer send service request receive reply pass reply to the user leave application - 上图大部分是由ATMI基本件来完成的。place user input in buffer和pass reply to the user部分是由C语言来完成。 当客户程序准备测试时,你要先用buildclient(1)命令来编译和链接它们。 客户重复发送服务请求 一个客户在离开应用程序之前,可以发送和接受很多个服务请求。这些将作为一系列的“请求/响应”调用而被发送。如果有重要的信息需要从一个调用传到另一个调用,则会有一通

4、向会话服务的连接被设立。客户程序里的逻辑也是如此,不过是不同的ATMI基本模块被使用而已。 服务器进程和服务子程序 服务器是提供一个或多个服务的进程。它们不停地检测服务请求的消息队列,并且为它们分配适当的服务子程序。 基本的服务端操作应用软件通过将它们的服务子程序与BEA TUXEDO提供的main()连接起来,达到建立服务进程的目的。本系统提供的main()是一套预定义的函数。它执行服务器的初始化和终止;为“接收和分派”引入的请求给服务程序,进行缓冲区的分配。所有这些处理相对于应用程序来说是透明的。服务器和服务子程序的交互作用,可以通过下面的描述来概括(图Figure1-1):Figure

5、1-1 Pseudo-code for a Request/Response Server and a Service Subroutine 一个服务在初始化后分配缓冲器,一直等待到请求信息加入到消息队列、请求信息出列、分派它们给服务子程序处理。如果需要应答,还得考虑请求处理部分。会话范例稍微有些不同。假想的代码如下(Figure1-2)。Figure 1-2 Pseudo-code for a Conversational Service SubroutineBEA TUXEDO系统提供的main()包含的内容有:使自己成为一个服务、公布服务、分配缓冲区、使请求信息出列。ATMI基本件被应用

6、于处理请求的服务子程序中。当服务子程序准备编译和测试时,它们将通过buildserver( )命令连接到服务端的main(),形成可执行的服务模块。ATMI基本件“应用交易监控接口”(ATMI)是一套非常紧凑的基本件,这些基本件用于开关资源、开始和终止交易、分配和释放缓存、提供客户端和服务端的通信。下表是它们的简要描述:组名 称操 作应用接口tpinit( )连接一个应用软件tpterm( )离开一个应用软件缓存管理接口tpalloc( )分配缓存tprealloc( )重新计量缓存tpfree( )释放缓存tptypes( )取缓存类型请求/响应通信接口tpcall( )发送请求 等待响应t

7、pacall( )异步方式发送请求tpgetrply( )异步方式调用后接受回应tpcancel( )取消通信 处理特殊响应tpgprio( )取最后请求的优先级tpsprio( )取下一请求的优先级会话接口tpconnect( )开始一个会话tpdiscon( )结束一个会话tpsend( )在会话中发送数据tprecv( )在会话中接受数据主动告示接口tpnotify( )通过客户id识别tpbroadcast( )通过名称识别tpsetunsol( )设置主动信息来处理交易tpgetunsol( )取主动信息tpchkunsol( )检查主动信息交易管理接口tpbegin( )开始一个交

8、易tpcommit( )提交当前交易tpabort( )退出当前交易tpgetlev( )检测是否处如交易模式中服务程序模板tpservice( )开始一个服务tpreturn( )结束一个服务tpforward( )向前请求并且结束服务程序动态广告接口tpadvertise( )登一服务名广告tpunadvertise( )取消登一服务名广告资源管理接口tpopen( )打开一资源管理tpclose( )关闭一资源管理事件载体和事件监控器接口tppost( )投递一个事件tpsubscribe( )预订一个事件tpunsubscribe( )解除一预订事件X/Opens TX接口纵观:除了A

9、TMI的交易管理动词,BEA TUXEDO系统也支持X/Opens TX接口,用来定义和管理交易。因为X/Open用ATMI的交易划分动词作为TX界面的基础,TX界面的语法和语义与ATMI十分相似。 下表是它们之间的比较。在很大程度上,应用ATMI程序的地方也可用TX来实现,如下表:TX 动词相应的ATMI动词主要区别tx_begintpbegin超时值不传递给tx_begin 参看tx_set_transaction_timeouttx_closetpclose无tx_committpcommittx_commit在返回前可以开始一个新的交易 这是一种“链式”交易tx_infotpgetle

10、vtx_info返回交易特性的设置,这些特性是由三个tx_set_*程序设定的tx_opentpopen无tx_rollbacktpaborttx_rollback支持“链式”交易tx_set_commit_returntpscmt无tx_set_transaction_control无定义应用软件是“链式”交易还是非“链式”交易tx_set_transaction_timeouttpbegin将交易延时参数与tx_begin分开TX界面在使用其它TX动词前,要求先调用tx_open( )。 下面是关于TX界面怎样用于支持“链式”交易的事例。注意:tx_begin被用于开始一系列链式交易;还有

11、,在调用tx_close之前,应用软件必须转到非链式交易,使最后的tx_commit( )或tx_rollback( )不开始一新的交易。tx_open();tx_set_transaction_control(TX_CHAINED);tx_set_transaction_timeout(120);tx_begin();o_forever do work as part of transaction; if (no more work exists) tx_set_transaction_control(TX_UNCHAINED); if (work done was successful)

12、tx_commit(); else tx_rollback(); if (no more work exists) break; tx_close();类型缓冲区 信息是在类型缓冲区中传递给服务的。为什么说是“类型”呢?如果缓冲区信息在不同的机器间传递,则不同类型的数据需要不同的软件来初始化缓冲区、还要发送和接受数据(或许还要加密和解密)。缓冲区被定义成特殊的类型,以使程序适应缓冲区,且使它的内容能被调用。详细情况可以从buffer(3c)、tuxtypes(5)和typesw(5)中找到。 BEA TUXEDO系统提供九种缓冲区类型:STRING,CARRAY,VIEW,VIEW32,FML

13、,FML32,X_OCTET,X_COMMON和X_C_TYPE。应用软件还可以定义其他所需要的类型。 当数据是以空字符结尾的字符数组时,STRING缓冲区类型就会被用到。 在CARRAY缓冲区中的数据是一组未定义的字符,它们都可为空。当传输这种缓冲区类型时,需要提供它的长度。X_OCTET缓冲区类型等价于CARRAY。 VIEW类型是应用软件定义的一种C结构,而且还有对它的描述文件。VIEW类型的缓冲区必须有子类型,用来指定个别的数据结构。X_C_TYPE缓冲区类型等价于VIEW。X_COMMON缓冲区类型与VIEW很相似,但它既可用于COBOL,又可用于C语言,它的字段类型局陷于short

14、、long和string型。VIEW32缓冲区类型与VIEW相似,但它允许更大的字符域、更多的域和全部的缓冲区。 FML缓冲区是BEA TUXEDO系统独有的类型,是自定义的,每一数据域有自己的标识符、事件数目、可能有的长度指示器。这种类型在处理所化的费用上有很好的机动性,在这种数据处理上,用FML函数比用C好。 FML32数据类型与FML很相似,但它允许更大的字符域、更多的域和全部的缓冲区。 使用VIEW和FML缓冲区 如果你要使用VIEW和FML缓冲区类型,则你要为创建观点描述文件和域表文件作一些准备工作。在用VIEW的情况下,则必须存在一描述文件,用来在VIEW中描述数据结构,且对于客户

15、和服务程序来说都可用。对于FML缓冲区,一个域表文件必须是可用的,它包含可能存于缓冲区中的所有字段的描述。 某些VIEW缓冲区和FML间的关系 有两种VIEW缓冲区。一种基于FML缓冲区,另一种是独立的、是简单的C结构。两种类型都是由观点 (view)描述文件描述、由BEA TUXEDO系统观点 (view)编译器-viewc(1)编译。 FML观点 BEA TUXEDO系统FML是一常用的结构,它们中的一些将FML缓冲区转为C结构,或者反过来将C转为FML。源自字段缓冲区的C结构,是作为FML VIEW而被提及的。将FML缓冲区转为C结构和将C转为FML的原因是:当FML缓冲区独立、方便地提

16、供数据时,它们因为要用FML函数调用来操作,而去处理更高层的东西。C结构因为不能提供机动性,在提供请求的操作时,会在缓冲区数据上做很多冗余的操作。如果数据处理被调用,在你将字段缓冲区数据转换为C结构、用常规的C函数处理数据、然后将数据返回到FML缓冲区储存或传输信息时,你就可以提高你程序的性能。 表1_3列出了所有可用数据类型的观点描述文件。该文件是myview.v。它的结构是基于FML缓冲区的。请注意到CARRAY1字段有记录两个事件的计数器;有“C”计数标志,用来标识在结构中产生计数元素,使应用程序能显示有多少个事件被调用。还有“L”长度标志。 Listing 1-3 View Descr

17、iption File for FML View VIEW MYVIEW$ /* View structure */#type cname fbname count flag size nullfloat float1 FLOAT1 1 - - 0.0double double1 DOUBLE1 1 - - 0.0long long1 LONG1 1 - - 0short short1 SHORT1 1 - - 0int int1 INT1 1 - - 0dec_t dec1 DEC1 1 - 9,16 0char char1 CHAR1 1 - - 0string string1 STRIN

18、G1 1 - 20 0carray carray1 CARRAY1 2 CL 20 0ENDFML字段表文件当要用到FML记录(包括用依赖于FML的VIEWS)时,字段表文件总是必需的。字段表文件在FML缓冲区中标识字段逻辑名,用字段标识符唯一标识字段。 表1-4是相对于表1-3观点的一个实例。 Listing 1-4 The myview.flds Field Table File # name number type flags comments FLOAT1 110 float - - DOUBLE1 111 double - - LONG1 112 long - - SHORT1 11

19、3 short - - INT1 114 long - - DEC1 115 string - - CHAR1 116 char - - STRING1 117 string - - CARRAY1 118 carray - -独立的VIEW表1-5列出的是观点描述文件,同例表1-3很相似,但是从FML中独立出的VIEW。 Listing 1-5 View Description File for Independent Views $ /* View data structure */ VIEW MYVIEW #type cname fbname count flag size null f

20、loat float1 - 1 - - - double double1 - 1 - - - long long1 - 1 - - - short short1 - 1 - - - int int1 - 1 - - - dec_t dec1 - 1 - 9,16 - char char1 - 1 - - - string string1 - 1 - 20 - carray carray1 - 2 CL 20 - END在这个观点描述中,它的格式与“依赖于FML的观点”很相似(除了fbname和null两列被观点编译程序忽略外)。没有相应观点的FML缓冲区存在之前,这些列就没有相应性可言。但这些

21、列必须给一些值(例如:破折号)作为占位符。相应的数据类型定义C的浮点型和双精度型分别对应于COBOL COMP-1和COMP-2.字段类型中的long和short分别对应于COBOL中的S9(9) COMP-5和S9(4) COMP-5。dec_t 类型描述COBOLCOMP-3打包的小数字段。打包的小数存在于COBOL环境中,打包的两个数字中,低位的字节用来存储符号。打包的小数长度可以是个字节,存储个数字和一个符号。Dec_t字段在VIEW中定义,用两个数字定义大小、中间由一逗号格开;逗号左边的数字是小数在COBOL中占的总位数,右边是在COBOL中该数的小数部分总位数。下面是转化为COBO

22、L的说明规则:dec_t(m,n)S9(2*m-(n+1),n)COMP-3例如,假设在VIEW中指定大小为6,4。则在该数小数点后有4个数字,小数点前有7个数字,剩下的半位存储符号。这是COBOL中用到的。请注意,在FML中不支持dec_t类型;如果依赖于FML的VIEW被使用,则在VIEW文件中,字段必须映射到C类型。参看decimal(3c)介绍的函数描述,一小数字段在C中可以被初始化和存取。从观点(VIEW)描述来创建头文件观点(VIEW)描述文件是源文件。在程序中使用观点,你就需要在观点中定义结构的头文件。你可以通过调用观点编译器(viewc(1)),从myview.v观点描述文件来

23、产生头文件。Viewc产生两个文件。一个是头文件,另一个是源描述文件的二进制文件-myview.V。当VIEW缓冲区被分配时,该二进制文件必须存在于环境中。对于依赖于FML的VIEW,编译器象下面的方式调用:Viewc myview.v通过myview.v描述文件产生的头文件于下(表1-6):Listing 1-6 Header File Created for FML View struct MYVIEW float float1; double double1; long long1; short short1; int int1; dec_t dec1; char char1; char

24、 string120; unsigned short L_carray12; /* length array of carray1 */ short C_carray1; /* count of carray1 */ char carray1220;要编译独立观点的观点描述,在命令行中用-n选项,如下:viewc n myview.v有无-n选项,产生的头文件都是相同的。观点头文件要嵌入客户端程序或服务子程序,必须带#include说明。要用VIEW32,则要使用viewc32命令。来自字段表的头文件从字段表文件产生头文件,则用mkfldhdr(1)命令。例: mkfldhdr myview.

25、flds产生的文件是myview.flds.h。它可以用#include嵌入到服务子程序或客户端程序,使你能用符号名来使用字段。产生的myview.flds.h头文件如下(表1-7)所示:Listing 1-7 The myview.flds.h Header File /* fname fldid */* - - */ #define FLOAT1 (FLDID)24686) /* number: 110 type: float */#define DOUBLE1 (FLDID)32879) /* number: 111 type: double */#define LONG1 (FLDID

26、)8304) /* number: 112 type: long */#define SHORT1 (FLDID)113) /* number: 113 type: short */#define INT1 (FLDID)8306) /* number: 114 type: long */#define DEC1 (FLDID)41075) /* number: 115 type: string */#define CHAR1 (FLDID)16500) /* number: 116 type: char */#define STRING1 (FLDID)41077) /* number: 1

27、17 type: string */#defineCARRAY1 (FLDID)49270) /* number: 118 type: carray */如果用FML32,则要用mkfldhdr32命令。其它头文件如果你使用FML或VIEW类型缓冲区,则用#include包含上面介绍的头文件。另外,所有BEA TUXEDO系统应用程序必须包含atmi.h头文件。如果你用FML缓冲区,则在你的程序中要包含fml.h头文件。环境变量要使客户或服务子程序与服务器相关联,则在配置文件中的ENVFILE里,要对环境变量进行设置。必须为字段表和观点描述而设置的环境变量如下表所示:Table 1-3 BEA

28、 TUXEDO System Environment Variables变量包含的内容 被谁使用FIELDTBLS 被逗号隔开的字段表文件名列表使用FML缓冲区的客户端和服务端进程FLDTBLDIR 冒号隔开的目录列表(这些目录是用于通过相关文件寻找字段表文件)使用FML缓冲区的客户端和服务端进程VIEWFILES 被逗号隔开的二进制观点描述文件列表使用VIEW缓冲区的客户端和服务端进程VIEWDIR 冒号隔开的目录列表(这些目录是用于去寻找二进制观点描述文件) 使用VIEW缓冲区的客户端和服务端进程对于FML32和VIEW32记录类型,环境变量都带后缀32,即为:FLDTBLDIR32,FI

29、ELDTBLS32,VIEWFILES32和VIEWDIR32。CC和CFLAGS环境变量被buildclient(1)和buildserver(1)命令使用。你可能想在你的环境中设置它们,以使编辑客户端和服务端更便利。对调用C编译器的命令,则设置CC。它的缺省值为cc。对你想在编译命令行使用的链接编辑标志,设置CFLAGS。BEA TUXEDO系统二进制文件的位置,对你的应用系统必须是可知的。安装BEA TUXRDO系统软件,约定为在根目录下进行(它的位置在TUXDIR环境变量中被指定了的)。$TUXDIR/bin必须包含在你的PATH中,以使你的应用软件能定位BEA TUXEDO系统的可执

30、行命令。配置文件配置文件指定BEA TUXEDO系统应用软件的配置。在一个BEA TUXEDO系统应用软件产品中,BEA TUXEDO系统管理员有责任建立一个定义应用软件的配置文件。在开发环境中,这种责任将落实到每个应用软件开发人员的头上(创建自己的配置文件)。如果你要创建一个配置文件,这儿有些建议供你参考:l 借用一个现有的文件。例如,样本应用程序附带的文件ubbshm是一很好的起点。l 保持简洁。为了测试的目的,将你的应用软件设为共享内存、单处理器系统。对你的数据用规则的UNIX系统文件。l 确保配置文件中的IPCKEY参数没有与你的装置中其它部分相冲突。你必须与你们的BEA TUXEDO

31、系统管理员进行核对。l 设置UID和GID参数,使你成为该配置的属主。l 阅读档案。在BEA TUXEDO参考手册的ubbconfig(5)页和BEA TUXEDO系统管理中,对配置文件有介绍。使配置可用配置文件是ASCII文件。你不得不运行tmloadcf(1)将之转换为二进制文件,使其可用。TUXCONFIG环境变量必须被设置,指定二进制文件路径和出口。公告牌公告牌是共享内存段中一组数据结构的BEA TUXEDO系统名。该共享内存是当应用系统启动时,从存储在TUXCONFIG中的信息分配的。客户端和服务端进程都放在公告牌上。公告牌的一部分将服务名与服务器的队列地址相联系,用以公布那个服务。

32、客户发送请求给服务名,而不是给服务地址。所有BEA TUXEDO应用系统中的进程都共享这个IPC资源。开始和停止一个应用系统执行tmboot(1)命令启动一应用系统。该命令取得应用系统需要的IPC资源,并且开始管理进程和应用服务。当要停止应用系统时,执行tmshutdown(1)命令。tmshutdown停止服务进程并且释放被应用系统使用的IPC资源(被数据库资源管理器使用的除外)。服务通道GWTUX2TE和GWTE2TUX是提供BEA TUXEDO 和BEA TOP END 系统间连通性的 BEA TUXEDO系统服务器。GWTUX2TE提供BEA TUXEDO客户端和BEA TOP END

33、服务端间的连通性。GWTE2TUX提供BEA TOP END 客户端和BEA TUXEDO服务端间的连通性。这些通道服务中的一个或两个应该被配置。编程范例通道服务仅仅支持”请求响应”信息。下面为发送和接收而进行的BEA TUXEDO客户端API调用是允许的:l tpcalll tpacall(带或者不带TPNOREPLY标志)l tpgetrplyl tpforwardBEA TOP END服务端不能设APPL_CONTEXT标志。如果该标志被设置了,则通道服务将解除BEA TOP END对话并且返回一个错误(TPESVCFALL)给BEA TUXEDO客户端。下面BEA TOP END 客户

34、端API调用被允许:l tp_client_sendl tp_client_receive缓冲区类型通道服务仅仅支持BEA TUXEDO CARRAY(X_OCTET)缓冲区。如果试着发送其它类型缓冲区,则会产生一个错误(TPESVCFALL),该错误日志是由通道服务产生的。配置GWTUX2TX和GWTE2TUX通道服务使用BEA TOP END远程客户端和远程服务端服务。GWTUX2TE假设其为BEA TOP END客户端并且使用远程客户端服务。GWTE2TUX假设其为BEA TOP END服务端并且使用远程服务端服务。因此,你必须在任一BEA TUXEDO节点,提供一个BEA TOP EN

35、D远程客户端服务端配置文件,用以运行这些通道进程。事例下面的事例展示怎样在BEA TUXEDO UBBCONFIG文件和BEA TOP END服务定义文件中定义通道服务。在这个事例中,BEA TUXEDO客户发布tpcall给RSERVICE服务。请求前进(经GWTUX2TE通道)到BEA TOP END系统(pluto)并且调用一BEA TOP END 服务(RPRODUCT:RFUNC)。同样的,BEA TOP END客户发布tp_client_send,指定LPRODUCT为PRODUCT、LFUNC为FUNCTION。请求前进(经GWTE2TUX通道)到BEA TUXEDO系统并且调用

36、一BEA TUXEDO 服务(LSERVICE)。Listing 1-8 BEA TUXEDO UBBCONFIG File #UBBCONFIG*GROUPSTOPENDGRP GRPNO=1#*SERVERSGWTE2TUX SRVGRP=TOPENDGRP SRVID=1001 RESTART=Y MAXGEN=3 GRACE=10 CLOPT=- -f servicedefs -R 30GWTUX2TE SRVGRP=TOPENDGRP SRVID=1002 RESTART=Y MAXGEN=3 GRACE=10MIN=5 MAX=5CLOPT=- -f servicedefsList

37、ing 1-9 BEA TOP END Service Definition File #service definition file*TE_LOCAL_SERVICESDEFAULT: PRODUCT=LPRODUCTLSERVICE FUNCTION=LFUNC*TE_REMOTE_SERVICESRSERVICE PRODUCT=RPRODUCT FUNCTION=RFUNCListing 1-10 BEA TOP END Remote Configuration File # TOP END remote configuration filetop end configuration

38、 filecomponent type remote serversystem plutoprimary node /topendmach50002、客户端编程关于本章下面的部分描述了ATMI功能,它能使客户端程序1. 控制公告牌标识的客户端的名字;2. 服从为应用软件设置的安全级别;3. 进入和离开应用软件;4. 处理消息缓冲区;5. 以请求/响应模式和某一服务通讯并接受应答6. 通过指定不同的选项,来修改函数执行的方式。本章最后还介绍了怎么编译客户端的程序。从应用样本中挑选的例子本章的许多例子都来自于应用举例中客户端的程序audit.c.依赖于命令行选择,audit.c既能够得出银行所有分

39、支机构的、也能得出某一分之机构的总帐户或出纳的余额。命令行的语法如下: audit -a|-t bidaudit是由audit.c程序编译出的执行程序的名字。-a选项要求能检查帐户平衡;-t选项指定职员平衡。如果命令行中没有bid选项,即没有指定银行标识,程序对银行所有的分支机构检查。反之,则仅对指定类型的某一分支机构进行操作。预备知识在客户端程序准备加入应用之前,必须做一些预处理来优化BEA TUXDO系统的性能。客户端命名应用能与客户端进程的用户名或控制名相联系。当进程运行的时候,为了给进程建立一个唯一的标识,系统会用机器的逻辑机器标识符(LMID)为这些名字提供值。这就需要应用开发者和程

40、序员通过判断得出获得这些字段的值的方式。然后在TPINIT缓冲里,这些值会传给tpinit()。后面的例子里会讲到一些有关这方面的知识。 注意:如果进程在应用系统的管理领域之外运行,也就是说,在链接到管理领域的工作站上运行,则LMID是工作站客户端访问应用系统所使用的内容之一。一旦客户进程被唯一标识,客户识别就会实现,范围外的消息就会经tpnotify(3c)和 tpbroadcast(3c)送到一特殊客户或送到客户组,详细统计信息就会经tmadmin(1)收集起来。图figure2-1表示:名字怎样与客户相关联,来访问一个应用软件。在该实例中,应用软件使用cltname字段去表示一个工作函数

41、。Figure 2-1 Client Naming未被恳求的布告未被恳求的布告引用任何“不是服务请求所希望的响应(或者一错误码)”的客户信息。这给你的第一感觉是:再过五分钟,世界末日就要到了。在客户程序中,你必须做三件事来处理这类信息:l 在TPINIT缓冲区中设置标志,以便选择方法来探测消息。l 如果你使用dip_in方法,请调用tpsetunsol( )来命名你的消息处理函数。l 如果你使用dip_in方法,请调用tpchkunsol( ),用来看看是否有未被恳求的信息被接收到。TPINIT缓冲区中的标志值将在后面的“连接应用系统”一节中介绍。tpsetunsol(3c)和tpchkuns

42、ol(3c)在本节后面的例子和BEA TUXEDO参考手册中有介绍。安全性和客户鉴定BEA TUXEDO系统提供几个标准的安全性:l 操作系统l 应用程序口令l 用户鉴定l 选择性的存取控制表l 强制性的存取控制表l 链接级别的加密安全标准的配置是系统管理员必须做的工作,在管理BEA TUXEDO系统一书中也有论述。下面的段落解释不同的标准,讨论在编写带“安全性设置”的客户端程序时,哪些东西是需要的。操作系统 对带有安全机制的平台而言,这是第一道防线。它的安全级别没有配置。这意味着,没有它就没有安全性可言,但又没有另外的机制(例如BEA TUXEDO系统口令)提供给该平台。BEA TUXEDO系统有应用系统管理员的概念。应用系统管理员能够配置应用系统、启动应用系统(该服务器对这个管理员应该给予了

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号