tuxedo培训教程可编辑范本

上传人:痛*** 文档编号:106919861 上传时间:2022-06-14 格式:DOC 页数:93 大小:4.80MB
收藏 版权申诉 举报 下载
tuxedo培训教程可编辑范本_第1页
第1页 / 共93页
tuxedo培训教程可编辑范本_第2页
第2页 / 共93页
tuxedo培训教程可编辑范本_第3页
第3页 / 共93页
资源描述:

《tuxedo培训教程可编辑范本》由会员分享,可在线阅读,更多相关《tuxedo培训教程可编辑范本(93页珍藏版)》请在装配图网上搜索。

1、 tuxedo简易培训教程BEA TUXEDO简易培训教程编写、整理 :文栈良001第一章 认识xedo1. TUD是什么?BA UEDO是在企业、Internet 这样的分布式运算环境中开发和管理三层结构的客户服务器型关键任务应用系统的强有力工具.它具备分布式事务处理和应用通信功能,并提供完善的各种服务来建立、运行和管理关键任务应用系统。开发人员能够用它建立跨多个硬件平台、数据库和操作系统的可互操作的应用系统。EATUXDO是企业、Iernet 分布式应用中的基础主干平台。它提供了一个开放的环境,支持各种各样的客户、数据库、网络、遗留系统和通讯方式.BEA TXEO使分布式关键任务应用系统具

2、有大型主机的性能,从而使这些应用系统能够应付数以千计的用户,大交易吞吐量,多并行数据库存取和大量数据,同时保持较短的反应时间,较高数据完整性和安全性,并且确保全年3天,每周天,每天小时的系统可用性同时,B UED还能让开发人员和系统管理人员享用分布式运算环境提供的好处,如技术成本的低增长率,灵活性提高,快速应用开发和安装以及业务信息存取得以改善。1.2 BEA UEO的组件软件模型关键业务应用通常是面向事务的,要求具有准确的数据完整性、较好的性能和管理需求。这些需求要求对应用的开发、调度和操作给出一个结构化的方案。由像BEATUEDO这样的中间件支持的组件软件模型为分布式环境处理关键性业务应用

3、提供了一个结构化的解决方案E TUXEDO和基于组件的应用设计从异构的计算资源中创建了一个虚拟主机:在分布式应用系统级提供可管理的相互关联的资源。许多组织在进行了一段时间的分布式应用工作后,现在已经认识到组件软件模型是他们的必然选择。分布式应用的直接动力是主机应用和集中式中规模的应用系统基础上又逐渐配备有大量的台式系统和服务器系统,这些分布式系统在标准网络传送协议的支持下,呈松散耦合的态势,事实上它们构成了网络计算资源的基础.在开始的时候,分布式系统主要服务于把集中式系统的前台应用迁移到网络环境-主要用台式处理器和文件服务器实现文档处理和电子邮件通讯应用系统接着,两层的客户服务器数据库应用在部

4、门级被采用,这类应用把交互式文件共享进化到并发数据元素访问,在数据级支持更细粒度的管理。虽然这些客户/服务器应用具体化了真正分布式应用处理的概念,它们仍留有为某一目标定制的特性,规模和管理能力都有限。更重要的,这些应用只停留在较细粒度的数据访问上,使得整个应用系统宛如磐石,不能有效地利用网络资源。面对更大规模的关键业务应用,如要进行有效的分布式处理,就要求从客户数据库方案转变到三层客户/应用系统/数据服务器结构。以后者为核心的组件软件模型是客户服务器计算的拓展,它支持应用分区,能有效地开发和调度应用业务逻辑,管理分布式应用的可靠执行。BEA TUXEDO采用三层结构的组件软件模型。图1表示BE

5、 TXO 的组件软件模型的概要。该结构分为三层:图1 BA TUXEDO 的组件软件模型概要1。3 UDO 的特点1。3。1减轻开发人员负担BEATUEO的三层结构组件软件模型将用户界面的表示部分和业务逻辑部分按客户组件服务器组件分开,使开发人员能够按组件的思想专注入于业务逻辑的开发,用户界面部分可用流行的前端开发工具来快速完成。而客户和服务器之间、服务器和服务器之间的通讯,异构平台之间的数据变换,以及服务器和数据库之间的集成和事务控制都由BEA TXEDO 来完成。当数据库或服务器端的业务逻辑改变时,客户端则不一定要改变;反之当客户改变或增加新的客户界面时,服务器端则不一定要改变,大大增加了

6、应用系统的各部分的可复用性.EA UXEDO提供的简洁API 使用户程序能够物理地点透明地在客户和服务器之间、服务器和服务器之间进行各种方式的通讯,极大地减轻开发人员的负担.BATED提供的通讯方式有同步RPC调用,异步P调用,对话通信方式,广播通讯方式,异步存储转发队列通讯,事件通讯方式等。.使系统的安装与升级更容易在EA TUED 的三层结构组件软件模型下开发的应用程序以服务器组件和客户组件为安装、升级的单位,当一个组件需要更新时,管理人员甚至能够在运行系统不停机的情况下完成系统的升级,这在客户端为数以千计的关键任务应用中尤为重要。1。3。3减轻系统管理人员负担BEATUXE系统提供从一个

7、中心点对整个分布式系统进行全局监控及管理的能力,管理员根据一个整体系统视图(而不仅是单个节点或单元)提供的信息,可以作出决定和采取动作。BEATUXEDO不但提供了一些管理命令,而且提供了一个集成的图形界面管理工具,集中地监视和管理应用系统的运行,并且可动态地修改系统配置。通过Java的 ples,还可利用 Internet的浏览器比如Netscpe或icrosoft的Elor来运行该图形界面管理工具。此外,BEATUXEO还提供了描述系统中各对象的管理信息数据库(MIBS)和存取管理这些管理信息数据库的管理API,用户可利用这些管理API,编写自己特有的管理工具。13.4.非常高的性能一方面

8、,BEATUXEDO能够使多个客户连接到一个服务器进程,由这个服务器进程存取数据库,为客户的请求服务。这样,数据库为处理连接所需的资源大大减少。另一方面,客户和服务器之间,服务器和服务器之间的通讯中,网络上流动的只有相对较少的客户或服务器的请求和服务器处理的结果,而不再是两层结构中客户和DBMS 之间的大量L请求和应答。此外,利用BA TUXD特有的一些机制也能极大提高应用系统的性能。比如利用异步RPC机制实现扇出并行,利用转发机制实现流水线并行,利用多服务器单队列实现多处理并行等。所有这些因素使BATUXEDO的应用系统具有极高的性能。世界上大部分硬件服务器的TC 性能指标都是在BEA UX

9、DO上完成的。1。3。5.更高的可用性EA XE随时知道它控制下的资源的情况,并利用这些信息为应用提供最大可用性。分布式系统使资源故障的影响复杂化。在一个分布式系统中,多个节点代表更多的潜在故障点的可能,但也可以代表在资源恢复开始时在其他节点上重新分配工作的更大潜力BEA TUXEDO在这种分布式系统故障恢复上具有优势。TUXDO将重启应用进程, 并且能在硬件故障情况下在其它结点上重新运行进程。1。.6.分布式环境中更高水平的数据完整性BE TUXED设计了数据资源的绝对完整性。目前出现的客户服务器应用中,重要数据资源很可能是广泛的,而且受异构系统的控制。应用可以设计成用严格的保证数据一致性的

10、两阶段提交,或者用更多的缓冲存储和转发技术来管理异构的(或者同构的)数据库的更新。在各种情况下,BEA TUXEDO能够确保异构的(或者同构的)数据库以及它资源管理器之间的完整性。13。、系统的安全性B TUED通过结构化用户界面支持应用服务的验证、授权和存取控制,允许用户加入自己的验证服务模块.BEATUXDO还提供信息加密服务,允许对网络上传输的信息按RA 的RC算法加密。目前美国本土内可按128位,本土外可按4位加密.1。3。8、开放系统中最开放的中间件平台E TUXEDO是一个非常开放的平台,支持三十多种服务器平台,包括大多数的 UIX服务器,WindowsN 服务器,B的/370,S

11、/390, 加上A/40和 ade公司的 NonStop系统。它的客户支持几乎所有的工作站,包括 UNIX,MSD,Wos3。195, WinowsNT, /2,Macitosh等. BE TXEDO支持On组织的分布式事务处理模型DP,事务定界标准TX, 应用程序事务处理接口标准X TM以及和资源管理器(像数据库系统)的接口标准X,并且还支持事务处理器之间的互操作标准OSITP。 EAUXEDO的客户端通过D 可以和VslC+、sua Basc、 Poer uilde、 SL Wndws、Delphi、Deeop/00 以及其他4GL和C 工具互连.此外,BA TUXEDO还得到其他第三方开

12、发管理工具厂商的支持。1。3.、系统的伸缩性简单地说,软件可伸缩性就是可以很容易地增加被支持的用户数和应用的全局吞吐量.一个可伸缩的软件系统是利用网络分布系统优势的关键。BEA TED提供的就是这样一个系统,它可以利用在一个网络上所能找到的所有的异构的资源以获得最大的效益。 EATUXO提供这一点,而且提供许多可伸缩性选项。垂直方向的可伸缩性代表的含义与通常相同,即将系统转变(升级)为一个更大,更有力的相同或不同结构的平台。水平方向的可伸缩性多是在分布式系统结构中,它以增加适当规模的附加系统来增强网络应用。所增加的附加系统与原有系统可能是同构的,也可是异构的(那就是不同的处理机或操作系统)。B

13、EA TUXO支持二维的可伸缩性。二维可伸缩性可在结构上的任意位置添加异质资源,而不改变已存在的应用的结构。允许对一个复杂的混合结构的支持,为联机网络系统提供了广泛的规模选择范围。任何与数据表示有关的(如不同的处理器表示)可以由BEATXED透明地解决BEA TUDO 还可根据系统负荷的变化动态地增加或减少应用服务器的个数。1.3。、广泛的开发工具支持除了像C,C+和OBOL这样的第三代语言编程环境,ETUXEDO系统享受最广泛的第三方工具的支持,下面是开发BEA TUXDO应用目前可用工具的一个列表.表1 UEDO允许的开发工具选择公司开发工具客户端服务器端 Aly AllyGL Inorm

14、ix IFORIX 5.0 (XA) Inrmix TPToolit* ITI Po* OraleORALE 7. (A)Dvlop 000 upaQLWndow vll isua Apbuilder Noel USL WKH nify AcceL Jyacc M/JPL* TI IEF CASE* MagnaMaga * PoeoftPoweilder* Delphi elpi Microsot Visual Bai Vsal C+此外BATUXDO 的关联产品BECNNECT 允许BEATUXEDO 和IB的C、 IMS、Uniss的Sstem0进行互操作,AJol支持从Internet

15、浏览器上请求BETUXEO的服务。A Buld和BAMaager将A UXED应用的开发与管理更为简化。1.4 BE TUXD 的组成与功能BEA TUXEDO 应用程序既可服务于带有少量客户和服务的单个服务器系统,又可服务于由成千客户、成百服务器和众多服务器组件和服务构成的大规模的分布式环境。一个这样的应用程序是以业务逻辑服务、由这些逻辑服务组织成的高层服务器组件和在服务器结点环境中的组件分布为特征的。支持这种虚拟主机环境的BEA TEO 元素包括配置信息库和实现运行时应用管理的核心子系统。1配置信息库BA UEDO应用程序由配置文件指定,这些配置文件被转换成若干紧耦合的运行时共享信息库。这

16、些共享库(在BEATUXEDO中称公告牌,Bulltin Boad)驻留在每个参与应用的服务器结点上。BE TUXDO子系统访问和操作这些库.(1) 应用程序配置一个BEATUXEDO应用程序包括在一个高度分布的环境中运行该应用所需的资源。开发人员编写服务的代码,应用管理员通过构造定义操作参数和资源分配的配置文件创建应用程序。配置信息驻留在一个可编程访问的管理信息库(MI)中。MB最少包括下列配置信息:l 系统范围的资源,包括有关全局应用属性(如安全性级别)、是否进行负载平衡、启动一个应用系统所需的资源定义和故障恢复时所需的资源定义l 参与应用的每个服务器机器的定义和驻留在这些机器上的BEAX

17、DO文件的规格说明。l 单个服务器可与其他组成员共享的资源组,如事务管理;组也定义了服务器和所操作的资源管理器之间的映射。l 服务应用程序所需的映射成进程的服务器,在这些服务器进程中实现了应用业务逻辑一个BA TUXEDO配置允许一个管理服务器或者从分布在一台/多台机器的一个多个组中配置多个服务器。l 应用服务器进程定义的服务;服务级的属性包括负载因子、服务处理时间的相对量、该服务相对于服务器中提供的其他服务的优先级。头三个配置属性定义了应用的处理元素(如处理结点)、全局属性和某一主资源的特殊指定.组、服务器和服务集中在BEA TUXEDO软件组件模型的分布式应用资源上: BEA UEO应用程

18、序定义了提供所需服务的服务器组件分组;可配置的服务器实例数量能在多个机器上调整;而且,BEA UXEDO能管理广播的单个服务和它们的相对优先级。(2)公告牌EA XEDO应用配置文件被映射到一个运行时数据结构:公告牌(BB)。B作为一个从配置文件中派生出来的共享信息库。BB驻留在每个参与到由配置文件指定的应用程序的BE TXO 的服务器结点上BB作为分布式应用的名字服务数据库.它作为应用统计数据的运行时仓库,提供分布式环境下的应用对象的位置信息.B由BE TUEO核心例程(对应用开发者透明)访问,由核心例程读/修改BB库。这个信息库提供BEA TUXEDO完成动态客户/服务器映射所需的信息,同

19、时也提供完成诸如负载平衡、安全性和事务协调等功能的信息。.事务管理器事务管理器是BEA TUXDO 体系结构的中心,它是每个TUXEDO服务器的核心,提供重要的分布式应用服务、命名、消息路由、负载平衡、配置管理、事务管理和安全性。它也包含B结构,使用维护和访问BB信息的服务.换句话说,BB内包含有可靠执行和管理大规模的基于组件的应用程序所需的所有信息,它将对事务管理器进程起作用.事务管理器的基本操作见下图的图示.事实上,事务管理器是负责客户服务器绑定和支持BA TU虚拟主机属性等特色的子系统。图4 来自网上的客户请的客户代理进程,服务器通过注册参加到该应用中。作为客户方通讯的一部分,事务管理器

20、访问BB,然后选择服务器,接着,服务器消息队列的地址被返回,客户方的请求被马上传送到合适的队列等待服务为它进行处理。)名字服务/位置透明性BB作为A UXEO应用程序的名字服务器,复制到每个参与的结点上。为了便于快速访问,名字服务器作为在共享内存中的一个结构存在。事务管理器使用BB名字信息、配置信息和环境统计信息自动把服务请求平衡到可用的服务器上,并且根据数据内容为客户请求选择路由,为服务请求选择优先级.编程员把应用程序编成对逻辑入口项(称有名服务)的函数调用。事务管理器把这些逻辑请求映射到服务器结点服务器进程环境内指定的服务实例。2)数据依赖型路由数据依赖型路由是根据数据缓冲区中一个指定域的

21、值,把一个服务请求映射到一个指定的服务器组的机制。因为BA TXEDO服务器组映射成指定的资源管理器/数据库实例,所以请求被导向到一个指定服务资源管理器的组合.例如,一个银行的数据库可把存储在不同数据库实例中的不同范围的帐号进行水平分区。用户可用事务管理器进行路由选择,而不用把特定分区信息编码成访问帐号的应用代码。事实上,事务管理器查看指定的数据值,参考存储在B中的路由信息,然后把请求发送到能在正确数据分区上操作的服务如果用户需要改变数据库分区(把一个分区移到一个新服务器上,或在已有分区实例上改变帐号分布),那么,他只需改变事务管理器的路由信息,应用程序的代码不受影响图 数据依赖型路由:帐号操

22、作的请求与数据分区是独立的,事务管理器访问B路由表信息,把请求映射到访问相应分区的服务器组,然后返回该组指定服务的绑定。3)负载平衡为了确保应用流量最大,事务管理器自动地在系统中完成负载平衡和调度。通过使用每个服务的负载因子,事务管理器把请求发送给能最快处理该请求的服务器。事务管理器通过为当前排队的请求总计负载因子来决定给定服务器上的负载。下图给出了事物管理器负载平衡能力如何帮助优化应用流量的一个例子。图 负载平衡:服务 A,B,由不同的服务器提供,每个服务器有一个基于当前排队请求的负载值。事务管理器决定哪一个服务器提供服务,哪一个服务是负载最小.事务管理器将在一个给定结点内或在提供服务的若干

23、结点上,进行负载平衡。4)优先权请求优先权是事务管理器提供的另一个核心能力。某一服务请求经常需要比其他服务更高的优先权。例如,航空公司取消订座的优先级要比订座的优先级高:对大多数航空公司来说,要尽可能地再次买出被取消的座位。优先权在服务队列级有用,参见下图的图示。图7 优先权:右例中,服务器1提供服务A,B,。A,B服务的优先级是50,C的优先级是70。在上一个请求完成时,服务器在队列中选择下一个请求下一个请求是由优先级决定的,而不是根据请求在队列中的位置。为了防止低优先级请求总是得不到服务,每隔十个请求,就按FI次序进行一次请求选择。)稳固的运行环境事务管理器包括许多支持应用可用性的特征,如

24、进程可用性检查、超时检查、自动服务器重启和恢复过程、用户可定义的恢复过程.事务管理器不仅仅控制应用程序的活动流而且能确保其流畅有效的操作。6)安全性事务管理器通过一个结构化的安全性接口提供应用服务的验证、授权和访问控制。该接口概括了Krber安全模型,允许Kerbros或类似的最终用户验证机制与应用集成。用户能用访问控制列表保护服务、队列或事件免遭未授权的访问。)分布式事务处理分布式事务处理(DTP)能力能保证跨几个场地访问的数据和由不同数据库产品管理的数据的完整性。事务管理器协调分布式事务使之完成网络环境下针对异构数据库的多场地修改.事务管理器用全局事务跟踪事务参与者,管理两阶段提交协议。这

25、样就可确保每个场地都能正确处理事务的提交和回退.事务管理器还在出现场地故障、网络故障或全局资源死锁时协调全局事务的恢复。事务管理器使用开放小组的X/OpeX接口,进行不同资源管理器之间的通讯。该接口已被X/en接纳为分布式事务控制的标准接口。因为高性能和事务流量对OLTP系统产品是关键因素,所以事务管理器TP软件使用了最小化磁盘写的算法。在其他属性中,事务管理器DTP开发了一些众所周知的技术如协调者迁移、只读和一阶段提交优化。事务管理器由几个关键子系统支持,这些子系统扩展了ETUXEDO客户/服务器功能和与异构应用系统的互操作性。下面的几个段落将描述这些关键子系统:管理BEA XED对分布式应

26、用管理的关键性问题给出了一个结构化的解决方案。BE TXE的管理接口包括一个综合性的命令行/脚本接口,一个编程接口和一个管理信息库(M),它们把A TUXEDO实现成一个更大管理环境中的受控应用程序。一个易用的基于GI 的管理应用程序可利用这些管理接口,在BEA TUXEDO环境上提供了高层控制。A TD资源,从高层的域属性向下贯穿一个单服务器进程的特性,支持图形化表示和拖放功能集中式的应用定义事务管理器使得应用管理员可在一个文件中定义组成BEA TUXEDO应用程序的硬件、软件和网络资源。应用设计者能叙述在何处运行服务器和服务以及在处理器出故障时服务应该迁移到何处。他们可把各种不同的特性,包

27、括调度信息、进程恢复标准和超时时间段等,赋给应用服务器。事务管理器为动态启动、停止或管理一个分布式应用程序提供中央配置管理和工具。动态重配置用户可动态启动或停止服务;用户可选择可用的服务。用户可在一个配置中增加新的机器、组、服务器和服务。另外,事务管理器可用不同的参数如超时故障等,使得一个无法使用的处理器上的服务器和服务在不中断运行程序的条件下移向另一个处理器上。第二章 开发与应用2.1 开发BATuxeo应用程序在开发A Tuxeo应用程序之前,你需要先搞清楚一系列和设计开发相关的概念,如识别什么是客户机,有哪些方法可以从外界收集数据并提交服务器进行业务处理;识别什么是服务器,哪些程序包容了

28、可以处理客户机输入的商业逻辑;识别什么是类型缓冲区,客户程序在向其这程序发送数据前如何分配内存区域;什么是BEA Tedo的消息范例等。最后你还要弄明白客户程序是通过调用ATM库来访问EAuxedo系统的.创建 Ted的客户程序与在和C+编程语言中创建其它应用程序一样,BEA uedo提供了一个其于语言的编程接口,即应用程序事务监控接口ATMI,这套接口很容易使用,以便用于开发客户程序和服务程序。除了C语言接口外,BEA Txedo还提供了C接口2。1 创建服务程序2。1。1。概述 尽管开发者使用ATMI编程接口来创建BATxedo客户程序和服务程序,但服务程序不全部由开发者来编写,开发者只需

29、写一些称为服务的商业函数,封装业务逻辑,然后和BEA Tue的一些二进制程序联编成一个可执行的服务程序。BTuxed服务程序启动后,它总是保持运行状态,只到接收到一个hutdown消息为止。一个典型的BEA xedo服务程序在sdon或reboot之前都在执行着数千个服务。2。1。1.2 服务的运行流程为了更好的了解服务端的所有任务以编写服务端应用,有必要重新认识服务端在C/模式中扮演的角色。首先,服务是系统资源的联系点。例如,一个数据库服务联系实际数据库并对其进行查询和修改。为有效进行,应建立一个数据库连接。 其次,服务必须发布系统内可以访问的交易,保证客户端可以知道把请求发往何处。 以上两

30、步结束后,服务进入一个循环接收请求、处理请求并返回结果接收请求包括进入消息队列,得到交易请求.处理请求包括检查请求数据缓冲,运行商业规则和逻辑,可能还包括访问数据库和返回结果数据缓冲.当系统管理员需要关闭系统,可以通过系统管理工具将关闭系统的消息发给服务。服务完成所有交易,取消交易发布,关闭资源连接然后结束。2.11。 服务程序的任务(1) 在BE Tuxdo服务程序启动时,执行tpsvrinit()函数,可以在里面打开一些如数据库之类的资源供以后使用;(2) 在BE Txedo服务程序关闭时,执行tsvrdown()函数,可以在里面关闭svini()中打开的资料;(3) EATuedo服务程

31、序以服务的形式来响应客户程序的请求,客户程序不是通过名字来调用服务程序的,而是调用服务,客户程序不知道处理它请求的服务程序的位置;(4) 服务程序调用treturn()函数来结束服务请求,并返回一个缓冲区,必要时,将它传给客户程序;注:如果是在tpsvit()中连接数据库,为了保证数据库的正常连接,在执行服务的时候,最好能够判断数据库是否断开连接,如果断开连接,则重新连接数据库。这样可以从根本上保证系统能够持续稳定的长期运行,基本上不需要人工干预。也就不再会出现“数据库重启了,中间件必须重启”的情况.2.14 返回控制在一般的程序中,函数通过调用rtrn()将控制返回,函数调用堆栈清空,控制返

32、回调用点。TUEDO系统的交易函数必须结束于将回应返回给客户端或前转到另一交易。函数tern()用来结束交易将回应数据缓冲发给客户端。函数tfowa()将交易前转给另一个交易,由其负责回应原来的客户端。下图是prturn()的示意图。tpretur()设计来代替常规的reurn(),结束绝大多数函数。它将回应数据缓冲返回请求的客户端,控制权返回给服务程序的标准min()(由XEDO提供).tpreun()使用下列参数:第一个值表示交易是否成功,有3种可能: TPSUCCESS交易完全成功,如果是一个会话,TEV_VCSUC被生成 TPFI交易失败,tperro将被设成ESCFI。如果是事务模式

33、,事务被标志成ornly,如果是会话,TPEVVCFIL被生成 TET与TPFAL类似,但服务会中断,如果服务设成可以重启动,则可以由TUXD系统将其重启动。第二个值是应用定义返回码,此处使交易可以发送一个整形代码到客户端,给出交易处理结果的详细信息。该值与/T系统无关,通过全程变量urcode送到客户端程序。第三个值是回应数据缓冲的的指针第四个值是回应数据缓冲的长度(仅缓冲类型为CAR时需要)第五个值是标志位,通常不用。1.1。5 初始化和结束服务tpsviit()和tpsvrdoe()分别用来启动和关闭服务。如果应用不提供这两个函数,可以使用替代函数。psvrinit()用tpoen()缺

34、省打开RM连接。psvone()用tclos()关闭连接.tpsnit()象标准C语言的min()一样使用参数agc,agv。服务的命令行参数可以传入该函数,被tt()解析.该部分的用法参见应用配置部分。本函数出错时返回,成功返回0.tpsrone()无参数,无返回值。2。1。6创建(编译)服务当C语言的交易程序编码完后,需要连接正确的库并编译使用buildserver可以使该过程容易一点。该命令引用了C语言编译器并按正确的次序连接TUXEDO系统的库,连接TUEDO生成的ain()等。builderver还用s参数产生合适的交易名函数名映射表。要使用buider,必须先正确设定环境变量TUX

35、DR,ATH,LD_LIBRARY_ATH命令语法如下:budrr -v oeecuble s ervice2,serie3:func f srce/objct - obectlbra le例:buildserver s DEPOSTo TLRf TR.o f apinit.参数解释如下:o生成的可执行文件名-f需要在连接TUXO库之前传给编译器的文件名.如有多于一个的文件名,名字应用空格分隔并用引号引起也可以使用多个f参数。l需要在连接TUD库之前传给编译器的文件名.语法同上。v编译过程显示。-指定SM或MP模式。如无此项,两种模式都包括;使用此项可以使生成的可执行文件小一点-r连接此处指出

36、的RM库。该RM的名字必须含在UXDR/uaobj/RM文件中。2。1.1。 调试和错误处理对于服务程序的调试,确实是一件非常令人头痛的事在Ux环境下,目前还找不到很好的方法,一般经常使用的方法是”pit,Userlog”跟踪法,但是这种方法太累了因此,有人想出了在wnows环境下跟踪调试,发现没有任何错误后再放到NX环境进行编译,并正式使用。目前,我们公司采用的就是这种调试方法,在indow环境下(C+ Builer)编写一个tuedo模拟测试服务程序,使其能正确的识别客户端调用的服务,并正确的调用相应的服务。1。1程序范例(1) 源代码文件名:simserv.#nclde stdi.hnc

37、decpe。hinclude atmih/*UXEDO Hader Filnlude /* TUXDO Haer File*/ 当服务器启动时,在处理请求之前,tsvrinit被执行,这个不是必须的,对应的函数是shtdown*/if define(_TDC_) de(_luslu)tpsriit(inag, char*arg)#esetsvrini(arc, argv)ntagc;chr*rg;#endif/* 当arc, arv没有被使用时,一些系统会发了警告 argc = argc;v = argv;/* userl用于将UXDO消息写到日志文件中 /userl(”Weoe tote i

38、mpe erver);turn(0);/*TOPPER真正处理客户请求,它接收的参数是一个缓冲区指针 */#ifdef _puslusxte ”C”#ndivoid#i deined(_D_) | efied(_cplsplus)TOUPP(PVNFO*rqst)elseOPPE(st)PSINF rqt;#endifn i;for(i 0;i rqten-1; i+)rqst-dai= toupper(rqsti);/返回转换后的类型缓冲区/tpreturn(TSUCCESS, 0,rqt-daa, 0, 0);(2) 程序说明语句说明whole fil整个服务程序不提供mai函数,在uil

39、时,由EA Txedo系统提供。tpsvinit()在服务器初始化即处理请求之前被调用。若没有提供该函数,BE Tuxeo系统会提供一个缺省的,它向SRLO中写一条消息,说明服务器已经被启动。erog(3c)是系统提供的一个写日志的方法。TUE()simserv提供的唯一一个服务,它接收一个TCNFO结构,它包含了要被转换成大写的字符串。fo loopBEA Tue系统的循环,用于逐一转换。tpretr()(3) 程序编译:$builsrvero smpservf mpevc s TOUPPER(s OUPPER指明了在服务器启动时需要提供的服务)2。1.2 创建客户程序2。1.2。1 概述创

40、建BATuxe的客户程序与在和C+编程语言中创建其它应用程序一样,BA uedo提供了一个其于语言的编程接口,即应用程序事务监控接口TM,这套接口很容易使用,以便用于开发客户程序和服务程序。除了语言接口外,E Tuo还提供了COBOL接口。.1。2。2客户端在C/S模式中的作用为了更好的了解客户端的所有任务以编写客户端应用,有必要重新认识客户端在/S模式中扮演的角色。 首先,客户端是用户界面。意思是当用户在系统上用程序进行一次操作的整个过程就是一个客户端过程.前端过程是对客户端的另一个描述。客户端的首要任务就是获得执行操作应该得到的数据。一旦客户端得到了应有的信息,应该将数据按服务能够识别并适

41、合传输的格式打包。然后,向服务端发送请求并等待回应。收到回应数据后,将其按一定格式返回给终端用户。2.1.3 客户端开发过程客户端程序的设计和实现可以被分成2部分考虑:用户处理过程和EDO功能部分。下文的客户端程序只描述了TUXED功能部分。利用TXEO的ATMIPI调用可以做到:基本的XEDO调试技巧(tperrno,tpsrerror,uerlog)TUXEDO进程管理(tin,pr)基本数据缓冲管理(tpalloc,tprelloc,tpre)-基本通讯(tpca,tpcall,tperp)客户程序一般执行如下任务:(1) 用tpchkauh()决定加入一个应用程序所需的安全级别。可能出

42、现的响应包括:没有安全级别,应用程序口令,应用程序授权,访问控制列表,连接级加密,公钥加密,审计。这些可以根据你的需求进行选择;在实际的应用中很多的软件开发商通常对这一步都不做处理.(2) 调用tpii()来连接到一个BEATuxedo应用程序,所需的安全信息作为tpt()的参数传给了应用程序;(3) 执行服务请求;(4) 调用ptrm()来断开和BEATuedo应用程序的连接2.1。.4调试和错误处理当调用ATMI出错时,返回值为1,全程变量tprrno被设值,该变量提供系统定义的出错原因。函数tptrror()以此变量为参数,返回错误的字符说明信息。完整的错误号和文本错误信息存在于文件UX

43、DIR/ncde/atmi.h。函数seog()重定向输出文件为ULOG。mdyy。使用方法同pitf()。该函数每次输出都写硬盘,这样在系统失败时也能保留调试信息。代码范例ret=tpter();i ( ret = )pitf(“Error in exitingapplton”);usrog(“ATMI erro logged % s,tprr,tpstrerror(terno));.1。2。5进程管理 tuxed 接到一个tpini的请求后,就启动一个服务进程,接收到tpte()后,就会中止该服务进程.在实际应用中,tinit()和term()必须成对出现,而且要相互对应.如果只在程序中调

44、用了tpini()而没有调用tt(),则uxd系统会认为该进程一直处于活动状态,这样的话可能会因为服务进程达到系统允许的上限而导致系统的崩溃.i tpiit(TPNIT tpo)客户端通过调用tpini()与应用连接,进行交互,有以下事件发生:调用安全接口检查客户端是否需要认证连接B,使进一步的ATMI函数得到信息使BBL了解BB中已经存在请求建立客户端消息队列使服务可以发回返回信息,系统可以送出广播通知等.错误时返回-1,可能由以下原因引起: TPVA参数错误 TPENONTBB无空间 TPEER无连接权限 TPE协议错误 被服务调用nperm()客户端调用tterm()切断与应用的连接,结

45、束了客户端的UXO进程,该过程发生以下事件:B入口删除,使BBL知道客户端已经离开客户端离开BB,客户端的信号量被移除客户端消息队列被移除错误时返回-1,可能由以下原因引起:TEROTO协议错误被服务调用TPESYST/T系统下错误TPEOS操作系统错 根据iit()和pterm()在客户程序中不同位置的调用,可以把txedo的进程连接分为长连接和短连接两种.长连接是指在程序开始的时候调用tpint()建立服务连接,在程序中止的时候调用perm()中止服务连接。这样做的好处是,当用户频繁的进行业务操作时,不用频繁的进行进程连接,大大的缩短了操作时间,提高了程序的执行效率.但是,这也一个缺点,那

46、就是,只有用户不从客户程序中退出来,不管做不做业务,都会在系统中占用一个进程连接,从而会影响其他用户的连接。短连接指的是用户每做一次业务,都需要调用pint(),业务完成后调用tterm()这样做的好处是,1000个终端用户和0个终端用户同时操作,对系统来说,基本上是一个概念。但是这样做会浪费大量的时间在进程连接上,从而影响了业务的处理效率。为了协调长连接和短连接之间的矛盾,我曾经给出了一个很好的解决方案,那就是在长连接的基础上进行优化处理,当客户程序5分钟(这个值可以自定义)没有向服务程序发送任何服务请求,则调用pterm()断开服务连接。仅仅这样还是不行的,我们还必须在客户程序向服务程序发

47、送业务请求之前,首先判断进程连接是否断开,如果断开,则重新连接.2.1。2。数据缓冲管理在Bea Tuedo系统中的所有通信过程都是通过类型缓冲区来完成的,Bea Tuxeo系统提供了大量的类型缓冲区来供开发者使用。所有类型缓冲区都必须通过Bea uxed的tpalloc(), prealloc(), tfee()这些ATI来分配回收,它们都有特定的头部。以下是UXED基本的数据缓冲类型: RING以空值结尾的单域字符数据。 CARAY有长度定义的单域二进制数据,不进行编、解码. VIW类C结构或COBOL记录的多域组织。 FL无固定结构的自定义缓冲tpaloc(),tprealloc()在出

48、错时返回空值,可能由以下原因引起: TPOS操作系统 TPEINVA非法或不正确的类型 TPESYSTMTUXED之下的错误统一定义的类型缓冲区可以使它们在跨越不同网络、不同协议、不同CPU构架以及不同操作系统之间得到统一的处理,这就使得开发者在分布式计算环境中有效地避开了异构网络和异构计算机系统带来的差异,把精力集中在商业逻辑的开发上2。1.。7 程序范例(1) 源代码文件名: impcl。ciclde sio。hilude atmi。h”/* TUXEO的头文件 /#f defid(_SC_)| fned(_cpluss)min(inagc, char arg)elsemain(g, ag

49、)it arg;char *argv;#endchar*sendbuf, *rcbuf;lonsndn, rcln;int et;if(ac!= 2) (vid) printf(ster,ae: il strinn”);exi(1);/* 作为一个客户过程连接到System/T if(tpiit((TPNT )LL) = -) (void) printf(stder,”initfale”);exi(1);sndle=stlen(agv1);/* 分配一个供请求响应使用的STRING 缓冲区 i((send(cha ) pallc(STING”, NU,enden1))=NL) (voi) fr

50、ntf(stder,”Erro allocting sed burn”);tptem();exit(1);if((rcvbf (char *) paoc(STRING”,NLL,sendln+)) = NUL) (voi) pritf(stder,Eror allcaingrceve ufern”);tpfree(sedbuf);tptm();exi(1);(oi)strc(sendbuf, argv);/* Rqst theservic TOUPPE,wiingo repl */et = pcall(”TOUPER”,(har*)sen, 0, (car)rbuf, &cvlen,(og)0

51、);if(ret = 1) (void) pnt(stderr, ”Cant nd reqst to serc OPPERn”);(vod)prtf(ste, errn = dn”, rno);tpfree(sendbf);fr(rcvbuf);term();xt();(void) ft(tdou,Retrned tin s: n”, rvbuf);/* Feeufers & Detch rom Sytem/T */tpree(sendbu);tpfre(rcbf);tpterm();rtun(0);(2) 程序说明:语句说明atm。调用ATM函数必须的头文件tpnit()客户程序调用它来加入

52、应用程序tplloc()用于分配类型缓冲区的ATM函数,STRING是五种BE Tuxo缓冲区数据类型之一,nden+1表示缓冲区类型,因为以空字符结尾,所以长度加tcll()把消息缓冲区送到OUPPR服务,它提供了响应缓冲区的地址,它一直等待着返回消息tperm()用于退出应用程序的ATM函数,pree()释放分配的缓冲区,是和tpllc()相对应的函数(3) 程序编译:$ildint - simcl simcl.-指明输出目标文件名,-f指出源文件名。1。3 在应用程序中使用消息范例BEA Tuxedo系统提供多种通信模式 同步Reuest/Resns模式; 异步Rust/Respons模

53、式; 嵌套调用; 调用转发; 会话通信; 主动消息通告; 基于事件的通信; 基于队列的通信; 使用事务2。1。3。1 同步通讯要进行同步调用,Bea Txedo客户程序使用AT函数tpcal()把一个请求送到服务程序,它不是通过名字来调用服务程序的,而是通过特定的服务来完成。客户程序要等到服务程序作出响应后才处理后面的工作,也就是说,它在收到服务程序的响应之前一直处于阻塞状态。函数pll()有个参数。如下: 交易名 请求数据缓冲 请求数据缓冲的长度(仅缓冲类型为CARY时需要) 返回数据缓冲的地址。缓冲大小可以根据收到数据而改变。 返回数据缓冲大小的地址 标志量标志量可以是以下值: TPNOT

54、RN如有交易不调用 TPNOLC如有阻塞不等待 TPNOME愿意等待直到超时 PSIGRSTRT系统中断信号在UEO完成后再发布出错返回1,错误原因如下: EINVAL参数错误 TPERAN交易相关错误 PTIME超时代码范例min()in rt;ong le=0,flgs=0;ca *buptr;if (tpit((TPIIT * )LL) = 1)exit(1);if ((uf=plloc(“SING”,NULL,0*024=LL)tptrm();xit(2);t = tpcll(“TOUPER,butr,le,&bufptr,len,fls);if(ret -)usrlg(“Eror e

55、uesn %d %s”,perro,tstrror(perro);pfree(ufptr);xi(2);pfre(bfr);i(perm()= )usrlog(“tptem error d s,errno,tpstrerro(tprro);n tpcall(char )ervicenme,(ar*)bufp,longlngth,(cha *)bupr,(lon)legh,long flags).1.3. 异步通讯要进行异步调用,客户程序必须调用两个MI函数:tpacall(3c)函数,用于请求一个服务;tgetpy(3c)函数,用于取得服务程序的响应。客户程序在请求和响应之间要完成特定任务时,

56、可以采用这种模式。tpacal()有4个参数 交易名 请求数据缓冲 请求数据缓冲的长度(仅缓冲类型为CARY时需要) 标志量(同tpcl()返回值是一个非负描述符(句柄),用于其后的tgerl()调用。如果tcall()调用失败,句柄是-1,错误原因设置在teno,可能是以下值: PELIMIT过多未处理的tacall() PETIME超时tpcal()后总跟随一个tpgepy(),有4个参数 变量地址,可以传入tall()所得句柄,或另设一个 返回数据缓冲的地址。缓冲大小可以根据收到数据而改变。 返回数据缓冲大小的地址 标志量标志量的值可以是如下之一: TPETNY取第一个返回值,设句柄 TPOHNG取

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!