![BEA TUXEDO培训和指导_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/e595ba10-eddd-48cd-b9b7-64923e3ec40d/e595ba10-eddd-48cd-b9b7-64923e3ec40d1.gif)
![BEA TUXEDO培训和指导_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/e595ba10-eddd-48cd-b9b7-64923e3ec40d/e595ba10-eddd-48cd-b9b7-64923e3ec40d2.gif)
![BEA TUXEDO培训和指导_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/e595ba10-eddd-48cd-b9b7-64923e3ec40d/e595ba10-eddd-48cd-b9b7-64923e3ec40d3.gif)
![BEA TUXEDO培训和指导_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/e595ba10-eddd-48cd-b9b7-64923e3ec40d/e595ba10-eddd-48cd-b9b7-64923e3ec40d4.gif)
![BEA TUXEDO培训和指导_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/e595ba10-eddd-48cd-b9b7-64923e3ec40d/e595ba10-eddd-48cd-b9b7-64923e3ec40d5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、BEA TUXEDO培训和指导简介TUXEDO是什么?BEA TUXEDO是在企业、Internet 这样的分布式运算环境中开发和管理三层结构的客 户/服务器型关键任务应用系统的强有力工具。它具备分布式事务处理和应用通信功能,并提供完善的各种服务来建立、运行和管理关键任务应用系统。开发人员能够用它建立跨多个硬件平台、数据库和操作系统的可互操作的应用系统。BEA TUXEDO是企业、 Internet 分布式应用中的基础主干平台。它提供了一个开放的环境,支持各种各样的客 户、数据库、网络、遗留系统和通讯方式。一个例子一个TUXEDO 应用可以分成3部分² 发布交易请求的客户端²
2、; 运行响应请求交易的服务² 描述应用机器和服务信息的配置文件上图是本例的示意图:客户端请求交易“TOUPPER”,数据是“hello world”。交易“TOUPPER”将字符串转成大写,将结果成功返回客户端。客户端范例#include <stdio.h>#include “atmi.h”main()char*buf;longlen;if (tpinit(TPINIT * )NULL) = -1)exit(1);if (buf=tpalloc(“STRING”,NULL,80)=NULL)tpterm();exit(2);strcpy(buf, “hello world
3、”);if ( tpalloc(“TOUPPER”,buf,0,&buf,&len,0)= -1)fprintf(stderr,”service requst failn”);tpfree(buf);tpterm();exit(3);printf(“return string is :%sn”,buf);tpfree(buf);tpterm();exit(0);包含TUXEDO系统的头文件”atmi.h”,以便引用TUXEDO的函数和变量定义。客户端调用tpinit()连接应用用tpalloc()分配一个STRING类型数据缓冲将”hello world”拷贝进缓冲用tpcal
4、l()包含数据缓冲,向交易“TOUPPER”发一个同步请求打印出改变的数据缓冲调用tpterm()切断与应用的连接开发TUXEDO C/S系统的必要步骤² 配置环境变量² 编码并编译客户端和服务端的程序² 由文本的ubbconfig生成二进制TUXCONFIG² 启动系统和服务² 测试应用² 关闭系统客户端开发 Client Development客户端开发过程客户端程序的设计和实现可以被分成2部分考虑:² 用户处理过程² TUXEDO功能部分下文的客户端程序只描述了TUXEDO功能部分。利用TUXEDO的ATMI
5、 API调用可以做到:基本的TUXEDO调试技巧(tperrno,tpstrerror,userlog)TUXEDO进程管理(tpinit,tpterm)基本数据缓冲管理(tpalloc,tprealloc,tpfree)基本通讯(tpcall,tpacall,tpgetrply)编译C语言客户端程序当C语言的客户端程序编码完后,需要连接正确的库并编译。使用buildclient可以使该过程容易一点。该命令引用了C语言编译器并按正确的次序连接TUXEDO系统的库。为使用buildclient,应确认客户端程序包含了”atmi.h”,TUXDIR被设了正确的值。命令语法如下:buildclien
6、t -v o executable f first-file -f first-file -l last-file此处first-file表示的应该是编译器可以识别的文件。缺省的编译器是cc。一般是.c(c源程序),.C(C+源程序),.o(object)或.a(库)文件。参数解释如下:-o生成的可执行文件名-f需要在连接TUXEDO库之前传给编译器的文件名。如有多于一个的文件名,名字应用空格分隔并用引号引起。也可以使用多个-f参数。-l需要在连接TUXEDO库之前传给编译器的文件名。语法同上。-v编译过程显示。服务端开发 Server Development服务的运行流程为了更好的了解服务端
7、的所有任务以编写服务端应用,有必要重新认识服务端在C/S模式中扮演的角色。首先,服务是系统资源的联系点。例如,一个数据库服务联系实际数据库并对其进行查询和修改。为有效进行,应建立一个数据库连接。其次,服务必须发布系统内可以访问的交易,保证客户端可以知道把请求发往何处。以上两步结束后,服务进入一个循环接收请求、处理请求并返回结果。接收请求包括进入消息队列,得到交易请求。处理请求包括检查请求数据缓冲,运行商业规则和逻辑,可能还包括访问数据库和返回结果数据缓冲。当系统管理员需要关闭系统,可以通过系统管理工具将关闭系统的消息发给服务。服务完成所有交易,取消交易发布,关闭资源连接然后结束。返回控制在一般
8、的C程序中,函数通过调用return()将控制返回,函数调用堆栈清空,控制返回调用点。TUXEDO系统的交易函数必须结束于将回应返回给客户端或前转到另一交易。函数tpreturn()用来结束交易将回应数据缓冲发给客户端。函数tpforward()将交易前转给另一个交易,由其负责回应原来的客户端。下图是tpreturn()的示意图。tpreturn()设计来代替常规的return(),结束绝大多数函数。它将回应数据缓冲返回请求的客户端,控制权返回给服务程序的标准main()(由TUXEDO提供)。tpreturn()使用下列参数:第一个值表示交易是否成功,有3种可能:² TPSUCCE
9、SS交易完全成功,如果是一个会话,TPEV_SVCSUCC被生成² TPFAIL交易失败,tperrno将被设成TPESVCFAIL。如果是事务模式,事务被标志成abort-only,如果是会话,TPEV_SVCFAIL被生成。² TPEXIT与TPFAIL类似,但服务会中断,如果服务设成可以重启动,则可以由TUXEDO系统将其重启动。第二个值是应用定义返回码,此处使交易可以发送一个整形代码到客户端,给出交易处理结果的详细信息。该值与/T系统无关,通过全程变量tpurcode送到客户端程序。第三个值是回应数据缓冲的的指针第四个值是回应数据缓冲的长度(仅缓冲类型为CARRY时
10、需要)第五个值是标志位,通常不用初始化和结束服务tpsvrinit()和tpsvrdone()分别用来启动和关闭服务。如果应用不提供这两个函数,可以使用替代函数。tpsvrinit()用tpopen()缺省打开RM连接。tpsvrdone()用tpclose()关闭RM连接。tpsrvinit()象标准C语言的main()一样使用参数argc,argv。服务的命令行参数可以传入该函数,被getopt()解析。该部分的用法参见应用配置部分。本函数出错时返回-1,成功返回0。tpsvrdone()无参数,无返回值。创建服务当C语言的交易程序编码完后,需要连接正确的库并编译。使用buildserve
11、r可以使该过程容易一点。该命令引用了C语言编译器并按正确的次序连接TUXEDO系统的库,连接TUXEDO生成的main()等。buildserver还用-s参数产生合适的交易名/函数名映射表。要使用buildserver,必须先正确设定环境变量TUXDIR,PATH,LD_LIBRARY_PATH。命令语法如下:buildserver -v o executable -s service2,service3:func -f source/object -l object/library file例:buildserver s DEPOSIT o TLR f TLR.o f appinit.o参
12、数解释如下:-o生成的可执行文件名-f需要在连接TUXEDO库之前传给编译器的文件名。如有多于一个的文件名,名字应用空格分隔并用引号引起。也可以使用多个-f参数。-l需要在连接TUXEDO库之前传给编译器的文件名。语法同上。-v编译过程显示。-b指定SHM或MP模式。如无此项,两种模式都包括;使用此项可以使生成的可执行文件小一点-r连接此处指出的RM库。该RM的名字必须含在$TUXDIR/udataobj/RM文件中。应用配置Application Configuration应用配置总览应用的描述信息配置在系统核心位置,用一个文件描述,通常称为ubbconfig文件,在主控机器上。整个TUXE
13、DO系统的管理任务可以在一台机器上完成,在配置中被定为主控节点。在运行时,这些信息被装入一段共享内存(一个IPC资源),称为公告牌(Bulletin BoardBB);包含有配置中不同机器的信息,在这些机器上运行的服务的信息,这些服务提供的交易的信息以及其他相关信息。客户端在运行时连接公告牌。当客户端程序调用一个交易,将根据公告牌找到合适的服务队列。所以,公告牌是:供客户端寻找适当的服务运行一个交易请求包含应用信息:机器,服务,交易,网络等创建于ubbconfig文件TUXEDO提供一个管理进程,称为BBL(Bulletin Board Liaison),包含了一个公告牌的本地拷贝和本地服务器
14、上应用的状态。TUXEDO提供的另一个管理进程DBBL(Distinguished Bulletin Board Liaison),用于多服务器配置时。DBBL与BBL协同,保证所有部分的公告牌内容的一致性。配置文件任何TUXEDO应用系统的最基本的管理任务,是建立并维护配置文件。该文件通常称为ubbconfig文件。负责该工作的系统管理员必须很好的了解分布于各台机器上的应用服务的数据流,消息队列的构造,资源间的相互关系。ubbconfig文件可视作包含应用启动信息的容器,需编译成二进制文件tuxconfig,作为启动时的参考。其内信息包括:² 系统范围信息(*RESOURCES节)
15、² 机器信息(*MACHINES节)² 组信息(*GROUPS节)² 服务信息(*SERVERS节)² 交易信息(*SERVICES节)² 网络组信息(*NETGROUPS节)² 网络信息(*NETWORK节)² 路由原则信息(*ROUTING节)当完成了ubbconfig文件后,用tmloadcf命令生成tuxconfig另一种从ubbconfig生成tuxconfig的方法是使用图形管理界面(GAIGraphical Administration Interface)。应用的信息*RESOURCES节包含整个应用范围的信
16、息。本节必须在配置文件第一节,不可缺少。信息说明如下:参数意义*RESOURCES*RESOURCES节IPCKEY共享内存idUIDTUXEDO管理员用户idGIDTUXEDO管理员用户idPERMTUXEDO管理员组用户的权限MAXACCESSERS服务端和客户端的最大进程数MAXSERVERS限制可以启动服务总数MAXSERVICES限制可以发布交易总数MASTER指出主控节点的逻辑名,第二个是备份节点MODEL应用构架,MP表示多机OPTIONSLAN,MIGRATE表示是一个网络应用,服务可以移植到替代处理器上SECURITY安全级别(5个)AUTHSVC客户端可以通过交易“AUTH
17、SVC”获得认证NOTIFYDIPIN,客户端通过dip-in收到广播通知SYSTEM_ACCESSPROTECTED,NO_OVERRIDE,应用代码不得干扰共享内存LDBAL设Y则进行负载平衡MAXBUFSTYPE数据缓冲类型及子类的最大数SCANUNIT内部时间间隔单位,单位是秒SANITYSCAN检索公告牌的内部时间间隔,单位是SCANUNITBLOCKTIME交易超时时间,单位是SCANUNITBBLQUERYDBBL查询所有BLL的时间间隔DBBLWAITDBBL等待BBL回应的超时时间MAXCONV同时最大会话数注意:本处未列出全部参数。这些系统范围内参数可以被后序节内参数超越。
18、范例*RESOURCESIPCKEY80952UID213GID1PERM0660MAXACCESSERS150MAXSERVERS75MAXSERVICES200MASTERSITE1,SITE2MODELMPOPTIONSLAN,MIGRATESECURITYAPP_PWAUTHSVCAUTHSVCNOTIFYDIPINSYSTEM_ACCESSPROTECTED,NO_OVERRIDELDBALYMAXBUFTYPE10MAXBUFSTYPE15SCANUNIT10SANITYSCAN12BLOCKTIME3BBLQUERY24DBBLWAIT10MAXCONV10机器信息*MACHIN
19、ES节包含应用有关的每个处理器的信息。本节必须在*RESOURCES节后列出。参数意义*MACHINESMACHINES节gumby物理处理器名,可以通过”uname n”或节点名得到TUXDIRTUXEDO系统软件安装位置APPDIR应用服务位置全路径TUXCONFIGTUXEDO配置文件全路径ENVFILE环境文件全路径ULOGPFX应用日志文件全路径MAXACCESSERS本机最多处理器数,可以超越*RESOURCES节定义MAXCONV本机最大会话数,可以超越*RESOURCES节定义范例*MACHINESgumbyLMID=SITE1TUXDIR=”/usr/tuxedo”APPDI
20、R=”/usr/apps/atmapp”TUXCONFIG=” /usr/apps/atmapp/atmapp.tux”ENVFILE=” /usr/apps/atmapp/ENVFILE”ULOGPFX=”/usr/apps/atmapp/logs/ULOG”MAXACCESSERS=100MAXCONV=15组定义*GROUP节包含服务组的定义。一台机器至少要定义一个服务组。如果没有定义组,管理命令tmadmin可能依然能运行。每个组只要定义组名,映射组名的组号和逻辑机器名。组为分布式交易系统和数据依赖路由等灵活性措施提供了支持。参数意义*GROUPSGROUP节BANKB1组的唯一标识符
21、,可以是字母数字GRPNO组的唯一数字标识符LMID组所在的机器范例*GROUPSBANKB1GRPNO=200LMID=SITE1BANKB2GRPNO=220LMID=SITE1SYSGRPGRPNO=110LMID=SITE1EVTGRP1GRPNO=120LMID=SITE1服务定义ubbconfig的*SERVERS节包含的是服务进程的信息。本节中每一个入口代表一个应用启动时加载的服务。这些信息包含服务名,命令行参数,服务环境,重启动等等。由于每个服务功能各不相同,其配置参数也因此相同或相异。参数意义*SERVERSSERVER节,列出所有服务程序DEFAULT:本处列出的参数为其下
22、列出的服务的缺省值,但可以被单列条目替代相应值RESTART如果设成Y,则服务可以重启动MAXGEN在GRACE定义时间之内,服务可以重启动MAXGEN次GRACE周期,单位是秒RCMD每次服务重启动,本处定义的脚本或命令被执行ENVFILE列有环境变量的文件,在交易启动前设入环境TLR一个服务名,用buildserver建立,应在APPDIR或$TUXDIR/binSRVGRP服务属于一个在*GROUPS节中定义的服务组;如果需要移植服务,也可以定义在多个组中。SRVID服务组中代表服务的唯一值MIN最少在启动时启动的服务数MAX运行时,最多可以起的实例数CLOPT跟随服务启动的其他参数-A
23、 服务内建交易全发布r指定服务记录时间戳,用于以后计算交易处理时间-e 定义标准错误重定向文件-o 定义标准输出重定向文件-TUXEDO参数和服务特定参数的分隔符传给tpsvrinit()的参数SYSTEM_ACCESS设定后,应用错误不干扰公告牌RQADDR当设定此项后,所有本服务的实例都使用相同的请求队列。这是在应用中设置MSSQ(Multiple Server Single Queue)的方便办法,可以改善处理流量。任何时候,所有MSSQ集中的实例发布相同的交易集。XFER另一个服务REPLYQ设成Y,则服务又作为一个MSSQ集配置,任何其中的交易调用其他交易,就建立一个单独的回应队列。
24、范例*SERVERSDEFAULT:RESTART=YMAXGEN=5GRACE=3600RCMD=”/sur/apps/atmapp/scripts/beeper”CLOPT=”-A”ENVFILE=”/usr/apps/atmapp/envfile”TLRSRVGRP=BANKB1SRVID=10MIN=1MAX=2CLOPT=”-A r-e /usr/apps/atmapp/logs/TLR1.err-o /usr/apps/atmapp/logs/TLR1.out-T 101 e 300 d dbfile”SYSTEM_ACCESS=PROTECTEDRQADDR=”TLR_Q1”XF
25、ERSRVGRP=BANKB1SRVID=20MIN=1MAX=2RQADDR=”XFER_Q1”REPLYQ=YCLOPT=”-A r”生成TUXCONFIG文件UBBCONFIG文件是一个可以编辑成需要的应用配置的文本文件。但是,/T在实际应用上读取的是二进制TUXCONFIG文件用于操作。命令tmloadcf可以把UBBCONFIG文件转化成TUXCONFIG文件。tmloadcf命令接受以下4个参数:-c计算运行应用需要的IPC资源,该信息将提供给管理员,用于在各机器上配置资源。-n进行语法检查并不生成TUXCONFIG。-b控制TUXCONFIG占用的物理页数。-y无条件覆盖TUXC
26、ONFIG环境变量TUXCONFIG必须设定指向二进制TUXCONFIG文件。在安全要求高的应用中,tmloadcf不能从标准输入接受,环境变量APP_PW必须包含应用密码。tmunloadcf将TUXCONFIG转换成ASCII格式用于检查。该工具读取环境变量TUXCONFIG指向的文件。输出包含所有的参数,包括TUXEDO设定的缺省值,是UBBCONFIG文件的一个超集。管理命令Administrative Commands命令tmboottmboot命令启动TUXEDO系统的 /T应用,创建必要的IPC资源、启动相关机器的规定的系统和应用服务进程。大多数的tmboot的参数启动了部分系统
27、进程。在以下说明和例子中,lmid,grpname和srvid是配置文件中指定的值。-A启动所有机器上的管理进程。-M启动主控机器上的管理进程。-i srvid启动服务id等于srvid的进程。-g grpname启动指定的一组服务(含TMS)-S启动所有应用服务。-s server-name启动可执行文件名为server-name的服务。-l lmid启动TMS和指定机器上的应用服务。-T grpname 启动指定组中所有TMS。-B lmid启动指定机器上的BBL。-e command指定启动进程失败后在主控机器上运行的命令名。-c打印本配置所需最少的IPC资源。命令tmshutdownt
28、mshutdown命令用于关闭所有或部分应用并释放IPC资源。本命令所用参数与tmboot类似(如:-A, -g, -i, -s, -S, -l, -M, -B),意义相同。如果需要移动服务,关闭服务时用-R参数即可不删除BB中的入口。在非主控节点上,可以用-P参数仅关闭该机器上的应用。当有客户端正在连接时,tmshutdown 不能关闭管理服务。参数-c则可以超越此规则。该参数仅用于管理员需要立即关机而又无法及时通知客户端时。参数-w delay 在delay秒后进行强制关闭。指定的服务当即被挂起,使之不能继续接受交易请求。delay的值则允许服务在一个合理的时间内完成已经接受的请求。在延迟
29、的时间到达后,信号SIGKILL(或SIGTERM)将发给指定的服务。该参数目的是使管理员能够关闭发生死循环或死锁的服务。管理工作和工具主要有以下两个管理工具:² 使用图形界面的图形管理接口(Graphical Administration InterfaceGAI)² tmadmin通常管理工作有以下3类:² 监视运行系统一般监视以下信息:应用、服务、客户端、交易、队列、组、会话、网络等。² 动态修改服务或交易参数使用GAI 或tmadmin可以动态进行以下调整:交易可以挂起、恢复、发布和取消交易参数可以修改,如:LOAD和PRIORITY指定交易的超
30、时时间交易口令² 进行启动,关闭,移动服务等管理员的任务服务信息来自GAI的信息本处略去。以下是tmadmin命令的printserver(简写为psr)的简单输出。列号描述1. 服务的可执行文件名2. 服务连接的队列名3. 组名4. 服务的数字id5. 服务已经处理的请求数6. 服务处理的全部请求的参数和服务正在处理的交易,若为IDLE则服务当前是空闲ccsmis:/home2/ccsmis>tmadmintmadmin - Copyright (c) 1996 BEA Systems, Inc.Portions * Copyright 1986-1997 RSA Data
31、Security, Inc.All Rights Reserved.Distributed under license by BEA Systems, Inc.Tuxedo is a registered trademark.> printserverProg Name Queue Name Grp Name ID RqDone Load Done Current Service- - - - - - -rz_Ecsb 00004.04000 APGP2 4000 0 0 ( IDLE )BBL 70020 simple 0 1 50 ( IDLE )IFMTMS APGP2_TMS A
32、PGP2 30001 1 50 ( IDLE )ftpserv32 00002.00001 FTPGP 1 60 3000 ( IDLE )WSL 00001.00001 SYSGP 1 0 0 ( IDLE )IFMTMS APGP2_TMS APGP2 30002 12 600 ( IDLE )ftpserv32 00002.00002 FTPGP 2 0 0 ( IDLE )IFMTMS APGP2_TMS APGP2 30003 11 550 ( IDLE )CCS_QUANBIA_60 00004.06004 APGP2 6004 0 0 ( IDLE )CCS_SCBB_4099
33、00004.04099 APGP2 4099 2 100 ( IDLE )CCS_GEKEZI_300 00004.03000 APGP2 3000 0 0 ( IDLE ):交易信息来自GAI的信息本处略去。以下是tmadmin命令的printservice(简写为psc)的简单输出。列号描述1. 交易名2. 交易函数名3. 服务可执行文件名4. 服务所在组名5. 服务的数字id6. 提供交易的机器的LMID7. 交易已经执行的次数8. 交易当前状态Service Name Routine Name Prog Name Grp Name ID Machine # Done Status- -
34、 - - - - - -416701 rz_Ecsb rz_Ecsb APGP2 4000 simple 0 AVAIL416601 rz_Ecsb rz_Ecsb APGP2 4000 simple 0 AVAIL416501 rz_Ecsb rz_Ecsb APGP2 4000 simple 0 AVAIL416401 rz_Ecsb rz_Ecsb APGP2 4000 simple 0 AVAIL416201 rz_Ecsb rz_Ecsb APGP2 4000 simple 0 AVAIL416301 rz_Ecsb rz_Ecsb APGP2 4000 simple 0 AVAIL
35、416101 rz_Ecsb rz_Ecsb APGP2 4000 simple 0 AVAIL416001 rz_Ecsb rz_Ecsb APGP2 4000 simple 0 AVAIL415901 rz_Ecsb rz_Ecsb APGP2 4000 simple 0 AVAIL:队列信息以下是tmadmin命令的printqueue(简写为pq)qaddress的简单输出。如果不指定address,所有队列信息将被输出。列号描述1. 队列连接的服务的可执行文件名2. 字符队列名,是RQADDR参数或一个随机值3. 连接的服务数4. 当前队列的所有请求的参数和5. 实际请求数6. 平均
36、队列长度7. 队列所在机器的LMID> pq 00004.05062Prog Name Queue Name # Serve Wk Queued # Queued Ave. Len Machine- - - - - -CCS_GEDAIPC_50 00004.05062 1 0 0 0.0 simple客户端信息来自GAI的信息本处略去。以下是tmadmin命令的printclient(简写为pclt)的输出,来自TUXEDO系统的日志信息。主要有以下信息:客户端id,用户名和当前状态登录的LMID和进程号(PID)服务组和上一访问过的服务组交易(启动/提交/中断)和会话的统计数字中继队
37、列id,通知方法和提交控制列号描述1. 已经登录的客户端机器的LMID2. 用户名,由tpinit()提供的3. 客户端名,由tpinit()提供的4. 客户端连接后经过的时间5. 客户端状态6. IDLE表示客户端目前没有任何交易在工作7. IDLET表示客户端启动了一个交易8. BUSY表示客户端在工作中9. BUSYT表示客户端正在交易控制下工作10. 启动/提交/中断的交易数> pclt LMID User Name Client Name Time Status Bgn/Cmmt/Abrt- - - - - -simple ccsmis WSH 17:42:47 IDLE 0/
38、0/0simple ccsmis tmadmin 0:44:28 IDLE 0/0/0BOSS的服务编写规范服务内容1、 服务函数参数说明2、 服务函数名称定义3、 变量定义4、 与数据库连接5、 读取入口参数6、 分配输出缓冲区的内存7、 操作员权限判断8、 事务数据处理9、 输出参数10、 断开数据库连接11、 返回例子如下:一个例子/* * 完成IDC集团开户确认处理。 * authorlugz * version %I%, %G% * since 1.00 * inparamloginAccept流水可以输入,如果不输入则在服务中取流水 * inparamopCode功能代码 * in
39、paramloginNo操作工号 * inparamloginPasswd经过加密的工号密码 * inparamorgCode操作工号归属 * inparamsystemNote系统备注 * inparamopNote用户备注 * inparamipAddrIP地址 * inparamcustIdIP地址 * inparamgrpIdNo集团ID * inparamcontractNo集团帐户ID * inparamuserPwd集团密码 * inparamprovCode省代码 * inparambelongCode归属代码 * inparambillType出帐周期 * inparambi
40、llDate计费日期 * inparamcustName用户名称 * inparamorgIdorgId * inparamgrpIdgrpId * inparamproductSmCode集团产品类型 * inparammainProductCode 主产品代码 * inparamproductCode 产品代码 * inparamproductPrices 产品价格因字串 * inparamproductAttr 产品属性串 * inparamproductType 产品类型 * inparamserviceCode 服务代码 * inparamserviceAttr 产品价格属性串 *
41、inparam feeList 费用信息: * payType 交费方式 checkNo 支票号码 bankCode 银行代码 checkPay 支票交款 * cashPay 现金交款 shouldHandFee 手续费 handFee 手续费 * inparamgrpOutNo集团用户编码,此编码是用作为交费和第三方公司的接口。 * inparamgrpFieldCode集团字段代码 * inparamgrpFieldValue集团字段值 * outparam loginAccept流水返回在服务中生成的流水,或还原传入的流水 * outparam SVR_ERR_NO * outparam
42、 SVR_ERR_MSG */void s3500Cfm( TPSVCINFO *transb )int input_par_num = 0; /*输入参数个数*/int output_par_num = 0; /*输出参数个数*/FBFR32 *transIN = NULL; /*输入缓冲区*/FBFR32 *transOUT = NULL; /*输出缓冲区*/FLDLEN32 len; /*输出缓存区分配的空间*/char temp_buf61; /*临时使用的字符串数组*/int ret=0, rowNum=0;EXEC SQL BEGIN DECLARE SECTION;tGrpUse
43、rMsg grpUserMsg;/* 输入参数变量定义 */char orgCode9+1; /* 工号机构 */char belongCode7+1; /* 归属代码 */char loginNo6+1; /* 工号 */char loginPwd16+1; /* 操作员密码 */char opCode4+1; /* 操作代码 */char ipAddress20+1; /* 操作员IP */* 服务使用的主变量定义 */int i=0;long lLoginAccept=0; /* 操作流水 */char loginAccept22 + 1;/*nich 修改 char loginAcce
44、pt14 + 1*/char totalDate8+1; /* 帐务日期 */char systemNote60+1; /* 系统备注 */char opNote60+1; /* 操作备注 */char dynStmt2048;char billYearMonth6+1;char productCode8+1;char productPrice40+1;char productAttr8+1;char productType2+1;char serviceCode8+1;char serviceAttr40+1;char feeList999+1;char payType1+1;char ch
45、eckNo20+1;char bankCode5+1;char checkPay12+1;char cashPay12+1;char shouldHandFee12+1;char handFee12+1;char grpFieldCode5+1;char grpFieldValue255+1;char retCode6+1; /* 返回代码 */char retMsg60+1; /* 错误信息 */EXEC SQL END DECLARE SECTION;init(orgCode );init(belongCode );init(loginNo );init(loginPwd );init(o
46、pCode );init(ipAddress );init(loginAccept );init(totalDate );init(systemNote );init(opNote );init(dynStmt );init(billYearMonth );init(productAttr );init(productCode );init(serviceAttr );init(serviceCode );init(retCode );init(retMsg );init(feeList);init(grpFieldCode);init(grpFieldValue);memset(&g
47、rpUserMsg, 0, sizeof(tGrpUserMsg);/*如果开启了普通日志开关,则记录对应日志*/#ifdef _DEBUG_printf("服务s3500Cfm开始执行% n");#endiftransIN = (FBFR32 *)transb->data;EXEC SQL WHENEVER SQLERROR CONTINUE;EXEC SQL WHENEVER SQLWARNING CONTINUE;EXEC SQL WHENEVER NOT FOUND CONTINUE;spublicDBLogin(transIN,transOUT,"
48、s3500Cfm",LABELDBCHANGE);get_input_parms32_2(transIN, &input_par_num, &output_par_num,LABELDBCHANGE, CONNECT0);MemoryAllocate32(FIRST_OCCS32,31,"s3500Cfm", transIN,&transOUT,LABELDBCHANGE);#ifdef _DEBUG_for(i=0;i<input_par_num;i+)printf("input_parms%d=%sn",i,i
49、nput_parmsi);#endiflLoginAccept = atol( input_parms0);strcpy(loginAccept, input_parms0);strcpy(opCode, input_parms1);strcpy(loginNo, input_parms2);strcpy(loginPwd, input_parms3);strcpy(orgCode, input_parms4);strcpy(systemNote, input_parms5);strcpy(opNote, input_parms6);strcpy(ipAddress, input_parms7);strcpy(grpUserMsg.cust_id, input_parms8);strcpy(grpUserMsg.id_no, input_parms9);strcpy(grpUserMsg.accou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年新教材高中生物 第二章 基因和染色体的关系 微专题四 伴性遗传的解题方法说课稿 新人教版必修第二册
- 别墅电梯出售合同范例
- 2023九年级数学下册 第二十九章 投影与视图29.1 投影第2课时 正投影说课稿 (新版)新人教版001
- 2024年四年级英语上册 Unit 3 Let's Go Lesson 15 In the City说课稿 冀教版(三起)
- 2024年四年级英语上册 Unit 1 My classroom The fifth period(第五课时)说课稿 人教PEP
- 6 我们神圣的国土 说课稿-2023-2024学年道德与法治五年级上册统编版
- 个人发包合同范本
- 化妆品融资合同范例
- 供电部门保洁合同范例
- Unit1《Greetings》(说课稿)-2024-2025学年沪教版(五四制)(2024)英语一年级上册
- 2025年热管换热气行业深度研究分析报告
- 职业学院学生晚出、晚归、不归管理办法
- 2025年陕西西安市经济技术开发区管委会招聘30人历年高频重点提升(共500题)附带答案详解
- 2025山东能源集团中级人才库选拔高频重点提升(共500题)附带答案详解
- 《安利蛋白质粉》课件
- 【可行性报告】2024年数据标注与审核项目可行性研究分析报告
- 2024-2025学年沪科版数学七年级上册期末综合测试卷(一)(含答案)
- 2025门诊护理工作计划
- 《针法灸法》课件-温灸器灸
- 电气领域知识培训课件
- 山东省部分学校2024-2025学年高一上学期12月选科指导联合测试地理试题( 含答案)
评论
0/150
提交评论