{{Quickfixn}} Repeating groups

Ruaan Viljoen ruaanv at estuarys.co.za
Fri Aug 3 05:54:44 PDT 2012


Hi,

>From Event log
Message 3 Rejected: Tag appears more than once:447

I also noticed that the onApp and onAdmin methods are not being called when a message is rejected due to validation. I assume this is meant to function this way?

>From Message log:This is the message I am receiving causing the validation error:
20120730-13:17:56.413 : 8=FIXT.1.1 9=355 35=8 49=xxxxxx 56=xxxxx 34=3 52=20120730-13:18:07.719 1128=9 17=xxxxx 11=xxxxx 37=xxxxx 150=F 39=2 32=100 31=24418 151=0 14=100 48=119 22=8 453=3 448=xxxxx 447=D 452=53 448=xxxxxx 447=D 452=1 448=xxxxx 447=D 452=76 40=2 59=0 54=1 38=100 1138=0 44=25500 528=A 60=20120730-13:18:07.716 880=xxxxx 1180=1 1=2222222 10=094

The reject being sent by my quickfixn initiator:
20120730-13:19:22.105 : 8=FIXT.1.1   9=113   35=3   34=4   49=ESTF01   52=20120730-13:19:22.104   56=JSEFIXGW   45=3   58=Tag appears more than20120730-13:19:22.105 : 8=FIXT.1.1   9=113   35=3   34=4   49=ESTF01   52=20120730-13:19:22.104   56=JSEFIXGW   45=3   58=Tag appears more than once 371=447  372=8  373=13  10=030

The spec I am using is the default FIX50SP2 except for some minor re-arrangements I made trying to fix the issue, but to no avail. I
started with the default definition files which caused exactly the same issues.

FIX50SP2 xml definition
I have changed the name from 'Parties' to 'TradingParty' as I read that it could be a user field causing the issue.
I also tried with just the default 'Parties' and it still causes exactly the same issu.es
<component name='TradingParty'>
   <group name='NoPartyIDs' required='Y'>
    <field name='PartyID' required='Y' />
    <field name='PartyIDSource' required='Y' />
    <field name='PartyRole' required='Y' />
   </group>
  </component>

Message definition for Execution Report  in my modified FIX50SP2.
<message name='ExecutionReport' msgcat='app' msgtype='8'>
                <field name='ClOrdID' required='Y' />
                <field name='OrigClOrdID' required='N' />
   <field name='OrderID' required='Y' />
   <field name='ExecType' required='Y' />
                <field name='ExecRefID' required='N' />
   <field name='ExecRestatementReason' required='N' />
   <field name='OrdStatus' required='Y' />
   <field name='WorkingIndicator' required='N' />
   <field name='OrdRejReason' required='N' />
   <field name='Text' required='N' />
   <field name='LastQty' required='N' />
   <field name='LastPx' required='N' />
   <field name='LeavesQty' required='Y' />
   <field name='CumQty' required='Y' />
   <component name='Instrument' required='Y' />
   <component name='TradingParty' required='Y' />
   <field name='Account' required='Y' />
   <field name='OrdType' required='Y' />
   <field name='TimeInForce' required='N' />
                <field name='ExpireTime' required='N' />
   <field name='ExpireDate' required='N' />
   <field name='Side' required='Y' />
   <component name='OrderQtyData' required='N' />
   <component name='DisplayInstruction' required='N' />
   <field name='MinQty' required='N' />
   <field name='Price' required='N' />
   <field name='StopPx' required='N' />
   <field name='OrderCapacity' required='Y' />
   <field name='TransactTime' required='N' />
   <field name='TrdMatchID' required='N' />

   <field name='SecondaryOrderID' required='N' />
   <field name='SecondaryClOrdID' required='N' />
   <field name='SecondaryExecID' required='N' />
   <field name='ClOrdLinkID' required='N' />
   <field name='QuoteRespID' required='N' />
   <field name='OrdStatusReqID' required='N' />
   <field name='MassStatusReqID' required='N' />
   <field name='TotNumReports' required='N' />
   <field name='LastRptRequested' required='N' />
   <field name='TradeOriginationDate' required='N' />
   <component name='ContraGrp' required='N' />
   <field name='ListID' required='N' />
   <field name='CrossID' required='N' />
   <field name='OrigCrossID' required='N' />
   <field name='CrossType' required='N' />
   <field name='ExecID' required='Y' />
   <field name='AcctIDSource' required='N' />
   <field name='AccountType' required='N' />
   <field name='DayBookingInst' required='N' />
   <field name='BookingUnit' required='N' />
   <field name='PreallocMethod' required='N' />
   <field name='SettlType' required='N' />
   <field name='SettlDate' required='N' />
   <field name='CashMargin' required='N' />
   <field name='ClearingFeeIndicator' required='N' />
   <component name='FinancingDetails' required='N' />r
   <component name='UndInstrmtGrp' required='N' />
   <component name='Stipulations' required='N' />
   <field name='QtyType' required='N' />
   <field name='PriceType' required='N' />
   <component name='PegInstructions' required='N' />
   <component name='DiscretionInstructions' required='N' />
   <field name='PeggedPrice' required='N' />
   <field name='DiscretionPrice' required='N' />
   <field name='TargetStrategy' required='N' />
   <field name='TargetStrategyParameters' required='N' />
   <field name='ParticipationRate' required='N' />
   <field name='TargetStrategyPerformance' required='N' />
   <field name='Currency' required='N' />
   <field name='ComplianceID' required='N' />
   <field name='SolicitedFlag' required='N' />
   <field name='EffectiveTime' required='N' />
   <field name='ExecInst' required='N' />
   <field name='OrderRestrictions' required='N' />
   <field name='CustOrderCapacity' required='N' />
   <field name='UnderlyingLastQty' required='N' />
   <field name='UnderlyingLastPx' required='N' />
   <field name='LastParPx' required='N' />
   <field name='LastSpotRate' required='N' />
   <field name='LastForwardPoints' required='N' />
   <field name='LastMkt' required='N' />
   <field name='TradingSessionID' required='N' />
   <field name='TradingSessionSubID' required='N' />
   <field name='TimeBracket' required='N' />
   <field name='LastCapacity' required='N' />
   <field name='AvgPx' required='N' />
   <field name='DayOrderQty' required='N' />
   <field name='DayCumQty' required='N' />
   <field name='DayAvgPx' required='N' />
   <field name='GTBookingInst' required='N' />
   <field name='TradeDate' required='N' />
   <field name='ReportToExch' required='N' />
   <component name='CommissionData' required='N' />
   <component name='SpreadOrBenchmarkCurveData' required='N' />
   <component name='YieldData' required='N' />
   <field name='GrossTradeAmt' required='N' />
   <field name='NumDaysInterest' required='N' />
   <field name='ExDate' required='N' />
   <field name='AccruedInterestRate' required='N' />
   <field name='AccruedInterestAmt' required='N' />
   <field name='InterestAtMaturity' required='N' />
   <field name='EndAccruedInterestAmt' required='N' />
   <field name='StartCash' required='N' />
   <field name='EndCash' required='N' />
   <field name='TradedFlatSwitch' required='N' />
   <field name='BasisFeatureDate' required='N' />
   <field name='BasisFeaturePrice' required='N' />
   <field name='Concession' required='N' />
   <field name='TotalTakedown' required='N' />
   <field name='NetMoney' required='N' />
   <field name='SettlCurrAmt' required='N' />
   <field name='SettlCurrency' required='N' />
   <field name='SettlCurrFxRate' required='N' />
   <field name='SettlCurrFxRateCalc' required='N' />
   <field name='HandlInst' required='N' />
   <field name='MaxFloor' required='N' />
   <field name='PositionEffect' required='N' />
   <field name='MaxShow' required='N' />
   <field name='BookingType' required='N' />
   <field name='EncodedTextLen' required='N' />
   <field name='EncodedText' required='N' />
   <field name='SettlDate2' required='N' />
   <field name='OrderQty2' required='N' />
   <field name='LastForwardPoints2' required='N' />
   <field name='MultiLegReportingType' required='N' />
   <field name='CancellationRights' required='N' />
   <field name='MoneyLaunderingStatus' required='N' />
   <field name='RegistID' required='N' />
   <field name='Designation' required='N' />
   <field name='TransBkdTime' required='N' />
   <field name='ExecValuationPoint' required='N' />
   <field name='ExecPriceType' required='N' />
   <field name='ExecPriceAdjustment' required='N' />
   <field name='PriorityIndicator' required='N' />
   <field name='PriceImprovement' required='N' />
   <field name='LastLiquidityInd' required='N' />
   <component name='ContAmtGrp' required='N' />
   <component name='InstrmtLegExecGrp' required='N' />
   <field name='CopyMsgIndicator' required='N' />
   <component name='MiscFeesGrp' required='N' />
   <component name='StrategyParametersGrp' required='N' />
   <field name='HostCrossID' required='N' />
   <field name='ManualOrderIndicator' required='N' />
   <field name='CustDirectedOrder' required='N' />
   <field name='ReceivedDeptID' required='N' />
   <field name='CustOrderHandlingInst' required='N' />
   <field name='OrderHandlingInstSource' required='N' />
   <component name='TrdRegTimestamps' required='N' />
   <field name='AggressorIndicator' required='N' />
   <field name='CalculatedCcyLastQty' required='N' />
   <field name='LastSwapPoints' required='N' />
   <field name='MatchType' required='N' />
   <field name='OrderCategory' required='N' />
   <field name='LotType' required='N' />
   <field name='PriceProtectionScope' required='N' />
   <component name='TriggeringInstruction' required='N' />
   <field name='PeggedRefPrice' required='N' />
   <field name='PreTradeAnonymity' required='N' />
   <field name='MatchIncrement' required='N' />
   <field name='MaxPriceLevels' required='N' />
   <field name='Volatility' required='N' />
   <field name='TimeToExpiration' required='N' />
   <field name='RiskFreeRate' required='N' />
   <field name='PriceDelta' required='N' />
   <field name='AllocID' required='N' />
   <component name='PreAllocGrp' required='N' />
   <field name='TotNoFills' required='N' />
   <field name='LastFragment' required='N' />
   <component name='FillsGrp' required='N' />
   <field name='DividendYield' required='N' />
   <component name='ApplicationSequenceControl' required='N' />
   <component name='RateSource' required='N' />
  </message>
From: quickfixn-bounces at lists.quickfixn.com [mailto:quickfixn-bounces at lists.quickfixn.com] On Behalf Of Grant Birchmeier
Sent: 30 July 2012 04:42 PM
To: Mailing list for QuickFIX/n
Subject: Re: {{Quickfixn}} Repeating groups

I'm guessing that you are constructing your repeating group wrong.

Can you show us your message log that includes the message and reject?


On Mon, Jul 30, 2012 at 9:16 AM, Ruaan Viljoen <ruaanv at estuarys.co.za<mailto:ruaanv at estuarys.co.za>> wrote:
Hi,
Quickfixn is generating a reject with the following message:
'Tag appears  more than once' for tag 447.
Tag 447 appears in the repeating group 'Parties' in FIX50SP2.

I found some fragments online stating that it is possible the server using a different component name identifier could be the cause, but after defining a second component
with the same name found I still received the error.

I have also tried both these config options, but they seem to have no effect.
UseDataDictionary=Y
ValidateUserDefinedFields=N

I also read some vague post about ordering of fields, but ordering the fields in the xml also had no effect.

I'm relatively new to FIX and I'm not sure what else there is to try.
Any help or links would be appreciated.

My current config file:
[DEFAULT]
ConnectionType=initiator
SocketConnectPort=xxxx
SocketConnectHost=xx.xx.xx.xx
StartTime=00:00:00
EndTime=23:59:00
FileLogPath=Data/FIX/Logs/log

[SESSION]
BeginString=FIXT.1.1
SenderCompID=xxxxx
TargetCompID=xxxxxx
FileStorePath=Data/FIX/Messages/store
HeartBtInt=15
TransportDataDictionary=Data/FIX/Dictionary/FIXT11.xml
DefaultApplVerID=9
UseDataDictionary=Y
ValidateUserDefinedFields=N

_______________________________________________
Quickfixn mailing list
Quickfixn at lists.quickfixn.com<mailto:Quickfixn at lists.quickfixn.com>
http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com



--
Grant Birchmeier
Connamara Systems, LLC
Made-To-Measure Trading Solutions.
Exactly what you need. No more. No less.
http://connamara.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20120803/be2230df/attachment-0002.htm>


More information about the Quickfixn mailing list