求Tuxedo.pas, 小弟急用 ( 积分: 50 )

呵呵,恭喜恭喜 :)
需要在配置文件中增加对 Queue的处理
 
那如果没有增加Queue的处理呢?如果同时有多个客户端向服务器端发包,那么一些数据包会丢失吗?
 
Tuxedo会按默认处理,只是没有优化
 
噢,吓我一跳,我还以为tuxedo不会处理呢,呵呵
还有,对事务处理那我还不太明白:
我想做服务器端程序的时候,把数据库的处理做成DLL(用delphi编写),然后用C写服务器端service的时候直接调用该DLL.
请问,这样是不是事务处理(tpcommit,tpabort...)就不起作用了?
 
1、不明白你在服务端为什么要用Delphi来处理
2、事务不能嵌套
 
呵呵,因为用delphi用的比较熟,所以想省点事,直接用delphi来操作数据库。
那大家一般怎么在服务器端操作数据库呢?是不是就按《Microsoft SQL 2000 TMS配置说明》中说的那样做的?
 
我要操作的数据库是MS SQL和DB2
 
如果你用delphi来操作数据库,就不需要花几十万来买Tuxedo了。
Tuxedo可以帮你来管理异构数据库之间的事务
 
呵呵,见笑见笑,我还是先看看《Microsoft SQL 2000 TMS配置说明》,再来请教数据库的问题吧.
我有段代码如下:
procedure TForm1.Button4Click(Sender: TObject);
var
TestStr:string;
Chaine:pChar;
TmpLg:Longint;
Ch:string;
pCh:pChar;
ret:integer;
begin
ch:='STRING';
try
pch:=stralloc(80);
strpcopy(pch,ch);
chaine:=tpalloc(pch,nil,80);
if chaine=nil then begin
ShowMessage('分配缓存出错');
tpfree(chaine);
tpterm;
exit;
end;
TestStr:=Inputbox('tuxedo-TOUPPER测试','请输入要转换的字符串: ','tuxedo');
strpcopy(chaine,TestStr);
ch:='TOUPPER';
strpcopy(pch,ch);
ret:=tpCall(pCh,Chaine,0,@chaine,@TmpLg,0);
if ret<>-1 then begin
ShowMessage('调用TOUPPER服务成功,返回结果为:' + #13 + StrPas(chaine));
tpfree(chaine);
end
else begin
ShowMessage('调用TOUPPER服务失败');
tpfree(chaine);
end;
except
tpfree(chaine);
end;
end;
里面有一点不明白,请问xianguo,
这段程序中客户端和服务器传输的方式是打包成STRING了还是FML了?
谢谢
 
chaine:=tpalloc(pch,nil,80); //你的pch = 'STRING'
所以为STRING型缓冲区

我给一个delphi客户端的例子给你
www.hitekersoft.com/download/Tuxedo-Delphi.rar
 
呵呵,原来如此.
唉,我还是先看看书,等会再来请教吧.
谢谢.
 
与数据库(MS SQL和DB2)连接是不是一般都是通过XA接口?
 
我用Oracle,通过XA连接。MS SQL和DB2怎么做就不清楚了
 
ORACLE用xaswitch.obj文件吗?
那个xaswitch.obj文件我怎么找不到啊(我在.NET安装盘里找的)?
 
配置RM (D:/bea/tuxedo8.1/udataobj/RM),其中Oracle的配置为
Oracle_XA;xaosw;%TUXDIR%/lib/libsql.lib d:/oracle/ora90/rdbms/xa/ORAXA9.LIB d:/oracle/ora90/precomp/lib/orasql9.lib
 
[:)]谢谢xianguo,
不过要连MS SQL得要xaswitch.obj这个文件,我按网上说的路径去找,确实找不到,
唉,见鬼.
不过,谢谢xianguo,呵呵
 
xianguo,小弟有个问题一直没想明白:
tuxedo是怎么用tpbegin,tpcommit,tprollback控制事务的呢?
我总觉得begin,commit,rollback这些事应该是数据库(oracle,MS Sql,db2等)自己的事啊.
 
Tuxedo的事务可以管理到异构数据库,它内部怎么处理的我就不清楚了。
如果只有一个数据库,你可以自己来管理事务(除了/Q),而不用tpbegin、tpcommit等等语句。
 
在用C写服务端程序时有几个函数不太明白:
EXEC SQL INCLUDE sqlca;
EXEC SQL BEGIN DECLARE SECTION;
EXEC SQL END DECLARE SECTION;
if (SQLCODE == 0) {
userlog(&quot;Connection to SQL Server established/n&quot;);
}
EXEC SQL/SQLCODE/userlog这几个是哪个里面的函数?
 
EXEC SQL是Pro*C(Oracle)的语法
SQLCODE是一个全局变量,发出一个SQL语句后,通过它判断返回值
userlog是Tuxedo封装的写日志的函数
 

Similar threads

回复
0
查看
903
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
顶部