To do so, the desired attributes structure object is created via an API call then its values appropriately manipulated. For flat file configurations, the call is lbm_*_attr_create(). For XML configuration files, use the lbm_*_attr_create_from_xml(). Here, * represents the relevant object - context, event_queue, rcv_topic etc. This call creates an attributes object with UM options at either factory defaults or those values specified in a configuration file, if one was previously loaded with lbm_config(). The attributes object options can then be read or set with the relevant *_getopt(), *_setopt() calls.
For XML configuration files, it is best to specify the applications name in the <application> tag, then load the XML file using lbm_config_xml_file() (or via environment variable LBM_XML_CONFIG_FILENAME or LBM_UMM_INFO). This ensures that only relevant parts of the XML file are available to the process. In addition, a context name may also be specified in the <context> tag and then used as the second parameter in the lbm_context_attr_create_from_xml() call. The name attribute defines the scope of the XML file that is loaded, which is especially useful in cases where multiple applications and operating requirements use the same XML file.
The attributes are applied when passed as a parameter at the time a primitive object is created; for example lbm_context_create(ctx, ctx_attr....), where ctx is the context object andctx_attr is the attributes structure.
What can we do to improve this information (2000 or fewer characters)