Notas del release
Proporciona una lista de todas las transacciones dudosas para la base de
datos actualmente conectada.
Ámbito
Esta API sólo afecta al nodo en el que se emite.
Autorización
Una de las siguientes:
Conexión necesaria
Base de datos
Archivo de inclusión de API
db2ApiDf.h
Sintaxis de API C
/* Archivo: db2ApiDf.h */
/* API: Listar transacciones dudosas */
/* ... */
SQL_API_RC SQL_API_FN
db2XaListIndTrans (
db2Uint32 versionNumber,
void * pParmStruct,
struct sqlca * pSqlca);
typedef SQL_STRUCTURE db2XaListIndTransStruct
{
db2XaRecoverStruct * piIndoubtData;
db2Uint32 iIndoubtDataLen;
db2Uint32 oNumIndoubtsReturned;
db2Uint32 oNumIndoubtsTotal;
db2Uint32 oReqBufferLen;
} db2XaListIndTransStruct;
typedef SQL_STRUCTURE db2XaRecoverStruct
{
sqluint32 timestamp;
SQLXA_XID xid;
char dbalias[SQLXA_DBNAME_SZ];
char applid[SQLXA_APPLID_SZ];
char sequence_no[SQLXA_SEQ_SZ];
char auth_id[SQL_USERID_SZ];
char log_full;
char connected;
char indoubt_status;
char originator;
char reserved[8];
} db2XaRecoverStruct;
|
Parámetros de API
- versionNumber
- Entrada. Especifica la versión y el nivel de release de la
estructura que se pasa como segundo parámetro, pParmStruct.
- pParmStruct
- Entrada. Puntero a la estructura
db2XaListIndTransStruct.
- pSqlca
- Salida. Puntero hacia la estructura sqlca. Para
obtener más información sobre esta estructura, consulte el manual Administrative API Reference.
- piIndoubtData
- Entrada. Puntero hacia el almacenamiento intermedio suministrado de
la aplicación donde se devolverán datos dudosos. Los datos dudosos
están en formato db2XaRecoverStruct. La aplicación puede
atravesar la lista de transacciones dudosas utilizando el tamaño de la
estructura db2XaRecoverStruct, empezando en la dirección
proporcionada por este parámetro.
Si el valor es NULL, DB2 calculará el tamaño del almacenamiento intermedio
necesario y devolverá este valor en oReqBufferLen.
oNumIndoubtsTotal contendrá el número total de transacciones
dudosas. La aplicación puede asignar el tamaño de almacenamiento
intermedio necesario y volver a emitir la API.
- oNumIndoubtsReturned
- Salida. El número de registros de transacciones dudosas que se
devuelven en el almacenamiento intermedio especificado por
pIndoubtData.
- oNumIndoubtsTotal
- Salida. El Número total de registros de transacciones dudosas
disponibles en el momento de la invocación de API. Si el almacenamiento
intermedio piIndoubtData es demasiado pequeño para contener todos los
registros, oNumIndoubtsTotal será mayor que el total para
oNumIndoubtsReturned. La aplicación puede volver a emitir la
API a fin de obtener todos los registros.
- Nota:
- Este número puede cambiar entre invocaciones de la API como resultado de la
resincronización automática o heurística de transacciones dudosas o como
resultado de otras transacciones que pasan al estado de dudosas.
- oReqBufferLen
- Salida. Longitud de almacenamiento intermedio necesario para
contener todos los registros de transacciones dudosas en el momento de la
invocación de la API. La aplicación puede utilizar este valor para
determinar el tamaño de almacenamiento intermedio necesario llamando a la API
con pIndoubtData establecido en NULL. A continuación, este
valor se puede utilizar para asignar el almacenamiento intermedio necesario y
la API se puede emitir con pIndoubtData establecido en la dirección
del almacenamiento intermedio asignado.
- Nota:
- El tamaño de almacenamiento intermedio necesario puede cambiar entre
invocaciones de la API como resultado de la resincronización automática o
heurística de transacciones dudosas o como resultado de otras transacciones
que pasan al estado de dudosas. La aplicación puede asignar un
almacenamiento intermedio más grande para ajustarse a ello.
- timestamp
- Salida. Especifica la hora en que la transacción ha pasado al
estado de dudoso.
- xid
- Salida. Especifica el identificador XA asignado por el gestor de
transacciones para identificar exclusivamente una transacción global.
- dbalias
- Salida. Especifica el alias de la base de datos en la que se ha
encontrado la transacción dudosa.
- applid
- Salida. Especifica el identificador de aplicación asignado por el
gestor de bases de datos para esta transacción.
- sequence_no
- Salida. Especifica el número de secuencia asignado por el gestor de
bases de datos como una extensión de applid.
- auth_id
- Salida. Especifica el ID de autorización del usuario que ha
ejecutado la transacción.
- log_full
- Salida. Indica si la transacción ha causado o no una condición de
anotación cronológica completa. Los valores válidos son:
- SQLXA_TRUE
- Esta transacción dudosa ha causado una condición de anotación cronológica
completa.
- SQLXA_FALSE
- Esta transacción dudosa no ha causado una condición de anotación
cronológica completa.
- connected
- Salida. Indica si la aplicación está o no conectada. Los
valores válidos son:
- SQLXA_TRUE
- La transacción está en un proceso de punto de sincronismo normal y está
esperando la segunda fase de la confirmación en dos fases.
- SQLXA_FALSE
- La transacción quedó en estado dudoso en una anomalía anterior y ahora
espera resincronización desde el gestor de bases de datos.
- indoubt_status
- Salida. Indica el estado de esta transacción dudosa. Los
valores válidos son:
- SQLXA_TS_PREP
- La transacción está preparada. El parámetro conectado se puede
utilizar para determinar si la transacción espera la segunda fase de un
proceso de confirmación normal o si se ha producido un error y es necesario
resincronizar con el gestor de transacciones.
- SQLXA_TS_HCOM
- La transacción se ha confirmado heurísticamente.
- SQLXA_TS_HROL
- La transacción se ha retrotraído heurísticamente.
- SQLXA_TS_MACK
- Falta el reconocimiento de confirmación desde un nodo de una base de datos
particionada para la transacción.
- SQLXA_TS_END
- La transacción ha finalizado en esta base de datos. Esta
transacción se puede reactivar, confirmar o retrotraer más adelante.
También es posible que el gestor de transacciones haya encontrado un error y
la transacción no se completará. Si éste es el caso, esta transacción
necesita acciones heurísticas dado que puede estar reteniendo bloqueos e
impedir que otras aplicaciones accedan a los datos.
Notas de utilización
Una aplicación típica realizará los pasos siguientes después de establecer
la conexión actual con la base de datos o con el nodo coordinador de bases de
datos particionadas:
- Llame a db2XaListIndTrans con piIndoubtData
establecido en NULL. Esta acción devolverá valores en
oReqBufferLen y oNumIndoubtsTotal.
- Utilice el valor que se devuelve en oReqBufferLen para asignar un
almacenamiento intermedio. Es posible que este almacenamiento
intermedio no sea suficientemente grande si existen transacciones dudosas
adicionales debido a la invocación inicial de esta API para obtener
oReqBufferLen. La aplicación puede proporcionar un
almacenamiento intermedio más grande que oReqBufferLen.
- Determine si se han obtenido todos los registros de transacciones
dudosas. Puede llevarlo a cabo comparando oNumIndoubtsReturned
con oNumIndoubtTotal. Si oNumIndoubtsTotal es mayor
que oNumIndoubtsReturned, la aplicación puede repetir los pasos
anteriores.
Consulte también
"sqlxhfrg - Olvidar estado de transacción", "sqlxphcm - Confirmar una
transacción dudosa" y "sqlxphrl - Retrotraer una transacción dudosa" en el
manual Administrative API Reference.
[ Principio de página | Página anterior | Página siguiente | Contenido | Índice ]