我在hpunix进行了Tuxedo11 Full的安装,并成功运行了Hello World的例子,C Client和Java Jolt Client两种方式都跑通了,说明Tuxedo安装和配置没有问题。
但是我正在做的项目,需要用FML方式传递参数,Client为Java,Server为C,本人是Java程序员,对C的了解仅限于读书时从老师那里学来的水平,工作中从来没用过。我在hpunix服务器上依次做了以下操作:
mkfldhdr my.flds
buildserver -o PASSFML -f tryonfml.c -s PASSFML
tmloadcf -y ubbsimple
编辑TMUSREVT.ENV
编辑services.txt
编辑jrlyconfig
chmod 777 *
tmboot -y
jrly -f jrlyconfig
另开一个窗口,运行java bea.jolt.admin.jbld //16.157.128.155:4445 services.txt
用Jolt Repository Editor调用服务,进行Test的时候,抛了一个异常“bea.jolt.ServiceException:Data conversion failed;check log file”。
看了ULOG.090911里面的信息,详细错误描述是“145308.ocsrb-1!JSH.16908.1.-2: Fldid(INPUTSTRING) failed for PASSFML: LIBFML_CAT:11: ERROR: Cannot find or open field table. Maybe FIELDTBLS is not set properly.”
用“Cannot find or open field table”在fml.pdf文档里面找了一下,在文档最后“Table A-1 FML Error Codes and Messages”里面有这个错误,但是没有说明如何解决。
我觉得是TMUSREVT.ENV文件里面的FIELDTBLS变量没有被Load进Tuxedo。
另外,发现在tyboot的时候,LOG里面有个告警:
142232.ocsrb-1!TMUSREVT.16905.1.0: 09-09-2011: Tuxedo Version 11.1.1.2.0, 64-bit
142232.ocsrb-1!TMUSREVT.16905.1.0: LIBTUX_CAT:262: INFO: Standard main starting
142232.ocsrb-1!TMUSREVT.16905.1.0: CMDTUX_CAT:3012: WARN: Cannot open event control file /tuxedo11/tryonfml/tmusrevt.dat
不知道是不是这个Warn导致了FIELDTBLS变量没有被Load进去。
有哪位知道“FFTOPEN 11 Cannot find or open field table”异常怎么解决吗?
ubbsimple:
------------------------------------------------------------------
*RESOURCES
IPCKEY 79111
MASTER "simplefml"
UID 132
GID 113
PERM 0600
MAXACCESSERS 50
MAXACLGROUPS 16384
MAXGTT 100
DOMAINID "PASSFML"
MAXGROUPS 100
MAXNETGROUPS 8
MAXMACHINES 256
MAXQUEUES 50
MAXDRT 0
MAXRFT 0
MAXRTDATA 4
MAXSPDATA 33924
MAXSERVERS 50
MAXSERVICES 100
MAXCONV 10
MODEL SHM
LDBAL Y
CMTRET COMPLETE
MAXBUFTYPE 16
MAXBUFSTYPE 32
SCANUNIT 10
SANITYSCAN 12
DBBLWAIT 2
BBLQUERY 30
BLOCKTIME 6
NOTIFY DIPIN
SYSTEM_ACCESS FASTPATH
MAXINTERFACES 150
MAXOBJECTS 1000
SIGNATURE_AHEAD 3600
SIGNATURE_BEHIND 604800
USIGNAL SIGUSR2
*MACHINES
DEFAULT:
"ocsrb-1" LMID="simplefml"
TUXCONFIG="/tuxedo11/tryonfml/tuxconfig"
TUXDIR="/tuxedo11/oracle_tuxedo11_home/tuxedo11gR1"
APPDIR="/tuxedo11/tryonfml"
TLOGNAME="TLOG"
TLOGSIZE=100
CMPLIMIT="MAXLONG,MAXLONG"
NETLOAD=0
SPINCOUNT=0
MAXACLCACHE=100
MAXOBJECTS=1000
SICACHEENTRIESMAX="500"
MAXWSCLIENTS=4
*GROUPS
GROUP1
LMID=simplefml GRPNO=1 OPENINFO=NONE
JSLGROUP LMID=simplefml GRPNO=2 OPENINFO=NONE
JSRGROUP LMID=simplefml GRPNO=3 OPENINFO=NONE
TMUGROUP LMID=simplefml GRPNO=4 OPENINFO=NONE
TMUSREVTGROUP LMID=simplefml GRPNO=5 OPENINFO=NONE
*SERVERS
DEFAULT:
CLOPT="-A"
PASSFML SRVGRP=GROUP1 SRVID=1
JSL SRVGRP=JSLGROUP SRVID=2 CLOPT="-A -- -n //16.157.128.155:7110 -m3 -M4 -d /dev/tcp"
JREPSVR SRVGRP=JSRGROUP SRVID=3 CLOPT="-A -- -W -P /tuxedo11/tryonfml/jrepository"
JRAD SRVGRP=JSLGROUP SRVID=4 CLOPT=" -A -- -l //16.157.128.155:8110 -c //16.157.128.155:7110 "
TMUSREVT SRVGRP=TMUSREVTGROUP SRVID=5 GRACE=3600 ENVFILE="/tuxedo11/tryonfml/TMUSREVT.ENV" CLOPT="-A -- -f /tuxedo11/tryonfml/tmusrevt.dat" SEQUENCE=11
*SERVICES
PASSFML
LOAD=50 PRIO=50
BUFTYPE="ALL"
TRANTIME=30
AUTOTRAN=N
AFFINITYSCOPE=SERVER
AFFINITYSTRICT=MANDATORY
jrepository
-------------------------------------------------------------------------------
#!JOLT1.0
add SVC/.GETALL:vs=1:ex=0:bt=FML32:bp:pn=PATTERN:pt=string:pf=167772164:pa=wr:ep:bp:pn=NRECS:pt=integer:pf=33554435:pa=rd:ep:bp:\
pn=REPVALUE:pt=string:pf=167772162:po=0:pa=rd:ep:
add SVC/.GETKEYS:vs=1:ex=1:bt=FML32:bp:pn=PATTERN:pt=string:pf=167772164:pa=wr:ep:bp:pn=NRECS:pt=integer:pf=33554435:pa=rd:ep:\
bp:pn=REPNAME:pt=string:pf=167772161:po=0:pa=rd:ep:
add SVC/.ADDREC:vs=1:ex=0:bt=FML32:bp:pn=REPVALUE:pt=string:pf=167772162:pa=wr:ep:bp:pn=STATLIN:pt=string:pf=167772163:pa=rd:ep:
add SVC/TRANSFER:vs=1:ex=1:bt=FML:bp:pn=ACCOUNT_ID:pt=integer:pf=33554436:po=2:pa=wr:ep:bp:pn=SAMOUNT:pt=string:pf=167772166:\
pa=wr:ep:bp:pn=SBALANCE:pt=string:pf=167772164:po=2:pa=rd:ep:bp:pn=STATLIN:pt=string:pf=167772163:pa=rd:ep:bp:pn=FORMNAM:\
pt=string:pf=167772165:pa=rd:ep:
add PKG/SIMPSERV:TOUPPER:
add SVC/WITHDRAWAL:vs=1:ex=1:bt=FML:bp:pn=ACCOUNT_ID:pt=integer:pf=33554436:pa=wr:ep:bp:pn=SAMOUNT:pt=string:pf=167772166:pa=wr:\
ep:bp:pn=SBALANCE:pt=string:pf=167772164:pa=rd:ep:bp:pn=STATLIN:pt=string:pf=167772163:pa=rd:ep:bp:pn=FORMNAM:pt=string:\
pf=167772165:pa=rd:ep:
add SVC/.GARBAGECOLLECT:vs=1:ex=0:bt=FML32:bp:pn=STATLIN:pt=string:pf=167772163:pa=rd:ep:
add SVC/TOUPPER:vs=1:ex=1:bt=STRING:bp:pn=STRING:pt=string:pf=167772161:pa=rw:ep:
add PKG/PASSFML:PASSFML:
add SVC/PASSFML:bt=FML:ex=1:BT=FML:vs=7:bp:pf=167772161:po=1:pa=wr:pn=INPUTSTRING:pt=string:ep:bp:pf=33554434:po=1:pa=wr:\
pn=INPUTINT:pt=integer:ep:bp:pf=100663300:po=1:pa=wr:pn=INPUTFLOAT:pt=float:ep:bp:pf=167772166:po=1:pa=rd:pn=OUTPUTSTRING:\
pt=string:ep:bp:pf=33554439:po=1:pa=rd:pn=OUTPUTINT:pt=integer:ep:bp:pf=100663304:po=1:pa=rd:pn=OUTPUTFLOAT:pt=float:ep:
add SVC/.DELREC:vs=1:ex=0:bt=FML32:bp:pn=REPNAME:pt=string:pf=167772161:pa=wr:ep:bp:pn=STATLIN:pt=string:pf=167772163:pa=rd:ep:
add SVC/.FLUSHCACHE:vs=1:ex=0:bt=FML32:bp:pn=REPNAME:pt=string:pf=167772161:po=200:pa=wr:ep:
add SVC/.NUMRECS:vs=1:ex=0:bt=FML32:bp:pn=NRECS:pt=integer:pf=33554435:pa=rd:ep:bp:pn=STATLIN:pt=string:pf=167772163:pa=rd:ep:
add PKG/BANKAPP:INQUIRY:DEPOSIT:WITHDRAWAL:TRANSFER:
add SVC/INQUIRY:vs=1:ex=1:bt=FML:bp:pn=ACCOUNT_ID:pt=integer:pf=33554436:pa=wr:ep:bp:pn=SBALANCE:pt=string:pf=167772164:pa=rd:\
ep:bp:pn=STATLIN:pt=string:pf=167772163:pa=rd:ep:bp:pn=FORMNAM:pt=string:pf=167772165:pa=rd:ep:
add SVC/DEPOSIT:vs=1:ex=1:bt=FML:bp:pn=ACCOUNT_ID:pt=integer:pf=33554436:pa=wr:ep:bp:pn=SAMOUNT:pt=string:pf=167772166:pa=wr:ep:\
bp:pn=SBALANCE:pt=string:pf=167772164:pa=rd:ep:bp:pn=BALANCE:pt=float:pf=100663303:pa=rd:ep:bp:pn=STATLIN:pt=string:\
pf=167772163:pa=rd:ep:bp:pn=FORMNAM:pt=string:pf=167772165:pa=rd:ep:
add SVC/.GETSVC:vs=1:ex=0:bt=FML32:bp:pn=REPNAME:pt=string:pf=167772161:pa=wr:ep:bp:pn=REPVALUE:pt=string:pf=167772162:pa=rd:ep:\
bp:pn=STATLIN:pt=string:pf=167772163:pa=rd:ep:
add SVC/.GETREC:vs=1:ex=0:bt=FML32:bp:pn=REPNAME:pt=string:pf=167772161:pa=wr:ep:bp:pn=REPVALUE:pt=string:pf=167772162:pa=rd:ep:\
bp:pn=STATLIN:pt=string:pf=167772163:pa=rd:ep:
jrlyconfig
-------------------------------------------------------------
LOGDIR=/tuxedo11/tryonfml
ACCESS_LOG=access_log
ERROR_LOG=errorlog
LISTEN=16.157.128.155:4445
CONNECT=16.157.128.155:8110
--转自