TRANSACTIONTIMEOUT
Durée de validité
Réplication
Description
Utilisez le paramètre TRANSACTIONTIMEOUT pour empêcher une transaction cible de réplication non validée de bloquer des verrous sur les tables cible et d'utiliser inutilement les ressources de base de données. Vous pouvez modifier la valeur de ce paramètre afin que le processus Replicat puisse s'adapter aux délais d'attente d'application existants et à d'autres exigences de base de données sur la cible.
TRANSACTIONTIMEOUT limite la durée pendant laquelle le processus de réplication conservera une transaction cible ouverte si elle n'a pas reçu l'enregistrement de fin de transaction pour la dernière transaction source de cette transaction. Par défaut, le processus Replicat regroupe plusieurs transactions source dans une transaction cible pour améliorer les performances, mais il ne valide pas une transaction source partielle et attend indéfiniment pour ce dernier enregistrement. Le paramètre de réplication GROUPTRANSOPS contrôle la taille minimale d'une transaction cible groupée. La gamme est 1-604800.
Les événements suivants peuvent durer suffisamment longtemps pour déclencher TRANSACTIONTIMEOUT :
-
Les problèmes réseau empêchent la transmission des données de trace au système cible.
-
Espace disque insuffisant sur n'importe quel système, ce qui empêche l'écriture des données de trace.
-
Le collecteur est abandonné (un événement rare).
-
L'extraction est abandonnée ou se termine au milieu de l'écriture d'enregistrements pour une transaction.
-
Un processus Extract Data Pump est abandonné ou interrompu.
-
Il y a une panne du système source, telle qu'une panne de courant ou une panne du système.
Fonctionnement de TRANSACTIONTIMEOUT
Pendant les opérations normales, le processus Replicat se souvient de la position dans la trace du début de la première transaction source dans la transaction cible en cours, au cas où la transaction devrait être abandonnée et retentée. Lorsque TRANSACTIONTIMEOUT est activé, le processus de réplication enregistre également la position du premier enregistrement de la transaction source en cours et utilise cette position en tant que fin de fichier logique si TRANSACTIONTIMEOUT est déclenché.
Lorsqu'elle est déclenchée, TRANSACTIONTIMEOUT effectue les opérations suivantes :
-
Abandonne la transaction cible en cours
-
Repose au début de la première transaction source dans la transaction cible abandonnée.
-
Traite tous les enregistrements de trace jusqu'à la position de fin de fichier logique (début de la dernière transaction source incomplète).
-
Valide la transaction au point EOF logique.
-
Attend les nouvelles données de trace avant de traiter d'autres enregistrements de trace.
TRANSACTIONTIMEOUT peut être déclenché plusieurs fois pour la même transaction source, selon la nature du problème qui entraîne l'arrivée des données de trace suffisamment lente pour déclencher TRANSACTIONTIMEOUT.
Détection d'une condition TRANSACTIONTIMEOUT
Pour déterminer si le processus de réplication attend le reste d'une transaction source lorsque TRANSACTIONTIMEOUT est activé, exécutez la commande SEND REPLICAT avec l'option STATUS. Les statuts suivants indiquent cette condition :
Performing transaction timeout recovery
Waiting for data at logical EOF after transaction timeout recovery
Valeur par défaut
Désactivé
Syntaxe
TRANSACTIONTIMEOUT <n> <units>
<n>
Nombre entier indiquant l'intervalle d'attente. Les valeurs valides sont comprises entre une seconde et une semaine (sept jours). Cette valeur doit être supérieure à celle définie avec le paramètre EOFDELAY dans le processus Extract principal et dans toutes les pompes de données associées.
<units>
L'un des éléments suivants : S, SEC, SECS, SECOND, SECONDS, MIN, MINS, MINUTE, MINUTES, HOUR, HOURS, DAY, DAYS.
Exemple
TRANSACTIONTIMEOUT 5 S