Re: [Quickfix-developers] Problem inSendingandRecievingmessagesusingQuickFIX
Brought to you by:
orenmnero
From: <OM...@th...> - 2002-08-12 14:39:06
|
Pramod, Very helpful. It looks like SunGuard is not generating this message qu= ite correctly. If you look at the logon they are sending, it contains a repeating group as such: 384=3D92=0135=3DA=01385=3DR=0135=3DA=01385=3DS=0135=3D0=01385=3DR=0135=3D= 0=01385=3DS=0135=3D1=01385=3DR=01... Field 384 is the begining of the repeating group saying that there are = 92 repeating instances. The message than goes on to list the message type= s the application supports and their directions. The problem is that the= y are using field 35 (MsgType) to convey the supported message types wher= as the FIX spec requires that field 372 (RefMsgType) be used. QuickFIX is= therefore rejecting the message as invalid. You might want to write to= sunguard and let them know that in future versions they may want to sta= rt using field 372 in accordance with the spec (or you can probably just forward this to them) In the meantime, QuickFIX can support receiving these messages. All yo= u need to do is modify the XML data dictionary that QuickFIX uses for SunGuard connections to reflect their proprietary variation of this message. In FIX42.xml you can simply change the following section: <group number=3D"384" name=3D"NoMsgTypes"> <field number=3D"372" name=3D"RefMsgType" required=3D"N" /> <field number=3D"385" name=3D"MsgDirection" required=3D"N" /> </group> to look like this: <group number=3D"384" name=3D"NoMsgTypes"> <field number=3D"35" name=3D"MsgType" required=3D"N" /> <field number=3D"385" name=3D"MsgDirection" required=3D"N" /> </group> I hope this resolves your QuickFIX<->SunGuard connectivity issues while= using long logon messages. Give my best to the folks at SunGuard. --oren |---------+-----------------------------------> | | "Pramod.S.Warrier" | | | @THOUGHTWORKS_COM | | | Sent by: | | | pramod@THOUGHTWORKS_COM | | | | | | | | | 08/12/2002 09:14 AM | | | | |---------+-----------------------------------> >--------------------------------------------------------------------= ----------------------------------------------------------| | = | | To: OM...@th... = | | cc: PJS...@Th..., quickfix-developers@lis= ts.sourceforge.net, | | qui...@li... = | | Subject: Re: [Quickfix-developers] Problem inSendingandReci= evingmessagesusingQuickFIX | >--------------------------------------------------------------------= ----------------------------------------------------------| Hi, I have attached the log file that was generated by the Sun= Gard Acceptor that I am using. In the log file, the logon message sent by them contains the list of message types that are accepted by the SunGard Engine. Thanks and Regards, Pramod. OM...@th... wrote: > > Ah ok. There is no reason that I can think of that QuickFIX should h= ave a > problem with those messages, but adding an explicit test case will te= ll us > for sure. Is it possible for you to send us the message that Sunguar= d is > generating for the long logon? If so we can plug that message straigh= t into > our test suite and make sure that we are supporting it properly. > > --oren >2002-08-12 13:20:22.654 -0- ACCEPTOR_QFTARGET> SUNGARD FIX Engine vers= ion 4.5 - SunGard 2002 Copyright (c) 2002-08-12 13:20:22.654 -0- ACCEPTOR_QFTARGET> Expires on 2002-12-31 2002-08-12 13:20:22.724 -0- ACCEPTOR_QFTARGET> # The setup parameters f= or this session : 2002-08-12 13:20:22.724 -0- ACCEPTOR_QFTARGET> # --------------------------------------- 2002-08-12 13:20:22.734 -0- ACCEPTOR_QFTARGET> # MODE =3D STORE_AND_FOR= WARD 2002-08-12 13:20:22.734 -0- ACCEPTOR_QFTARGET> # SESSION_ID =3D ACCEPTOR_QFTARGET 2002-08-12 13:20:22.734 -0- ACCEPTOR_QFTARGET> # SENDER_COMP_ID =3D ACC= EPTOR 2002-08-12 13:20:22.734 -0- ACCEPTOR_QFTARGET> # TARGET_COMP_ID =3D QFT= ARGET 2002-08-12 13:20:22.734 -0- ACCEPTOR_QFTARGET> # FIX_VERSION =3D FIX.4.= 2 2002-08-12 13:20:22.734 -0- ACCEPTOR_QFTARGET> # LOG_FILE_LEVEL =3D 3 2002-08-12 13:20:22.734 -0- ACCEPTOR_QFTARGET> # LOG_AUTO_FLUSH =3D 1 2002-08-12 13:20:22.744 -0- ACCEPTOR_QFTARGET> # PTP_LATENCY =3D 5 2002-08-12 13:20:22.744 -0- ACCEPTOR_QFTARGET> # PTP_TIME_OUT =3D 50 2002-08-12 13:20:22.744 -0- ACCEPTOR_QFTARGET> # PTP_CONNECTION =3D TCP= Server 2002-08-12 13:20:22.744 -0- ACCEPTOR_QFTARGET> # TCP_PORT =3D 9000 2002-08-12 13:20:22.744 -0- ACCEPTOR_QFTARGET> # ON_UNKNOWN_REJECT =3D = CLOSE 2002-08-12 13:20:22.754 -0- ACCEPTOR_QFTARGET> # STORAGE_TYPE =3D FILE 2002-08-12 13:20:22.754 -0- ACCEPTOR_QFTARGET> # RMI_HOST =3D 127.0.0.1= 2002-08-12 13:20:22.754 -0- ACCEPTOR_QFTARGET> # RMI_PORT =3D 9999 2002-08-12 13:20:22.754 -0- ACCEPTOR_QFTARGET> # OPERATOR_LOG_BUFFER =3D= 0 2002-08-12 13:20:22.754 -0- ACCEPTOR_QFTARGET> # OPERATOR_LOG_REFRESH =3D= 0 2002-08-12 13:20:22.754 -0- ACCEPTOR_QFTARGET> # MSG_TYPES_SUPPORT_SEND= =3D ALL 2002-08-12 13:20:22.754 -0- ACCEPTOR_QFTARGET> # MSG_TYPES_SUPPORT_RECE= IVE =3D ALL 2002-08-12 13:20:22.754 -0- ACCEPTOR_QFTARGET> # SET_CMD =3D set 2002-08-12 13:20:22.754 -0- ACCEPTOR_QFTARGET> # HEARTBT_INT =3D 60 2002-08-12 13:20:22.754 -0- ACCEPTOR_QFTARGET> # RESTORE_TIMEOUT =3D 10= 2002-08-12 13:20:22.764 -0- ACCEPTOR_QFTARGET> # POST_LOGIN_TIMEOUT =3D= 10 2002-08-12 13:20:22.764 -0- ACCEPTOR_QFTARGET> # IN_SYNC_TIMEOUT =3D 25= 2002-08-12 13:20:22.764 -0- ACCEPTOR_QFTARGET> # IN_EOD_TIMEOUT =3D 10 2002-08-12 13:20:22.774 -0- ACCEPTOR_QFTARGET> # ENCRYPT_METHOD =3D 0 2002-08-12 13:20:22.774 -0- ACCEPTOR_QFTARGET> # ENC_FILE_NAME =3D ACCEPTOR_QFTARGET_logon.txt 2002-08-12 13:20:22.774 -0- ACCEPTOR_QFTARGET> # IN_SEQ_NUM_NAME =3D ACCEPTOR_QFTARGET_IN 2002-08-12 13:20:22.774 -0- ACCEPTOR_QFTARGET> # OUT_SEQ_NUM_NAME =3D ACCEPTOR_QFTARGET_OUT 2002-08-12 13:20:22.784 -0- ACCEPTOR_QFTARGET> # WORK_DIRECTORY =3D . \Acceptor\ 2002-08-12 13:20:22.784 -0- ACCEPTOR_QFTARGET> # OUTGOING_DBS_NAME =3D ACCEPTOR_QFTARGET_OUT 2002-08-12 13:20:22.784 -0- ACCEPTOR_QFTARGET> # HEARTBT_LATENCY =3D 5 2002-08-12 13:20:22.794 -0- ACCEPTOR_QFTARGET> # LOGON_INITIATOR =3D tr= ue 2002-08-12 13:20:22.794 -0- ACCEPTOR_QFTARGET> # LAST_EOD_PERFORMED_NAM= E =3D ACCEPTOR_QFTARGET_LAST_EOD_PERFORMED 2002-08-12 13:20:22.794 -0- ACCEPTOR_QFTARGET> # IN_EOD_NAME =3D ACCEPTOR_QFTARGET_IN_EOD 2002-08-12 13:20:22.794 -0- ACCEPTOR_QFTARGET> # EOD_SENT_NAME =3D ACCEPTOR_QFTARGET_EOD_SENT 2002-08-12 13:20:22.794 -0- ACCEPTOR_QFTARGET> # EOD_RECEIVED_NAME =3D ACCEPTOR_QFTARGET_EOD_RECEIVED 2002-08-12 13:20:22.794 -0- ACCEPTOR_QFTARGET> # RECONNECT_COUNT =3D 3 2002-08-12 13:20:22.794 -0- ACCEPTOR_QFTARGET> # SUPPORT_ROLE =3D true 2002-08-12 13:20:22.794 -0- ACCEPTOR_QFTARGET> # End of the setup parameters for this session. 2002-08-12 13:20:22.794 -0- ACCEPTOR_QFTARGET> # --------------------------------------------- 2002-08-12 13:20:22.854 -0- ACCEPTOR_QFTARGET> FIX formatter created [FixFormatter version: FIX.4.2] 2002-08-12 13:20:22.944 -0- ACCEPTOR_QFTARGET> PTP connection created [TCP/IP-Server(null:9000)] 2002-08-12 13:20:23.115 -0- ACCEPTOR_QFTARGET> Encryption Factory creat= ed [No Encryption [0]] 2002-08-12 13:20:23.155 -0- ACCEPTOR_QFTARGET> Registering RMI service Operator/FIXSession/ACCEPTOR/QFTARGET ... 2002-08-12 13:20:23.155 -0- ACCEPTOR_QFTARGET> RMI service Operator/FIXSession/ACCEPTOR/QFTARGET is ready. 2002-08-12 13:20:23.175 -0- ACCEPTOR_QFTARGET> FIX Engine ACCEPTOR_QFTA= RGET created successfully. 2002-08-12 13:20:23.205 -1- ACCEPTOR_QFTARGET> Clear PTP: cleared PTP incoming queue, stopped outgoing queue dispatcher and cleared outgoing = PTP queue. 2002-08-12 13:20:23.205 -0- ACCEPTOR_QFTARGET> FIX Engine started... 2002-08-12 13:20:24.597 -2- ACCEPTOR_QFTARGET> APPL request to open connection. 2002-08-12 13:20:24.617 -1- ACCEPTOR_QFTARGET> Fix state changed from Closed to InConnect. Reason: API REQUEST [0] Open 2002-08-12 13:20:24.627 -1- ACCEPTOR_QFTARGET> Clear PTP: cleared PTP incoming queue, stopped outgoing queue dispatcher and cleared outgoing = PTP queue. 2002-08-12 13:20:24.627 -1- ACCEPTOR_QFTARGET> Trying to open PTP communication. 2002-08-12 13:20:24.647 -2- ACCEPTOR_QFTARGET> API state changed from: CLOSED to: CONNECTING 2002-08-12 13:20:24.897 -1- ACCEPTOR_QFTARGET> Fix state changed from InConnect to InLogin. Reason: PARTNER REQUEST [1] Opened PTP connectio= n successfully 2002-08-12 13:20:24.917 -3- ACCEPTOR_QFTARGET> Received message from PT= P with sequence number greater than expected. 8=3DFIX.4.2=019=3D67=0135=3D= A=0134=3D2=01 49=3DQFTARGET=0152=3D20020812-13:20:14=0156=3DACCEPTOR=0198=3D0=01108=3D= 60=0110=3D224=01 2002-08-12 13:20:24.967 -1- ACCEPTOR_QFTARGET> sent Login message in response to Login received. 35=3DA=0149=3DACCEPTOR=0156=3DQFTARGET=0134= =3D1=01 52=3D20020812-07:50:24.927=0198=3D0=01108=3D60=01384=3D92=0135=3DA=0138= 5=3DR=0135=3DA=01385=3DS=0135=3D0=01 385=3DR=0135=3D0=01385=3DS=0135=3D1=01385=3DR=0135=3D1=01385=3DS=0135=3D= 2=01385=3DR=0135=3D2=01385=3DS=0135=3D3=01385=3DR=01 35=3D3=01385=3DS=0135=3D4=01385=3DR=0135=3D4=01385=3DS=0135=3D5=01385=3D= R=0135=3D5=01385=3DS=0135=3D6=01385=3DS=0135=3D7=01 385=3DS=0135=3D8=01385=3DS=0135=3D9=01385=3DS=0135=3DB=01385=3DS=0135=3D= C=01385=3DS=0135=3DD=01385=3DS=0135=3DE=01385=3DS=01 35=3DF=01385=3DS=0135=3DG=01385=3DS=0135=3DH=01385=3DS=0135=3DJ=01385=3D= S=0135=3DK=01385=3DS=0135=3DL=01385=3DS=0135=3DM=01 385=3DS=0135=3DN=01385=3DS=0135=3DP=01385=3DS=0135=3DQ=01385=3DS=0135=3D= R=01385=3DS=0135=3DS=01385=3DS=0135=3DT=01385=3DS=01 35=3DV=01385=3DS=0135=3DW=01385=3DS=0135=3DX=01385=3DS=0135=3DY=01385=3D= S=0135=3DZ=01385=3DS=0135=3Da=01385=3DS=0135=3Db=01 385=3DS=0135=3Dc=01385=3DS=0135=3Dd=01385=3DS=0135=3De=01385=3DS=0135=3D= f=01385=3DS=0135=3Dg=01385=3DS=0135=3Dh=01385=3DS=01 35=3Di=01385=3DS=0135=3Dj=01385=3DS=0135=3Dk=01385=3DS=0135=3Dl=01385=3D= S=0135=3Dm=01385=3DS=0135=3D6=01385=3DR=0135=3D7=01 385=3DR=0135=3D8=01385=3DR=0135=3D9=01385=3DR=0135=3DB=01385=3DR=0135=3D= C=01385=3DR=0135=3DD=01385=3DR=0135=3DE=01385=3DR=01 35=3DF=01385=3DR=0135=3DG=01385=3DR=0135=3DH=01385=3DR=0135=3DJ=01385=3D= R=0135=3DK=01385=3DR=0135=3DL=01385=3DR=0135=3DM=01 385=3DR=0135=3DN=01385=3DR=0135=3DP=01385=3DR=0135=3DQ=01385=3DR=0135=3D= R=01385=3DR=0135=3DS=01385=3DR=0135=3DT=01385=3DR=01 35=3DV=01385=3DR=0135=3DW=01385=3DR=0135=3DX=01385=3DR=0135=3DY=01385=3D= R=0135=3DZ=01385=3DR=0135=3Da=01385=3DR=0135=3Db=01 385=3DR=0135=3Dc=01385=3DR=0135=3Dd=01385=3DR=0135=3De=01385=3DR=0135=3D= f=01385=3DR=0135=3Dg=01385=3DR=0135=3Dh=01385=3DR=01 35=3Di=01385=3DR=0135=3Dj=01385=3DR=0135=3Dk=01385=3DR=0135=3Dl=01385=3D= R=0135=3Dm=01385=3DR=01 2002-08-12 13:20:24.977 -1- ACCEPTOR_QFTARGET> Fix state changed from InLogin to PostLogin. Reason: PARTNER REQUEST [1] Received logon messa= ge 2002-08-12 13:20:24.987 -1- ACCEPTOR_QFTARGET> saved message received o= n incoming PTP queue for later use. 2002-08-12 13:20:25.007 -1- ACCEPTOR_QFTARGET> sent ResendRequest messa= ge. 35=3D2=0149=3DACCEPTOR=0156=3DQFTARGET=0134=3D2=0152=3D20020812-07:50:2= 4.987=017=3D1=0116=3D1=01 2002-08-12 13:20:25.007 -1- ACCEPTOR_QFTARGET> Starting Restore Timer u= ntil sequence number 1 is received. 2002-08-12 13:20:25.518 -1- ACCEPTOR_QFTARGET> Fix state changed from PostLogin to InConnect. Reason: COMMUNICATION PROBLEM [6] PTP communication closed while in an open communication state. 2002-08-12 13:20:25.518 -1- ACCEPTOR_QFTARGET> Stopped RestoreState tim= er. 2002-08-12 13:20:25.628 -1- ACCEPTOR_QFTARGET> Clear PTP: cleared PTP incoming queue, stopped outgoing queue dispatcher and cleared outgoing = PTP queue. (See attached file: pwarrier.vcf) = |