The LongWaitLogTime Startup Option allows up to troubleshoot slow systems by logging instances of methods that take over a certain number of seconds. The value of the LongWaitLogTime indicates the number of seconds considered a long wait.

Log File

When a long process occurs, an entry in the Long Wait log file is made. This log can be found in the user's log folder with the name “Control_LongWaitLog.TXT”. Every instance of Control will get a unique file, so if the file already exists, a number will be appended to the file name (Ex. “Control_LongWaitLog01.TXT”).

Log File Columns

DateTimeThe date and time the entry was posted.
DurationThe amount of time the method took to process.
CategoryThe category of the entry.
NotesThe notes of the entry.
Last Action DateTimeThe date and time of the last action enacted by the user.
Last Action Object Class NameThe object class name of the last action enacted by the user.
Last Action Object IDThe object ID of the last action enacted by the user.
Last Action Object TextThe object Text of the last action enacted by the user.
Last Action ActionTextThe action text of the last action enacted by the user.
Last Action ActionIDThe action ID of the last action enacted by the user.

Categories

Category Description Notes
TTierObject.LoadLoad method at the base class.ClassName,
ID
TBusinessRule.LoadLoad method of a Solo Item at the Business Rule Tier.ClassName,
ID
TStorageObject.LoadLoad method of a Solo Item at the Storage Tier.ClassName,
ID
TCollectionBusinessRule.LoadLoad method of a Collection at the Business Rule Tier.ClassName
TCollectionEntity.LoadLoad method of a Collection at the Entity Tier.ClassName
TCollectionStorageObject.LoadLoad method of a Collection at the Storage Tier.ClassName
TCollectionEntity.LoadDataMethod that loads a collection from the database.ClassName,
aEntityClass: The classtype being loaded into the collection.
TCollectionEntity.DoLoadItemsFromCollMethod that loads a collection from another collection.ClassName,
aColl.ClassName: Class name of the source collection
TBusinessRule.EnactEnact method for an action on a Solo Item.ClassName,
ID,
ActionID,
IsPrimary: If True, the action was initiated by the user. Otherwise, it was initiated in code.
TCollectionBusinessRule.EnactEnact method for an action on a Collection.ClassName,
ActionID,
IsPrimary: If True, the action was initiated by the user. Otherwise, it was initiated in code.
TCyriousFrame.DoRefreshDoRefresh method for a frame.ClassName
TCyriousFrame.DoRefreshDataDoRefreshData method for a frame.ClassName
TCyriousFrame.DoRefreshStateDoRefreshState method for a frame.ClassName
TCyriousFrame.DoRefreshActionsDoRefreshActions method for a frame.ClassName
TRefreshUtils.HandleCollectionsRefreshThe method that checks Collections to see if they need to be reloaded after a refresh of an item.EntityClass: The Entity classtype of the item the sent the refresh notification.
Refresh message arrivalIndicates the amount of time from when a refresh notification was sent and when it was processed.
The start time is set by the client that saved the record, so any differences in machine times will be a factor.
TCP MessageIndicates the amount of time from when a TCP was sent from the SSLIP and when it was received by Control.
The start time is set by the SSLIP when sending the message, so any differences in machine times will be a factor.
TTierObject.WndProc

ID,

Msg: The hex code of the message offset for easy lookup in BaseConstants.

WParam: The WParam parameter value of the message,

LParam: The LParam parameter value of the message.

Source

Contributor: Greg Schroeder

Date: 05/07/2015

Version: Control 5.6T