How do you use transactions with a Pool?
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 25/100
- Tipo di issue
- Bug
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- javascript, node.js
Direzione di ricerca
La issue fornisce solo lo snippet executeStatements; inizia tracciando getPool(), pool.connect() e le chiamate alle transazioni nel repository. Verifica come vengono rilasciate le connessioni del pool e come vengono gestite le query concorrenti. Il lavoro è completato quando viene riprodotto il fallimento delle tre chiamate e viene documentato o corretto il comportamento confermato del pool o della transazione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Below is a snippet of code I am trying to get working... basically I get the pool and call connect on it to get a single connection.
I call beginTransaction on the connection, run my statements, then call commit or rollback.
The problem with this, is that after 3 calls to this function, the pool stops working and doesn't respond to anything.
Am I doing something wrong here? Should I not be using a pool to do transactions?
export async function executeStatements(statements: Statement[]) {
const pool = await getPool();
const connection = await pool.connect();
await connection.beginTransaction();
try {
const results = statements.map((statement) =>
connection.query(
statement.sql,
statement.parameters as Array<number | string>,
),
);
(await Promise.allSettled(results)).forEach((promise) => {
if (promise.status === "rejected") {
throw Error();
}
});
await connection.commit();
} catch (error) {
await connection.rollback();
}
return;
}
- Lingua principale
- JavaScript
- Stelle
- 159
- Fork
- 92
- Merge medio
- 5h 59m
- PR unite (30g)
- 3
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di IBM/node-odbc
-
doc: how to run the testsAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
-
security
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
-
[Bug] Sybase ASE: Encoding issue (works in msnodesqlv8, fails in node-odbc with \x1A artifacts)Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
Tutte le issue di IBM/node-odbc
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
needs triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
pbakaus/impeccable#1055 ·
I maintainer di solito rispondono entro 1 giorno
-
Add: EUROTV NEWSApertachannels:add check:passed
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno