dxFeed has recently updated Instrument Profile Format (IPF) under dxFeed Java API version 3.311.

Technical details

dxFeed updated the file format with the “##COMPLETE” tag. The “##COMPLETE” tag now ensures the completeness of instruments data at the application level.

NOTE: IPF web service has already used this tag to separate the initial snapshot and following live updates.

Example:

#STOCK::=TYPE,SYMBOL,CURRENCY
STOCK,IBM,USD
##COMPLETE

Verification

All QD tools now issue a warning in the application log if received IPF does not end with the “##COMPLETE” tag.

Example:

W 220501 120000.662 [main] InstrumentProfileReader - ##COMPLETE tag is missing in IPF file:my-stocks.ipf

NOTE: Please monitor your logs and make sure that all your IPF sources are valid, especially if you are using filters with “hand-made” IPF, i.e. “ipf[my-stocks.ipf]”. IPF generated by our web service is already valid.

Read more about dxFeed Insturment Profile Format in our Knowledge Base.

Java API changes

  • com.dxfeed.ipf.InstrumentProfileWriter class now adds “##COMPLETE” tag at the end when writing IPF.
  • com.dxfeed.ipf.InstrumentProfileReader class now adds a warning to the log when reading IPF without “##COMPLETE” tag.
  • New method “boolean wasComplete()” now checks if snapshot is received correctly.
  • You can now use the New JVM parameter “-Dcom.dxfeed.ipf.complete=warn”  to control missing ##COMPLETE tag:
    • “ignore” – do nothing (for backward compatibility)
    • “warn” – show warning in application log (current default)
    • “error” – throw exception (will be future default)

QDS tools changes

  • IPF files created by QDS instruments tool now have “##COMPLETE” tag at the end of file.

Please refer to dxFeed Help Desk if you have any questions or concerns.