diff --git a/core/db_connector.js b/core/db_connector.js index 9b5a28a..e0c7f48 100644 --- a/core/db_connector.js +++ b/core/db_connector.js @@ -9,8 +9,8 @@ const _ = require("lodash"); //Работа с массивами и объектами const EventEmitter = require("events"); //Обработчик пользовательских событий -const { ServerError } = require("../core/server_errors"); //Типовая ошибка -const { makeModuleFullPath, validateObject } = require("../core/utils"); //Вспомогательные функции +const { ServerError } = require("./server_errors"); //Типовая ошибка +const { makeModuleFullPath, validateObject } = require("./utils"); //Вспомогательные функции const prmsDBConnectorSchema = require("../models/prms_db_connector"); //Схемы валидации параметров функций модуля const intfDBConnectorModuleSchema = require("../models/intf_db_connector_module"); //Схема валидации интерфейса модуля взаимодействия с БД const objServicesSchema = require("../models/obj_services"); //Схема валидации списка сервисов @@ -21,7 +21,7 @@ const { SERR_MODULES_BAD_INTERFACE, SERR_OBJECT_BAD_INTERFACE, SERR_MODULES_NO_MODULE_SPECIFIED -} = require("../core/constants"); //Глобальные константы +} = require("./constants"); //Глобальные константы //---------- // Константы diff --git a/models/prms_db_connector.js b/models/prms_db_connector.js index 14e389d..b7599e6 100644 --- a/models/prms_db_connector.js +++ b/models/prms_db_connector.js @@ -22,10 +22,22 @@ const { NQUEUE_EXEC_STATE_ERR } = require("./obj_queue"); //Схемы валидации сообщения очереди обмена +//---------- +// Константы +//---------- + +//Признак инкремента количества попыток исполнения позиции очереди +NINC_EXEC_CNT_NO = 0; //Не инкрементировать +NINC_EXEC_CNT_YES = 1; //Инкрементировать + //------------------ // Интерфейс модуля //------------------ +//Константы +exports.NINC_EXEC_CNT_NO = NINC_EXEC_CNT_NO; +exports.NINC_EXEC_CNT_YES = NINC_EXEC_CNT_YES; + //Схема валидации параметров конструктора exports.DBConnector = new Schema({ //Параметры подключения к БД @@ -148,5 +160,17 @@ exports.setQueueState = new Schema({ type: "Сообщение обработчика (sExecMsg) имеет некорректный тип данных (ожидалось - String)", required: "Не указано сообщени обработчика (sExecMsg)" } + }, + //Флаг инкремента количества исполнений + nIncExecCnt: { + type: Number, + enum: [NINC_EXEC_CNT_NO, NINC_EXEC_CNT_YES], + required: false, + message: { + type: + "Флаг инкремента количества исполнений (nIncExecCnt) имеет некорректный тип данных (ожидалось - Number)", + enum: "Значение флага инкремента количества исполнений (nIncExecCnt) не поддерживается", + required: "Не указан флаг икремента количества исполнений (nIncExecCnt)" + } } }); diff --git a/modules/parus_oracle_db.js b/modules/parus_oracle_db.js index 76f6c89..ff22a7f 100644 --- a/modules/parus_oracle_db.js +++ b/modules/parus_oracle_db.js @@ -180,11 +180,12 @@ const putQueueIncoming = async prms => {}; const setQueueState = async prms => { try { let res = await prms.connection.execute( - "BEGIN PKG_EXS.QUEUE_EXEC_STATE_SET(NEXSQUEUE => :NEXSQUEUE, NEXEC_STATE => :NEXEC_STATE, SEXEC_MSG => :SEXEC_MSG, RCQUEUE => :RCQUEUE); END;", + "BEGIN PKG_EXS.QUEUE_EXEC_STATE_SET(NEXSQUEUE => :NEXSQUEUE, NEXEC_STATE => :NEXEC_STATE, SEXEC_MSG => :SEXEC_MSG, NINC_EXEC_CNT => :NINC_EXEC_CNT, RCQUEUE => :RCQUEUE); END;", { NEXSQUEUE: prms.nQueueId, NEXEC_STATE: prms.nExecState, SEXEC_MSG: prms.sExecMsg, + NINC_EXEC_CNT: prms.nIncExecCnt, RCQUEUE: { type: oracledb.CURSOR, dir: oracledb.BIND_OUT } }, {