If you use a local Microsoft Access database file as your IMA persistent store, the amount of RAM consumed by the IMA Service process may grow continually until the IMA Service is restarted. This problem can be addressed with Windows 2000 Service Pack 2 and a registry modification.
Prior to Windows 2000 Service Pack 2, there is a memory leak in the Microsoft Jet database engine. This engine is used whenever the IMA persistent storage database is an Access file on the local MetaFrame XP server. It is also used whenever Resource Manager is installed, regardless of the IMA database type.
For more details about the fix from Microsoft, please refer to Technet article Q273772:
FIX: Memory Leak in Jet ODBC Driver with SQL_NUMERIC or SQL_C_BINARY Data
This fix is included in Windows 2000 Service Pack 2.
The amount of memory consumed by the IMA service can further be reduced by modifying the following registry entry:
Default: 0, Minimum: 512
The MaxBufferSize entry determines the size of the Jet database engine internal cache, measured in kilobytes (KB). By default, the amount of memory used is proportional to the amount of RAM in your server. If the MaxBufferSize registry entry is set to zero (the default), the following formula is used to calculate a working value:
((TotalRAM in MB - 12MB) / 4) + 512KB
For example, on a system with 32MB of RAM, the default buffer size is ((32MB - 12MB) / 4) + 512KB or 5632KB.
Microsoft requires the value be set to a minimum of 512KB (0x200 in hexadecimal). By changing the value from 0 to 512KB, you will notice that the IMA Service consumes less memory.