The Server Objectand its containing Objectsand Variablesare built in a way that the information can be gained in several ways, suitable for different kinds of clients having different requirements. Annex Agives an overview of the design decisions made in providing the information in that way, and discusses the pros and cons of the different approaches. Figure 8gives an overview of the containing Objectsand Variablesof the diagnostic information of the Server Objectand where the information can be found.
The SessionsDiagnosticsSummary Objectcontains one Objectper session and a Variablewith an array with one entry per session. This array is of a complex DataTypeholding the diagnostic information about the session. Each Objectrepresenting a session references a complex Variablecontaining the information about the session using the same DataType as the array containing information about all sessions. Such a Variablealso exposes all its information as Variableswith simple DataTypescontaining the same information as in the complex DataType. Not shown in Figure 8is the security-related information per session, which follows the same rules.
The Serverprovides an array with an entry per subscription containing diagnostic information about this subscription. Each entry of this array is also exposed as a complex Variablewith Variablesfor each individual value. Each Objectrepresenting a session also provides such an array, but providing the subscriptions of the session.
The arrays containing information about the sessions or the subscriptions may be of different length for different connections with different user credentials since not all users may see all entries of the array. That also implies that the length of the array may change if the user is impersonated. Therefore clients that subscribe to a specific index range may get unexpected results.