@GETENV

Utilice la función @GETENV para devolver información sobre el entorno de Oracle GoldenGate. La información se puede utilizar como entrada en lo siguiente:

Sintaxis

@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>'

Válido para Extraer y Replicat.

Utilice la opción LAG de @GETENV para devolver la información de demora. La demora es la diferencia en minutos entre la hora a las que Extract o Replicat procesó un registro y el valor de hora de ese registro en el origen del datos.

Sintaxis

SEC

‘SEC’

Devuelve el retraso en segundos. Este es el valor por defecto cuando no se proporciona explícitamente una unidad para LAG.

‘MSEC’

Devuelve el retraso en milisegundos.

‘MIN’

Devuelve el retraso en minutos.

'LASTERR' , '<error_info>'

Válido para Replicat.

Utilice la opción LASTERR de @GETENV para devolver información sobre la última operación con fallos procesada por Replicat.

Sintaxis

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

‘DBERRNUM’

Devuelve el número de error de la base de datos asociado a la operación fallida.

‘DBERRMSG’

Devuelve el mensaje de error de la base de datos asociado a la operación fallida.

‘OPTYPE’

Devuelve el tipo de operación que se ha intentado.

‘ERRTYPE’

Devuelve el tipo de error. Los posibles resultados son:

'JULIANTIMESTAMP'|'JULIANTIMESTAMP_PRECISE'

Válido para Extraer y Replicat.

Utilice la opción JULIANTIMESTAMP de @GETENV para devolver la hora actual en formato juliano. La unidad es de microsegundos (una millonésima de segundo). En una máquina Windows, el valor se rellena con ceros (0) porque la granularidad del registro de hora de Windows es de milisegundos (una milésima de segundo). Por ejemplo, a continuación se muestra una asignación de columnas típica:

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

Los valores posibles que pueden tener las columnas JTSS y JTSFFFFFF son:

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

Los tres últimos dígitos (los microsegundos) del número contienen el relleno de 0s.

Opcionalmente, puede utilizar la opción 'JULIANTIMESTAMP_PRECISE' para obtener un registro de hora con alta precisión, aunque esto puede afectar al rendimiento. Nota: No utilice estos valores para las operaciones de ordenación. En su lugar, utilice este valor: @COMPUTE(@COMPUTE(@NUMSTR(@GETENV ("RECORD", "FILESEQNO")*100000000000)+@NUMSTR(@GETENV ("RECORD", "FILERBA")))"

Sintaxis

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

'RECSOUTPUT'

Válido para Extract.

Utilice la opción RECSOUTPUT de @GETENV para recuperar un recuento actual del número de registros que Extract ha escrito en el archivo de pista desde que se inició el proceso. El valor devuelto no es único para una tabla o transacción, sino para la propia sesión de Extract. El recuento se restablece a 1 siempre que Extract se detiene y, a continuación, se vuelve a iniciar.

Sintaxis

@GETENV ('RECSOUTPUT')

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

Válido para Extraer y Replicat.

Utilice las opciones STATS y DELTASTATS de @GETENV para devolver el número de operaciones que se han procesado por tabla para cualquiera o todos los siguientes elementos:

Cualquier error en el procesamiento de esta función, como una entrada de tabla sin resolver o una sintaxis incorrecta, devuelve un cero (0) para el valor de estadísticas solicitado.

Concepto de modo en que las especificaciones de tablas recurrentes afectan a los recuentos de operaciones

Un Extract que está procesando la misma tabla de origen para varias pistas de salida devuelve estadísticas basadas en cada pista de salida localizada en la que se escribe la tabla enlazada a @GETENV. Por ejemplo, si Extract captura 100 inserciones para la tabla ABC y escribe la tabla ABC en tres pistas, el resultado para @GETENV es 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;

En el caso de un Extract que escribe una tabla de origen varias veces en una única pista de salida, o en el caso de un Replicat que tiene varias sentencias MAP para la misma tabla TARGET, los resultados de las estadísticas se basan en todas las entradas TARGET coincidentes. Por ejemplo, si Replicat filtra 20 filas para REGION 'WEST,' 10 filas para REGION 'EAST,' 5 filas para REGION 'NORTH,' y 2 filas para REGION 'SOUTH' (todas para la tabla ABC), el resultado de @GETENV es 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'));

Captura de Varias Estadísticas

Puede ejecutar varias instancias de @GETENV para obtener recuentos para diferentes tipos de operaciones.

Este ejemplo devuelve estadísticas solo para las operaciones INSERT y UPDATE:

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

Este ejemplo devuelve estadísticas para las operaciones DDL y TRUNCATE:

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

Ejemplo de caso de uso

En el siguiente caso de uso, si todos los DML del origen se aplican correctamente al destino, Replicat se suspende mediante EVENTACTIONS con SUSPEND, hasta que se reanuda desde GGSCI con SEND REPLICAT con RESUME.

GETENV utilizado en el archivo de parámetros de Extract:

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

GETENV utilizado en el archivo de parámetros de Replicat:

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);

Uso de Estadísticas en Cláusulas FILTER

Las estadísticas devueltas por STATS y DELTASTATS son valores dinámicos y se incrementan después de realizar la asignación. Por lo tanto, al utilizar estadísticas de CDR en una cláusula FILTER en cada una de las varias sentencias MAP, debe ordenar las sentencias MAP en orden descendente de los valores de estadísticas. Si el pedido no es correcto, Oracle GoldenGate devuelve el error OGG-01921. Para obtener información detallada sobre este requisito, consulte el documento 1556241.1 en la base de conocimientos de My Oracle Support, en https://support.oracle.com.

Ejemplo 4-1 Sentencias MAP que contienen estadísticas en las cláusulas FILTER

En el siguiente ejemplo, las sentencias MAP que contienen el filtro para la estadística CDR_CONFLICTS se ordenan en orden descendente de la estadística: >3, =3 y, a continuación, <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);

Sintaxis

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

STATS devuelve recuentos desde el inicio del proceso, mientras que DELTASTATS devuelve recuentos desde la última ejecución de un DELTASTATS.

La lógica de ejecución es la siguiente:

‘TABLE’, ‘<table>’

Ejecuta STATS o DELTASTATS solo para la tabla o tablas especificadas. Sin esta opción, se devuelven recuentos para todas las tablas que se especifican en los parámetros TABLE (Extraer) o MAP (Replicat) del archivo de parámetros.

Los valores válidos de <table_name> son:

Por ejemplo, lo siguiente cuenta las operaciones DML solo para las tablas del esquema hr:

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

Del mismo modo, lo siguiente cuenta las operaciones DML solo para la tabla emp en el esquema hr:

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

Por el contrario, dado que no hay tablas específicas especificadas para STATS en el siguiente ejemplo, la función cuenta todas las operaciones INSERT, UPDATE y DELETE para todas las tablas de todos los esquemas que se representan en las cláusulas TARGET de las sentencias MAP:

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

<'statistic>’

El tipo de estadística que se devolverá. Consulte Uso de estadísticas en cláusulas FILTER para obtener información importante al utilizar estadísticas en cláusulas FILTER en varias sentencias TABLE o MAP.

‘INSERT’

Devuelve el número de operaciones INSERT que se han procesado.

‘UPDATE’

Devuelve el número de operaciones UPDATE que se han procesado.

‘DELETE’

Devuelve el número de operaciones DELETE que se han procesado.

‘DML’

Devuelve el total de operaciones INSERT, UPDATE, y DELETE que se han procesado.

‘TRUNCATE’

Devuelve el número de operaciones TRUNCATE que se han procesado. Esta variable devuelve un recuento solo si no se utiliza la replicación DDL de Oracle GoldenGate. Si se está utilizando la replicación DDL, esta variable devuelve un cero.

‘DDL’

Devuelve el número de operaciones DDL que se han procesado, incluidos los valores TRUNCATE y DDL especificados en las cláusulas INCLUDE y EXCLUDE del parámetro DDL, todos los ámbitos (MAPPED, UNMAPPED, OTHER). Esta variable devuelve un recuento solo si se está utilizando la replicación DDL de Oracle GoldenGate. Esta variable no es válida para 'DELTASTATS'.

‘CDR_CONFLICTS’

Devuelve el número de conflictos que Replicat detectó al ejecutar la función Detección y resolución de conflictos (CDR).

Ejemplo para un <table> específico:

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

Ejemplo para todas las tablas procesadas por Replicat:

@GETENV ('STATS','CDR_CONFLICTS')

‘CDR_RESOLUTIONS_SUCCEEDED’

Devuelve el número de conflictos que Replicat resolvió al ejecutar la función Detección y resolución de conflictos (CDR).

Ejemplo para un <table> específico:

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

Ejemplo para todas las tablas procesadas por Replicat:

@GETENV ('STATS','CDR_RESOLUTIONS_SUCCEEDED')

‘CDR_RESOLUTIONS_FAILED’

Devuelve el número de conflictos que Replicat no pudo resolver al ejecutar la función Detección y resolución de conflictos (CDR).

Ejemplo para un <table> específico:

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

Ejemplo para todas las tablas procesadas por Replicat:

@GETENV ('STATS','CDR_RESOLUTIONS_FAILED')

'GGENVIRONMENT' , '<environment_info>'

Válido para Extraer y Replicat.

Utilice la opción GGENVIRONMENT de @GETENV para devolver información sobre el entorno de Oracle GoldenGate.

Sintaxis

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

‘DOMAINNAME’

(Solo Windows) Devuelve el nombre de dominio asociado con el usuario que inició el proceso.

‘GROUPDESCRIPTION’

Devuelve la descripción del grupo, tomada del archivo de punto de control. Necesita que se haya proporcionado una descripción con el parámetro DESCRIPTION cuando se creó el grupo con el comando ADD.

‘GROUPNAME’

Devuelve el nombre del grupo de procesos.

‘GROUPTYPE’

Devuelve el tipo de proceso, EXTRACT o REPLICAT.

‘HOSTNAME’

Devuelve el nombre del sistema que ejecuta el proceso de extracción o replicación.

‘OSUSERNAME’

Devuelve el nombre de usuario del sistema operativo que inició el proceso.

‘PROCESSID’

Devuelve el proceso ID que el sistema operativo asigna al proceso.

'GGHEADER' , '<header_info>'

Válido para Extraer y Replicat.

Utilice la opción GGHEADER de @GETENV para devolver información de la parte de cabecera de un registro de pista de Oracle GoldenGate. La cabecera describe el entorno de transacción del registro. Para obtener más información sobre las cabeceras y los tipos de registro, consulte Formato de registro de pista.

Sintaxis

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

Nota: No utilice TIMESTAMP_PRECISE para las operaciones de ordenación. En su lugar, utilice este valor: @COMPUTE`(`@COMPUTE`(`@NUMSTR`(`@GETENV` ("RECORD``",

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



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

‘BEFOREAFTERINDICATOR’

Devuelve el indicador antes o después que muestra si el registro es una imagen anterior o una imagen posterior. Los posibles resultados son:

‘COMMITTIMESTAMP’

Devuelve el registro de hora de la transacción (la hora a la que se confirmó la transacción) expresado con el formato YYYY-MM-DD HH:MI:SS.FFFFFF, por ejemplo:

2011-01-24 17:08:
59.000000

‘LOGPOSITION’

Devuelve la posición del proceso de extracción en el origen de datos. (Consulte la opción LOGRBA).

‘LOGRBA’

LOGRBA y LOGPOSITION almacenan detalles de la posición en el origen de datos del registro. Para los productos basados en logs transaccionales, LOGRBA es el número de secuencia y LOGPOSITION es la dirección de bytes relativa. Sin embargo, estos valores variarán según el método de captura y el tipo de base de datos.

‘OBJECTNAME’ ‘TABLENAME’

Devuelve el nombre de la tabla o el nombre del objeto (si es un objeto que no es de la tabla).

‘OPTYPE’

Devuelve el tipo de operación. Los posibles resultados son:

INSERT
UPDATE
DELETE
SQL COMPUPDATE
PK UPDATE
TRUNCATE

Si la operación no es uno de los tipos anteriores, la función devuelve la palabra TYPE con el número asignado al tipo.

‘RECORDLENGTH’

Devuelve la longitud del registro en bytes.

‘TRANSACTIONINDICATOR’

Devuelve el indicador de transacción. El valor corresponde al campo TransInd de la cabecera del registro, que se puede ver con la utilidad Logdump.

Los posibles resultados son:

'GGFILEHEADER' , 'header_info'

Válido solo para Replicat.

Utilice la opción GGFILEHEADER de @GETENV para recuperar atributos de un archivo de extracción o de pista de Oracle GoldenGate. Estos atributos se almacenan como tokens en la cabecera del archivo. Nota: Si una base de datos, un sistema operativo o una versión de Oracle GoldenGate determinados no proporcionan información relacionada con un token determinado, se devolverá un valor NULL.

Sintaxis

@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’

Devuelve el nivel de compatibilidad del archivo de pista. El nivel de compatibilidad de la versión actual de Oracle GoldenGate debe ser mayor o igual que el nivel de compatibilidad del archivo de pista para poder leer los registros de datos en ese archivo. Los valores actuales válidos van de 0 o 6.

‘CHARSET’

Devuelve el juego de caracteres global del archivo de pista. Por ejemplo:

WCP1252-1

‘CREATETIMESTAMP’

Devuelve la hora a la que se creó la pista, en la hora local GMT Julian en INT64.

‘FILENAME’

Devuelve el nombre del archivo de pista. Puede ser una ruta de acceso absoluta o relativa, con una barra inclinada o hacia atrás según el sistema de archivos.

‘FILETYPE’

Devuelve un valor numérico que indica si el archivo de pista es un único archivo (como uno creado para una ejecución por lotes) o un archivo numerado secuencialmente que forma parte de una pista para el procesamiento continuo en línea. Los valores válidos son:

‘FILESEQNO’

Devuelve el número de secuencia del archivo de pista, sin ceros iniciales. Por ejemplo, si un número de secuencia de archivo es aa000026, FILESEQNO devuelve 26.

‘FILESIZE’

Devuelve el tamaño del archivo del pista. Devuelve NULL en un archivo activo y devuelve un valor de tamaño cuando el archivo está lleno y la pista se vuelca.

‘FIRSTRECCSN’

Devuelve el número de secuencia de confirmación (CSN) del primer registro del archivo de pista. El valor es NULL hasta que se complete el archivo de pista.

‘LASTRECCSN’

Devuelve el número de secuencia de confirmación (CSN) del último registro del archivo de pista. El valor es NULL hasta que se complete el archivo de pista.

‘FIRSTRECIOTIME’

Devuelve la hora a la que se escribió el primer registro en el archivo de pista. El valor es NULL hasta que se complete el archivo de pista.

‘LASTRECIOTIME’

Devuelve la hora a la que se escribió el último registro en el archivo de pista. El valor es NULL hasta que se complete el archivo de pista.

‘RECOVERYMODE’

Devuelve información de recuperación para el uso interno de Oracle GoldenGate. Normalmente se define en APPENDMODE.

‘URI’

Devuelve el identificador de recurso universal del proceso que ha creado el archivo de pista, en el siguiente formato:

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

Dónde:

El siguiente ejemplo muestra dónde se ha procesado la pista y por qué proceso. Esto incluye un historial de ejecuciones anteriores.

sys1:home:oracle:v9.5:extora

‘URIHISTORY’

Devuelve una lista de los URI de los procesos que escribieron en el archivo de pista antes del proceso actual.

‘GROUPNAME’

Devuelve el nombre del grupo que está asociado al proceso de extracción que creó la pista. El nombre de grupo es el que se proporcionó cuando se ejecutó el comando ADD EXTRACT.

‘DATASOURCE’

Devuelve el origen de datos que ha leído el proceso como un número. El valor de retorno puede ser uno de los siguientes:

‘GGMAJORVERSION’

Devuelve la versión principal del proceso de extracción que ha creado la pista, expresada como un entero. Por ejemplo, si una versión es 1.2.3, devuelve 1.

‘GGMINORVERSION’

Devuelve la versión secundaria del proceso de extracción que ha creado la pista, expresada como un entero. Por ejemplo, si una versión es 1.2.3, devuelve 2.

‘GGVERSIONSTRING’

Devuelve el nivel de mantenimiento (o parche) del proceso de extracción que ha creado la pista, expresado como un entero. Por ejemplo, si una versión es 1.2.3, devuelve 3.

‘GGMAINTENANCELEVEL’

Devuelve la versión de mantenimiento del proceso (xx.xx.xx)).

‘GGBUGFIXLEVEL’

Devuelve la versión del parche del proceso (xx.xx.xx.xx)).

‘GGBUILDNUMBER’

Devuelve el número de compilación del proceso.

‘HOSTNAME’

Devuelve el nombre DNS del equipo en el que se está ejecutando el Extract que escribió la pista. Por ejemplo:

‘OSVERSION’

Devuelve la versión principal del sistema operativo de la máquina en la que se está ejecutando el Extract que escribió la pista. Por ejemplo:

‘OSRELEASE’

Devuelve la versión del sistema operativo de la máquina en la que se está ejecutando el Extract que escribió la pista. Por ejemplo, las versiones de versiones de los ejemplos proporcionados para OSVERSION podrían ser:

‘OSTYPE’

Devuelve el tipo de sistema operativo de la máquina en la que se está ejecutando el Extract que escribió la pista. Por ejemplo:

‘HARDWARETYPE’

Devuelve el tipo de hardware de la máquina en la que se está ejecutando el Extract que escribió la pista. Por ejemplo:

‘DBNAME’

Devuelve el nombre de la base de datos, por ejemplo, findb.

‘DBUNIQUENAME’

Devuelve el valor del token DB_UNIQUE_NAME como leído de la cabecera del archivo de pista de origen. Su valor coincide con el parámetro DB_UNIQUE_NAME de la base de datos origen.

‘DBINSTANCE’

Devuelve el nombre de la instancia de base de datos, si se aplica al tipo de base de datos, por ejemplo ORA1022A.

‘DBTYPE’

Devuelve el tipo de base de datos que ha producido los datos en el archivo de pista. Puede ser una de las siguientes:

DB2 UDB
DB2 ZOS
MSSQL
MYSQL
ORACLE
TERADATA
ODBC

‘DBCHARSET’

Devuelve el juego de caracteres que utiliza la base de datos que ha producido los datos en el archivo de pista. (Para algunas bases de datos, estará vacío.)

‘DBMAJORVERSION’

Devuelve la versión principal de la base de datos que ha producido los datos en el archivo de pista.

‘DBMINORVERSION’

Devuelve la versión secundaria de la base de datos que ha generado los datos en el archivo de pista.

‘DBVERSIONSTRING’

Devuelve el nivel de mantenimiento (parche) de la base de datos que ha producido los datos en el archivo de pista.

‘DBCLIENTCHARSET’

Devuelve el juego de caracteres que utiliza el cliente de base de datos.

‘DBCLIENTVERSIONSTRING’

Devuelve el nivel de mantenimiento (parche) del cliente de base de datos. (Para algunas bases de datos, estará vacío.)

‘LASTCOMPLETECSN’

Devuelve información de recuperación para el uso interno de Oracle GoldenGate.

‘LASTCOMPLETEXIDS’

Devuelve información de recuperación para el uso interno de Oracle GoldenGate.

‘LASTCSN’

Devuelve información de recuperación para el uso interno de Oracle GoldenGate.

‘LASTXID’

Devuelve información de recuperación para el uso interno de Oracle GoldenGate.

‘LASTCSNTS’

Devuelve información de recuperación para el uso interno de Oracle GoldenGate.

'RECORD' , '<location_info>'

Válido para un Extract o Replicat de pump de datos.

Utilice la opción RECORD de @GETENV para devolver la ubicación o el ID de fila de Oracle de un registro en un archivo de pista de Oracle GoldenGate.

Sintaxis

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

‘TIMESTAMP_PRECISE’

Válido para Extraer o Replicat.

La opción TIMESTAMP_PRECISE devuelve el registro de hora del año a los microsegundos. Sin embargo, según la base de datos, el valor puede estar en milisegundos con 0 microsegundos.

‘FILESEQNO’

Devuelve el número de secuencia del archivo de pista sin ceros iniciales.

‘FILERBA’

Devuelve la dirección de bytes relativa del registro en el archivo FILESEQNO.

‘ROWID’

(Válido para Oracle) Devuelve el ID de fila del registro.

‘RSN’

Devuelve el número de secuencia de registro dentro de la transacción. Este valor no siempre genera valores que aumentan de forma única y no se debe utilizar para las operaciones de indicación. Para realizar pedidos de transacciones u operaciones DML en una transacción, utilice la información descrita en MOS 2036276.1.

‘TIMESTAMP’

Devuelve el registro de hora del registro.

Ejemplo:

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

'DBENVIRONMENT' , '<database_info>'

Válido para Extraer y Replicat.

Utilice la opción DBENVIRONMENT de @GETENV para devolver información de entorno global para una base de datos.

Sintaxis

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

‘DBNAME’

Devuelve el nombre de la base de datos.

‘DBUNIQUENAME’

Devuelve el valor del parámetro DB_UNIQUE_NAME de la base de datos a la que está conectado el proceso. Base de datos origen en el caso de Extract y base de datos destino para Replicat. Este valor solo se definirá para las bases de datos Oracle.

‘DBVERSION’

Devuelve la versión de la base de datos.

‘DBUSER’

Devuelve el usuario de conexión a la base de datos. Tenga en cuenta que SQL Server no registra el usuario ID.

‘SERVERNAME’

Devuelve el nombre del servidor.

'TRANSACTION' , '<transaction_info>'

Válido para Extract.

Utilice la opción TRANSACTION de @GETENV para devolver información sobre una transacción de origen. Esta opción es válida para el proceso de extracción, pero no para extracción de bomba y Replicat.

Sintaxis

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

Nota: No utilice TIMETSAMP_PRECISE ni TIMESTAMP para las operaciones de ordenación. En su lugar, utilice este valor: @COMPUTE(@COMPUTE(@NUMSTR(@GETENV ("RECORD", "FILESEQNO"))*100000000000)+@NUMSTR(@GETENV ("RECORD", "FILERBA")))

‘TIMESTAMP_PRECISE’

Esta opción es válida para Extract. Utilice TIMESTAMP_PRECISE devuelve el registro de hora del año a los microsegundos. Sin embargo, en función de la base de datos, el valor puede estar en milisegundos con 0 microsegundos

‘TRANSACTIONID’ ‘XID’

Devuelve el número de transacción ID. Se puede utilizar TRANSACTIONID o XID. La transacción ID y CSN se asocian al primer registro de cada transacción y se almacenan como tokens en el registro de seguimiento. Para cada transacción ID, hay un CSN asociado. Los tokens de transacción ID no tienen relleno cero en ninguna plataforma, ya que nunca se evalúan como valores relativos. Solo se evalúan si coinciden o no. Tenga en cuenta que en la pista, el token ID de la transacción se muestra como TRANID.

‘CSN’

Devuelve el número de secuencia de confirmación (CSN). CSN no se rellena con cero cuando se devuelve para estas bases de datos: Oracle, Db2 LUW y Db2 z/OS. Para todas las demás bases de datos soportadas, CSN tiene relleno cero.

Tenga en cuenta que en la pista, el token CSN se muestra como LOGCSN. Consulte el valor de entorno TRANSACTIONID | XID para obtener información adicional sobre el token CSN.

Para obtener más información sobre CSN, consulte Commit Sequence Number (CSN).

‘TIMESTAMP’

Devuelve el registro de hora de confirmación de la transacción.

‘NAME’

Devuelve el nombre de la transacción, si está disponible.

‘USERNAME’

(Oracle) Devuelve el nombre de usuario de Oracle del usuario de la base de datos que ha confirmado la última transacción. Esto no es válido para Extract de bomba y/o Replicat.

‘PLANNAME’

(Db2 z/OS) Devuelve el nombre del plan con el que se ejecutó originalmente la transacción actual. El nombre del plan se incluye en el registro de registro de inicio de unidad de recuperación.

‘LOGBSN’

Devuelve el número de secuencia inicial (BSN) en el log de transacciones. El BSN es el número de secuencia nativo que identifica el inicio de la transacción sin confirmar más antigua que se mantiene en la memoria de Extract. Por ejemplo, en una base de datos Oracle, el BSN se expresaría como un número de cambio del sistema (SCN). El BSN corresponde al valor de punto de control de E/S actual de Extract. Replicat puede obtener este valor de la pista cuando se utiliza @GETENV ('TRANSACTION', 'LOGBSN'). Este valor también se puede obtener mediante el comando INFO REPLICAT con la opción DETAIL. El objetivo de obtener el BSN de Replicat es obtener un punto de recuperación para Extract en caso de que un fallo del sistema o la corrupción del sistema de archivos hagan que el archivo de punto de control Extract no se pueda utilizar.

‘REDOTHREAD’

Devuelve el número de thread de una extracción de nodo de RAC; en la extracción de nodo que no sea de RAC, el valor siempre es 1. Para el pump de datos y Replicat, se devuelve el ID de thread utilizado por la captura de Extract de un nodo de RAC; en un nodo que no es RAC, @GETENV() devuelve un error. Logdump muestra el token, ORATHREADID, en la sección de token si Extract captura la transacción en un nodo de RAC.

‘PROGRAMNAME’

Nombre del programa o aplicación que inició la transacción o sesión.

‘CLIENTIDENTIFIER’

Valor definido mediante DBMS_SESSION_.set_identifier().

‘MACHINENAME’

Nombre del host, máquina o servidor en el que se ejecuta la base de datos

‘USERNAME’

Nombre de usuario de conexión a la base de datos.

Ejemplo:

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

'OSVARIABLE' , '<variable>'

Válido para Extraer y Replicat.

Utilice la opción OSVARIABLE de @GETENV para devolver el valor de cadena de una variable de entorno del sistema operativo especificada.

Sintaxis

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

<'variable'>

Nombre de la variable. La búsqueda coincide exactamente con el nombre de variable proporcionado. Por ejemplo, el comando UNIX grep devolvería todas las siguientes variables, pero @GETENV ('OSVARIABLE', 'HOME') solo devolvería el valor para HOME:

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

La búsqueda distingue entre mayúsculas y minúsculas si el sistema operativo admite la distinción entre mayúsculas y minúsculas.

'TLFKEY' , SYSKEY, '<unique_key>'

Válido para Extraer y Replicat.

Utilice la opción TLFKEY de @GETENV para asociar una clave única a los registros TLF/PTLF en la aplicación Base24 de ACI. La clave de 64 bits se compone de los siguientes elementos concatenados:

Sintaxis

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

SYSKEY, <unique_key>

Número de nodo NonStop del archivo TLF/PTLF de origen. No incluya este elemento de sintaxis entre comillas.

Ejemplo:

GETENV ('TLFKEY', SYSKEY, 27)

'INFORMACIÓN DE LA BASE DE DATOS DE ORIGEN'

Esta opción tiene los campos DBUNIQUENAME y DBNAME. Los campos de SOURCEDATABASEINFO son diferentes de los campos de GGFILEHEADER. En primer lugar, su rendimiento es mejor en comparación con los campos de GGFILEHEADER, por lo que utilizar SOURCEDATABASEINFO es una mejor alternativa para los escenarios en los que el rendimiento es fundamental. En segundo lugar, cuando el token DBUNIQUENAME no está disponible en la cabecera de pista, ya sea porque el archivo de pista lo ha generado una versión anterior de Oracle GoldenGate o porque la base de datos no es Oracle, @GETENV tratará DBUNIQUENAME como sinónimo de DBNAME. En este caso, se escribirá un mensaje de advertencia en el archivo de informe, la primera vez que se lee una cabecera sin el token.