Skip to content

Frequently Asked Questions

Richard Warburton edited this page Jul 28, 2021 · 13 revisions

How do I easily see the internal messages and debug things?

See The logging page

How can I inspect the FIX Engine's archive of messages and find messages that I'm looking for?

If you're looking for an admin tool then check out the uk.co.real_logic.artio.engine.logger.FixArchivePrinter which provides a variety of options for printing out FIX messages that have been logged.

If you want a programmatic approach that you can integrate into your own tooling, you can create a uk.co.real_logic.artio.engine.logger.FixArchiveScanner and use it to scan over the archive of FIX messages. This will call a FixMessageConsumer for each message that it encounters. The messages can be filtered using the FixMessagePredicate interface and some built-in filters are provided by the FixMessagePredicates class.

You control the Aeron client in the , so how do I alter its configuration options?

If you want to configure the channel through which the Library and Engine talk to each other then you can set the aeronChannel configuration property, if you want more detailed configuration then both the Library and Engine have an aeronContext configuration property.

What are these Engine, Library and Media Driver processes that you refer to?

See the Key Concepts page.

Do you make any assumptions about the hardware that you're running on?

We don't checksum in flight messages, which means that any non-ECC memory is vulnerable to message corruption.

How do I generate custom FIX protocols to use with the Gateway?

The gateway ships with uk.co.real_logic.fix_gateway.dictionary.CodecGenerationTool which generates codecs in the appropriate style for use with the FIX Gateway. By default the gateway depends upon a minimal FIX protocol that just includes the session codecs. If practice you want to exclude these session codecs from the build in order to use a real FIX protocol that a venue has provided, in order to do this simply exclude the project fix-gateway-session-codecs from your dependency graph. An example of this can be seen in the FIX Integration project that generates full FIX 4.2 and 4.4 codecs for the purpose of integration testing.

How can I customise the session replay functionality?

The EngineConfiguration has a gapfillOnReplayMessageTypes() configuration option that allows you to specific a set of message types that will be gap filled in a replay scenario. By default we only gapfill the admin messages listed in the FIX specification, and replay everything else.

Why are the password field values listed as *** when I receive a message and how do I get the values?

Artio cleans passwords out of FIX messages that are received as an Acceptor and replaces them with the value *** in order to avoid them being logged into the archive of FIX messages and leave passwords in plaintext on disk. The actual password field values received are handed over to the AuthenticationStrategy that you provide to the FixEngine when configuring it, so you should implement that in order to validate passwords and update them in response to a UserRequest message.