Я столкнулся с проблемой, которую не могу найти решение, возможно, кто-то может помочь.
Возможно ли динамически изменить соединение MySQL, используемое приложением, когда первое соединение недоступно для остановленного сервера?
У меня есть реплицированный сервер-клон, который следует запрашивать, когда первое соединение MySQL на главном сервере недоступно.
На каком языке программирования я могу получить это, если это возможно?
Я использую C # в ASPNET, Classic ASP и VBScript.
Заранее благодарен за любое предложение, очень признателен.
Редактировать # 01
string sql;
DataSet dsProducts = new DataSet();
public static OdbcConnection conn;
private static OdbcConnection _GetDataConnection()
{
string conn1 = ConfigurationManager.ConnectionStrings["ConnectionStr1"].ConnectionString;
string conn2 = ConfigurationManager.ConnectionStrings["ConnectionStr2"].ConnectionString;
conn = null;
try
{
conn = new OdbcConnection(conn1);
}
catch (OdbcException)
{
conn = new OdbcConnection(conn2);
}
HttpContext.Current.Response.Write(conn.DataSource.ToString() + "<br /><br />");
return conn;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
_GetDataConnection();
if (conn != null && conn.State == ConnectionState.Open)
{
conn.Close();
conn.Open();
}
ddl1.AppendDataBoundItems = true;
sql = @String.Format(" SELECT ES FROM `adoTable`; ");
using (conn)
{
using (OdbcCommand cmd =
new OdbcCommand(sql, conn))
{
try
{
cmd.CommandType = CommandType.Text;
cmd.Connection.Open();
using (OdbcDataAdapter sda =
new OdbcDataAdapter(cmd))
{
sda.Fill(dsProducts);
ddl1.DataSource = dsProducts.Tables[0];
ddl1.DataTextField = "ES";
ddl1.DataValueField = "ES";
ddl1.DataBind();
if (ddl1.Items.Count > 1)
{
ddl1.Enabled = true;
}
else
{
ddl1.Enabled = false;
}
}
}
catch (OdbcException)
{
cmd.Connection.Close();
cmd.Connection.Dispose();
}
}
}
}
}