Open Exchange
Global Masters
Home / Class Reference / %SYS namespace / SYS.History.SharedMemoryData
Private  Storage   


persistent class SYS.History.SharedMemoryData extends
%Persistent, %XML.Adaptor

Basic detail collection class of System Usage metrics for the Shared Memory Application Monitor (%Monitor.System.HistoryMemory) Properties represent metrics which get collected every few minutes by the %MONAPP Application Monitor process when the %Monitor.System.HistoryMemory class is "active".


Parameters Properties Methods Queries Indices ForeignKeys Triggers
12 12 2 1


Allocated Available GSTUsed Length
SMID SMTUsed TotalGSTSMTAllocated TotalUsed

%AddToSaveSet %AddToSyncSet %BMEBuilt %BuildIndicesAsync
%BuildIndicesAsyncResponse %CheckConstraints %CheckConstraintsForExtent %ClassIsLatestVersion
%ClassName %ComposeOid %ConstructClone %Delete
%DeleteExtent %DeleteId %DispatchClassMethod %DispatchGetModified
%DispatchGetProperty %DispatchMethod %DispatchSetModified %DispatchSetMultidimProperty
%DispatchSetProperty %Exists %ExistsId %Extends
%GUID %GUIDSet %GetLock %GetParameter
%GetSwizzleObject %Id %InsertBatch %IsA
%IsModified %IsNull %KillExtent %KillExtentData
%LoadFromMemory %LockExtent %LockId %New
%NormalizeObject %ObjectIsNull %ObjectModified %Oid
%OnBeforeAddToSync %OnDetermineClass %Open %OpenId
%OriginalNamespace %PackageName %PhysicalAddress %PurgeIndices
%Reload %RemoveFromSaveSet %ResolveConcurrencyConflict %RollBack
%Save %SaveDirect %SaveIndices %SerializeObject
%SetModified %SortBegin %SortEnd %SyncObjectIn
%SyncTransport %UnlockExtent %UnlockId %ValidateIndices
%ValidateObject Demo Purge Report
SetPurge XMLDTD XMLExport XMLExportToStream
XMLExportToString XMLNew XMLSchema XMLSchemaNamespace


• property Allocated as %Integer [ SqlFieldName = Allocated ];
Shared Memory Allocated
• property Available as %Integer [ SqlFieldName = Available ];
Shared Memory Available
• property GSTUsed as %Integer [ SqlFieldName = GSTUsed ];
General String Table Used
• property Length as %Integer;
Length of sample in seconds
• property SMID as array of SYS.History.SharedMemoryUsage;
System usage metrics
• property SMTUsed as %Integer [ SqlFieldName = SMTUsed ];
Static Memory Table Used
• property TotalGSTSMTAllocated as %Integer [ SqlFieldName = TotalGSTSMTAllocated ];
Total GST and SMT allocated
• property TotalUsed as %Integer [ SqlFieldName = TotalUsed ];
Total Memory used
• property Used as %Integer [ SqlFieldName = Used ];
Shared Memory Used
• property ZDATE as %Integer;
UTC date key
• property ZTIME as %Integer;
UTC time key


• classmethod Demo(Days As %Integer = 1, Interval As %Integer = 300) as %Integer

Create some data for demonstration purposes.

By default this method will create data for a single day assuming a sample interval of 300 seconds, hence it will generate (86400/300) samples.

The method works by finding the current usage of shared memory heap, and then for every sample will randomly increase or decrease the shared memory heap usage for a single consumer, with a bias towards gradually increasing the total SMH usage.

Warning: This will delete all existing data for SMH analysis

• classmethod Purge(DaysKeep As %Integer = 0) as %Integer

Purge SharedMemoryData interval data, keeping the last 'DaysKeep' days.

This is typically called at the start of each day from the %Monitor.System.HistorySys class, using the current system default for 'Keep' (see the SetPurge() method). The 'DaysKeep' argument allows you to over ride the system default , a value of "0" or "" uses the system default, and a value of -1 deletes everything.

Returns the number of entries purged.

• classmethod Report(Verbosity As %Integer = 0, StartZD As %Integer = 0, EndZD As %Integer = 0)

Generate a report that analyses the data that has been previously captured by the application monitor.

By default the report will include all samples from the table and will simply return a value that is the recommended size of SMH expressed in Kilobytes, which is calculated as the sum of the peak usage of all the shared memory heap consumers with a growth value added (2MB per CPU).

Verbosity The verbosity of the display to the screen, where 0 is the minimum verbosity (no output), 1 displays a summary and 2 displays a breakdown of the different consumers.

StartZD By default the report will include all samples found, but by passing a value here in internal date format, the report will only start from that date

EndZD By default the report will continue until the final sample at the last time and date is found. By passing a value here, which is a date in internal format, the report will stop its analysis at the end of this date.
• classmethod SetPurge(Keep As %Integer = 0)

Set the system parameter for the number of days of sample data to keep.

Initial system default is 7 days. Return value is the previous setting, and executing this method with a "" argument will return the current setting without modifying it.


• query UsageQuery()
Selects DateTime As %TimeStamp, ZDATE As %Integer, ZTIME As %Integer, Allocated As %Integer, Available As %Integer, Used As %Integer, SMTUsed As %Integer, GSTUsed As %Integer, TotalUsed As %Integer

Query the shared memory heap data and return a single data for each sample. The data returned is the total for this sample.

• query UsageQuerySMID()
Selects DateTime As %TimeStamp, ZDATE As %Integer, ZTIME As %Integer, ConsumerName As %String, ConsumerID As %Integer, Allocated As %Integer, Available As %Integer, Used As %Integer, SMTUsed As %Integer, GSTUsed As %Integer, TotalUsed As %Integer

Query the shared memory heap data and return a data row for each consumer for each sample. Therefore the data returned reflects a single consumer of shared memory heap, and you will need multiple data rows returned for a full sample.


•index (ZDTindex on ZDATE,ZTIME) [IdKey];
Database metrics