La función de API switchover permite realizar operaciones de conmutación.
Con escenarios de alta disponibilidad y de todo el sistema, se pueden realizar operaciones de conmutación a cualquier servidor réplica. Cuando desee cambiar a servidores réplica que no dispongan de ninguna conmutación por error, llame a la API execute_action antes de llamar a la API de conmutación.
Nota: La API execute_action se describe en los ejemplos.
Argumentos
La función de API switchover incluye los argumentos descritos en la tabla siguiente:
Nombre |
Tipo |
Descripción |
---|---|---|
session_id |
uint |
El ID de sesión que se ha devuelto llamando a la API create_session. |
scenario_id |
uint |
El ID de escenario para el cual desea realizar las operaciones de conmutación. |
execute_sync |
bool |
Regula si debe llamarse a esta API sincrónica o asincrónicamente. |
run_reverse_scenario |
bool |
Ejecute o no ejecute el escenario inverso después de que se produzca la operación de conmutación. |
err_message |
out string |
Contiene el motivo del error cuando se produce un error en esta API. |
Valores de retorno
El tipo de valor de retorno es booleano. Cuando el valor de retorno es verdadero, la API finalizará correctamente. Cuando el valor de retorno es falso, la API no finaliza correctamente. Si el valor de retorno es falso, revise el mensaje para determinar el motivo por el cual la API es errónea.
Ejemplos
Ejemplo 1
public bool switchover_example() { try { uint scenario_id = _ha_scenario_id; string err_messages = ""; bool execute_sync = true; bool run_reverse_scenario = false; return get_mng().switchover(_session_id, scenario_id, execute_sync, run_reverse_scenario, out err_messages); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); } return false; }
Ejemplo 2
public bool switchover_2nd_example() { try { set_xcmd_data("switchover", "switchover_index","3" ); uint scenario_id = _ha_scenario_id; string err_messages = ""; bool execute_sync = true; bool run_reverse_scenario = false; return get_mng().switchover(_session_id, scenario_id, execute_sync, run_reverse_scenario, out err_messages); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); } return false; }
Ejemplo 3
De forma predeterminada, Replication y High Availability realiza operaciones de conmutación en la conmutación por error predeterminada y en los servidores réplica. Con los escenarios de alta disponibilidad y de todo el sistema, se puede cambiar a los servidores réplica que no dispongan de ninguna conmutación por error. Sin embargo, cuando desee cambiar a los servidores que no dispongan de ninguna conmutación por error mediante la API de conmutación, llame a la API execute_action antes de llamar a la API de conmutación, tal y como aparece en el ejemplo siguiente:
set_xcmd_data("switchover", "switchover_index","3" ); public bool set_xcmd_data(string cmd_name_str,string cmd_data_str,string cmd_value_str) { try { string result_data = ""; string action_data; XmlDocument doc = new XmlDocument(); XmlNode actions = doc.CreateNode(XmlNodeType.Element, xomngapi.WANSync_c.xo_actions, ""); XmlNode commonNode = doc.CreateNode(XmlNodeType.Element, xomngapi.WANSync_c.action_common_lab, ""); XmlAttribute attrSession = doc.CreateAttribute(xomngapi.WANSync_c.action_com_session_id); XmlAttribute attrScenario = doc.CreateAttribute(xomngapi.WANSync_c.action_com_scenario_id); XmlAttribute attrHostindex = doc.CreateAttribute(xomngapi.WANSync_c.action_com_host_index); XmlAttribute attrUsedfor = doc.CreateAttribute(xomngapi.WANSync_c.action_used_for); attrSession.Value = xomngapi.WANSync_c.WANSync.session_id.ToString(); attrScenario.Value = this.id.ToString(); attrUsedfor.Value = xomngapi.WANSync_c.action_x_command_data; commonNode.Attributes.Append(attrSession); commonNode.Attributes.Append(attrScenario); commonNode.Attributes.Append(attrHostindex); commonNode.Attributes.Append(attrUsedfor); XmlNode xo_cmd = doc.CreateNode(XmlNodeType.Element, xomngapi.WANSync_c.xo_cmd, ""); XmlAttribute cmd_name = doc.CreateAttribute(xomngapi.WANSync_c.action_cmd_name); XmlAttribute cmd_data = doc.CreateAttribute(xomngapi.WANSync_c.action_cmd_data); XmlAttribute cmd_value = doc.CreateAttribute(xomngapi.WANSync_c.action_cmd_value); cmd_name.Value = cmd_name_str; cmd_data.Value = cmd_data_str; cmd_value.Value = cmd_value_str; xo_cmd.Attributes.Append(cmd_name); xo_cmd.Attributes.Append(cmd_data); xo_cmd.Attributes.Append(cmd_value); actions.AppendChild(commonNode); commonNode.AppendChild(xo_cmd); doc.AppendChild(actions); action_data = doc.OuterXml; string error; return get_mng().execute_action(action_data, true, out result_data, out error); } catch (System.Exception) { return false; }
Copyright © 2015 Arcserve.
Todos los derechos reservados.
|
|