TRANSACTIONTIMEOUT

Valido per

Replicat

Descrizione

Utilizzare il parametro TRANSACTIONTIMEOUT per evitare che una transazione di destinazione Replicat di cui non è stato eseguito il commit blocchi nelle tabelle di destinazione e utilizzi inutilmente le risorse di database. È possibile modificare il valore di questo parametro in modo che Replicat possa funzionare nei timeout dell'applicazione esistenti e in altri requisiti del database sulla destinazione.

TRANSACTIONTIMEOUT limita il periodo di tempo durante il quale Replicat terrà aperta una transazione target se non ha ricevuto il record di fine transazione per l'ultima transazione di origine in tale transazione. Per impostazione predefinita, Replicat raggruppa più transazioni di origine in una transazione target per migliorare le prestazioni, ma non eseguirà il commit di una transazione di origine parziale e attenderà all'infinito l'ultimo record. Il parametro Replicat GROUPTRANSOPS controlla la dimensione minima di una transazione di destinazione raggruppata. La gamma è 1-604800.

Gli eventi seguenti potrebbero durare abbastanza a lungo da attivare TRANSACTIONTIMEOUT:

Come funziona TRANSACTIONTIMEOUT

Durante le normali operazioni, Replicat ricorda la posizione nel trail dell'inizio della prima transazione di origine nella transazione target corrente, nel caso in cui la transazione debba essere interrotta e rieseguita. Quando TRANSACTIONTIMEOUT è abilitato, Replicat salva anche la posizione del primo record della transazione di origine corrente e utilizzerà tale posizione come fine file logico (EOF) se viene attivato TRANSACTIONTIMEOUT.

Quando viene attivato, TRANSACTIONTIMEOUT esegue le operazioni riportate di seguito.

  1. Interrompe la transazione di destinazione corrente

  2. Riposizionamenti all'inizio della prima transazione di origine nella transazione target interrotta.

  3. Elabora tutti i record trail fino alla posizione di fine file logica (l'inizio dell'ultima transazione di origine incompleta).

  4. Esegue il commit della transazione nel punto EOF logico.

  5. Attende i nuovi dati di trail prima di elaborare altri record di trail.

TRANSACTIONTIMEOUT può essere attivato più volte per la stessa transazione di origine, a seconda della natura del problema che sta causando l'arrivo dei dati di trail abbastanza lentamente da attivare TRANSACTIONTIMEOUT.

Rilevamento di una condizione TRANSACTIONTIMEOUT

Per determinare se Replicat è in attesa del resto di una transazione di origine quando TRANSACTIONTIMEOUT è abilitato, eseguire il comando SEND REPLICAT con l'opzione STATUS. Gli stati riportati di seguito indicano questa condizione.

Performing transaction timeout recovery
Waiting for data at logical EOF after transaction timeout recovery

Predefinito

Disabilitato

Sintassi

TRANSACTIONTIMEOUT <n> <units>

<n>

Numero intero che specifica l'intervallo di attesa. I valori validi sono compresi tra un secondo e una settimana (sette giorni). Questo valore deve essere maggiore di quello impostato con il parametro EOFDELAY sia nell'estrazione principale che in eventuali pompe dati associate.

<units>

Uno dei seguenti: S, SEC, SECS, SECOND, SECONDS, MIN, MINS, MINUTE, MINUTES, HOUR, HOURS, DAY, DAYS.

Esempio

TRANSACTIONTIMEOUT 5 S