@bitblit/ratchet-rdbms 6.0.145-alpha → 6.0.146-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -8,6 +8,9 @@ export declare class RdsDataApiDatabaseAccess implements DatabaseAccess {
|
|
|
8
8
|
private cfg;
|
|
9
9
|
private _currentTransactionId;
|
|
10
10
|
constructor(client: RDSDataClient, cfg: RdsDataApiConnectionConfig);
|
|
11
|
+
private get maxWaitForResumingDatabase();
|
|
12
|
+
private get dbResumePingTimeMillis();
|
|
13
|
+
sendWithDatabaseWait(cmd: any): Promise<any>;
|
|
11
14
|
beginTransaction(): Promise<void>;
|
|
12
15
|
close(): Promise<boolean>;
|
|
13
16
|
commitTransaction(): Promise<void>;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { BeginTransactionCommand, CommitTransactionCommand, ExecuteStatementCommand, RollbackTransactionCommand } from "@aws-sdk/client-rds-data";
|
|
1
|
+
import { BeginTransactionCommand, CommitTransactionCommand, DatabaseResumingException, ExecuteStatementCommand, RollbackTransactionCommand } from "@aws-sdk/client-rds-data";
|
|
2
2
|
import { Logger } from "@bitblit/ratchet-common/logger/logger";
|
|
3
3
|
import SqlString from 'sqlstring';
|
|
4
|
+
import { PromiseRatchet } from "@bitblit/ratchet-common/lang/promise-ratchet";
|
|
5
|
+
import { ErrorRatchet } from "@bitblit/ratchet-common/lang/error-ratchet";
|
|
4
6
|
export class RdsDataApiDatabaseAccess {
|
|
5
7
|
client;
|
|
6
8
|
cfg;
|
|
@@ -9,8 +11,37 @@ export class RdsDataApiDatabaseAccess {
|
|
|
9
11
|
this.client = client;
|
|
10
12
|
this.cfg = cfg;
|
|
11
13
|
}
|
|
14
|
+
get maxWaitForResumingDatabase() {
|
|
15
|
+
return this?.cfg?.maximumWaitForDbResumeInMillis ?? 0;
|
|
16
|
+
}
|
|
17
|
+
get dbResumePingTimeMillis() {
|
|
18
|
+
return this?.cfg?.dbResumePingTimeMillis ?? 1_000;
|
|
19
|
+
}
|
|
20
|
+
async sendWithDatabaseWait(cmd) {
|
|
21
|
+
const startTime = Date.now();
|
|
22
|
+
let rval;
|
|
23
|
+
do {
|
|
24
|
+
try {
|
|
25
|
+
rval = await this.client.send(cmd);
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
if (err instanceof DatabaseResumingException) {
|
|
29
|
+
Logger.debug('Database was resuming - waiting %d ms before retry : %s', this.dbResumePingTimeMillis, err);
|
|
30
|
+
await PromiseRatchet.wait(this.dbResumePingTimeMillis);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
throw err;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
} while (!rval && Date.now() - startTime < this.maxWaitForResumingDatabase);
|
|
37
|
+
if (!rval) {
|
|
38
|
+
Logger.error('Timed out waiting for db to start');
|
|
39
|
+
throw ErrorRatchet.fErr('Timed out waiting for db to start');
|
|
40
|
+
}
|
|
41
|
+
return rval;
|
|
42
|
+
}
|
|
12
43
|
async beginTransaction() {
|
|
13
|
-
const tmp = await this.
|
|
44
|
+
const tmp = await this.sendWithDatabaseWait(new BeginTransactionCommand({ resourceArn: this.cfg.resourceArn, secretArn: this.cfg.secretArn }));
|
|
14
45
|
this._currentTransactionId = tmp.transactionId;
|
|
15
46
|
Logger.info('Started transaction %s', this._currentTransactionId);
|
|
16
47
|
}
|
|
@@ -23,7 +54,7 @@ export class RdsDataApiDatabaseAccess {
|
|
|
23
54
|
}
|
|
24
55
|
async commitTransaction() {
|
|
25
56
|
if (this._currentTransactionId) {
|
|
26
|
-
const out = await this.
|
|
57
|
+
const out = await this.sendWithDatabaseWait(new CommitTransactionCommand({ resourceArn: this.cfg.resourceArn, secretArn: this.cfg.secretArn, transactionId: this._currentTransactionId }));
|
|
27
58
|
Logger.info('Commit transaction %s returned %j', this._currentTransactionId, out);
|
|
28
59
|
this._currentTransactionId = null;
|
|
29
60
|
}
|
|
@@ -37,7 +68,7 @@ export class RdsDataApiDatabaseAccess {
|
|
|
37
68
|
}
|
|
38
69
|
async modify(query, fields) {
|
|
39
70
|
const params = RdsDataApiDatabaseAccess.toSqlParameters(fields);
|
|
40
|
-
const tmp = await this.
|
|
71
|
+
const tmp = await this.sendWithDatabaseWait(new ExecuteStatementCommand({ resourceArn: this.cfg.resourceArn, secretArn: this.cfg.secretArn, database: this.cfg.database, sql: query, parameters: params, includeResultMetadata: true }));
|
|
41
72
|
const rval = {
|
|
42
73
|
results: {
|
|
43
74
|
changedRows: tmp.numberOfRecordsUpdated,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rds-data-api-database-access.js","sourceRoot":"","sources":["../../src/rds-data-api/rds-data-api-database-access.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,uBAAuB,EAEvB,wBAAwB,
|
|
1
|
+
{"version":3,"file":"rds-data-api-database-access.js","sourceRoot":"","sources":["../../src/rds-data-api/rds-data-api-database-access.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitblit/ratchet-rdbms",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.146-alpha",
|
|
4
4
|
"description": "Ratchet tooling for working with relational databases",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"type": "module",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
},
|
|
48
48
|
"license": "Apache-2.0",
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@bitblit/ratchet-common": "6.0.
|
|
50
|
+
"@bitblit/ratchet-common": "6.0.146-alpha"
|
|
51
51
|
},
|
|
52
52
|
"optionalDependencies": {
|
|
53
53
|
"@aws-sdk/client-rds-data": "3.922.0",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
62
|
"@aws-sdk/client-rds-data": "^3.922.0",
|
|
63
|
-
"@bitblit/ratchet-common": "6.0.
|
|
63
|
+
"@bitblit/ratchet-common": "6.0.146-alpha",
|
|
64
64
|
"better-sqlite3": "^12.4.1",
|
|
65
65
|
"get-port": "^7.1.0",
|
|
66
66
|
"mysql2": "^3.15.3",
|