Как проверить, что соединение было разорвано

Я использую драйвер JDBC для подключения к своей базе данных (созданной с помощью СУБД SQLBase компании Centura Gupta).

Выполняется без проблем (даже я проверил, что данные вставляются в мою базу).

Но затем я выполняю очень простой оператор SELECT и получаю эту ошибку:

TypeError: Cannot read property 'createStatement' of undefined
    at /var/apis/api.test/connections/sqlbase.dposs1.js:86:25
    at JDBC.Pool.reserve (/var/apis/api.test/node_modules/jdbc/lib/pool.js:192:5)
    at Object.getCenturaQuery (/var/apis/api.test/connections/sqlbase.dposs1.js:79:15)
    at Object.verificarPagos (/var/apis/api.test/app/bancos/bancos.model.js:146:20)
    at getFacturas (/var/apis/api.test/app/bancos/bancos.rutas.js:7:18)
    at Layer.handle [as handle_request] (/var/apis/api.test/node_modules/express/lib/router/layer.js:95:5)
    at next (/var/apis/api.test/node_modules/express/lib/router/route.js:131:13)
    at Route.dispatch (/var/apis/api.test/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/var/apis/api.test/node_modules/express/lib/router/layer.js:95:5)
    at /var/apis/api.test/node_modules/express/lib/router/index.js:277:22

Я думаю, что оператор выпуска не был выполнен должным образом.

Я использую этот код, который я видел здесь: https://www.npmjs.com/package/jdbc

myConnection.release(connObj, function(err) {
    if (err) {
        console.log(err.message);
    }
});

После выпуска у меня все еще есть этот объект подключения JSON (я думаю, что он больше не должен существовать, но он все еще существует):

{
    "uuid": "30271a1a-db99-4ff2-8b6a-5befcbe8fbb4",
    "conn": {
        "_conn": {
            "warnings": null
        },
        "_txniso": [
            "TRANSACTION_NONE",
            "TRANSACTION_READ_UNCOMMITTED",
            "TRANSACTION_READ_COMMITTED",
            null,
            "TRANSACTION_REPEATABLE_READ",
            null,
            null,
            null,
            "TRANSACTION_SERIALIZABLE"
        ]
    },
    "keepalive": false
}

Как я могу проверить, успешно ли было разорвано соединение перед выполнением оператора SELECT?

Я думаю, что проблема связана с этим объектом соединения JSON.

Может быть, это поможет: я разрабатываю JavaScript и NodeJS на стороне сервера.


person Roby Sottini    schedule 14.02.2017    source источник


Ответы (1)


Я не человек JavaScript, но я человек Gupta SQLBase, и логика подсказывает мне, что вы не можете запустить «Выбор», если вы освободили дескриптор ( соединение ). Обычно , используя собственный набор инструментов Гупты, вы должны выполнять действия в следующем порядке: 1) Подключить дескриптор 2) (Необязательно) установить для уровня изоляции значение «Снять блокировки» или «Читать зафиксировано 1, 2 или 3». 3) Запустите обновление, используя тот же дескриптор 4) Выполните фиксацию, используя тот же дескриптор 5) Запустите Выберите, используя тот же дескриптор 6) (необязательно) Отпустите дескриптор (или используйте его повторно)

извините, если я неправильно понял, как работает JavaScript - могу только посоветовать, как работает Гупта.

person Steve Leighton    schedule 15.02.2017