public override DataTable GetSchema(string collection) { return(ConnectionPrimary?.State == ConnectionState.Open ? ConnectionPrimary.GetSchema(collection) : ConnectionSecondary?.State == ConnectionState.Open ? ConnectionSecondary.GetSchema(collection) : null); }
private void _tryOpenSecondary() { if (ConnectionSecondary == null) { return; } TimeSpan timeout = TimeSpan.FromSeconds(ConnectionSecondary.ConnectionTimeout); _idleTimeTimerSecondary = new Timer(_idleTimeTimerCallback, ConnectionSecondary, timeout, timeout); try { ConnectionSecondary.Open(); } catch { } }
public override void Close() { if (ConnectionPrimary != null) { lock (ConnectionPrimary) { _idleTimeTimerPrimary.Dispose(); _idleTimeTimerPrimary = null; ConnectionPrimary.Close(); ConnectionPrimary.StateChange -= _connection_StateChange; } } if (ConnectionSecondary != null) { lock (ConnectionSecondary) { _idleTimeTimerSecondary.Dispose(); _idleTimeTimerSecondary = null; ConnectionSecondary.Close(); ConnectionSecondary.StateChange -= _connection_StateChange; } } }