Programming Guide
- Programming Guide
- Introduction
- Supported Eurex T7 Release
- Typical Usage
- Settings
- Initialization
- Connection Establishment
- User Logon
- Sending Messages
- User Logout
- Connection Termination
- Shutdown
- Performance Tuning
- Message Observability
- Retransmission
- Message Thread Safety
- Error and Warning Listeners
- Incoming Message Event Listeners
Introduction
Onix Solutions Eurex ETI Handler is a Java library that provides access to the Eurex ETI service. The Eurex Enhanced Trading Interface is a system that provides the necessary functionality to effectively trade and post markets with Eurex trading systems and provides users with the basic information suitable for formulating trading decisions. The Eurex ETI API allows third parties to develop their own applications that use the Eurex system.
Below are the key features of the Eurex ETI Handler:
- Full access to the Eurex ETI functionality
- Easy-to-use API
It's highly recommended to read the “Eurex Enhanced Trading Interface - Manual Simulation” document before reading this guide to get familiar with the core aspects of Eurex ETI service. It's also highly recommended to review the source code of the sample project, which comes as part of the library's distributive package alongside reading this guide.
It's also important to become familiar with the concept of message identification. Each ETI message is identified by a unique template ID, represented by the biz.onixs.eurex.eti.handler.message.value.TemplateId enum. Understanding how messages are identified is essential for correctly handling incoming messages and constructing outgoing ones.
Supported Eurex T7 Release
OnixS Eurex T7 ETI Trading Handler supports Enhanced Trading Interface Derivatives Message Reference Release 14.1.
Typical Usage
The typical way of using the handler follows.
- Adjust handler settings.
- Initialize the handler.
- Register error and warning listeners.
- Register listeners for incoming messages.
- Establish the connection.
- Make user logon request.
- Start sending messages.
- Make user logout request.
- Terminate the connection.
- Shutdown the handler.
Here is a small example of how to get started with the Handler:
final HandlerSettings settings = new HandlerSettings();
settings.getConnectionSettings().setRemoteAddress("localhost", 10000);
final Handler handler = new Handler();
handler.init(settings);
handler.setErrorListener(this);
handler.setWarningListener(this);
final LogonRequest logonRequest = new LogonRequest();
logonRequest.setDefaultCstmApplVerId(Handler.getDefaultCstmApplVerId());
// setting other logon request fields
handler.connect(logonRequest);
final UserLoginRequest userLoginRequest = new UserLoginRequest();
// setting user login request fields
handler.send(userLoginRequest);
final NewOrderRequest newOrderRequest = new NewOrderRequest();
// setting order fields
handler.send(newOrderRequest);
final UserLogoutRequest userLogoutRequest = new UserLogoutRequest();
// setting user logout request fields
handler.send(userLogoutRequest);
handler.disconnect();
handler.shutdown();
Settings
Settings can be configured programmatically (via API) or via a properties file.
Programmatic Configuration
Any available option can be set via API.
final HandlerSettings settings = new HandlerSettings();
settings.getConnectionSettings().setRemoteAddress("localhost", 10000);
Properties File Configuration
Settings can be loaded from the properties file:
final HandlerSettings settings = new HandlerSettings();
settings.init("site/handler.properties");
The sample properties file follows. Not all available options are mentioned.
Host = 193.29.89.65
Port = 19508
SslEnabled = true
Timeout = 5
RSAKeyPath = /path/to/eurex-public-key.pem
HeartbeatInterval = 30000
ReconnectionSettings.Number = 3
ReconnectionSettings.Interval = 30
Property List
The configuration parameter (key) is case-sensitive. The list of available parameters follows.
| Property Name | Type | Default Value | Description |
|---|---|---|---|
| Host | String | Sets the remote host to connect to. | |
| Port | int | Sets the remote port to connect to. | |
| SslEnabled | boolean | false | Enables TLS/SSL for the connection. |
| Timeout | int | 1 | Sets the connect/disconnect timeout in seconds. |
| RSAKeyPath | String | Sets the path to the RSA public key file used for encrypted password (see LogonRequestEncrypted). | |
| LicenseFile | String | “OnixS.lic” | Sets the license file. |
| LicenseDirectory | String | “.” | Sets the license directory. |
| LicenseContent | String | Sets the license file content explicitly. | |
| ReconnectionSettings.Number | int | 3 | Number of retries per connection attempt run. The handler makes Number + 1 total attempts (1 initial + Number retries). Set to 0 to disable automatic reconnection. |
| ReconnectionSettings.Interval | int | 30 | Seconds to wait between failed connection attempts within a single reconnect run. |
| HeartbeatInterval | int | 30000 | Sets the heartbeat interval in milliseconds. Allowed values are from 100 till 60000. |
| ReasonableTransmissionTime | int | 20 | Sets the reasonable transmission time as a percentage of the heartbeat interval. Used to compute the socket read timeout: HeartbeatInterval + HeartbeatInterval × RTT / 100. |
| LocalAddress.Host | String | Sets the local host to use for connection. | |
| LocalAddress.Port | int | Sets the local port to use for connection. | |
| AddressMapping.N.From.Host | String | Source host of the Nth address mapping rule (N starts at 1). | |
| AddressMapping.N.From.Port | int | Source port of the Nth address mapping rule. | |
| AddressMapping.N.To.Host | String | Target host of the Nth address mapping rule. | |
| AddressMapping.N.To.Port | int | Target port of the Nth address mapping rule. |
Initialization
The handler is initialized with the settings.
// Handler initialization
handler = new Handler();
handler.init(settings);
Connection Establishment
For connection establishment, do the following.
LogonRequest logonRequest = new LogonRequest();
logonRequest.setDefaultCstmApplVerId(Handler.getDefaultCstmApplVerId());
// fill `logonRequest` with other credentials
handler.connect(logonRequest);
Address Mapping and Failover
The handler does not implement gateway failover directly. Instead, it provides an biz.onixs.eurex.eti.handler.core.AddressMapping mechanism that transparently redirects a configured address to a different physical endpoint at connect time.
Mappings can be added programmatically via biz.onixs.eurex.eti.handler.core.ConnectionSettings.addAddressMapping(String, int, String, int):
settings.getConnectionSettings().addAddressMapping(
"10.8.0.1", 19542,
"10.8.0.1", 19547);
Alternatively, mappings can be defined in the properties file using the AddressMapping.N.*
keys listed in the Property List:
AddressMapping.1.From.Host = 10.8.0.1
AddressMapping.1.From.Port = 19542
AddressMapping.1.To.Host = 10.8.0.1
AddressMapping.1.To.Port = 19547
User Logon
To do user logon create the corresponding message object, set the field values and send it.
final UserLoginRequest userLoginRequest = new UserLoginRequest();
userLoginRequest.setUsername(111);
userLoginRequest.setPassword("password");
handler.send(userLoginRequest);
Sending Messages
To send application level message create the message object, set the field values and send it.
final NewOrderRequest newOrderRequest = new NewOrderRequest();
// setting order fields
handler.send(newOrderRequest);
User Logout
To do user logout create the corresponding message object, set the fields values and send it.
final UserLogoutRequest userLogoutRequest = new UserLogoutRequest();
userLogoutRequest.setUsername(111);
handler.send(userLogoutRequest);
Connection Termination
For connection termination, do the following.
handler.disconnect();
Automatic Disconnection
The handler automatically terminates the session in the following cases:
- Remote close (EOF) — the exchange closes the TCP connection; the inbound stream signals end-of-stream and the receiver exits cleanly.
- I/O error — any unrecoverable exception on the receive path triggers an immediate disconnect.
- Unexpected logoff — a
LogoutResponsereceived from the exchange stops the session cleanly.
Note on heartbeat timeout: a socket read timeout (derived from HeartbeatInterval and
ReasonableTransmissionTime) is used only as an anti-hang guard on the read loop and does not
close the connection by itself. Only an actual TCP close or hard I/O error triggers a disconnect.
Reconnection
Reconnection behavior is controlled via biz.onixs.eurex.eti.handler.core.ReconnectionSettings, configured as part of biz.onixs.eurex.eti.handler.core.HandlerSettings.
When ReconnectionSettings.Number > 0 and an unexpected connection loss is detected, the handler:
- Performs a clean disconnect:
CONNECTED → DISCONNECTING → DISCONNECTED. - Resets the outbound
MsgSeqNumto 1 (a fresh session is started on each reconnect). - Makes up to
Number + 1total connection attempts (1 initial attempt plus up toNumberretries), waitingIntervalseconds between failed attempts (default: 3 retries, 30 s apart).
If all attempts fail the handler stays DISCONNECTED. If a later reconnect succeeds and the
connection is lost again, the same cycle repeats with a fresh attempt budget. There is no cumulative
cap on reconnect cycles. Set ReconnectionSettings.Number = 0 to disable automatic reconnection.
The relevant properties are listed in the Property List.
State Monitoring
Implement the biz.onixs.eurex.eti.handler.core.event.HandlerStateListener interface and register it via biz.onixs.eurex.eti.handler.core.Handler.setHandlerStateListener(HandlerStateListener) to be notified of every state transition.
handler.setHandlerStateListener(new MyHandlerStateListener());
public class MyHandlerStateListener implements HandlerStateListener {
private static final Logger LOG = LoggerFactory.getLogger(MyHandlerStateListener.class);
public void onStateChange(HandlerState oldState, HandlerState newState) {
LOG.info("Handler state changed: {} -> {}", oldState, newState);
}
}
The handler moves through the following states: NOT_INITED → DISCONNECTED → CONNECTING → CONNECTED → DISCONNECTING → DISCONNECTED.
Each individual reconnect attempt produces its own observable state-transition pair. With
ReconnectionSettings.Number = N and all attempts failing after an unexpected drop:
DISCONNECTED → CONNECTING → CONNECTED initial logon succeeded
CONNECTED → DISCONNECTING → DISCONNECTED unexpected drop detected
DISCONNECTED → CONNECTING → DISCONNECTED reconnect attempt 1 of N+1 failed
...
DISCONNECTED → CONNECTING → DISCONNECTED reconnect attempt N+1 of N+1 failed
The number of CONNECTING → DISCONNECTED transitions equals the number of failed attempts.
If a reconnect attempt succeeds the last pair becomes DISCONNECTED → CONNECTING → CONNECTED
and the handler resumes normal operation.
End-of-Day
The handler does not perform end-of-day cleanup automatically. The exchange signals the end of the
trading session via a biz.onixs.eurex.eti.handler.message.TradingSessionStatusBroadcast message
with tradSesEvent equal to TradSesEvent.END_OF_DAY_SERVICE, delivered to the biz.onixs.eurex.eti.handler.core.event.OtherListener.onTradingSessionStatusBroadcast(TradingSessionStatusBroadcast) callback.
The application should react to this event by performing any required cleanup and calling disconnect().
Shutdown
// Handler shutdown
handler.shutdown();
Performance Tuning
The handler uses dedicated sender and receiver threads with non-blocking I/O (Netty). No built-in benchmarks are provided; performance characteristics depend on the deployment environment and workload.
Thread Affinity
To reduce CPU cache misses the sender and receiver threads can be pinned to specific cores via biz.onixs.eurex.eti.handler.core.HandlerSettings.setSendingThreadAffinity(int[]) and biz.onixs.eurex.eti.handler.core.HandlerSettings.setReceivingThreadAffinity(int[]). Pass an array of zero-based CPU indices:
settings.setSendingThreadAffinity(new int[]{0});
settings.setReceivingThreadAffinity(new int[]{1});
Message Observability
While the handler logs all messages internally for debugging purposes (see Logging), these logs are not intended as a programmatic observability interface. To intercept messages - for auditing, persistence, or custom processing - implement the following listener interfaces that fire for every message flowing through the session, regardless of message type.
Inbound Messages
Implement the biz.onixs.eurex.eti.handler.core.event.InboundMessageListener interface and register it via biz.onixs.eurex.eti.handler.core.Handler.setInboundMessageListener(InboundMessageListener) to receive a callback for every message received from the exchange.
handler.setInboundMessageListener(new MyInboundMessageListener());
public class MyInboundMessageListener implements InboundMessageListener {
private static final Logger LOG = LoggerFactory.getLogger(MyInboundMessageListener.class);
public void onInboundMessage(Message message) {
LOG.debug("Received {} seq={}: {}", message.getTemplateId(), message.getMsgSeqNum(), message);
}
}
Outbound Messages
Implement the biz.onixs.eurex.eti.handler.core.event.OutboundMessageListener interface and register it via biz.onixs.eurex.eti.handler.core.Handler.setOutboundMessageListener(OutboundMessageListener) to receive a callback for every message sent to the exchange.
handler.setOutboundMessageListener(new MyOutboundMessageListener());
public class MyOutboundMessageListener implements OutboundMessageListener {
private static final Logger LOG = LoggerFactory.getLogger(MyOutboundMessageListener.class);
public void onOutboundMessage(Message message) {
LOG.debug("Sent {} seq={}: {}", message.getTemplateId(), message.getMsgSeqNum(), message);
}
}
Persistence and Querying
The handler does not persist messages internally. The listener callbacks above are the integration point for application-level persistence: write messages to a database, append them to a file, or publish them to a message bus as the application requires.
Note that the Message object passed to onInboundMessage is reused across callbacks for
performance - see Message Thread Safety if you need to hold a
reference beyond the callback.
Retransmission
The handler does not automatically detect gaps in the inbound sequence. The application is
responsible for tracking received sequence numbers - available via Message.getMsgSeqNum() in the biz.onixs.eurex.eti.handler.core.event.InboundMessageListener callback -
and requesting retransmission when a gap is detected.
Requesting Retransmission
Use biz.onixs.eurex.eti.handler.message.RetransmitRequest to request
retransmission of a missed sequence range. Set the refApplId to identify the stream (e.g.
RefApplId.TRADE), the partitionId, and the begin/end sequence numbers of the gap.
void requestRetransmit(Handler handler, int partitionId, long firstMissing, long lastMissing) {
RetransmitRequest request = new RetransmitRequest();
request.setRefApplId(RefApplId.TRADE);
request.setPartitionId(partitionId);
request.setApplBegSeqNum(firstMissing);
request.setApplEndSeqNum(lastMissing);
handler.send(request);
}
For Matching Engine messages (order and quote events) use biz.onixs.eurex.eti.handler.message.RetransmitMEMessageRequest instead, which identifies the range by message ID rather than sequence number.
Handling the Response
The exchange acknowledges the request and begins retransmission. The acknowledgement is delivered to the biz.onixs.eurex.eti.handler.core.event.AdminListener callbacks:
- biz.onixs.eurex.eti.handler.core.event.AdminListener.onRetransmitResponse(RetransmitResponse) for broadcast stream retransmission
- biz.onixs.eurex.eti.handler.core.event.AdminListener.onRetransmitMEMessageResponse(RetransmitMEMessageResponse) for Matching Engine message retransmission
The retransmitted messages themselves arrive through the same typed listeners as regular inbound messages.
Message Thread Safety
Message Receiving
For each message type the Handler has a static object that is used for deserialization and calling a user code callback. This means that you can't use reference to the message from the callback and need to create your own copy if you want to process the message later in a separate thread.
Message Sending
The Handler uses message objects passed to send method even after the user returns control from this method. There is a queue to which the Handler adds these objects and until they are serialized to bytes and sent over the network the user should not make any changes to these objects.
Error and Warning Listeners
Error Listener
The handler uses exceptions to report errors that occurred while performing a certain action. For example, the handler will raise a regular exception to report the inability to find an actual license for the product. However, the handler processes data asynchronously; therefore, the handler is not able to report any further errors since the data processing is started. For this reason, the handler exposes the
biz.onixs.eurex.eti.handler.core.event.ErrorListener interface and the biz.onixs.eurex.eti.handler.core.Handler.setErrorListener(ErrorListener)method to subscribe to error events.
handler.setErrorListener(new MyErrorListener());
Once an instance of error listener is assigned to the handler, it will invoke the
biz.onixs.eurex.eti.handler.core.event.ErrorListener.onError(ErrorCode, String)method each time an error occurs.
public class MyErrorListener implements ErrorListener {
private static final Logger LOG = LoggerFactory.getLogger(MyErrorListener.class);
public void onError(ErrorCode errorCode, String description) {
LOG.error("onError(): errorCode={}, description={}", errorCode, description);
}
}
Warning Listener
Miscellaneous non-critical issues may occur while the handler is being executed. The handler will process such issues by itself; thus, no special steps are required for such cases. However, sometimes it's reasonable to be notified about such events. For this reason, the handler exposes the
biz.onixs.eurex.eti.handler.core.event.WarningListener interface and the biz.onixs.eurex.eti.handler.core.Handler.setWarningListener(WarningListener)method to subscribe to warning events.
handler.setWarningListener(new MyWarningListener());
When an instance of warning listener is assigned to the handler, it will invoke the
biz.onixs.eurex.eti.handler.core.event.WarningListener.onWarning(String)method each time a warning occurs.
public class MyWarningListener implements WarningListener {
private static final Logger LOG = LoggerFactory.getLogger(MyWarningListener.class);
public void onWarning(String description) {
LOG.warn("onWarning(): description={}", description);
}
}
Incoming Message Event Listeners
Once the handler is started, it listens to messages from the Eurex ETI message flow, processes it, and invokes client code for further processing.
The handler processes messages asynchronously and uses the concept of events and event listeners to notify client code about a particular occasion, like the reception of a message.
Administrative Message Events
To be notified about administrative message events, implement the
biz.onixs.eurex.eti.handler.core.event.AdminListener interface and register it via biz.onixs.eurex.eti.handler.core.Handler.setAdminListener(AdminListener).handler.setAdminListener(new MyAdminListener());
The sample interface implementation demonstrates available message events to receive.
public class MyAdminListener implements AdminListener {
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.Reject} message received.
* @param message message
*/
public void onReject(Reject message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.RetransmitMEMessageResponse} message received.
* @param message message
*/
public void onRetransmitMEMessageResponse(RetransmitMEMessageResponse message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.RetransmitResponse} message received.
* @param message message
*/
public void onRetransmitResponse(RetransmitResponse message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.SubscribeResponse} message received.
* @param message message
*/
public void onSubscribeResponse(SubscribeResponse message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.UnsubscribeResponse} message received.
* @param message message
*/
public void onUnsubscribeResponse(UnsubscribeResponse message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.UserLoginResponse} message received.
* @param message message
*/
public void onUserLoginResponse(UserLoginResponse message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.UserLogoutResponse} message received.
* @param message message
*/
public void onUserLogoutResponse(UserLogoutResponse message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.InquireSessionListResponse} message received.
* @param message message
*/
public void onInquireSessionListResponse(InquireSessionListResponse message) {
}
/**
* Notifies about the outgoing message.
* @param message message
*/
public void onOutboundMessage(Message message) {
}
/**
* Notifies about the inbound message.
* @param message message
*/
public void onInboundMessage(Message message) {
}
}
Order Handling Message Events
To be notified about order handling message events, implement the
biz.onixs.eurex.eti.handler.core.event.OrderHandlingListener interface and register it via biz.onixs.eurex.eti.handler.core.Handler.setOrderHandlingListener(OrderHandlingListener).handler.setOrderHandlingListener(new MyOrderHandlingListener());
The sample interface implementation demonstrates available message events to receive.
class MyOrderHandlingListener implements OrderHandlingListener {
/**
* * Notifies about {@link biz.onixs.eurex.eti.handler.message.DeleteAllOrderNRResponse} message received.
* @param message message
*/
public void onDeleteAllOrderNRResponse(DeleteAllOrderNRResponse message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.DeleteAllOrderBroadcast} message received.
* @param message message
*/
public void onDeleteAllOrderBroadcast(DeleteAllOrderBroadcast message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.DeleteAllOrderResponse} message received.
* @param message message
*/
public void onDeleteAllOrderResponse(DeleteAllOrderResponse message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.DeleteOrderBroadcast} message received.
* @param message message
*/
public void onDeleteOrderBroadcast(DeleteOrderBroadcast message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.DeleteOrderNRResponse} message received.
* @param message message
*/
public void onDeleteOrderNRResponse(DeleteOrderNRResponse message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.DeleteOrderResponse} message received.
* @param message message
*/
public void onDeleteOrderResponse(DeleteOrderResponse message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.ModifyOrderNRResponse} message received.
* @param message message
*/
public void onModifyOrderNRResponse(ModifyOrderNRResponse message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.ModifyOrderResponse} message received.
* @param message message
*/
public void onModifyOrderResponse(ModifyOrderResponse message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.NewOrderNRResponse} message received.
* @param message message
*/
public void onNewOrderNRResponse(NewOrderNRResponse message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.NewOrderResponse} message received.
* @param message message
*/
public void onNewOrderResponse(NewOrderResponse message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.MassOrderAck} message received.
* @param message message
*/
@Override
public void onMassOrderAck(MassOrderAck message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.OrderExecNotification} message received.
* @param message message
*/
public void onOrderExecNotification(OrderExecNotification message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.OrderExecReportBroadcast} message received.
* @param message message
*/
public void onOrderExecReportBroadcast(OrderExecReportBroadcast message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.OrderExecResponse} message received.
* @param message message
*/
public void onOrderExecResponse(OrderExecResponse message) {
}
}
Quote Handling Message Events
To be notified about quote handling message events, implement the
biz.onixs.eurex.eti.handler.core.event.QuoteHandlingListener interface and register it via biz.onixs.eurex.eti.handler.core.Handler.setQuoteHandlingListener(QuoteHandlingListener).handler.setQuoteHandlingListener(new MyQuoteHandlingListener());
The sample interface implementation demonstrates available message events to receive.
public class MyQuoteHandlingListener implements QuoteHandlingListener {
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.DeleteAllOrderQuoteEventBroadcast} message received.
* @param message message
*/
public void onDeleteAllOrderQuoteEventBroadcast(DeleteAllOrderQuoteEventBroadcast message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.DeleteAllQuoteBroadcast} message received.
* @param message message
*/
public void onDeleteAllQuoteBroadcast(DeleteAllQuoteBroadcast message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.DeleteAllQuoteResponse} message received.
* @param message message
*/
public void onDeleteAllQuoteResponse(DeleteAllQuoteResponse message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.InquireMMParameterRequest} message received.
* @param message message
*/
public void onInquireMMParameterRequest(InquireMMParameterRequest message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.InquireMMParameterResponse} message received.
* @param message message
*/
public void onInquireMMParameterResponse(InquireMMParameterResponse message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.MMParameterDefinitionResponse} message received.
* @param message message
*/
public void onMMParameterDefinitionResponse(MMParameterDefinitionResponse message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.MassQuoteResponse} message received.
* @param message message
*/
public void onMassQuoteResponse(MassQuoteResponse message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.QuoteActivationNotification} message received.
* @param message message
*/
public void onQuoteActivationNotification(QuoteActivationNotification message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.QuoteActivationResponse} message received.
* @param message message
*/
public void onQuoteActivationResponse(QuoteActivationResponse message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.QuoteExecutionReport} message received.
* @param message message
*/
public void onQuoteExecutionReport(QuoteExecutionReport message) {
}
}
Quote and Cross Request Message Events
To be notified about quote and cross request message events, implement the
biz.onixs.eurex.eti.handler.core.event.QuoteAndCrossRequestListener interface and register it via biz.onixs.eurex.eti.handler.core.Handler.setQuoteAndCrossRequestListener(QuoteAndCrossRequestListener).handler.setQuoteAndCrossRequestListener(new MyQuoteAndCrossRequestListener());
The sample interface implementation demonstrates available message events to receive.
public class MyQuoteAndCrossRequestListener implements QuoteAndCrossRequestListener {
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.CrossRequestResponse} message received.
* @param message message
*/
public void onCrossRequestResponse(CrossRequestResponse message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.RFQResponse} message received.
* @param message message
*/
public void onRFQResponse(RFQResponse message) {
}
}
Strategy Creation Message Events
To be notified about strategy creation message events, implement the
biz.onixs.eurex.eti.handler.core.event.StrategyCreationListener interface and register it via biz.onixs.eurex.eti.handler.core.Handler.setStrategyCreationListener(StrategyCreationListener).handler.setStrategyCreationListener(new MyStrategyCreationListener());
The sample interface implementation demonstrates available message events to receive.
public class MyStrategyCreationListener implements StrategyCreationListener {
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.AddComplexInstrumentResponse} message received.
* @param message message
*/
public void onAddComplexInstrumentResponse(AddComplexInstrumentResponse message) {
}
}
Other Message Events
To be notified about other message events, implement the
biz.onixs.eurex.eti.handler.core.event.OtherListener interface and register it via biz.onixs.eurex.eti.handler.core.Handler.setOtherListener(OtherListener).handler.setOtherListener(new MyOtherListener());
The sample interface implementation demonstrates available message events to receive.
public class MyOtherListener implements OtherListener {
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.BroadcastErrorNotification} message received.
* @param message message
*/
public void onBroadcastErrorNotification(BroadcastErrorNotification message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.NewsBroadcast} message received.
* @param message message
*/
public void onNewsBroadcast(NewsBroadcast message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.RiskNotificationBroadcast} message received.
* @param message message
*/
public void onRiskNotificationBroadcast(RiskNotificationBroadcast message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.LegalNotificationBroadcast} message received.
* @param message message
*/
public void onLegalNotificationBroadcast(LegalNotificationBroadcast message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.ServiceAvailabilityBroadcast} message received.
* @param message message
*/
public void onServiceAvailabilityBroadcast(ServiceAvailabilityBroadcast message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.TMTradingSessionStatusBroadcast} message received.
* @param message message
*/
public void onTMTradingSessionStatusBroadcast(TMTradingSessionStatusBroadcast message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.TradeBroadcast} message received.
* @param message message
*/
public void onTradeBroadcast(TradeBroadcast message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.TradingSessionStatusBroadcast} message received.
* @param message message
*/
public void onTradingSessionStatusBroadcast(TradingSessionStatusBroadcast message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.PartyEntitlementsUpdateReport} message received.
* @param message message
*/
public void onPartyEntitlementsUpdateReport(PartyEntitlementsUpdateReport message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.InquireMarginBasedRiskLimitResponse} message received.
* @param message message
*/
public void onInquireMarginBasedRiskLimitResponse(InquireMarginBasedRiskLimitResponse message) {
}
/**
* Notifies about {@link biz.onixs.eurex.eti.handler.message.UpdateRemainingRiskAllowanceBaseResponse} message received.
* @param message message
*/
public void onUpdateRemainingRiskAllowanceBaseResponse(UpdateRemainingRiskAllowanceBaseResponse message) {
}
}
Java Eurex ETI Handler