Skip to content

Commit 936b5a4

Browse files
author
Georgii Petrov
committed
[config] Set dameng, oracle and mssql databases connectors timeouts to limited values
1 parent c1553c0 commit 936b5a4

File tree

2 files changed

+27
-9
lines changed

2 files changed

+27
-9
lines changed

Common/config/default.json

+11-2
Original file line numberDiff line numberDiff line change
@@ -186,14 +186,23 @@
186186
"damengExtraOptions": {
187187
"columnNameUpperCase": false,
188188
"columnNameCase": "lower",
189+
"connectTimeout": 60000,
189190
"loginEncrypt": false,
190-
"localTimezone": 0
191+
"localTimezone": 0,
192+
"poolTimeout": 60,
193+
"socketTimeout": 60000,
194+
"queueTimeout": 60000
195+
},
196+
"oracleExtraOptions": {
197+
"connectTimeout": 60
191198
},
192-
"oracleExtraOptions": {},
193199
"msSqlExtraOptions": {
194200
"options": {
195201
"encrypt": false,
196202
"trustServerCertificate": true
203+
},
204+
"pool": {
205+
"idleTimeoutMillis": 3000
197206
}
198207
}
199208
},

DocService/sources/databaseConnectors/mssqlConnector.js

+16-7
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232

3333
'use strict';
3434

35-
const sql = require("mssql");
35+
const sql = require('mssql');
3636
const config = require('config');
3737
const connectorUtilities = require('./connectorUtilities');
3838
const utils = require('../../../Common/sources/utils');
@@ -50,12 +50,21 @@ const connectionConfiguration = {
5050
database: configSql.get('dbName'),
5151
pool: {
5252
max: configSql.get('connectionlimit'),
53-
min: 0,
54-
idleTimeoutMillis: 30000
53+
min: 0
5554
}
5655
};
5756
const additionalOptions = configSql.get('msSqlExtraOptions');
58-
const configuration = Object.assign({}, connectionConfiguration, additionalOptions);
57+
58+
const mergedObjects = {};
59+
for (const option in additionalOptions) {
60+
if (connectionConfiguration.hasOwnProperty(option) && typeof connectionConfiguration[option] === 'object') {
61+
mergedObjects[option] = Object.assign({}, connectionConfiguration[option], additionalOptions[option]);
62+
} else {
63+
mergedObjects[option] = additionalOptions[option];
64+
}
65+
}
66+
67+
const configuration = Object.assign({}, connectionConfiguration, mergedObjects);
5968

6069
const placeholderPrefix = 'ph_';
6170

@@ -72,15 +81,15 @@ function errorHandle(message, error, ctx) {
7281
function dataType(value) {
7382
let type = sql.TYPES.NChar(1);
7483
switch (typeof value) {
75-
case "number": {
84+
case 'number': {
7685
type = sql.TYPES.Decimal(18, 0);
7786
break;
7887
}
79-
case "string": {
88+
case 'string': {
8089
type = sql.TYPES.NVarChar(sql.MAX);
8190
break;
8291
}
83-
case "object": {
92+
case 'object': {
8493
if (value instanceof Date) {
8594
type = sql.TYPES.DateTime();
8695
}

0 commit comments

Comments
 (0)