Esempio n. 1
0
        public void ClientCheckBusyTimeout()
        {
            const int timeout       = 1;
            var       shortTimeout1 = new SocketConnectionBuilder(Address, Port, Backlog, HeartBeatTimeOut);
            var       shortTimeout2 = new SocketConnectionBuilder(Address, Port, Backlog, HeartBeatTimeOut);
            var       con1          = CreateConnection(shortTimeout1, timeout);
            var       con2          = CreateConnection(shortTimeout2, timeout);

            const string sql = @"WITH RECURSIVE r(i) AS (
                  VALUES(0)
                  UNION ALL
                  SELECT i FROM r
                  LIMIT 25000000
                )
                SELECT i FROM r WHERE i = 1;";

            con1.Open();
            con2.Open();
            using (var command = new SQLiteServerCommand(sql, con2))
            {
                Assert.Throws <TimeoutException>(() => command.ExecuteNonQuery());
            }
            con2.Close();
            con1.Close();
        }
Esempio n. 2
0
        public void ClientZeroTimeoutNeverErrors()
        {
            const int timeout       = 0;
            var       shortTimeout1 = new SocketConnectionBuilder(Address, Port, Backlog, HeartBeatTimeOut);
            var       shortTimeout2 = new SocketConnectionBuilder(Address, Port, Backlog, HeartBeatTimeOut);
            var       con1          = CreateConnection(shortTimeout1, timeout);
            var       con2          = CreateConnection(shortTimeout2, timeout);

            const string sql = @"WITH RECURSIVE r(i) AS (
                  VALUES(0)
                  UNION ALL
                  SELECT i FROM r
                  LIMIT 25000000
                )
                SELECT i FROM r WHERE i = 1;";

            con1.Open();
            con2.Open();
            using (var command = new SQLiteServerCommand(sql, con2))
            {
                // even with no timeout, we should never get an error
                Assert.AreEqual(-1, command.ExecuteNonQuery());
            }
            con2.Close();
            con1.Close();
        }
Esempio n. 3
0
        protected SQLiteServerConnection CreateConnection(IConnectionBuilder connectionBuilder = null
                                                          , int?defaultTimeout = null,
                                                          string source        = null)
        {
            if (connectionBuilder == null)
            {
                connectionBuilder = new SocketConnectionBuilder(Address, Port, Backlog, HeartBeatTimeOut);
            }

            var connectionString = $"Data Source={source ?? _sources.First()}";

            if (defaultTimeout != null)
            {
                connectionString = $"{connectionString};Default Timeout={(int)defaultTimeout}";
            }
            var connection = new SQLiteServerConnection(connectionString, connectionBuilder);

            _connections.Add(connection);
            return(connection);
        }
Esempio n. 4
0
        public void ServerCheckLongDefaultTimeout()
        {
            const int timeout       = 60;
            var       shortTimeout1 = new SocketConnectionBuilder(Address, Port, Backlog, HeartBeatTimeOut);
            var       con1          = CreateConnection(shortTimeout1, timeout);

            const string sql = @"WITH RECURSIVE r(i) AS (
                  VALUES(0)
                  UNION ALL
                  SELECT i FROM r
                  LIMIT 25000000
                )
                SELECT i FROM r WHERE i = 1;";

            con1.Open();
            using (var command = new SQLiteServerCommand(sql, con1))
            {
                Assert.AreEqual(-1, command.ExecuteNonQuery());
            }
            con1.Close();
        }