![]() ![]() ![]() ![]() ![]() ![]() ![]() |
This section contains the following topics:
A plug-in is a set of functions that are called when the GWWS server is running. BEA SALT provides a plug-in framework as a common interface for defining and implementing a plug-in. Plug-in implementation is carried out through a dynamic library that contains the actual function code and exports it. The implementation library can be loaded dynamically during GWWS server startup. The functions are registered as the implementation of the plug-in interface.
For more information see, Using Plug-ins with BEA SALT in BEA SALT Programming Web Services.
To use a plug-in with BEA SALT, you must do the following:
<Plug-in>
system parameter in the SALT configuration file.For more information about specifying a plug-in, see Configuring BEA SALT.
There are basic requirements for a plug-in. These requirements include:
The plug-in ID is an arbitrary string that is unique to the plug-in so that it differentiates it from another plug-in. BEA SALT 1.1 only support the P_CUSTOM_TYPE
plug-in ID.
The plug-in name differentiates an implementation from other implementations of the same plug-in. The plug-in name must match the custom type buffer name defined in the Tuxedo Service Metadata Repository.
An initializing function called _ws_pi_init_ID_Name()
, in which ID
and Name
are the ID of plug-in interface and the name of the plug-in implementation.
The function is called when being registered. The initializing uses the following syntax:
int _ws_pi_init_ID_Name(char * params, void **priv_ptr);
The function should allocate all necessary resources and setup the vtable for the plug-in. When the register function initializes, the vtable interface can be setup if necessary.
The first parameter is a string that is passed to the dynamic library for initialization. The second parameter stores private data that the implementation may need.
The exiting function uses the following syntax:
int _ws_pi_exit_ID_Name(void * priv);
The exiting function is called when the implementation is unregistered and a function to setup the vtable interface is called:
int _ws_pi_set_vtbl_ID_Name(void *vtbl);
![]() ![]() ![]() |