Upgrade Notes

1.18.0 [FIX Engine]

Migration to onixs-utils 1.0.46

Not mandatory but recommended.

1.15.0 [FIX Engine]

[FIX Engine] The deprecated method "biz.onixs.fix.engine.Session#getLogInboundMessages" is removed

and replacement is "biz.onixs.fix.engine.Session#isLogInboundMessages".

The reference ticket(s): JAVA-948.

Migration to onixs-utils 1.0.45

This migration is mandatory.

The reference ticket(s): JAVA-954.

1.14.0

Migration to onixs-utils 1.0.44

This migration is mandatory.

The reference ticket(s): JAVA-945.

1.13.0 [FIX Engine] [Samples]

Migration to onixs-utils 1.0.43

This migration to onixs-utils 1.0.43 is mandatory.

The reference ticket(s): JAVA-940.

Migration to slf4j-api 1.7.7

Not mandatory but recommended.

The reference ticket(s): JAVA-935.

[FIX Engine] FileBasedStorageRepository options related to async mode are removed

The FileBasedStorageRepository methods

  • biz.onixs.fix.engine.storage.FileBasedStorageRepository#isAsynchronous
  • biz.onixs.fix.engine.storage.FileBasedStorageRepository#setAsynchronous
  • biz.onixs.fix.engine.storage.FileBasedStorageRepository#getAsyncBufferSize
  • biz.onixs.fix.engine.storage.FileBasedStorageRepository#setAsyncBufferSize

are removed and replacement is

  • biz.onixs.fix.engine.storage.AsyncFileStorageRepository#getAsyncQueueSize
  • biz.onixs.fix.engine.storage.AsyncFileStorageRepository#setAsyncQueueSize

The EngineSettings constants and methods

  • biz.onixs.fix.engine.EngineSettings#FILE_STORAGE_ASYNC_PROP
  • biz.onixs.fix.engine.EngineSettings#FILE_STORAGE_ASYNC_DEFAULT
  • biz.onixs.fix.engine.EngineSettings#FILE_STORAGE_ASYNC_BUFFER_SIZE_PROP
  • biz.onixs.fix.engine.EngineSettings#FILE_STORAGE_ASYNC_BUFFER_SIZE_DEFAULT
  • biz.onixs.fix.engine.EngineSettings#isFileStorageAsync
  • biz.onixs.fix.engine.EngineSettings#setFileStorageAsync
  • biz.onixs.fix.engine.EngineSettings#setFileStorageAsyncBufferSize
  • biz.onixs.fix.engine.EngineSettings#getFileStorageAsyncBufferSize

are removed and replacement is

  • biz.onixs.fix.engine.EngineSettings#ASYNC_FILE_STORAGE_QUEUE_SIZE_PROP
  • biz.onixs.fix.engine.EngineSettings#ASYNC_FILE_STORAGE_QUEUE_SIZE_DEFAULT
  • biz.onixs.fix.engine.EngineSettings#getAsyncFileStorageQueueSize
  • biz.onixs.fix.engine.EngineSettings#setAsyncFileStorageQueueSize

The configuration file settings

  • FileStorage.Async
  • FileStorage.AsyncBufferSize

are removed and replacement is "AsyncFileStorage.QueueSize".

The reference ticket(s): JAVA-870, JAVA-849.

Migration to Logback 1.1.2

Not mandatory but recommended migration to Logback 1.1.2.

The reference ticket(s): JAVA-921.

[Samples] Upgrade to "HdrHistogram-1.0.9.jar"

Not mandatory but recommended upgrade to "HdrHistogram-1.0.9.jar".

The reference ticket(s): JAVA-922.

1.12.0 [Session Scheduler]

[Session Scheduler] SessionScheduler#register(Session, SessionSchedule) is removed

The replacement is biz.onixs.fix.scheduler.SessionScheduler#registerAcceptor(Session, SessionSchedule).

The reference ticket(s): JAVA-890.

1.11.2 [Session Scheduler]

[Session Scheduler] The session scheduler configuration schema is updated to 1.6

Link to the new schema is scheduler-settings-1.6.xsd.

The reference ticket(s): JAVA-810.

1.11.1 [FIX Engine]

[FIX Engine] FileBasedStorageRepository options related to async mode are deprecated

The FileBasedStorageRepository methods

  • biz.onixs.fix.engine.storage.FileBasedStorageRepository#isAsynchronous
  • biz.onixs.fix.engine.storage.FileBasedStorageRepository#setAsynchronous
  • biz.onixs.fix.engine.storage.FileBasedStorageRepository#getAsyncBufferSize
  • biz.onixs.fix.engine.storage.FileBasedStorageRepository#setAsyncBufferSize

are deprecated and replacement is

  • biz.onixs.fix.engine.storage.AsyncFileStorageRepository#getAsyncQueueSize
  • biz.onixs.fix.engine.storage.AsyncFileStorageRepository#setAsyncQueueSize

The EngineSettings constants and methods

  • biz.onixs.fix.engine.EngineSettings#FILE_STORAGE_ASYNC_PROP
  • biz.onixs.fix.engine.EngineSettings#FILE_STORAGE_ASYNC_DEFAULT
  • biz.onixs.fix.engine.EngineSettings#FILE_STORAGE_ASYNC_BUFFER_SIZE_PROP
  • biz.onixs.fix.engine.EngineSettings#FILE_STORAGE_ASYNC_BUFFER_SIZE_DEFAULT
  • biz.onixs.fix.engine.EngineSettings#isFileStorageAsync
  • biz.onixs.fix.engine.EngineSettings#setFileStorageAsync
  • biz.onixs.fix.engine.EngineSettings#setFileStorageAsyncBufferSize
  • biz.onixs.fix.engine.EngineSettings#getFileStorageAsyncBufferSize

are deprecated and replacement is

  • biz.onixs.fix.engine.EngineSettings#ASYNC_FILE_STORAGE_QUEUE_SIZE_PROP
  • biz.onixs.fix.engine.EngineSettings#ASYNC_FILE_STORAGE_QUEUE_SIZE_DEFAULT
  • biz.onixs.fix.engine.EngineSettings#getAsyncFileStorageQueueSize
  • biz.onixs.fix.engine.EngineSettings#setAsyncFileStorageQueueSize

The configuration file settings

  • FileStorage.Async
  • FileStorage.AsyncBufferSize

are deprecated and replacement is "AsyncFileStorage.QueueSize".

The reference ticket(s): JAVA-849.

Migration to onixs-utils 1.0.42

This migration to onixs-utils 1.0.42 is mandatory.

The reference ticket(s): JAVA-869.

1.11.0 [FIX Engine]

[FIX Engine] Class "biz.onixs.fix.util.Converter" is moved

to "biz.onixs.util.Converter". Also its location is changed from "onixs-fix-engine-x.jar" to "onixs-utils-x.jar".

The reference ticket(s): JAVA-852.

[FIX Engine] Class "biz.onixs.fix.parser.ValuePtr" is moved

to "biz.onixs.util.ValuePtr". Also its location is changed from "onixs-fix-engine-x.jar" to "onixs-utils-x.jar".

The reference ticket(s): JAVA-853.

Migration to onixs-utils 1.0.41

This migration to onixs-utils 1.0.41 is mandatory.

The reference ticket(s): JAVA-863.

Migration to Logback 1.1.0

Not mandatory but recommended migration to Logback 1.1.0.

The reference ticket(s): JAVA-856.

Migration to SLF4J 1.7.6

Not mandatory but recommended migration to SLF4J 1.7.6.

The reference ticket(s): JAVA-859.

1.10.12

The minimal required Java is 7 now.

The reference ticket(s): JAVA-821.

1.10.11 - Session Scheduler, FIX Engine

[FIX Engine] File-based session storage format has changed

To avoid session storage reading errors please remove old format files before starting the engine.

[Session Scheduler] Class "biz.onixs.fix.scheduler.ErrorArgs"

is moved to "biz.onixs.fix.scheduler.ErrorListener.ErrorArgs" and has the following methods renamed:

  • getMessage() to getDescription()
  • getThrowable() to getException()

[FIX Engine] Deprecated "biz.onixs.fix.engine.Engine" methods and fields:

  • biz.onixs.fix.engine.Engine#setDynamicAcceptorListener(DynamicAcceptorListener), use biz.onixs.fix.engine.Engine#addDynamicAcceptorListener(DynamicAcceptorListener) instead
  • biz.onixs.fix.engine.Engine#getDynamicAcceptorListener()
  • biz.onixs.fix.engine.Engine#NULL_DYNAMIC_ACCEPTOR_LISTENER

[FIX Engine] Configuration parameter "Session.ChainedResendRequestDisabled" is removed

as well as the respective API methods:

  • biz.onixs.fix.engine.EngineSettings#isSessionChainedResendRequestDisabled()
  • biz.onixs.fix.engine.EngineSettings#setSessionChainedResendRequestDisabled(boolean)
  • biz.onixs.fix.engine.Session#isChainedResendRequestDisabled()
  • biz.onixs.fix.engine.Session#setResendRequestLogic(boolean)

Instead the "Session.ResendRequestLogic" parameter with the "STANDARD_FIX_RESTRAINED" value should be used. It can be configured with the newly added methods:

  • biz.onixs.fix.engine.EngineSettings#setSessionResendRequestLogic(biz.onixs.fix.engine.ResendRequestLogic)
  • biz.onixs.fix.engine.Session#setResendRequestLogic(biz.onixs.fix.engine.ResendRequestLogic)

The reference ticket(s): JAVA-784.

1.10.10 - FIX Engine

[FIX Engine] The default value of the "Session.SendLogoutOnException" parameter has changed

from "false" to "true".

[FIX Engine] The parser exceptions are moved

  • biz.onixs.fix.parser.exception.ParserException
  • biz.onixs.fix.parser.exception.IncorrectCheckSumException
  • biz.onixs.fix.parser.exception.IncorrectNumInGroupCountForRepeatingGroupException
  • biz.onixs.fix.parser.exception.InstanceIndexOutOfRangeException
  • biz.onixs.fix.parser.exception.InvalidMsgTypeException
  • biz.onixs.fix.parser.exception.RequiredTagMissingException
  • biz.onixs.fix.parser.exception.TagNotDefinedForThisMessageTypeException
  • biz.onixs.fix.parser.exception.TagSpecifiedOutOfRequiredOrderException
  • biz.onixs.fix.parser.exception.TagSpecifiedWithoutValue
  • biz.onixs.fix.parser.exception.ValueIsIncorrectException

from the "biz.onixs.fix.parser.exception" to the "biz.onixs.fix.parser" package.

The reference ticket(s): JAVA-761.

1.10.9 - FIX Engine

[FIX Engine] The Version class is changed its package

// from
biz.onixs.fix.parser.Version
// to
biz.onixs.fix.dictionary.Version

1.10.5 - FIX Engine

[FIX Engine] The Engine methods are moved from class (static) to instance:

  • biz.onixs.fix.engine.Engine#getSettings()
  • biz.onixs.fix.engine.Engine#getStorageRepositoryManager()

The reference ticket(s): JAVA-676.

1.10.4 - FIX Engine

[FIX Engine] Deprecated Message Methods Removed

The deprecated biz.onixs.fix.parser.Message methods are removed:

  • biz.onixs.fix.parser.Message#Message(String, Version)
  • biz.onixs.fix.parser.Message#Message(String, Version, boolean)
  • biz.onixs.fix.parser.Message#Message(String, Version, boolean, boolean)
  • biz.onixs.fix.parser.Message#init(String, Version)

The reference tickets are: JAVA-551.

1.10

Message Methods Deprecation

The following biz.onixs.fix.parser.Message methods are deprecated and their replacements introduced:

Deprecated Replacement
Message(String, Version) create(String, Version)
Message(String, Version, boolean) create(String, Version, boolean)
Message(String, Version, boolean, boolean) create(String, Version, boolean, boolean)
init(String, Version) init(Version, String)

1.9.48

The deprecated methods are removed:

  • biz.onixs.fix.parser.Message.getDouble(int)
  • biz.onixs.fix.parser.Message.set(int, double)
  • biz.onixs.fix.parser.Group.getDouble(int, int)
  • biz.onixs.fix.parser.Group.set(int, int, double)

As a replacement the following methods are added:

  • biz.onixs.fix.parser.Message.getBigDecimal(int)
  • biz.onixs.fix.parser.Message.set(int, java.math.BigDecimal)
  • biz.onixs.fix.parser.Group.getBigDecimal(int, int)
  • biz.onixs.fix.parser.Group.set(int, int, java.math.BigDecimal)

The reference tickets are: JAVA-512, JAVA-516.

1.9.47

Session Deprecated Member Removal

The deprecated members are removed and replaced respectively

biz.onixs.fix.engine.Session.setStateChangeListener
// with
biz.onixs.fix.engine.Session.addStateChangeListener

biz.onixs.fix.engine.Session.findSentMessage
// with
biz.onixs.fix.engine.Session.getStorage

The deprecated members are removed

biz.onixs.fix.engine.Session.getStateChangeListener
biz.onixs.fix.engine.Session.NULL_STATE_CHANGE_LISTENER

Engine Deprecated Member Removal

The deprecated member is removed and replaced respectively

biz.onixs.fix.engine.Engine.setThreadStartedListener
// with
biz.onixs.fix.engine.Engine.addThreadStartedListener

The deprecated member is removed

biz.onixs.fix.engine.Engine.getThreadStartedListener

The reference tickets are: JAVA-513.

1.9.40

SSLContextFactory Class is Moved/Renamed

The following class

biz.onixs.fix.engine.ssl.SSLContextFactory

is moved/renamed to

biz.onixs.fix.engine.SslContextFactory

1.9.35

FIX Dialect Schema Location Changed

The FIX dialect schema is changed its location from

https://onixs.biz/fix/dialects/dialects-2_9.xsd

to

https://ref.onixs.biz/fix/dialects/dialects-2_9.xsd

Old dialect document element:

<Dialect xmlns="https://onixs.biz/fix/dialects"
         xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://onixs.biz/fix/dialects https://onixs.biz/fix/dialects/dialects-2_9.xsd">

New dialect document element:

<Dialect xmlns="https://ref.onixs.biz/fix/dialects"
         xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://ref.onixs.biz/fix/dialects https://ref.onixs.biz/fix/dialects/dialects-2_9.xsd">

The same is true for schema versions 2.2 - 2.8.

Session Scheduler Schema Location Changed

The session scheduler configuration schema is changed its location from

https://onixs.biz/fix/scheduler/scheduler-settings-1.4.xsd

to

https://ref.onixs.biz/fix/scheduler/scheduler-settings-1.4.xsd

Old configuration document element:

<SchedulerSettings
        xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="https://onixs.biz/fix/scheduler https://onixs.biz/fix/scheduler/scheduler-settings-1.4.xsd"
        xmlns="https://onixs.biz/fix/scheduler">

New configuration document element:

<SchedulerSettings
        xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="https://ref.onixs.biz/fix/scheduler https://ref.onixs.biz/fix/scheduler/scheduler-settings-1.4.xsd"
        xmlns="https://ref.onixs.biz/fix/scheduler">

The same is true for schema versions 1.0 - 1.3.

1.9.34

Session Scheduler Package Change

The session scheduler java package name is changed to

biz.onixs.fix.scheduler

from

biz.onixs.fix.engine.scheduler

Session Scheduler Separate Module

The session scheduler code is extracted to the separate jar

onixs-fix-scheduler-x.x.x.jar

from the main engine jar

onixs-fix-engine-x.x.x.jar

1.9.32

Logging Switched to SLF4J

The custom logging implementation used in the FIX engine is replaced completely with the SLF4J. Any external logging facility needs to be configured separately.

For more information see Logging section of the programming guide.

The reference ticket are: JAVA-85, JAVA-334, JAVA-374.

1.9.28

Storage Repository Manager Getter is Changed to Static

The following method is static now:

biz.onixs.fix.engine.Engine.getStorageRepositoryManager

Session Storage API Changes

The main goal of the changes is to provide access to the incoming messages.

The reference ticket is JAVA-383.

Changes in StorageRepository Interface

The following changes are made to the interface:

biz.onixs.fix.engine.storage.StorageRepository

The method

biz.onixs.fix.engine.storage.StorageRepository.create(String senderCompId, String targetCompId, Version fixVersion, String token, boolean cleanStart)

is replaced with the

biz.onixs.fix.engine.storage.StorageRepository.create(SessionId sessionId, boolean cleanStart)
Changes in SessionStorage Interface

The interface

biz.onixs.fix.engine.storage.SessionStorage

is modified:

  Message getOutboundMessage(long sequenceNumber)
  // is replaced with the
  Message getMessage(MessageDirection direction, long sequenceNumber)
  // where direction = MessageDirection.OUT

  List<Message> getOutboundMessages(long beginSequenceNumber, long endSequenceNumber)
  // is replaced with the
  List<Message> getMessages(MessageDirection direction, long beginSequenceNumber, long endSequenceNumber)
  // where direction = MessageDirection.OUT

  void storeInbound(Message message, ByteBuffer rawMessage)
  // is replaced with the
  void storeMessage(MessageDirection direction, Message message, ByteBuffer rawMessage)
  // where direction = MessageDirection.IN

  void storeInbound(long msgSeqNum, ByteBuffer rawMessage)
  // is replaced with the
  void storeMessage(MessageDirection direction, long msgSeqNum, ByteBuffer rawMessage)
  // where direction = MessageDirection.IN

  void storeOutbound(Message message, ByteBuffer rawMessage)
  // is replaced with the
  void storeMessage(MessageDirection direction, Message message, ByteBuffer rawMessage)
  // where direction = MessageDirection.OUT

1.9.27

Session State WAIT_FOR_REPLY_ON_RESEND_REQUEST Is Renamed

The following session state

biz.onixs.fix.engine.SessionState#WAIT_FOR_REPLY_ON_RESEND_REQUEST

is renamed to the

biz.onixs.fix.engine.SessionState#WAIT_FOR_RETRANSMISSION

1.9.25

Session Storage Password Scrambling

This feature is not available on a per-session basis anymore and the following methods are removed:

biz.onixs.fix.engine.Session#isScramblePassword
biz.onixs.fix.engine.Session#setScramblePassword

Please use the file-based storage repository property instead:

final StorageRepository fileBasedStorageRepository = engine.getStorageRepositoryManager().get(SessionStorageType.FileBasedStorage);
((FileBasedStorageRepository) fileBasedStorageRepository).setScramblePassword(true);

The reference ticket is JAVA-351.

SessionStorage and StorageRepository Interfaces

The following methods are removed:

biz.onixs.fix.engine.storage.StorageRepository#isScramblePassword
biz.onixs.fix.engine.storage.StorageRepository#setScramblePassword
biz.onixs.fix.engine.storage.SessionStorage#isScramblePassword
biz.onixs.fix.engine.storage.SessionStorage#setScramblePassword

The following methods are added:

biz.onixs.fix.engine.storage.SessionStorage#open

Accepting Uninitialised Incoming Sessions

The new name of this section in the programming guide is Accepting FIX Session Without a Prior Creation of Session Object. Please read it through.

The event listener and arguments classes are renamed from

biz.onixs.fix.engine.Engine.UnknownIncomingConnectionEventListener
biz.onixs.fix.engine.Engine.UnknownIncomingConnectionEventArgs

to

biz.onixs.fix.engine.Engine.DynamicAcceptorListener
biz.onixs.fix.engine.Engine.DynamicAcceptorArgs

Now it's user's responsibility to create Session object if the connection has to be accepted. And the created Session object is passed to the event arguments instead of the boolean flag.

The reference ticket is JAVA-352.

1.9.23

File-based Session Storage Format Changed

The file-based session storage format is changed. Old session storage files can't be used with the new library. The reference ticket is JAVA-321.

Apache Commons Pool Dependency Updated

It is recommended to migrate to the 3rd party library with the version 1.5.6. The reference ticket is JAVA-335.