tuxed培.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TUXEDO培训 一、TUXEDO简介 在银行、电信、金融等行业的大型计算机应用系统中,中间件的使用日益普及,中间件已与操作系统、数据库并列为三大基础软件。TUXEDO就是BEA公司开发的一种优秀的中间件产品,主要功能是在客户机和服务器之间进行调节,以保证正确地处理事务,通常由tuxedo处理系统的核心业务。 在两层的 C/S 结构中,客户端直接访问数据库,当采用 TUXEDO 中间件后,形成三层结构。这时,客户端不直接访问数据库,而是改为调用中间件 TUXEDO 服务端上的服务,由 TUXEDO 服务端访问数据库,并把结果返回给客户端。 TUXEDO 服务端可以和 ORACLE 在同一台服务器上,也可以在不同的机器上,如果在不同的机器上,在 TUXEDO 的服务端所在的机器要安装一个 ORACLE 的客户端。 二、TUXEDO服务端程序举例介绍 1、Tuxedo通过数据缓冲区和客户端进行交互。 Tuxedo支持string,carry,view,view32,fml,fml32等数据缓冲区,其中fml32类型相对复杂且比较常用,BSS系统采用fml32数据缓冲区开发,首先需要编写fml32数据缓冲区的定义文件,包括fml32数据缓冲区各个字段的名称已经长度等等,并将该文件生成相应的c语言.h头文件,我们在应用程序中需要包含该头文件,这样应用程序中即可以使用fml32数据缓冲区, fml32类型通常在开发数据库应用程序的时候比较常用。 2、例子实现的功能。 根据输入的学生学号从数据库中查询得到该学生的姓名和年龄。 3、定义fml32数据缓冲区文件student_fld文件 *base 10000 # name number type flags comments student_id 1 long - 学生学号 student_name 2 string - 学生姓名 student_age 3 long - 学生年龄 student_id等3项就是我们自定义fml32类型的域字段,其中每一个字段都对应 一个number,这些number有一个公共的起始值,通过*base 10000定义。 定义之后通过mkfldhdr32 student_fld编译该文件,之后生成student_fld.h头文件,在应用程序中将引用该文件。 头文件:student_fld.h #define student_id ((FLDID32 /* number: 10001 type: long */ #define student_name ((FLDID32)167782162) /* number: 10002 type: string */ #define student_age ((FLDID32 /* number: 10003 type: long */ 4、服务端程序代码 程序名:testServ.pc #include atmi.h #include userlog.h #include sqlca.h #include fml32.h #include student_fld.h EXEC SQL INCLUDE sqlca; /* 该函数是在启动tuxedo服务时执行,可以在这个函数执行连接数据库或初始化 全局变量等功能 */ #if defined(__STDC__) || defined(__cplusplus) tpsvrinit(int argc, char *argv[]) #else tpsvrinit(argc, argv) int argc; char **argv; #endif { /*直连oracle数据库方式*/ EXEC SQL BEGIN DECLARE SECTION; char sConnStr [100]; EXEC SQL END DECLARE SECTION; argc = argc; argv = argv; memset(sConnStr, 0x00, sizeof(sConnStr)); strcpy(sConnStr, “数据库连接串”); EXEC SQL Connect :sConnStr; if (sqlca.sqlcode) { userlog(连接数据库失败,错误号码:%d,详细原因:%s\n, sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc

文档评论(0)

mv2323 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档