4

node-mssqlパッケージを使用して、Node.jsで API エンドポイントを作成しています。

パッケージのウェブサイトではあまり説明されていないため、パッケージが接続プールをどのように処理するのか疑問に思っています。

プールを最大 10 にできるようにするために、私の構成には次のものがあります。

var config = {
  server: '',
  user: '',
  password: '',
  database: '',
  pool: {
    max: 10,
    min: 0,
    idleTimeoutMillis: 30000
  }
}

これらの行を各リクエストに追加したので、Node コンソールで何が起こっているかを確認できます...

// Dump info about connection pool
console.log('SQL Pool - waitingClientsCount: ' + connection.pool.waitingClientsCount())
console.log('SQL Pool - getPoolSize: ' + connection.pool.getPoolSize())
console.log('SQL Pool - availableObjectsCount: ' + connection.pool.availableObjectsCount())

ブラウザでエンドポイントに移動し、更新を数分間保持しました。ノードコンソールでは、上記のすべての出力は次のようになります...

SQL Pool - waitingClientsCount: 0
SQL Pool - getPoolSize: 1
SQL Pool - availableObjectsCount: 0

これらすべてのリクエストでプールサイズが増加することを期待していました。

プールは負荷に基づいて自動的に構成されますか、それとも何か誤解していますか?

編集:パッケージは、見た目からTediousドライバーを使用しています。

4

1 に答える 1

5

GitHub のプロジェクトの問題トラッカーで答えを見つけました: https://github.com/patriksimek/node-mssql/issues/118#issuecomment-92522160

答えは...

Clarkey、IIRCのデフォルトのプールサイズは10です。リクエストが十分に速く返された場合...最初の接続は単に再利用されます...本当にテストしたい場合に包囲のようなものを使用する場合. また、接続は 30 秒または 60 秒ほど開いたままになります。

于 2015-06-03T14:11:36.617 に答える