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