近来一直在和某电信的系统做对接开发,需要从对方系统(tuxedo)中查询数据后进行显示,本来是个挺简单的事情,无奈tuxedo这个东西以前真是没听说过,网上能用的资料也不多,真是苦了我这段时间,还好已经将问题解决了。
下面叙述关于在tuxedo查询信息的开发步骤
1、下载tuxedo安装包,这个东西以前是bea的,但现在已经是oracle的了,所以下载当然就要到oracle的官网下载了。由于是用C#进行开发,所以,下载的时候需要下载对应的vs版本,tuxedo的版本和位数也很重要哦,经过多次安装发下32位和64位下的libwscdnet.dll 这个东西是有区别的,在现在前还的需要和对方的tuxedo工作人员沟通好,需要下载多少位的
2、安装tuxedo,安装就比较简单了,下一步下一步就OK了,不过安装客户端,最好是全部安装啦,这样会省去配置环境变量等一系列的事情。经过多次的安装测试。当仅仅只是安装.net客户端时,环境变量是不会自动配置的(这是一个坑)。
3、配置环境变量,话说安装完成后还是要老老实实的检查环境变量
Lib C:\OracleTuxedo\TuxedoClient\tuxedo11gR1_VS2010\bin
INCLUDE C:\OracleTuxedo\TuxedoClient\tuxedo11gR1_VS2010\include
path C:\OracleTuxedo\TuxedoClient\tuxedo11gR1_VS2010\bin;
C:\OracleTuxedo\TuxedoClient\tuxedo11gR1_VS2010\jre\bin\server;
C:\OracleTuxedo\TuxedoClient\tuxedo11gR1_VS2010\jre\bin
TUXDIR C:\OracleTuxedo\TuxedoClient\tuxedo11gR1_VS2010
WSNADDR //127.0.0.1:9082
============================================
(注:配置好环境变量后,请一定一定要重启机器,经多次试验只有重启机器后,相关环境变量才能生效)
============================================
5、附上一段调用代码
Utils.tuxputenv("WSNADDR=//127.0.0.1:9082");
TypedTPINIT tpInfo = new TypedTPINIT();
AppContext app = AppContext.tpinit(tpInfo);
TypedFML32 fmlSendBuffer = new TypedFML32(1024);
fmlSendBuffer.Fappend(CGET_OWE_ACCT.FML_GET_OWE_ACCT.AREA_CODE, areaCode, 9); //相关传入参数
fmlSendBuffer.Fappend(CGET_OWE_ACCT.FML_GET_OWE_ACCT.ACC_NBR, accNBR, 20);
fmlSendBuffer.Fappend(CGET_OWE_ACCT.FML_GET_OWE_ACCT.ACCT_NBR_97, accNBR97, 9);
TypedBuffer fmlReceiveBuffer = new TypedFML32(2048); //返回的数据存储区域
//开始事务
//Transaction trans = Transaction.tpbegin(app, 1000);
app.tpcall(ServiceName, fmlSendBuffer, ref fmlReceiveBuffer, 0);//此处为调用 ,这个地方要主要,当参数参数不对时,会出现一个应用程序异常。关注参数即可啦
6、解析 返回数据存储区域中的内容即完成查询了。