OMS Guide
TracNav menu
-
Marketcetera
-
Overview
- Photon
- ORS
- Tradebase
- OrderLoader
- Virtual Appliance
- User Mailing List
- Download
- License
- Reporting Bugs
-
Documentation
- Marketcetera Platform Configuration
- ORS Guide
- Photon Installation and Configuration
- Photon Guide
- Photon Scripting
- Tradebase Guide
- OrderLoader Guide
- Configuration Files Guide
- Configuring Market Data Feeds
- Order Limits
- Excel Integration
- .NET Support
-
Support
- Support
- User FAQ
- Developer FAQ
-
For Developers
- Architecture
- Building Marketcetera Platform
- Building Photon
- Building Tradebase
- Building Appliance
- Building MarketceteraCOM
- FIX Overview
- Developer Mailing List
- Developer Notes
- Contribute!
- Reading List
- Third-party Dependencies
- Exchange Simulator
- JavaDoc
- Blog
Table of Contents
The OMS is the heart of the Marketcetera Platform. It receives incoming messages, processes them, and delivers them to the appropriate recipient.
The Order Loader currently supports 4.0-4.4 version of FIX protocol and only works with equities.
The OMS consists of the following modules:
- OrderManager - receives incoming messages, modifies them if necessary to add required fields, and routes them to the appropriate recipients (such as exchanges, returning a confirmation back from the broker to the client, etc)
- FIX Adapter - receive incoming FIX messages from outside brokers or exchanges
- JMS Adapter - receive incoming orders, from Photon, OrderLoader, Excel or any other application that wants to send orders
Configuration
The OMS is setup to be configured using the Spring Framework according to the standards specified in the configuration file documentation. It loads the oms.xml, quickfixj.xml and order-modifiers.xml files from the conf/ directory.
$ runOMS.sh
FIX Adapter
The FIX Adapter creates a connection to the FIX source specified in the configuration file, and forwards the incoming messages to the OrderManager.
JMS Adapter
Similar to the FIX Adapter, the JMS Adapter receives messages placed on the JMS queue and forwards them to the OrderManager.
Message Flow through the OMS
The OrderManager receives incoming messages from either the JMS or FIX adapters, and evaluates them as follows:
- Each new incoming single order is immediately acknowledged with an Execution Report to allow order-entry clients to mark the orders as new.
- A series of specified order modifiers are applied. Currently, the default modifiers add the transaction time and date, and the appropriate FIX header and trailer fields, if they are not already present in the message.
- The default fields can modified in the configuration file.
- Incoming JMS orders (new orders) are translated to FIX orders and forwarded to the appropriate FIX destination, while an immediate Execution Report reply goes back on the JMS topic for the initial sender
- Incoming FIX messages (replies from brokers) are placed on the JMS topic to be picked up by the corresponding client that originally placed an order.
- OMS can be configured to store all the incoming and outgoing messages in a database (we are database agnostic, and any suitable database such as Oracale, MySQL or PostgreSQL can be used). The Execution Reports can later be examined through the Tradebase reporting tool.
JMX Integration
It is possible to do simple session management and check for connection status through the OMS. You can then use any JMX console (such as JConsole to monitor and modify the following (under the org.quickfixj section):
- Connector
- See the kind of connector (Initator for OMS), along with logged on status, remote address, FIX session id and name
- You can also stop the connector in the Operations tab
- Session
- See the Quickfix/J session parameters
- Modify various session attributes (shown in blue)
- Disconnect, logon, logoff and reset the session
- Default Session Settings
You can find additional information on JMX integration in the Quickfix/J JMX User documentation.
See the full screenshot view of JConsole, or the screenshot of how to start JConsole.Note that for JMX to work, you need to have the OMS process started with the -Dcom.sun.management.jmxremote flag (which it is by default).
The Tradebase
page also allows you to view the details of the OMS connection if the Tradebase is running on the same machine as Tradebase (such as on the Marketcetera virtual appliance.
