diff --git a/quickfixj-core/src/main/java/org/quickfixj/jmx/mbean/connector/ConnectorAdmin.java b/quickfixj-core/src/main/java/org/quickfixj/jmx/mbean/connector/ConnectorAdmin.java index a9ed58971d..0cd022023b 100644 --- a/quickfixj-core/src/main/java/org/quickfixj/jmx/mbean/connector/ConnectorAdmin.java +++ b/quickfixj-core/src/main/java/org/quickfixj/jmx/mbean/connector/ConnectorAdmin.java @@ -25,8 +25,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import quickfix.Acceptor; +import quickfix.ConfigError; import quickfix.Connector; import quickfix.Initiator; +import quickfix.RuntimeError; import quickfix.Session; import quickfix.SessionID; import quickfix.SessionSettings; @@ -142,6 +144,15 @@ private ObjectName[] toObjectNameArray(List sessions) { return sessions.toArray(new ObjectName[sessions.size()]); } + public void start() throws IOException { + log.info("JMX operation: start {} {}", getRole(), this); + try { + connector.start(); + } catch (ConfigError | RuntimeError e) { + throw JmxSupport.toIOException(e); + } + } + public void stop(boolean force) { log.info("JMX operation: stop {} {}", getRole(), this); connector.stop(force); diff --git a/quickfixj-core/src/main/java/org/quickfixj/jmx/mbean/connector/ConnectorAdminMBean.java b/quickfixj-core/src/main/java/org/quickfixj/jmx/mbean/connector/ConnectorAdminMBean.java index 402831bf67..0e119b37f0 100644 --- a/quickfixj-core/src/main/java/org/quickfixj/jmx/mbean/connector/ConnectorAdminMBean.java +++ b/quickfixj-core/src/main/java/org/quickfixj/jmx/mbean/connector/ConnectorAdminMBean.java @@ -30,6 +30,13 @@ public interface ConnectorAdminMBean { */ String getRole() throws IOException; + /** + * Start the connector. + * + * @throws IOException if there is a problem starting the connector + */ + void start() throws IOException; + /** * Stop the connector. *