Search code examples
quickfixj

message is different in fromApp function while incoming message is different as follow Qucikfixj


incoming Message in Logs

<20230329-09:37:52, FIXT.1.1:ECO->XTRM, incoming> (8=FIXT.1.19=00274135=y49=XTRM56=ECO34=245452=20230329-09:37:50.971347=UTF-8320=293202393750642322=2b7e5fb5-9a04-42fd-938a-09a7981c1f5e560=0393=3481301=XNSA1300=OTC893=N146=1048=PHAMDEKRIGHT22=9955=PHARMA DEKO RIGHTS454=1455=NGRGT0000089456=4167=CS762=OTC224=20150220225=20141217106=PHARMDEKO-I107=PHARMA DEKO RIGHTS1205=11206=01208=0.01000001150=1.8000000562=11140=015=NRA235=CLOSE236=0696=20150220697=048=OANDORGHT22=9955=OANDO RIGHTS454=1455=NGRGT0000071456=4167=CS762=OTC224=20150203225=20141124106=OANDO-I107=OANDO RIGHTS1205=11206=01208=0.01000001150=16.5000000562=11140=015=NRA235=CLOSE236=0696=20150203697=048=MEYERIGHTS22=9955=MEYER PLC RIGHTS454=1455=NGRGT0000121456=4167=CS762=OTC106=MEYER-I107=MEYER PLC RIGHTS1205=11206=01208=0.01000001150=0.7500000562=11140=015=NRA235=CLOSE236=0697=048=RR2019SOVREN22=9955=SOVEREIGN TRUST INSURANCE PLC RIGHTS 2019454=1455=NG2019SOVRE6456=4167=CS762=OTC224=20190807225=20190528106=SOVRENINS-I107=SOVEREIGN TRUST INSURANCE PLC RIGHTS 20191205=11206=01208=0.01000001150=0.0100000562=11140=015=NRA235=CLOSE236=0696=20190807697=048=RR2019WAPIC22=9955=WAPIC INSURANCE PLCS 2019 RIGHT454=1455=NGRR2019WAP1456=4167=CS762=OTC224=20200117106=WAPIC-I107=WAPIC INSURANCE PLCS 2019 RIGHT1205=11206=01208=0.01000001150=0.0100000562=11140=015=NRA235=CLOSE236=0696=20200117697=048=RR2020ABBEY22=9955=ABBEY MORTGAGE BANK PLC 2020 RIGHT454=1455=NGRR2020ABB3456=4167=CS762=OTC224=20210217106=ABBEYBDS-I107=ABBEY MORTGAGE BANK PLC 2020 RIGHT1205=11206=01208=0.01000001150=0.2300000562=11140=015=NRA235=CLOSE236=0696=20210217697=048=RR2020UPDC22=9955=UACN PROPERTY DEVELOPMENT CO. PLC-RIGHTS454=1455=NGRR2020UPD7456=4167=CS762=OTC224=20200318106=UAC-PROP-I107=UACN PROPERTY DEVELOPMENT CO. PLC-RIGHTS1205=11206=01208=0.01000001150=0.0100000562=11140=015=NRA235=CLOSE236=0696=20200318697=048=RR2018WAPCO22=9955=LAFARGE RIGHTS 2018454=1455=NGRR18WAPCO0456=4167=CS762=OTC224=20190201225=20181217106=WAPCO-I107=LAFARGE RIGHTS 20181205=11206=01208=0.01000001150=0.0100000562=11140=015=NRA235=CLOSE236=0696=20190201697=048=RR2019CILEAS22=9955=C&I LEASING PLC 2019 RIGHT454=1455=NGRR2019CIL5456=4167=CS762=OTC224=20200117106=CILEASING-I107=C&I LEASING PLC 2019 RIGHT1205=11206=01208=0.01000001150=0.6000000562=11140=015=NRA235=CLOSE236=0696=20200117697=048=RR2019FIDSON22=9955=FIDSON HEALTHCARE RIGHTS 2019454=1455=NG2019FIDSO0456=4167=CS762=OTC224=20190415225=20190305106=FIDSON-I107=FIDSON HEALTHCARE RIGHTS 20191205=11206=01208=0.01000001150=0.9500000562=11140=015=NRA235=CLOSE236=0696=20190415697=010=253)

while in fromApp function I only get

8=FIXT.1.19=17035=y34=245149=XTRM52=20230329-09:37:50.96956=ECO347=UTF-8146=10320=293202393750642322=022b739f-702c-4462-9c90-c0035175e0d6393=348560=0893=N1300=ETF1301=XNSA10=214

This whole thing happens when I'm requesting a Security List but got this issue so couldn't parse data correctly. Any solution would be appreciated

public void fromApp(Message message, SessionID sessionID) throws FieldNotFound, IncorrectDataFormat, IncorrectTagValue, UnsupportedMessageType {

    try {
        log.info("track1 :: On from App........Message received is: " + message);

        if (message.getHeader().getString(MsgType.FIELD).equals(MsgType.MARKET_DATA_SNAPSHOT_FULL_REFRESH) || message.getHeader().getString(MsgType.FIELD).equals(MsgType.MARKET_DATA_INCREMENTAL_REFRESH)) {
            log.warning("Feed Recieved ... " + message.toString());
           new Thread(new OnNGXFIXFeed(message, sessionID)).start();
        }
        
        if(message.getHeader().getString(MsgType.FIELD).equals(MsgType.SECURITY_LIST)) {
            log.warning("Security List :  ");
            onSecurityListResponse(message);
        }
 
        if (message.getHeader().getString(MsgType.FIELD).equals(MsgType.SECURITY_DEFINITION)) {
            log.warning("Security Definition Message ... " + message.toString());
            onSecurityRequest(message);
            requestSymbolFeed();
        }

    }

Solution

  • The message has a repeating group that doesn't match your configured DataDictionary.

    I suspected that you should be getting a RepeatedTag error, and you confirmed this.

    You need to update your DataDictionary to match the structure that your counterparty is sending you. Your counterparty should have some documentation that describes what their message structures look like.