关于中间件Tuxedo(100分)

  • 主题发起人 主题发起人 wenxj
  • 开始时间 开始时间
W

wenxj

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠有中间件Tuxedo 的资料吗?请email一份给我,谢谢!
 
Tuxedo 是么东东?
 
中间件Tuxedo 和cics的资料太多了
 
我有,但是在纸上
你到国外的站点上去看看
 
TUXEDO是什么呀
是类似MTS一样的东东还是...
请高手作答
 
附加功能 将问题提前
 
BEA的中间件
 
多人接受答案了。
 
对于TUXEDO来说,应用是非常灵活的,它的数据传输方式和SOCKET,
DCOM一样,传送字符串,但是怎样把包含业务逻辑的数据正确的传
输并接收这需要你做个函数定义传输规则,一个好的规则使你事半
功倍。下面是我的一个VIEW数据类型服务器端添加数据的例子,
先看看吧。
//////////////////////////
//PersonInfo_View.h
//////////////////////////
struct PersonInfo_View {
char Name[20];
char Address[30];
char Tel[16];
char Email[16];
};
//////////////////////////
// Services PersonInfo
//////////////////////////
#include <stdio.h>
#include "atmi.h"
#include "PersonInfo_View.h"
#include <ctype.h>
EXEC SQL begin
DECLARE SECTION;
char cName[20];
char cAddress[30];
char cTel[16];
char cEmail[16];
int nPersonID;
struct PersonInfo_View *PersonInfoData;
char ConnectDatabase[30];
EXEC SQL END DECLARE SECTION;
EXEC SQL INCLUDE SQLCA.H;
void AddPersonInfo(TPSVCINFO *rqst)
{
PersonInfoData = (struct PersonInfo_View *)rqst->data;
strcpy(cName, PersonInfoData->Name);
strcpy(cAddress, PersonInfoData->Address);
strcpy(cTel, PersonInfoData->Tel);
strcpy(cEmail, PersonInfoData->Email);
fprintf(stderr,"PersonInfoData->Name:%s",cName);
fprintf(stderr,"PersonInfoData->Address:%s",cAddress);
fprintf(stderr,"PersonInfoData->Tel:%s",cTel);
fprintf(stderr,"PersonInfoData->Email:%s",cEmail);
strcat(ConnectDatabase,"tuser/tuser@armydata");
EXEC SQL CONNECT: ConnectDatabase;
EXEC SQL
SELECT MAX(ID) INTO :nPersonID FROM PersonInfo;
if(nPersonID==0)
{
nPersonID = 0;
}
else
{
nPersonID = nPersonID + 1;
}
EXEC SQL
INSERT INTO PersonInfo VALUES (:nPersonID,:cName,:cAddress,:cTel,:cEmail);
if (sqlca.sqlcode<0)
{
tpreturn(TPFAIL,0,NULL,0,0);
}
else
{
tpreturn(TPSUCCESS,0,NULL,0,0);
}
}
//////////////////////////
//client call function
//////////////////////////
int __stdcall AddPersonInfo(char *Name,char *Address,char *Tel, char *Email)
{
long len;
struct PersonInfo_View PersonInfo;
struct PersonInfo_View *sendbuf;

strcpy(PersonInfo.Name,Name);
strcpy(PersonInfo.Address,Address);
strcpy(PersonInfo.Tel,Tel);
strcpy(PersonInfo.Email,Email);
sendbuf = (struct PersonInfo_View *)tpalloc("VIEW", "PersonInfo_View", sizeof(struct PersonInfo_View));
sendbuf = &amp;PersonInfo;
if(sendbuf == (struct PersonInfo_View *)NULL )
{
return -1;
}
if (tpcall("AddPersonInfo", (char *)sendbuf, 0, (char **)&amp;sendbuf, &amp;len, 0 ) == -1 )
{
return -2;
}
else
{
return 0;
}
};
 
后退
顶部