Ideagen Internal Audit (Aura): "Insufficient memory to continue the execution of the program" and "OutOfMemoryException" error messages
Like any application, Ideagen Internal Audit (Aura) takes up a portion of the computer's memory, and the more you ask it to do the more memory it will consume.
Typically 'more' means:
- Increasing the number of tabs you have open
- Increasing the amount of data you attempt to display on a screen
There is a practical limit on the amount of memory that Ideagen Internal Audit (Aura) can access:
- It is constrained by the amount of memory that is left available on the PC
- The Microsoft framework on which Ideagen Internal Audit (Aura) is built has an in-built limit
This means that you can create a situation where Ideagen Internal Audit (Aura) will hit a memory limitation, and then be unable to function. Unfortunately this means that often it will not even be able to display a friendly error, and you will find one or some of the following:
- It just vanishes from the screen
- It displays a blank error box titled 'Pentana Error':
- It displays an error box with the text:
Fatal Error
A critical error has occurred which will require the application to close. Please refer to the error log for full details.
Insufficient memory to continue the execution of the program.
- The client error log at %localappdata%\Vision\[instance]\LogFiles\ contains a message like:
Exception of type: OutOfMemoryException -
Message: Exception of type 'System.OutOfMemoryException' was thrown.
The most common cause for this error is attempting to display a large volume of data on the screen, and contributing to this are:
- A large number of rows in the data set
- A large number of columns on the data grid
- Rich text columns
A special case - graphics drivers
Where the client log contains a message like:
Insufficient memory to continue the execution of the program.
at System.Windows.Media.Composition.DUCE.Channel.SyncFlush()
. . . then the issue may be caused by out-of-date graphics drivers. You can work round this by updating drivers or disabling hardware acceleration for WPF applications; see Troubleshooting application crashes with blank error box, "Insufficient memory" or OutOfMemoryException messages – Internal Audit (ideagen.com) for more information.
Mitigation
Firstly, ensure that you are not displaying rich text on the data grid.
For each rich text field in the system, the field chooser will allow you to select a 'buddy' field which contains the same data, but in plain text. Each of these fields has the same name as the rich text version, but with '(Plain)' at the end. For example Audit Description and Description (Plain):
So for each field, ensure it is the Plain version that is displayed.
Second, limit the number of rows displayed by using pre-filters.
Ideagen Internal Audit (Aura) allows for two different kinds of filtering, both showing in this screen shot:
Where on-grid filtering is used, the application downloads all records in the data set and then you can limit what is seen on screen by clicking the funnel icon next to the column title, and selecting from the dropdown either a single record or to create a custom filter.
The Pre-filter, above the data grid, is more efficient because it applies the filter before data is downloaded. This means that less data is transferred, so less memory is used (as a bonus, it is also quicker to display the result). It also helps to return smaller and more manageable numbers of rows.
Summary
So in summary, to mitigate memory problems and reduce the chance of crashes:
- Ensure that you are not displaying rich text on the data grid
- Make use of pre-filters in preference to on-grid filters
- Limit the number of open tabs
- Ensure that your PC's graphics drivers are up to date