我用.net connector 实现了rfc服务,供SAP调用。现在出现一个问题,sap系统调用外部的rfc函数后,外部的服务好像就被关闭了,再到SM59测试链接就说没有注册。如果我再次启动外部RFC服务,SM59可以测试通过,不过一调用rfc函数后,就不行了。我打开了RFC跟踪。日志内容在最后。
不过同样程序,在测试我的系统服务启动后,不会出现上面说的现象。(我们正式系统是做了负载平衡。)
我检查过测试和生产系统 关于gw的参数这是都一样的默认设置。
在请各位高人指点一二!!!谢谢!!
Trace file opened at 20100104 105914 中国标准时间, SAP-REL 710,0,0 RFC-VER nU 3 880476 MT-SL
>>>> Listen/WaitForRequest (counter = 1)
>>>> [1] < accepted > : REG <ac: 1> L >>> LISTEN (87534958)
000000 | 01010008 01020101 08040000 01010127 |...............'|
。。。。。。。 |
000b40 | 20202020 20303030 30303030 31202020 | 00000001 |
000b50 | 20202020 20202020 20202020 20202020 | |
000b60 | 20202020 20202020 20202020 20312003 | 1 .|
000b70 | 04FFFF00 00FFFF00 00000000 00000000 |................|
<* RfcWaitForRequest [1] : returns 0:RFC_OK
>>> RfcDispatch [1] ...
Received RFCHEADER [1]: 01/BIG/IEEE/SPACE/8400
UUID: ab_rfccheck_uuid take uuid over {4B415A81-5A24-5FC2-E100-0000C0A8C914}
>>>> [1] Dispatch call to:ARFC_DEST_SHIP
>>> RfcGetData [1] ...
*> RfcGetData
handle = 1
parameter[0].name = COMMENT
parameter[0].nlen = 7
parameter[0].addr = 0115F808
parameter[0].leng = 72
parameter[0].type = RFCTYPE_CHAR
tables[0].name = DATA
tables[0].nlen = 4
tables[0].leng = 1853
tables[0].type = 00000021
>TS> Mon Jan 04 10:59:15 2010
tables[0].itmode = RFC_ITMODE_BYREFERENCE
tables[0].newitab = 0
tables[1].name = STATE
tables[1].nlen = 5
tables[1].leng = 466
tables[1].type = RFCTYPE_CHAR
tables[1].itmode = RFC_ITMODE_BYREFERENCE
tables[1].newitab = 0
Data conversion On
UUID: ab_rfccheck_uuid compare uuid's {4B415A81-5A24-5FC2-E100-0000C0A8C914}
Receiving P:COMMENT
***Discarding unrequested P:SENDER_ID
Receiving T:DATA
Receiving T:STATE
*> RfcGetDataEnd
handle = 1
parameter[0].name = COMMENT
parameter[0].nlen = 7
parameter[0].addr = 0115F808
parameter[0].leng = 72
parameter[0].type = RFCTYPE_CHAR
tables[0].name = DATA
tables[0].nlen = 4
tables[0].leng = 1853
tables[0].type = 00000021
tables[0].itmode = RFC_ITMODE_BYREFERENCE
tables[0].newitab = 1
tables[1].name = STATE
tables[1].nlen = 5
tables[1].leng = 466
tables[1].type = RFCTYPE_CHAR
tables[1].itmode = RFC_ITMODE_BYREFERENCE
tables[1].newitab = 1
Data conversion On
<* RfcGetData [1] : returns 0:RFC_OK
>>>> [2] < accepted > : PBK <ac: 2> L >>> ACCEPT
>>> RfcDispatch [2] ...
>>>> [2] < accepted > : PBK <ac: 3> L >>> READ
000000 | 01010008 01020101 08040000 01010103 |................|
000010 | 00040000 02030103 0007000F 3139322E |............192.|
000020 | 3136382E 3230312E 31302000 07001100 |168.201.10 .....|
。。。。。
0006c0 | 00000000 00000000 00000000 00000000 |................|
0006d0 | 00000000 00000000 00000000 00000000 |................|
0006e0 | 00000000 00000000 00000000 00000000 |................|
0006f0 | 00000000 00000000 00000000 00000000 |................|
Received RFCHEADER [2]: 01/BIG/IEEE/SPACE/8400
>>>> [2] Dispatch call to:ZPM_PMORDER_SYNCHRON_INTERFAC3 via USER_GLOBAL_SERVER
>>> RfcGetNameEx [2] ...
<* RfcGetNameEx [2] : returns 0:RFC_OK
>>> RfcRaiseErrorMessage [2] ...
>>>> [2] < accepted > : PBK <ac: 4> L AIPUB >>> FLUSH (READ)
Send RFCHEADER: 01/LIT/IEEE/SPACE/8400
Send UNICODE-RFCHEADER: cp:8400/ce:IGNORE/et:5/cs:1/rc:0x00000023
Transport RFC Enqueue-Key 4B4046113FBA349DE1000000C0A8C90A
>>> RfcRaiseTables [2] ...
*> RfcRaise
handle = 2
exception = FUNCTION NOT IMPLEMENTED
Error in program 'Dummy': ======> FUNCTION NOT IMPLEMENTED raised by external server
<* RfcRaiseTables [2] : returns 0:RFC_OK
<* RfcRaiseErrorMessage [2] : returns 0:RFC_OK
Error in program 'Dummy': <* RfcDispatch [2] : returns 2:RFC_EXCEPTION
*> rfcClose called by RFC-Library in file: abrfcpla.c, line: 492
handle = 2
>>>> [2] < accepted > : PBK <ac: 5> L AIPUB >>> CLOSE abrfc.c 611
>>>> [2] < accepted > : PBK <ac: 6> L AIPUB >>> FREE abrfc.c 613
Trace file opened at 20100104 105915 中国标准时间, SAP-REL 710,0,0 RFC-VER nU 3 880476 MT-SL
<* rfcClose
>>>> rfcAbort called by RFC Library in file: rfc0.c, line: 2047
handle = 1
text = FUNCTION NOT IMPLEMENTED raised by external server
>>>> [1] < accepted > : REG <ac: 7> L CIPUB >>> FLUSH (READ) (87534958)
-{4B415A81-5A24-5FC2-E100-0000C0A8C914}
Send RFCHEADER: 01/LIT/IEEE/SPACE/8400
Send UNICODE-RFCHEADER: cp:8400/ce:IGNORE/et:5/cs:1/rc:0x00000023
Transport RFC Enqueue-Key 4B40E12CD19C69EAE1000000C0A8C90A
UUID: send_rfcuuid {4B415A81-5A24-5FC2-E100-0000C0A8C914}
>>>> [1] < accepted > : REG <ac: 8> L CIPUB >>> WRITE (87534958)
-{4B415A81-5A24-5FC2-E100-0000C0A8C914}
000000 | 01010008 01010101 08040000 01010103 |................|
000010 | 00040000 060B0103 0106000B 08040000 |................|
000020 | 01050100 00002301 06000700 0F31302E |......#......10.|
.......
000100 | 00000000 00000000 00000000 00000000 |................|
000110 | 00000000 00000000 00000000 00000000 |................|
000120 | 00000000 00000000 00000000 00000000 |................|
000130 | 00000000 00000006 01250020 34423430 |.........%. 4B40|
000140 | 45313243 44313943 36394541 45313030 |E12CD19C69EAE100|
000150 | 30303030 43304138 43393041 01250514 |0000C0A8C90A.%..|
000160 | 00104B41 5A815A24 5FC2E100 0000C0A8 |..KAZ.Z$_.......|
000170 | C9140514 01300005 53424D49 53013004 |.....0..SBMIS.0.|
000180 | 03001252 46435F45 58544552 4E414C5F |...RFC_EXTERNAL_|
000190 | 41424F52 54040304 02003246 554E4354 |ABORT.....2FUNCT|
0001a0 | 494F4E20 4E4F5420 494D504C 454D454E |ION NOT IMPLEMEN|
0001b0 | 54454420 72616973 65642062 79206578 |TED raised by ex|
0001c0 | 7465726E 616C2073 65727665 720402FF |ternal server...|
0001d0 | FF0000FF FF000000 00000000 00000000 |................|
>>>> [1] < accepted > : REG <ac: 9> L CIPUB >>> FLUSH(WRITE) (87534958)
-{4B415A81-5A24-5FC2-E100-0000C0A8C914}
>>>> [1] < accepted > : REG <ac: 10> L CIPUB >>> FLUSH(WRITE) (87534958)
-{4B415A81-5A24-5FC2-E100-0000C0A8C914}
>>>> [1] < accepted > : REG <ac: 11> L CIPUB >>> ABORT abrfc.c 749 (87534958)
-{4B415A81-5A24-5FC2-E100-0000C0A8C914}
>>>> [1] < accepted > : REG <ac: 12> L CIPUB >>> CLOSE abrfcio.c 3362 (87534958)
-{4B415A81-5A24-5FC2-E100-0000C0A8C914}
>>>> [1] < accepted > : REG <ac: 13> L CIPUB >>> FREE abrfcio.c 3363 (87534958)
-{4B415A81-5A24-5FC2-E100-0000C0A8C914}
(在测试系统没有出现这样的跟踪日志)
Trace file opened at 20100104 105916 中国标准时间, SAP-REL 710,0,0 RFC-VER nU 3 880476 MT-SL
<<<< RfcAbort
<* rfcAbort
<* RfcDispatch [1] : returns 6:RFC_CLOSED
*> RfcClose called by external program ...
handle = 1
*> rfcClose called by RFC-Library in file: abrfc.c, line: 558
handle = 1
Trace file opened at 20100104 105916 中国标准时间, SAP-REL 710,0,0 RFC-VER nU 3 880476 MT-SL
<* rfcClose
>* RfcClose