Cómo se carga una biblioteca de salida de comunicación
Cuando se inicia el gestor de bases de datos, la biblioteca de salidas de comunicación se carga e inicializa dinámicamente. La biblioteca debe contener la función de inicialización db2commexitInit. Esta función se conoce como función de inicialización de biblioteca.
- El número de versión más alto de la estructura de puntero de función que puede soportar la instancia de base de datos que inicia la biblioteca.
- Puntero a una estructura que contiene punteros a todas las API que requieren implementación.
- Puntero a una función que añade mensajes de registro a los archivos de registro de db2diag .
- Puntero a una serie de mensaje de error.
- La longitud del mensaje de error.
SQL_API_RC SQL_API_FN db2commexitInit
( db2int32 version,
void *commexit_fns,
db2commexitLogMessage *logMessage_fn,
char **errormsg,
db2int32 *errormsglen );La función de inicialización es la única función de la biblioteca que utiliza un nombre de función prescrito. Se hace referencia a las otras funciones de biblioteca a través de punteros de función que se devuelven de la función de inicialización.
- Convierta el puntero de funciones a un puntero de una estructura de funciones apropiada.
- Asigne los punteros a las otras funciones de la biblioteca.
- Asigne el número de versión de la estructura de puntero de función que se devuelve.
La infraestructura de biblioteca de salida de comunicaciones da soporte a la biblioteca de salida de almacenamiento intermedio de comunicaciones y a la biblioteca de salida de comunicaciones de tiempo de ejecución. El parámetro de versión de entrada contiene los números de versión más altos para ambas bibliotecas. Esta función debe utilizar la macro DB2COMMEXIT_GET_BUFFER_FN_VER para obtener el número de versión más alto soportado de la estructura de puntero de función para las funciones de estilo DRDA. La función también debe utilizar la macro DB2COMMEXIT_GET_RUNTIME_FN_VER para obtener el número de versión más alto soportado de la estructura de puntero de función para las funciones de biblioteca de salida de comunicación en tiempo de ejecución.
Para utilizar la biblioteca de salida de almacenamiento intermedio de comunicaciones, esta función debe convertir commexit_fns a db2commexitFunctions_v1. La función también debe definir los punteros de función y llamar a la macro DB2COMMEXIT_SET_BUFFER_FN_VER para establecer el número de versión. Para utilizar la biblioteca de salida de comunicación en tiempo de ejecución, esta función debe convertir commexit_fns a db2commexitRuntimeFunctions_v1. La función también debe definir los punteros de función y llamar a la macro DB2COMMEXIT_SET_RUNTIME_FN_VER para establecer el número de versión. Esta función sólo debe llamar a una de las macros.
La función db2commexitInit debe declararse extern "C" si la biblioteca se compila como C++.