Tuxedo-TOUPPER服务--informix数据库
来源:互联网 发布:axl rose肥了 知乎 编辑:程序博客网 时间:2024/06/05 19:43
Tuxedo 实现字符串的大写转换
1.开发的环境:AIX、Informix
2.客户端的程序Client.c
#include <stdio.h>
#include <string.h>
#include "atmi.h"
int main(int argc,char *argv[])
{
char *buf;
long len;
char *recvbuf;
if(argc != 2) {
(void) fprintf(stderr, "Usage: simpcl string ");
exit(1);
}
printf("Client is running....\n");
if (tpinit((TPINIT *) NULL) == -1) {
(void) fprintf(stderr, "Tpinit failed ");
exit(1);
}
len = strlen(argv[1]);
if((buf = (char *) tpalloc("STRING", NULL, len+1)) == NULL) {
(void) fprintf(stderr,"Error allocating send buffer ");
tpterm();
exit(1);
}
if((recvbuf = (char *) tpalloc("STRING", NULL, len+1)) == NULL) {
(void) fprintf(stderr,"Error allocating recv buffer ");
tpfree(buf);
tpterm();
exit(1);
}
(void) strcpy(buf, argv[1]);
printf("After strcpy buf:%s\n",buf);
if(tpcall("TOUPPER",(char *)buf, 0,(char **)&recvbuf, &len,(long)0)==-1){
(void) fprintf(stderr, "Can't send request to service TOUPPER ");
(void)fprintf(stderr,"Tperrno=%d\n",tperrno);
tpfree(buf);
tpfree(recvbuf);
tpterm();
exit(3);
}
printf("After Tpcall buf:%s\n",buf);
(void) fprintf(stdout, "Returned string is: %s \n",recvbuf);
tpfree(buf);
tpfree(recvbuf);
tpterm();
return(0);
}
3.服务端程序Server.c
#include <stdio.h>
#include "atmi.h" /* Tuxedo ATMI函数库的头文件 */
TOUPPER(TPSVCINFO *rqst)
{
int i;
for(i=0;i<rqst->len-1;i++)
rqst->data[i]=toupper(rqst->data[i]); /* 将rqst->data缓冲区内容转换成大写 */
tpreturn(TPSUCCESS,0,rqst->data,0L,0); /* 将rqst->data作为响应缓冲区返回 */
}
4.编写Tuxedo的ubbconfig文件ubb
*RESOURCES
IPCKEY 223488
DOMAINID svr
MASTER svr
MAXACCESSERS 50
MAXSERVERS 50
MAXSERVICES 1000
MODEL SHM
LDBAL N
*MACHINES
DEFAULT:
APPDIR="tuxedo应用程序放置的位置"
TUXCONFIG="使用tmloadcf -f ubb生成的tuxconfig的位置"
TUXDIR="tuxedo的安装目录"
ULOGPFX="一些生成的日志会放在改目录下"
MAXWSCLIENTS=10
xxxxx LMID=svr (注意:此处的xxxxx是使用命令uname -a出现的第二个字段)
*GROUPS
GROUP1
LMID=svr GRPNO=2 OPENINFO=NONE
*SERVERS
DEFAULT:
CLOPT="-A"
WSL SRVGRP=GROUP1 SRVID=1 MAXGEN=3 RESTART=Y
CLOPT="-A -- -n //192.168.5.188:40122 -T 18000 -d /dev/tcp -m 1 -M 2 -x 5"
server
SRVGRP=GROUP1 SRVID=120 MIN=2 MAX=2
RQADDR ="DATA_TU" REPLYQ=Y
*SERVICES
TOUPPER
5.运行tuxedo程序的步骤
5-1.先加载tuxedo的配置文件:tmloadcf -f ubb
5-2.编译客户端:buildclient -o client -f client.c
5-3.编译服务端:buildserver -o server -f server.c -s TOUPPER
5-4.启动tuxedo的服务程序:tmboot -y
5-5.运行tuxedo的客户端程序:client hello
5-5.关闭tuxedo的服务:tmshutdown -y (如果执行过此步骤,即生成了tuxconfig文件,在执行此步骤的时候,应该先把tuxconfig文件删除后,再执行此步骤)
注:可以通过命令tmunload > file将已经生成的tuxconfig文件反编译成tuxedo的配置文件
在具体是实现过程中可能还需要在系统配置文件中指定WSL的IP地址
- Tuxedo-TOUPPER服务--informix数据库
- TUXEDO与INFORMIX数据库的互连
- TUXEDO与INFORMIX数据库的互连
- 起停Informix、tuxedo
- 修改informix数据库服务监听端口
- [tuxedo]jolt访问tuxedo服务
- informix数据库
- toupper
- toupper()
- toupper
- toupper
- tuxedo服务封装
- tuxedo服务迁移
- 调用TUXEDO服务概览
- Java调用Tuxedo服务
- tuxedo查看后台服务执行情况
- tuxedo服务的dbx debug
- 关于tuxedo服务的问题
- nodejs入门--process 进程
- TCP/IP详解--第七章
- 比赛小结:codeforces #175
- lua的入门教程-- C++(一)
- android layout属性介绍
- Tuxedo-TOUPPER服务--informix数据库
- 8086 CPU 寄存器简介
- uva704 - Colour Hash(彩色转盘)
- DB2的隔离级别和性能
- wpa_supplicant patch
- HDU 4509 湫湫系列故事——减肥记II 线段树
- Java配置环境变量
- 设计模式的精髓
- 深入剖析Linux内核定时器实现机制