On shutdown .key (empty during runtime) not written and .data (not empty during 
runtime) deleted
------------------------------------------------------------------------------------------------

                 Key: JCS-92
                 URL: https://issues.apache.org/jira/browse/JCS-92
             Project: Commons JCS
          Issue Type: Bug
          Components: Composite Cache
    Affects Versions: jcs-1.3
         Environment: win 7x64; jvm 1.6
            Reporter: Karl Klinge


On shutdown .key (which is empty during runtime) is not written from memory and 
.data (not empty during runtime) is deleted.



cache ccf:

#####################################################
############## Default Region Configuration
jcs.default=DC2
jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
jcs.default.cacheattributes.MaxObjects=50
jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache

#####################################################
############## CACHE REGIONS
jcs.region.sac=DC2
jcs.region.sac.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
jcs.region.sac.cacheattributes.MaxObjects=10
jcs.region.sac.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
jcs.region.sac.elementattributes.IsEternal=true
##jcs.region.sac.elementattributes.MaxLifeSeconds=172800 ## 2 Tage
jcs.region.sac.cacheattributes.DiskUsagePatternName=UPDATE



####################################################
############### AUXILIARY CACHES
# Indexed Disk Cache
jcs.auxiliary.DC2=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory
jcs.auxiliary.DC2.attributes=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes
jcs.auxiliary.DC2.attributes.DiskPath=c:/cache/status
jcs.auxiliary.DC2.attributes.MaxPurgatorySize=1000
jcs.auxiliary.DC2.attributes.MaxKeySize=100000
jcs.auxiliary.DC2.attributes.OptimizeAtRemoveCount=30000
jcs.auxiliary.DC2.attributes.OptimizeOnShutdown=true
jcs.auxiliary.DC2.attributes.MaxRecycleBinSize=1000


Object to write to cache:
key: string

value (all used classes in import implement Serializable):
>>>>>>
package de.spektra.rtd.sdb.condition;


import de.spektra.rtd.model.event.Event;
import de.spektra.rtd.model.event.StatusAlarmCondition;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

/**
 *
 * @author Klinge
 */
public class DistrictConditions implements Serializable{
    
    //private static final java.util.logging.Logger logger = 
Logger.getLogger("DistrictCondition");
    
    private Map<String, DistrictObjectTypeConditions> objectTypesConditions;
    
    public DistrictConditions() {
        this.objectTypesConditions = new HashMap<String, 
DistrictObjectTypeConditions>();
    }
    
    public ObjectCondition setEvent(Event event) {
        String objectType = event.getIdentification().getObjectType();
        DistrictObjectTypeConditions objectTypeConditions = 
this.objectTypesConditions.get(objectType);
        if (objectTypeConditions == null) {
            objectTypeConditions = new DistrictObjectTypeConditions();
            this.objectTypesConditions.put(objectType, objectTypeConditions);
        }
        return objectTypeConditions.setEvent(event);
    }
    
    
    
    public ObjectCondition getObjectCondtion(String objectType, String 
identification) {
        DistrictObjectTypeConditions objectTypeConditions = 
this.objectTypesConditions.get(objectType);
        //logger.log(Level.INFO, "objectTypeConditions: {0}", 
objectTypeConditions);
        return objectTypeConditions.getObjectCondition(identification);
    }
    
    public Collection<ObjectCondition> getObjectConditions(Collection<String> 
objectTypes) {
        ArrayList<ObjectCondition> objectConditions = new 
ArrayList<ObjectCondition>();
        for (String objectType: objectTypes) {
            DistrictObjectTypeConditions objectTypeConditions = 
this.objectTypesConditions.get(objectType);
            if (objectTypeConditions!=null) {
                
objectConditions.addAll(objectTypeConditions.getObjectConditions());
            }
        }
        return objectConditions;
    }
    
    public StatusAlarmCondition getCurrentStatusAlarmCondtition(String 
objectType, String identification) {
        DistrictObjectTypeConditions objectTypeConditions = 
this.objectTypesConditions.get(objectType);
        return 
objectTypeConditions.getCurrentStatusAlarmCondition(identification);
    }
    
    public Collection<StatusAlarmCondition> 
getCurrentStatusAlarmCondtitions(Collection<String> objectTypes) {
        ArrayList<StatusAlarmCondition> statusAlarmConditions = new 
ArrayList<StatusAlarmCondition>();
        for (String objectType: objectTypes) {
            DistrictObjectTypeConditions objectTypeConditions = 
this.objectTypesConditions.get(objectType);
            if (objectTypeConditions!=null) {
                
statusAlarmConditions.addAll(objectTypeConditions.getCurrentStatusAlarmConditions());
            }
        }
        return statusAlarmConditions;
    }
    
}
<<<<<<<<

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to