Я использую node-mssql и подключаюсь к серверу sql 2017 года из docker.
Проблема
Во всем сценарии я поставил
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 из этого. Никаких кубиков!
Anyпомощь оценена!
Как выглядит dbRequest ()?
// the entire script is wrapped in an async function
var pool = new sql.ConnectionPool(sqlServerProperty);
await pool.connect();
var dbRequest = ( () => { return pool.request() });