Only one GSAItem can be kept in memory with the same ID. If the system maintains a reference to an item that has been removed from the cache, it would continue to use the item. When a new item with the same ID is created later, the repository can no longer synchronize all of the changes made. To prevent this, whenever an item is removed from the cache, it is added to a weak reference Hashtable. When an item is not found in the cache, the repository references this Hashtable. If the item is found, it is added back to the cache.

The weak cache stores items that have been removed from the cache, but have not yet been run through the garbage collection process. Entries in this table have been tagged as weak, indicating that they will be passed through the garbage collection process as soon as no further references are found for them.

The weak cache table contains the following data:

Property

Description

weakEntries

Current number of weak cache entries and the number of cache hits that are found in the weak cache

weakMisses

The current number of weak misses that were found in the weak cache

weakCulls

The number of times that the weak item cache is cleared. This increases by 2 when you manually invoke the clearWeakTables method on the repository.

weakItemsCulled

The number of items that were culled from the weak item cache. This occurs when the weak item cache is cleared, with this number indicating how many items have been removed from the weak item cache.

weakMaxCulled

The maximum number of weak item entries that were cleared.


Copyright © 1997, 2019 Oracle and/or its affiliates. All rights reserved. Legal Notices