3.3.4.2 Define the Plug-in Information Variable

The following listing shows how to define the plug-in information variable.

Define the Plug-in Information Variable

static const _e_pif_plugin_info perf_mon_1_info = {
       { 1, 0 }, /* interface version */
       { 1, 0 }, /* implementation version */
       "abc/tuxedo/tsam", /* implementation id */
       ED_PERF_MON_INTF_ID, /* interface id */
       4, /* virtual table size */
       "ABC, Inc.", /* vendor */
       "Custom Plug-in for Oracle TSAM", /* product name */
       "1.0", /* vendor version */
       EF_PIF_SINGLETON, /* m_flags */
       plugin_destroy,
       plugin_copy
};

The changeable members are “implementation version”, “implementation id”, “vendor”, “product name”, “vendor version”. Other items must be kept with same with the sample.

plugin_destroy and plugin_copy are the general Oracle Tuxedo plug-in routines for destroy and copy. For a Oracle TSAM Plus Plug-in, you can write two empty functions as shown in the listing below:

plugin_destroy and plugin_copy

static TM32I _TMDLLENTRY
plugin_destroy (_TCADEF, const struct _e_pif_instance_handles *pIhandles, TM32U flags)
{
       return(EE_SUCCESS);
}
static TM32I _TMDLLENTRY
plugin_copy (_TCADEF, void *iP,
       const struct _e_pif_interception_data *pInterceptionData,
       struct _e_pif_instance_handles *pIhandles, TM32U flags)
{
       return(EE_SUCCESS);
}