@GETENV

Utilisez la fonction @GETENV pour renvoyer des informations sur l'environnement Oracle GoldenGate. Vous pouvez utiliser les informations en tant qu'entrées dans les éléments suivants :

Syntaxe

@GETENV (
'LAG' , '<unit>' |
'LASTERR' , '<error_info>' |
'JULIANTIMESTAMP' |
'JULIANTIMESTAMP_PRECISE' |
'RECSOUTPUT' |
{'STATS'|'DELTASTATS'}, ['TABLE', '<table>'], '<statistic>' |
'GGENVIRONMENT', '<environment_info>' |
'GGFILEHEADER', '<header_info>'|
'GGHEADER', '<header_info>' |
'RECORD', '<location_info>' |
'DBENVIRONMENT', '*<database_info>,*',
'TRANSACTION', '<transaction_info>' |
'OSVARIABLE', '<variable>' |
'TLFKEY', SYSKEY, <unique_key>
'USERNAME',
'OSUSERNAME',
'MACHINENAME',
'PROGRAMNAME',
'CLIENTIDENTIFIER',
'SOURCEDATABASEINFO'
)

'LAG' , '<unit>'

Valide pour l'extraction et le réplication.

Utilisez l'option LAG de @GETENV pour renvoyer des informations de décalage. Le décalage est la différence entre l'heure à laquelle un enregistrement a été traité par l'extraction ou l'horloge système et l'horodatage de cet enregistrement dans la source des données.

Syntaxe

SEC

‘SEC’

Renvoie le décalage en secondes. Il s'agit de la valeur par défaut lorsqu'une unité n'est pas explicitement fournie pour LAG.

‘MSEC’

Renvoie le décalage en millisecondes.

‘MIN’

Renvoie le décalage en minutes.

'LASTERR' , '<error_info>'

Valide pour la réplication.

Utilisez l'option LASTERR de @GETENV pour renvoyer des informations sur la dernière opération ayant échoué traitée par le processus de réplication.

Syntaxe

@GETENV ('LASTERR', {'DBERRNUM'|'DBERRMSG'|'OPTYPE'|'ERRTYPE'})

‘DBERRNUM’

Renvoie le numéro d'erreur de base de données associé à l'opération ayant échoué.

‘DBERRMSG’

Renvoie le message d'erreur de base de données associé à l'opération ayant échoué.

‘OPTYPE’

Renvoie le type d'opération tenté.

‘ERRTYPE’

Renvoie le type de l'erreur. Les résultats possibles sont les suivants :

'JULIANTIMESTAMP'|'JULIANTIMESTAMP_PRECISE'

Valide pour l'extraction et le processus de réplication.

Utilisez l'option JULIANTIMESTAMP de @GETENV pour renvoyer l'heure actuelle au format julien. L'unité est de microsecondes (un millionième de seconde). Sur une machine Windows, la valeur est complétée par des zéros (0) car la granularité de l'horodatage Windows est de la milliseconde (millième de seconde). Par exemple, le mapping de colonne suivant est classique :

MAP dbo.tab8451, Target targ.tabjts, COLMAP (USEDEFAULTS, &
JTSS = @GETENV ('JULIANTIMESTAMP')
JTSFFFFFF = @date ('yyyy-mm-dd hh:mi:ss.ffffff', 'JTS', &
@getenv ('JULIANTIMESTAMP') ) )
;

Les valeurs possibles des colonnes JTSS et JTSFFFFFF sont :

212096320960773000 2010-12-17:16:42:
40.773000
212096321536540000 2010-12-17:16:52:16.540000
212096322856385000 2010-12-17:17:14:16.385000
212096323062919000 2010-12-17:17:17:42.919000
212096380852787000 2010-12-18:09:20:52.787000

Les trois derniers chiffres (les microsecondes) du nombre contiennent tous le remplissage de 0s .

Vous pouvez éventuellement utiliser l'option 'JULIANTIMESTAMP_PRECISE' pour obtenir un horodatage avec une grande précision, ce qui peut affecter les performances.

Remarque : N'utilisez pas ces valeurs pour les opérations de tri. Utilisez plutôt la valeur suivante : @COMPUTE(@COMPUTE(@NUMSTR(@GETENV ("RECORD", "FILESEQNO")*100000000000)+@NUMSTR(@GETENV ("RECORD", "FILERBA")))".

Syntaxe

@GETENV ('JULIANTIMESTAMP')
@GETENV ('JULIANTIMESTAMP_PRECISE')

'RECSOUTPUT'

Valide pour le processus d'extraction.

Utilisez l'option RECSOUTPUT de @GETENV pour extraire le nombre en cours d'enregistrements que le processus Extract a écrits dans le fichier trace depuis le démarrage du processus. La valeur renvoyée n'est pas unique pour une table ou une transaction, mais pour la session Extract elle-même. Le nombre est réinitialisé à 1 chaque fois que l'extraction s'arrête, puis redémarre.

Syntaxe

@GETENV ('RECSOUTPUT')

{'STATS'|'DELTASTATS'}, ['TABLE', '<table>'], '<statistic>'

Valide pour l'extraction et le processus de réplication.

Utilisez les options STATS et DELTASTATS de @GETENV pour renvoyer le nombre d'opérations qui ont été traitées par table pour tout ou partie des éléments suivants :

Toute erreur dans le traitement de cette fonction, telle qu'une entrée de table non résolue ou une syntaxe incorrecte, renvoie un zéro (0) pour la valeur de statistiques demandée.

Comprendre l'impact des spécifications de table récurrentes sur les nombres d'opérations

Une extraction qui traite la même table source vers plusieurs traces de sortie renvoie des statistiques en fonction de chaque trace de sortie localisée vers laquelle la table liée à @GETENV est écrite. Par exemple, si le processus Extract capture 100 insertions pour la table ABC et écrit la table ABC dans trois traces, le résultat de @GETENV est 300.

EXTRACT ABC
...
EXTTRAIL c:\north\aa;
TABLE TEST.ABC;
EXTTRAIL c:\north\bb;
TABLE TEST.ABC;
TABLE EMI, TOKENS (TOKEN-CNT = @GETENV ('STATS', 'TABLE', 'ABC', 'DML'));
EXTTRAIL c:\north\cc;
TABLE TEST.ABC;

Dans le cas d'une extraction qui écrit plusieurs fois une table source dans une trace de sortie unique, ou dans le cas d'une réplication qui comporte plusieurs instructions MAP pour la même table TARGET, les résultats des statistiques sont basés sur toutes les entrées TARGET correspondantes. Par exemple, si le processus Replicat filtre 20 lignes pour REGION 'WEST, 10 lignes pour REGION 'EAST, 5 lignes pour REGION 'NORTH et 2 lignes pour REGION 'SOUTH' (toutes pour la table ABC), le résultat de @GETENV est 37.

REPLICAT ABC
...
MAP TEST.ABC, TARGET TEST.ABC, FILTER (@STREQ (REGION, 'WEST'));
MAP TEST.ABC, TARGET TEST.ABC, FILTER (@STREQ (REGION, 'EAST'));
MAP TEST.ABC, TARGET TEST.ABC, FILTER (@STREQ (REGION, 'NORTH'));
MAP TEST.ABC, TARGET TEST.ABC, FILTER (@STREQ (REGION, 'SOUTH'));
MAP TEST.EMI, TARGET TEST.EMI, &
    COLMAP (CNT = @GETENV ('STATS', 'TABLE', 'ABC', 'DML'));

Capturer plusieurs statistiques

Vous pouvez exécuter plusieurs instances de @GETENV pour obtenir des nombres pour différents types d'opération.

Cet exemple renvoie des statistiques uniquement pour les opérations INSERT et UPDATE :

REPLICAT TEST
..
..
MAP TEST.ABC, TARGET TEST.ABC, COLMAP (USEDEFAULTS, IU = @COMPUTE (@GETENV &
    ('STATS', 'TABLE', 'ABC', 'DML') - (@GETENV ('STATS', 'TABLE', &
    'ABC', 'DELETE'));

Cet exemple renvoie des statistiques pour les opérations DDL et TRUNCATE :

REPLICAT TEST2
..
..
MAP TEST.ABC, TARGET TEST.ABC, COLMAP (USEDEFAULTS, DDL = @COMPUTE &
(@GETENV ('STATS', 'DDL') + (@GETENV ('STATS', 'TRUNCATE'));

Exemple de scénario d'utilisation

Dans le cas d'emploi suivant, si tous les éléments DML de la source sont appliqués à la cible, le processus Replicat suspend au moyen de EVENTACTIONS avec SUSPEND, jusqu'à ce qu'ils reprennent à partir de GGSCI avec SEND REPLICAT avec RESUME.

GETENV utilisé dans le fichier de paramètres d'extraction :

TABLE HR1.HR*;
TABLE HR1.STAT, TOKENS ('env_stats' = @GETENV ('STATS', 'TABLE', &
    'HR1.HR*', 'DML'));

GETENV utilisé dans le fichier de paramètres de réplication :

MAP HR1.HR*, TARGET HR2.*;
MAP HR1.STAT, TARGET HR2.STAT, filter (
    @if (
    @token ('stats') =
    @getenv ('STATS', 'TABLE', 'TSSCAT.TCUSTORD', 'DML'), 1, 0 )
    ),
    eventactions (suspend);

Utiliser des statistiques dans les clauses FILTER

Les statistiques renvoyées par STATS et DELTASTATS sont des valeurs dynamiques et sont incrémentées après l'exécution du mapping. Par conséquent, lorsque vous utilisez des statistiques CDR dans une clause FILTER dans chacune des instructions MAP multiples, vous devez classer les instructions MAP par ordre décroissant des valeurs de statistiques. Si la commande n'est pas correcte, Oracle GoldenGate renvoie l'erreur OGG-01921. Pour plus d'informations sur cette exigence, reportez-vous au document 1556241.1 dans la base de connaissances de My Oracle Support à l'adresse https://support.oracle.com.

Exemple 4-1 Instructions MAP contenant des statistiques dans les clauses FILTER

Dans l'exemple suivant, les instructions MAP contenant le filtre pour la statistique CDR_CONFLICTS sont triées par ordre décroissant de la statistique : >3, =3, puis <3.

MAP TEST.GG_HEARTBEAT_TABLE, TARGET TEST.GG_HEARTBEAT_TABLE COMPARECOLS (ON UPDATE ALL),RESOLVECONFLICT(UPDATEROWEXISTS,(DEFAULT, OVERWRITE)),FILTER (@GETENV ("STATS", "CDR_CONFLICTS") > 3),EVENTACTIONS (LOG INFO);MAP TEST.GG_HEARTBEAT_TABLE, TARGET TEST.GG_HEARTBEAT_TABLE COMPARECOLS (ON UPDATE ALL),RESOLVECONFLICT(UPDATEROWEXISTS,(DEFAULT, OVERWRITE)),FILTER (@GETENV ("STATS", "CDR_CONFLICTS") = 3),EVENTACTIONS (LOG WARNING);MAP TEST.GG_HEARTBEAT_TABLE, TARGET TEST.GG_HEARTBEAT_TABLE COMPARECOLS (ON UPDATE ALL),RESOLVECONFLICT(UPDATEROWEXISTS,(DEFAULT, OVERWRITE)),FILTER (@GETENV ("STATS", "CDR_CONFLICTS") < 3),EVENTACTIONS (LOG WARNING);

Syntaxe

@GETENV ({'STATS' | 'DELTASTATS'}, ['TABLE', '<table>'], '<statistic>')
{‘STATS’ ‘DELTASTATS’}

STATS renvoie les nombres depuis le démarrage du processus, tandis que DELTASTATS renvoie les nombres depuis la dernière exécution d'une instruction DELTASTATS.

La logique d'exécution est la suivante :

‘TABLE’, ‘<table>’

Exécute STATS ou DELTASTATS uniquement pour la ou les tables indiquées. Sans cette option, les nombres sont renvoyés pour toutes les tables indiquées dans les paramètres TABLE (Extract) ou MAP (Replicat) dans le fichier de paramètres.

Les valeurs <table_name> valides sont les suivantes :

Par exemple, les opérations DML suivantes sont comptabilisées uniquement pour les tables du schéma hr :

MAP fin.*, TARGET fin.*;
MAP hr.*, TARGET hr.*;
MAP hq.rpt, TARGET hq.rpt, COLMAP (USEDEFAULTS, CNT = @GETENV ('STATS', 'TABLE', 'hr.*', 'DML'));

De même, les opérations DML suivantes sont comptabilisées uniquement pour la table emp dans le schéma hr :

MAP fin.*, TARGET fin.*;
MAP hr.*, TARGET hr.*;
MAP hq.rpt, TARGET hq.rpt, COLMAP (USEDEFAULTS, CNT = @GETENV ('STATS', 'TABLE', 'hr.emp', 'DML'));

En revanche, comme aucune table spécifique n'est indiquée pour STATS dans l'exemple suivant, la fonction compte toutes les opérations INSERT, UPDATE et DELETE pour toutes les tables de tous les schémas représentés dans les clauses TARGET des instructions MAP :

MAP fin.*, TARGET fin.*;
MAP hr.*, TARGET hr.*;
MAP hq.rpt, TARGET hq.rpt, COLMAP (USEDEFAULTS, CNT = &
@GETENV ('STATS', 'DML'));

<'statistic>’

Type de statistique à renvoyer. Pour plus d'informations importantes sur l'utilisation des statistiques dans les clauses FILTER dans plusieurs instructions TABLE ou MAP, reportez-vous à Utilisation des statistiques dans les clauses FILTER.

‘INSERT’

Renvoie le nombre d'opérations INSERT qui ont été traitées.

‘UPDATE’

Renvoie le nombre d'opérations UPDATE qui ont été traitées.

‘DELETE’

Renvoie le nombre d'opérations DELETE qui ont été traitées.

‘DML’

Renvoie le total des opérations INSERT, UPDATE, et DELETE qui ont été traitées.

‘TRUNCATE’

Renvoie le nombre d'opérations TRUNCATE qui ont été traitées. Cette variable renvoie un nombre uniquement si la réplication DDL d'Oracle GoldenGate n'est pas utilisée. Si la réplication DDL est utilisée, cette variable renvoie un zéro.

‘DDL’

Renvoie le nombre d'opérations DDL qui ont été traitées, y compris les opérations TRUNCATE et DDL spécifiées dans les clauses INCLUDE et EXCLUDE du paramètre DDL, toutes les portées (MAPPED, UNMAPPED, OTHER). Cette variable renvoie un nombre uniquement si la réplication DDL d'Oracle GoldenGate est utilisée. Cette variable n'est pas valide pour 'DELTASTATS'.

‘CDR_CONFLICTS’

Renvoie le nombre de conflits détectés par le processus Replicat lors de l'exécution de la fonction de détection et de résolution des conflits (CDR).

Exemple pour un élément <table> spécifique :

@GETENV ('STATS','TABLE','HR.EMP','CDR_CONFLICTS')

Exemple pour toutes les tables traitées par Replicat :

@GETENV ('STATS','CDR_CONFLICTS')

‘CDR_RESOLUTIONS_SUCCEEDED’

Renvoie le nombre de conflits résolus par le processus Replicat lors de l'exécution de la fonction de détection et de résolution des conflits (CDR).

Exemple pour un élément <table> spécifique :

@GETENV ('STATS','TABLE','HR.EMP', 'CDR_RESOLUTIONS_SUCCEEDED')

Exemple pour toutes les tables traitées par Replicat :

@GETENV ('STATS','CDR_RESOLUTIONS_SUCCEEDED')

‘CDR_RESOLUTIONS_FAILED’

Renvoie le nombre de conflits que le processus Replicat n'a pas pu résoudre lors de l'exécution de la fonctionnalité de détection et de résolution des conflits (CDR).

Exemple pour un élément <table> spécifique :

@GETENV ('STATS','TABLE','HR.EMP', 'CDR_RESOLUTIONS_FAILED')

Exemple pour toutes les tables traitées par Replicat :

@GETENV ('STATS','CDR_RESOLUTIONS_FAILED')

'GGENVIRONMENT' , '<environment_info>'

Valide pour l'extraction et le réplication.

Utilisez l'option GGENVIRONMENT de @GETENV pour renvoyer des informations sur l'environnement Oracle GoldenGate.

Syntaxe

@GETENV ('GGENVIRONMENT', {'DOMAINNAME'|'GROUPDESCRIPTION'|'GROUPNAME'|
   'GROUPTYPE'|'HOSTNAME'|'OSUSERNAME'|'PROCESSID')

‘DOMAINNAME’

(Windows uniquement) Renvoie le nom de domaine associé à l'utilisateur qui a démarré le processus.

‘GROUPDESCRIPTION’

Renvoie la description du groupe, extraite du fichier de point de reprise. Nécessite qu'une description ait été fournie avec le paramètre DESCRIPTION lors de la création du groupe avec la commande ADD.

‘GROUPNAME’

Renvoie le nom du groupe de traitements.

‘GROUPTYPE’

Renvoie le type de processus, EXTRACT ou REPLICAT.

‘HOSTNAME’

Renvoie le nom du système qui exécute le traitement d'extraction ou de réplication.

‘OSUSERNAME’

Renvoie le nom d'utilisateur du système d'exploitation qui a démarré le processus.

‘PROCESSID’

Renvoie le processus ID attribué au processus par le système d'exploitation.

'GGHEADER' , '<header_info>'

Valide pour l'extraction et le réplication.

Utilisez l'option GGHEADER de @GETENV pour renvoyer les informations de la partie d'en-tête d'un enregistrement de trace Oracle GoldenGate. L'en-tête décrit l'environnement de transaction de l'enregistrement. Pour plus d'informations sur les en-têtes et les types d'enregistrement, voir Format d'enregistrement de trace.

Syntaxe

@GETENV ('GGHEADER', {'BEFOREAFTERINDICATOR'|'COMMITTIMESTAMP'|'LOGPOSITION'|
   'LOGRBA'|'OBJECTNAME'|'TABLENAME'|'OPTYPE'|'RECORDLENGTH'|
   'TRANSACTIONINDICATOR'})

Remarque : n'utilisez pas TIMESTAMP_PRECISE pour commander des opérations. Utilisez plutôt la valeur suivante : @COMPUTE`(`@COMPUTE`(`@NUMSTR`(`@GETENV` ("RECORD``",

                "`FILESEQNO`"))*100000000000)+`@NUMSTR`(`@GETENV` ("`RECORD`",



            "`FILERBA`")))`
            {: .infoboxnote}

‘BEFOREAFTERINDICATOR’

Renvoie l'indicateur avant ou après indiquant si l'enregistrement est une image avant ou une image après. Les résultats possibles sont les suivants :

‘COMMITTIMESTAMP’

Renvoie l'horodatage de la transaction (heure à laquelle la transaction a été validée) exprimé au format YYYY-MM-DD HH:MI:SS.FFFFFF, par exemple :

2011-01-24 17:08:
59.000000

‘LOGPOSITION’

Renvoie la position du traitement Extract dans la source de données. (Voir l'option LOGRBA.)

‘LOGRBA’

LOGRBA et LOGPOSITION stockent les détails de la position dans la source de données de l'enregistrement. Pour les produits transactionnels basés sur un journal, LOGRBA est le numéro de séquence et LOGPOSITION est l'adresse d'octet relative. Toutefois, ces valeurs varient en fonction de la méthode de capture et du type de base de données.

‘OBJECTNAME’ ‘TABLENAME’

Renvoie le nom de la table ou de l'objet (s'il ne s'agit pas d'un objet de table).

‘OPTYPE’

Renvoie le type d'opération. Les résultats possibles sont les suivants :

INSERT
UPDATE
DELETE
SQL COMPUPDATE
PK UPDATE
TRUNCATE

Si l'opération n'est pas de l'un des types ci-dessus, la fonction renvoie le mot TYPE avec le numéro affecté au type.

‘RECORDLENGTH’

Renvoie la longueur d'enregistrement (en octets).

‘TRANSACTIONINDICATOR’

Renvoie l'indicateur de transaction. La valeur correspond au champ TransInd de l'en-tête d'enregistrement, qui peut être consulté à l'aide de l'utilitaire Logdump.

Les résultats possibles sont les suivants :

'GGFILEHEADER' , 'header_info'

Valide pour la réplication uniquement.

Utilisez l'option GGFILEHEADER de @GETENV pour extraire les attributs d'un fichier d'extraction ou d'un fichier trace Oracle GoldenGate. Ces attributs sont stockés en tant que jetons dans l'en-tête du fichier. Remarque : si une version de base de données, de système d'exploitation ou d'Oracle GoldenGate donnée ne fournit pas d'informations relatives à un jeton donné, une valeur NULL est renvoyée.

Syntaxe

@GETENV ('GGFILEHEADER', {'COMPATIBILITY'|'CHARSET'|'CREATETIMESTAMP'|
   'FILENAME'|'FILETYPE'|'FILESEQNO'|'FILESIZE'|'FIRSTRECCSN'|
   'LASTRECCSN'|'FIRSTRECIOTIME'|'LASTRECIOTIME'|'URI'|'URIHISTORY'|
   'GROUPNAME'|'DATASOURCE'|'GGMAJORVERSION'|'GGMINORVERSION'|
   'GGVERSIONSTRING'|'GGMAINTENANCELEVEL'|'GGBUGFIXLEVEL'|'GGBUILDNUMBER'|
   'HOSTNAME'|'OSVERSION'|'OSRELEASE'|'OSTYPE'|'HARDWARETYPE'|
   'DBNAME'| 'DBUNIQUENAME'|'DBINSTANCE'|'DBTYPE'|'DBCHARSET'|'DBMAJORVERSION'|
   'DBMINORVERSION'|'DBVERSIONSTRING'|'DBCLIENTCHARSET'|'DBCLIENTVERSIONSTRING'|
   'LASTCOMPLETECSN'|'LASTCOMPLETEXIDS'|'LASTCSN'|'LASTXID'|
   'LASTCSNTS'|'RECOVERYMODE'})

‘COMPATIBILITY’

Renvoie le niveau de compatibilité du fichier trace. Le niveau de compatibilité de la version actuelle d'Oracle GoldenGate doit être supérieur ou égal au niveau de compatibilité du fichier trace pour pouvoir lire les enregistrements de données dans ce fichier. Les valeurs actuelles valides sont comprises entre 0 et 6.

‘CHARSET’

Renvoie le jeu de caractères global du fichier trace. Exemple :

WCP1252-1

‘CREATETIMESTAMP’

Renvoie l'heure de création de la trace, en heure julienne GMT locale dans INT64.

‘FILENAME’

Renvoie le nom du fichier trace. Il peut s'agir d'un chemin absolu ou relatif, avec une barre oblique ou une barre oblique inverse selon le système de fichiers.

‘FILETYPE’

Renvoie une valeur numérique indiquant si le fichier trace est un fichier unique (tel qu'un fichier créé pour une exécution de batch) ou un fichier numéroté séquentiellement qui fait partie d'une trace pour un traitement en ligne continu. Les valeurs valides sont les suivantes :

‘FILESEQNO’

Renvoie le numéro de séquence du fichier trace, sans zéro à gauche. Par exemple, si un numéro de séquence de fichier est aa000026, FILESEQNO renvoie 26.

‘FILESIZE’

Renvoie la taille du fichier trace. Elle renvoie NULL sur un fichier actif et une valeur de taille lorsque le fichier est plein et que la trace est restaurée.

‘FIRSTRECCSN’

Renvoie le numéro de séquence de validation (CSN) du premier enregistrement du fichier trace. La valeur est NULL jusqu'à ce que le fichier trace soit terminé.

‘LASTRECCSN’

Renvoie le numéro de séquence de validation (CSN) du dernier enregistrement du fichier trace. La valeur est NULL jusqu'à ce que le fichier trace soit terminé.

‘FIRSTRECIOTIME’

Renvoie l'heure à laquelle le premier enregistrement a été écrit dans le fichier trace. La valeur est NULL jusqu'à ce que le fichier trace soit terminé.

‘LASTRECIOTIME’

Renvoie l'heure à laquelle le dernier enregistrement a été écrit dans le fichier trace. La valeur est NULL jusqu'à ce que le fichier trace soit terminé.

‘RECOVERYMODE’

Renvoie les informations de récupération pour l'utilisation interne d'Oracle GoldenGate. Elle est généralement définie sur APPENDMODE.

‘URI’

Renvoie l'identificateur de ressource universel du processus qui a créé le fichier trace, au format suivant :

<host_name>:<dir>:[:<dir>][:<dir_n>]<group_name>

Où :

L'exemple suivant montre où la trace a été traitée et par quel processus. Cela inclut un historique des exécutions précédentes.

sys1:home:oracle:v9.5:extora

‘URIHISTORY’

Renvoie la liste des URI des processus qui ont écrit dans le fichier trace avant le processus en cours.

‘GROUPNAME’

Renvoie le nom du groupe associé au traitement Extract qui a créé la trace. Le nom de groupe est celui qui a été fourni lors de l'exécution de la commande ADD EXTRACT.

‘DATASOURCE’

Renvoie la source de données qui a été lue par le processus sous forme de nombre. La valeur renvoyée peut être l'une des suivantes :

‘GGMAJORVERSION’

Renvoie la version principale du processus Extract qui a créé la trace, exprimée sous forme d'entier. Par exemple, si une version est 1.2.3, elle renvoie 1.

‘GGMINORVERSION’

Renvoie la version mineure du processus Extract qui a créé la trace, exprimée sous forme d'entier. Par exemple, si une version est 1.2.3, elle renvoie 2.

‘GGVERSIONSTRING’

Renvoie le niveau de maintenance (ou de patch) du processus Extract qui a créé la trace, exprimé sous la forme d'un entier. Par exemple, si une version est 1.2.3, elle renvoie 3.

‘GGMAINTENANCELEVEL’

Renvoie la version de maintenance du processus (xx.xx.xx)).

‘GGBUGFIXLEVEL’

Renvoie la version de patch du processus (xx.xx.xx.xx)).

‘GGBUILDNUMBER’

Renvoie le numéro de build du processus.

‘HOSTNAME’

Renvoie le nom DNS de l'ordinateur sur lequel le processus Extract qui a écrit la trace est exécuté. Exemple :

‘OSVERSION’

Renvoie la version principale du système d'exploitation de la machine sur laquelle le processus Extract qui a écrit la trace est en cours d'exécution. Exemple :

‘OSRELEASE’

Renvoie la version du système d'exploitation de l'ordinateur sur lequel le processus Extract qui a écrit la trace est exécuté. Par exemple, les versions des exemples donnés pour OSVERSION peuvent être les suivantes :

‘OSTYPE’

Renvoie le type de système d'exploitation de l'ordinateur sur lequel le processus Extract qui a écrit la trace est exécuté. Exemple :

‘HARDWARETYPE’

Renvoie le type de matériel de l'ordinateur sur lequel le processus Extract qui a écrit la trace est exécuté. Exemple :

‘DBNAME’

Renvoie le nom de la base de données, par exemple findb.

‘DBUNIQUENAME’

Renvoie la valeur du jeton DB_UNIQUE_NAME telle que lue dans l'en-tête du fichier trace source. Sa valeur correspond au paramètre DB_UNIQUE_NAME de la base de données source.

‘DBINSTANCE’

Renvoie le nom de l'instance de base de données, s'il est applicable au type de base de données, par exemple ORA1022A.

‘DBTYPE’

Renvoie le type de base de données qui a produit les données dans le fichier trace. Valeurs possibles :

DB2 UDB
DB2 ZOS
MSSQL
MYSQL
ORACLE
TERADATA
ODBC

‘DBCHARSET’

Renvoie le jeu de caractères utilisé par la base de données qui a généré les données dans le fichier trace. (Pour certaines bases de données, ce champ est vide.)

‘DBMAJORVERSION’

Renvoie la version principale de la base de données qui a produit les données dans le fichier trace.

‘DBMINORVERSION’

Renvoie la version mineure de la base de données qui a produit les données dans le fichier trace.

‘DBVERSIONSTRING’

Renvoie le niveau de maintenance (patch) de la base de données qui a produit les données dans le fichier trace.

‘DBCLIENTCHARSET’

Renvoie le jeu de caractères utilisé par le client de base de données.

‘DBCLIENTVERSIONSTRING’

Renvoie le niveau de maintenance (patch) du client de base de données. (Pour certaines bases de données, ce champ est vide.)

‘LASTCOMPLETECSN’

Renvoie les informations de récupération pour l'utilisation interne d'Oracle GoldenGate.

‘LASTCOMPLETEXIDS’

Renvoie les informations de récupération pour l'utilisation interne d'Oracle GoldenGate.

‘LASTCSN’

Renvoie les informations de récupération pour l'utilisation interne d'Oracle GoldenGate.

‘LASTXID’

Renvoie les informations de récupération pour l'utilisation interne d'Oracle GoldenGate.

‘LASTCSNTS’

Renvoie les informations de récupération pour l'utilisation interne d'Oracle GoldenGate.

'RECORD' , '<location_info>'

Valide pour une extraction Data Pump ou une réplication.

Utilisez l'option RECORD de @GETENV pour renvoyer l'emplacement ou l'ID de ligne Oracle d'un enregistrement dans un fichier trace Oracle GoldenGate.

Syntaxe

@GETENV ('RECORD', {'TIMESTAMP_PRECISE'|'FILESEQNO'|'FILERBA'|'ROWID'|'RSN'|'TIMESTAMP'})

‘TIMESTAMP_PRECISE’

Valide pour l'extraction ou la réplication.

L'option TIMESTAMP_PRECISE renvoie l'horodatage de l'année à des microsecondes. Cependant, selon la base de données, la valeur peut être en millisecondes avec 0 microseconde.

‘FILESEQNO’

Renvoie le numéro de séquence du fichier trace sans zéro à gauche.

‘FILERBA’

Renvoie l'adresse d'octet relative de l'enregistrement dans le fichier FILESEQNO.

‘ROWID’

(Valide pour Oracle) Renvoie l'ID ligne de l'enregistrement.

‘RSN’

Renvoie le numéro de séquence de l'enregistrement dans la transaction. Cette valeur ne génère pas toujours des valeurs qui augmentent de manière unique et ne doit pas être utilisée pour commander des opérations. Pour commander des transactions ou des opérations DML au sein d'une transaction, utilisez les informations décrites dans MOS 2036276.1.

‘TIMESTAMP’

Renvoie l'horodatage de l'enregistrement.

Exemple :

REC-TIMESTAMP: 2017-10-31 06:21:07 REC-TIMESTAMP-PRECISE: 2017-10-31 06:21:07.478064

'DBENVIRONMENT' , '<database_info>'

Valide pour l'extraction et le processus de réplication.

Utilisez l'option DBENVIRONMENT de @GETENV pour renvoyer les informations d'environnement global d'une base de données.

Syntaxe

@GETENV ('DBENVIRONMENT', {'DBNAME'|'DBUNIQUENAME'|'DBVERSION'|'DBUSER'|'SERVERNAME'})

‘DBNAME’

Retourne le nom de la base de données.

‘DBUNIQUENAME’

Renvoie la valeur du paramètre DB_UNIQUE_NAME de la base de données à laquelle le processus est connecté. Base de données source dans le cas du processus Extract et base de données cible pour le processus Replicat. Cette valeur sera définie uniquement pour les bases de données Oracle.

‘DBVERSION’

Renvoie la version de la base de données.

‘DBUSER’

Renvoie l'utilisateur de connexion à la base de données. Notez que SQL Server ne consigne pas l'utilisateur ID.

‘SERVERNAME’

Retourne le nom du serveur.

'TRANSACTION' , '<transaction_info>'

Valide pour le processus d'extraction.

Utilisez l'option TRANSACTION de @GETENV pour renvoyer des informations sur une transaction source. Cette option est valide pour le traitement d'extraction, mais pas pour l'extraction et la réplication de la pompe.

Syntaxe

@GETENV ('TRANSACTION', {'TIMESTAMP_PRECISE'|'TRANSACTIONID'|'XID'|'CSN'|'TIMESTAMP'|'NAME'|
   'USERNAME'|'PLANNAME' | 'LOGBSN' | 'REDOTHREAD' | 'PROGRAMNAME' | 'CLIENTIDENTIFIER' | 'MACHINENAME' | 'USERNAME')

Remarque : n'utilisez pas TIMETSAMP_PRECISE ou TIMESTAMP pour commander des opérations. Utilisez plutôt la valeur suivante : @COMPUTE(@COMPUTE(@NUMSTR(@GETENV ("RECORD", "FILESEQNO"))*100000000000)+@NUMSTR(@GETENV ("RECORD", "FILERBA")))

‘TIMESTAMP_PRECISE’

Cette option est valide pour l'extraction. L'option TIMESTAMP_PRECISE renvoie l'horodatage de l'année à des microsecondes. Cependant, selon la base de données, la valeur peut être en millisecondes avec 0 microseconde.

‘TRANSACTIONID’ ‘XID’

Renvoie le numéro de transaction ID. Vous pouvez utiliser TRANSACTIONID ou XID. La transaction ID et la transaction CSN sont associées au premier enregistrement de chaque transaction et sont stockées en tant que jetons dans l'enregistrement de trace. Pour chaque transaction ID, un élément CSN est associé. Les jetons ID de transaction n'ont pas de remplissage nul sur une plate-forme, car ils ne sont jamais évalués en tant que valeurs relatives. Ils ne sont évalués que s'ils correspondent ou non. Dans la trace, le jeton de transaction ID est affiché en tant que TRANID.

‘CSN’

Renvoie le numéro de séquence de validation (CSN). La valeur CSN n'est pas complétée par des zéros lorsqu'elle est renvoyée pour ces bases de données : Oracle, Db2 LUW et Db2 z/OS. Pour toutes les autres bases de données prises en charge, CSN est complété par des zéros.

Dans la trace, le jeton CSN est affiché en tant que LOGCSN. Pour plus d'informations sur le jeton CSN, reportez-vous à la valeur d'environnement TRANSACTIONID | XID.

Pour plus d'informations sur CSN, reportez-vous à Numéro de séquence de validation (CSN).

‘TIMESTAMP’

Renvoie l'horodatage de validation de la transaction.

‘NAME’

Renvoie le nom de la transaction, le cas échéant.

‘USERNAME’

(Oracle) Renvoie le nom utilisateur Oracle de l'utilisateur de base de données qui a validé la dernière transaction. Ceci n'est pas valide pour l'extraction et/ou la réplication de la pompe.

‘PLANNAME’

(Db2 z/OS) Renvoie le nom du plan sous lequel la transaction en cours a été exécutée initialement. Le nom du plan est inclus dans l'enregistrement de l'unité de début du journal de récupération.

‘LOGBSN’

Renvoie le numéro de séquence de début dans le journal des transactions. Le BSN est le numéro de séquence natif qui identifie le début de la transaction non validée la plus ancienne qui se trouve dans la mémoire Extract. Par exemple, dans le cas d'une base de données Oracle, le BSN est exprimé sous la forme d'un numéro SCN (System Change Number). Le BSN correspond à la valeur de point de reprise d'E/S actuelle du processus Extract. Cette valeur peut être obtenue à partir de la trace par le processus Replicat lorsque @GETENV ('TRANSACTION', 'LOGBSN') est utilisé. Cette valeur peut également être obtenue à l'aide de la commande INFO REPLICAT avec l'option DETAIL. Le but de l'obtention du BSN à partir du processus Replicat est d'obtenir un point de récupération pour le processus Extract en cas de défaillance du système ou d'altération du système de fichiers rendant le fichier de point de reprise Extract inutilisable.

‘REDOTHREAD’

Renvoie le numéro de thread d'une extraction de noeud RAC. Sur les extractions de noeud non RAC, la valeur est toujours égale à 1. Pour Data Pump et Replicat, l'ID de thread utilisé par la capture d'extraction d'un noeud RAC est renvoyé ; dans un environnement non RAC, @GETENV() renvoie une erreur. Logdump affiche le jeton, ORATHREADID, dans la section de jeton si la transaction est capturée par le processus Extract sur un noeud RAC.

‘PROGRAMNAME’

Nom du programme ou de l'application qui a démarré la transaction ou la session.

‘CLIENTIDENTIFIER’

Jeu de valeurs à l'aide de DBMS_SESSION_.set_identifier().

‘MACHINENAME’

Nom de l'hôte, de l'ordinateur ou du serveur sur lequel la base de données est exécutée

‘USERNAME’

Nom utilisateur de la connexion à la base de données.

Exemple :

DB2 zOS:
TRANS-TIMESTAMP:         2017-10-31 06:21:07
TRANS-TIMESTAMP-PRECISE: 2017-10-31 06:21:07.485792

'OSVARIABLE' , '<variable>'

Valide pour les processus Extract et Replicat.

Utilisez l'option OSVARIABLE de @GETENV pour renvoyer la valeur de chaîne d'une variable d'environnement de système d'exploitation spécifiée.

Syntaxe

@GETENV ('OSVARIABLE', '<variable>')

<'variable'>

Nom de la variable. La recherche correspond exactement au nom de variable fourni. Par exemple, la commande UNIX grep renvoie toutes les variables suivantes, mais @GETENV ('OSVARIABLE', 'HOME') renvoie uniquement la valeur de HOME :

ANT_HOME=/usr/local/ant
JAVA_HOME=/usr/java/j2sdk1.4.2_10
HOME=/home/judyd
ORACLE_HOME=/rdbms/oracle/ora1022i/64

La recherche est sensible à la casse si le système d'exploitation prend en charge la sensibilité à la casse.

'TLFKEY' , SYSKEY, '<unique_key>'

Valide pour l'extraction et le réplication.

Utilisez l'option TLFKEY de @GETENV pour associer une clé unique aux enregistrements TLF/PTLF dans l'application Base24 d'ACI. La clé 64 bits est composée des éléments concaténés suivants :

Syntaxe

@GETENV ('TLFKEY', SYSKEY, <unique_key>)

SYSKEY, <unique_key>

Numéro de noeud NonStop du fichier TLF/PTLF source. Ne placez pas cet élément de syntaxe entre guillemets.

Exemple :

GETENV ('TLFKEY', SYSKEY, 27)

'INFORMATIONS SUR LA BASE DE DONNÉES SOURCE'

Cette option comporte les champs DBUNIQUENAME et DBNAME. Les champs de SOURCEDATABASEINFO sont différents des champs GGFILEHEADER. Tout d'abord, leurs performances sont meilleures que celles des champs de GGFILEHEADER. Par conséquent, l'utilisation de SOURCEDATABASEINFO est une meilleure alternative pour les scénarios où les performances sont critiques. Deuxièmement, lorsque le jeton DBUNIQUENAME n'est pas disponible dans l'en-tête de trace, soit parce que le fichier trace a été généré par une ancienne version d'Oracle GoldenGate, soit parce que la base de données n'est pas Oracle, @GETENV traitera DBUNIQUENAME comme un synonyme de DBNAME. Dans ce cas, un message d'avertissement sera écrit dans le fichier de rapport, la première fois qu'un en-tête sans jeton est lu.