{{Quickfixn}} Repeating groups

Grant Birchmeier gbirchmeier at connamara.com
Fri Aug 3 07:16:37 PDT 2012


Undo that ‘Parties’/‘TradingParty’ name change. That is not the cause.

I think the cause is that you don't have
ApplicationDataDictionary=path/FIX50sp2.xml (or whatever the filename is)
in your config.  (Keep the UseDataDictionary=Y part also.)

I should have noticed this before, sorry about that.



On Fri, Aug 3, 2012 at 7:54 AM, Ruaan Viljoen <ruaanv at estuarys.co.za> wrote:

> 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>
> 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
> 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
>
>
>
> _______________________________________________
> Quickfixn mailing list
> 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/e318b30c/attachment-0002.htm>


More information about the Quickfixn mailing list