}
}
for ( int i = 0; i < auxCaches.length; i++ )
{
ICache aux = auxCaches[i];
if ( log.isDebugEnabled() )
{
log.debug( "Auxilliary cache type: " + aux.getCacheType() );
}
// SEND TO REMOTE STORE
if ( aux != null && aux.getCacheType() == ICache.REMOTE_CACHE )
{
if ( log.isDebugEnabled() )
{
log.debug( "ce.getElementAttributes().getIsRemote() = "
+ ce.getElementAttributes().getIsRemote() );
}
if ( ce.getElementAttributes().getIsRemote()
&& ! localOnly )
{
try
{
// need to make sure the group cache understands that the
// key is a group attribute on update
aux.update( ce );
if ( log.isDebugEnabled() )
{
log.debug( "Updated remote store for "
+ ce.getKey() + ce );
}
}
catch ( IOException ex )
{
log.error( "Failure in updateExclude", ex );
}
}
// SEND LATERALLY
}
else if ( aux != null
&& aux.getCacheType() == ICache.LATERAL_CACHE )
{
// lateral can't do the checking since it is dependent on the cache region
// restrictions
if ( log.isDebugEnabled() )
{
log.debug( "lateralcache in aux list: cattr " +
cacheAttr.getUseLateral() );
}
if ( cacheAttr.getUseLateral()
&& ce.getElementAttributes().getIsLateral()
&& ! localOnly )
{
// later if we want a multicast, possibly delete abnormal broadcaster
// DISTRIBUTE LATERALLY
// Currently always multicast even if the value is unchanged,
// just to cause the cache item to move to the front.
aux.update( ce );
if ( log.isDebugEnabled() )
{
log.debug( "updated lateral cache for " + ce.getKey() );
}
}
}
else if ( aux != null && aux.getCacheType() == ICache.DISK_CACHE )
{
// do nothing, the memory manager will call spool where necesary
// TODO: add option to put all element on disk
}
}