Я использую node-mssql и подключаюсь к SQL-серверу 2017 года из докера.
Проблема
В моем сценарии я помещал
var test = await dbRequest().batch("SELECT * FROM #myTestTable");
Периодически выдает ошибку RequestError: Invalid object name '#myTempTable'
. Поэтому я поставил несколько часов на свой sql.ConnectionPool, чтобы определить, какие условия вызывают ошибку. Оказывается, в большинстве строк выполнения переменная pool.pool.available равна 1, как показано ниже.
Всякий раз, когда возникает ошибка, непосредственно перед переходом к следующей строке, pool.pool.available будет равен 0:
Если это происходит непосредственно перед запуском var test = await dbRequest().batch("SELECT * FROM #myTestTable");
Это не удастся с RequestError: Invalid object name '#myTempTable'
Что я пробовал
Я пытался отправить конфигурацию пула в Tedious с помощью {min: 100, max: 1000, log: true}
, но, к сожалению, она была проигнорирована (https://www.npmjs.com/package/mssql#connection-pools)
var sqlServerProperty = {
user: '',
password: '',
server: '192.168.1.13',
database: 'CCTDB',
pool: {min: 1,
max: 100,
idleTimeoutMillis: 30000}
};
Я также пробовал только один pool.request() и запускал из него все dbRequests. Нет кости!
Любая помощь приветствуется!
Как выглядит dbRequest()?
// the entire script is wrapped in an async function
var pool = new sql.ConnectionPool(sqlServerProperty);
await pool.connect();
var dbRequest = ( () => { return pool.request() });