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)
=
|