Provides an interface to be implemented by a Remote Metadata Adapter in order to attach a Metadata Provider to Lightstreamer. A single instance of a Remote Metadata Adapter is created by Lightstreamer through the launch of a Remote Server, based on configured class name and parameters. For this purpose, any Remote Metadata Adapter must provide a void constructor. Alternatively, an instance of a Remote Metadata Adapter is supplied to Lightstreamer programmatically through a MetadataProviderServer instance.
A Metadata Provider is used by Lightstreamer Kernel in combination with one or multiple Data Providers, uniquely associated with it; it is consulted in order to manage the push Requests intended for the associated Data Providers. A Metadata Provider supplies informations for several different goals:
- the resolution of the macro names used in the Requests;
- the check of the User accessibility to the requested Items;
- the check of the resource level granted to the User;
- the request for specific characteristics of the Items.
Note: Each Item may be supplied by one or more of the associated Data Adapters and each client Request must reference to a specific Data Adapter. However, in the current version of the interface, no Data Adapter information is supplied to the Metadata Adapter methods. Hence, the Item names must provide enough information for the methods to give an answer. As a consequence, for instance, the frequency, snapshot length and other characteristics of an Item are the same regardless of the Data Adapter it is requested from. More likely, for each Item name defined, only one of the Data Adapters in the set is responsible for supplying that Item.
All implementation methods should perform as fast as possible. See the notes on the corresponding methods in the Java In-Process interface for the method-related details. Also consider that the roundtrip time involved in the remote call adds up to each call time anyway.
In order to avoid that delays on calls for one session propagate to other sessions, the size of the thread pool devoted to the management of the client requests should be properly set, through the "server_pool_max_size" flag, in the Server configuration file.
Alternatively, a dedicated pool, properly sized, can be defined for the involved Adapter Set in â€śadapters.xmlâ€?. Still more restricted dedicated pools can be defined for the authorization-related calls and for each Data Adapter in the Adapter Set. The latter pool would also run any Metadata Adapter method related to the items supplied by the specified Data Adapter.
public: __interface IMetadataProvider;
public interface IMetadataProvider;
Public Interface IMetadataProvider