// Copyright (c) 2007 DMTF. All rights reserved. [Version ( "2.7.0" ), UMLPackagePath ( "CIM::Metrics::UnitOfWork" ), Description ( "Each instance of UnitOfWork identifies a transaction that is " "either in-process or already completed. Because instances of " "\'in-process\' UnitsOfWork can be very short-lived and there " "can be a great number of active ones, use of this class as an " "instrumentation source for determining response time may be " "incorrect or inefficient, unless the rate and duration of the " "UnitsOfWork are known. The intended use is to respond to " "queries about currently active or recently completed " "UnitsOfWork. The length of time that a UnitOfWork instance " "exists after the UnitOfWork completes is not defined and " "should be assumed to be implementation-dependent. This class " "is weak to its definition (CIM_UnitOfWorkDefintion)." )] class CIM_UnitOfWork : CIM_ManagedElement { [Override ( "Description" ), Description ( "Since UnitOfWork is designed to be an extremely " "lightweight object, it is recommended that this property " "not be used. The Description specified for the " "instance\'s associated CIM_UnitOfWorkDefintion should " "apply." )] string Description; [Key, Description ( "The identifier of the UnitOfWork, within the context of " "the UnitOfWorkDefinition." )] sint64 Id; [Key, Description ( "A 16 byte value that uniquely identifies the UnitOfWork " "Definition. The use of OSF UUID/GUIDs is recommended." ), MaxLen ( 16 ), Propagated ( "CIM_UnitOfWorkDefinition.Id" )] string UoWDefId; [Description ( "The name of the user who initiated the UnitOfWork. This " "may be a real user\'s login name or a logical name " "representing an application." )] string UserName; [Description ( "The time that the UnitOfWork was started." )] datetime StartTime; [Description ( "The elapsed time since the UnitOfWork was started. Upon " "completion of the UnitOfWork, this property contains the " "total amount of time taken in processing the entire " "UnitOfWork." )] datetime ElapsedTime; [Description ( "An enumeration identifing the status of the UnitOfWork. " "Most of the property values are self-explanatory, but a " "few need additional text: \n" "3=\"Completed\" - Should be used to represent a " "\'completed\' transaction whose status (\'good\', " "\'failed\' or \'aborted\') is unknown. \n" "6=\"Completed Aborted\" - Should be used when a " "UnitOfWork has completed but was not allowed to end " "normally. An example would be when the Stop or Back " "buttons are selected from a web browser, before a page " "is fully loaded." ), ValueMap { "1", "2", "3", "4", "5", "6" }, Values { "Active", "Suspended", "Completed", "Completed Good", "Completed Failed", "Completed Aborted" }] uint16 Status; [Description ( "Indicates the granularity at which traces are written " "for this particular instance of UnitOfWork. Traces allow " "providing more detailed information on the course of the " "execution of the UnitOfWork than just the status and the " "elapsed time. The trace level does not indicate where " "the traces are found (i.e. in which file or CIM " "instances). TraceLevel cannot be set (i.e. written) " "since an instance of UnitOfWork only publishes " "information. So, the application code that executes the " "unit of work must receive the desired trace level by its " "caller (e.g. the parent module, the user or some remote " "system that initiates the unit of work). \n" "If its value is 0, no traces are available. If its value " "is > 0, traces are available. Except 0, the possible " "values and their semantics are implementation dependent. " "Two instances of UnitOfWork (even with the same " "definition) may have different trace levels since the " "desired or required granularity of traces may be " "dependent on the execution context (detection of an " "error, analysis of an error, etc.) of the unit of work. \n" "The trace level can be encoded as a bit map (each " "individual bit indicates a certain trace type and/or " "level of detail) or numbers (that are further defined by " "a value map). No encoding scheme is imposed since no " "general rules or standards exist and in consequence, " "application developers could reuse their existing trace " "level scheme." )] uint32 TraceLevel; [Description ( "A string that uniquely identifies the mutual context of " "UnitOfWork instances. The context is defined as an " "individual action that several UnitOfWork instances " "participate in. The use of Ids such as OSF UUID/GUIDs is " "recommended, although some implementations may require " "longer Ids. (This is the reason why no maxlen(16) " "qualifier has been used.) \n" "MutualContextId explicitly identifies the context for " "instances of UnitOfWork, that is otherwise provided " "implicitly by SubUoW association instances. In addition, " "one can query directly (i.e. without following the " "associations) for UnitOfWork instances that participate " "in some individual action (i.e., the mutual context). If " "no mutual context is needed or if it is not supported by " "the implementation, the value is NULL. \n" "Note that the MutualContextId value is to be transferred " "internally between the participating UnitOfWork " "implementations such that each UnitOfWork instance " "implementation receives its value from its " "predecessor/parent or initially creates the value if it " "is the first instance of the context." )] string MutualContextId; };