diff --git a/packages/basic.gblib/services/GBVMService.ts b/packages/basic.gblib/services/GBVMService.ts index 4dd43cde..b3b0c987 100644 --- a/packages/basic.gblib/services/GBVMService.ts +++ b/packages/basic.gblib/services/GBVMService.ts @@ -314,7 +314,7 @@ export class GBVMService extends GBService { const sequelizeOptions = { define: { charset: 'utf8', - collate: 'utf8_general_ci', + collate: 'utf8_general_ci', freezeTableName: true, timestamps: false }, @@ -326,7 +326,8 @@ export class GBVMService extends GBService { dialectOptions: { options: { trustServerCertificate: true, - encrypt: encrypt + encrypt: encrypt, + requestTimeout: 120 * 1000 } }, pool: { diff --git a/packages/basic.gblib/services/SystemKeywords.ts b/packages/basic.gblib/services/SystemKeywords.ts index 038623b2..9baad92c 100644 --- a/packages/basic.gblib/services/SystemKeywords.ts +++ b/packages/basic.gblib/services/SystemKeywords.ts @@ -659,7 +659,7 @@ export class SystemKeywords { */ public async saveToStorageBatch({ pid, table, rows }): Promise { const { min } = await DialogKeywords.getProcessInfo(pid); - GBLog.info(`BASIC: Saving to storage '${table}' (SAVE).`); + GBLog.info(`BASIC: Saving batch to storage '${table}' (SAVE).`); const definition = this.getTableFromName(table, min); @@ -2056,7 +2056,16 @@ export class SystemKeywords { header = Object.keys(t.fieldRawAttributesMap); if (!this.cachedMerge[pid][file]) { - rows = await t.findAll({}); + await retry( + async (bail) => { + rows = await t.findAll({}); + }, + { + retries: 5, + onRetry: (err) => { GBLog.error(`MERGE: Retrying SELECT ALL on table: ${err.message}.`); } + } + ); + } else { rows = this.cachedMerge[pid][file];