MC2 can be restarted with a SOAP request or by sending an RTR to eagle_ml-2-0_extract_service_control_message stream execution.
This feature is available starting with July 2019 version of MC2.
Restarting using a SOAP request on IIS (authenticated)
Only the super users can restart MC2 with an authenticated SOAP request. The following command can be used to restart MC2:
curl --user username:password --header "commandType:restartmc2" --header "commandValue:all" --header "SOAPAction:/EagleMLWebService/RunTaskRequestSync" --data-binary @RTR_RESTARTMC2.xml https://frontendserver/EagleMLWebService30 -o restartMC2.txt
The following HTTP headers are required:
SOAPAction:/EagleMLWebService/RunTaskRequestSync - for SOAP request;
commandType:restartmc2
commandValue:[all] or [current]
where RTR_RESTARTMC2.xml is:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <runTaskRequest xmlns="http://www.eagleinvsys.com/2011/wsdl/EagleML-2-0"> <EagleML xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0" eaglemlVersion="2-0" xsi:schemaLocation="http://www.eagleinvsys.com/2011/EagleML-2-0 eagleml-main-2-0.xsd" eaglemlType="RunTaskRequest"> <header> <messageId>541C2B1B66833C6C</messageId> <sentBy>http://www.client.com/user</sentBy> <sendTo>http://www.eagleinvsys.com/eagle_ml-2-0_default_cm_wrkfl_listener</sendTo> </header> <taskIdentifier> <correlationId correlationIdScheme="correlationIdScheme">{GUID}</correlationId> <businessTaskId correlationIdScheme="businessTaskIdScheme">541C2B1B66833C6C</businessTaskId> </taskIdentifier> <taskParameters> <taskParameter> <name>FeedType</name> <dataType>S</dataType> <value>RESTART</value> </taskParameter> <taskParameter> <name>ActionType</name> <dataType>S</dataType> <value>EXECUTE</value> </taskParameter> <taskParameter> <name>commandType</name> <dataType>S</dataType> <value>restartmc2</value> </taskParameter> <taskParameter> <name>commandValue</name> <dataType>S</dataType> <value>all</value> </taskParameter> </taskParameters> </EagleML> </runTaskRequest> </s:Body> </s:Envelope>
Restarting with a SOAP request to MC2 (not authenticated)
The same rules apply for a backend server except small difference in request:
curl --header "commandType:restartmc2" --header "commandValue:all" --header "SOAPAction: /EagleMLWebService/RunTaskRequestSync" --data-binary @RTR_RESTARTMC2.xml http://backendserver:20421/services/eagle/v2/EagleMLWebService20 -o restartMC2.txt
where 20421 is default SOAP port number (system.xml baseport + 201).
Restarting using the eagle_ml-2-0_extract_service_control_message Message Center stream
Restarting using MCC:
Send RTR_RESTARTMC2.xml file to stream execution by clicking on Send Data in MCC:
Restarting using incoming folder:
Copy RTR_RESTARTMC2.xml file to the incoming folder by the next path on backend server:
[TPE_FOLDER]/data/msgcenter/in/XML/eagle_ml-2-0_extract_service_control_message/incoming
where TPE_FOLDER is the path to the tpe folder.
Configuration
To enable/disable restart MC2 camel route restartmc2 property is used in eagle/estar/tpe/cfg/eaglemc2s/extractservice/application.yml:
eagle:
enable:
restartmc2: true
By default the MC2 restart is enabled.
Restart MC2 command starts after defined delay (default 90 seconds):
eagle:
restartmc2:
restartdelay: 90
When restart requests go through IIS server then only admin users can restart MC2
but there is also denyemptyusername property available which allows not authenticated users to make requests directly to LB,
see more info here: