in java/commons/src/main/java/com/epam/deltix/data/connectors/commons/TbMessageOutputFactory.java [58:108]
public CloseableMessageOutput create() {
TickDBClient tb = null;
TickLoader<InstrumentMessage> loader = null;
try {
tb = (TickDBClient) TickDBFactory.createFromUrl(tbUrl); // unchecked
tb.setTimeout(10_000);
tb.addDisconnectEventListener(new DisconnectEventListener() {
@Override
public void onDisconnected() {
throw new RuntimeException("No more reconnections for this connection");
}
@Override
public void onReconnected() {
}
});
tb.open(false);
final DXTickStream stream = getOrCreateStreamWithRetries(tb, GET_STREAM_RETRIES);
final LoadingOptions options = new LoadingOptions(false);
loader = stream.createLoader(options); // unchecked
final TickDBClient finalTb = tb;
final TickLoader<InstrumentMessage> finalLoader = loader;
return new CloseableMessageOutput() {
@Override
public void send(final InstrumentMessage message) {
finalLoader.send(message);
}
@Override
public void close() {
try {
finalLoader.flush();
} catch (final IOException e) {
throw new UncheckedIOException(e);
} finally {
Util.closeQuiet(finalLoader);
Util.closeQuiet(finalTb);
}
}
};
} catch (final Exception e) {
Util.closeQuiet(loader);
Util.closeQuiet(tb);
throw e;
}
}