Hmm, according to the sleepycat docs (http://www.sleepycat.com/jedocs/GettingStartedGuide/administration.html#propertyfile) you need to place je.properties in your "environment home dir", whatever that means in English. Did you try placing it in your web root, and failing that, in the dir in which you exec the java cmd?
ok, now i had a look at the BDbje code and noticed that it takes about 60 percent of the total memory, which is 60 percent of the 1024 i allocated in Xmx. so it caches all the objects already present in jbosscache and the copy of all this i s also there in the persistent storage.
now je is supposed to take in a je.properties when forming the environment , but looking at bdbjecacheloader we pass the envdir from there as java.io.tmpdir which is /tmp/ directory on unix systems. this is the reason why my putting je.properties everywhere(conf, lib, bin) didnt make any difference to the bdbjeconfig(it kept starting with cachepercent at 60 )
patching the BdbjeCacheloader to set the percentage of memory berkleydb should take for its inmemory cache to a bare minimum solves the problem.
in the method start():
i added this saying bdbje to use only 5 percent of total memory for its inmemory and put the whole thing in persistent.
now everything works fine.the maxmemory used comes down from 1G to 500M and once the process is over gc kicks in and brings it down to 160M. previously it never even came down from 1G
Hope this helps!!
I have been having a look at this, the enviornment home as i see it is the location of where you data store is, so in terms of Jboss Cache this is the value you set for the property "location" in the cache loader config. And it is in this directory you should place your je.properties. If you dont specify the "location" property it will default to the java.io.tmpdir directory instead.
Now my question is this, i have my je.properties sitting in my environment home but now i want to actually see what the properties are set i.e to actually test that berkleyDB has taken my je.properties and is configured with them. How can i do this through jboss cache api??
If i cant get it through the jbossCache API then any idea as how to get hold of it through berkley API ?? I get no logging statements from the com.sleepy package which would probably give me the answer i need but how to turn it on?? have made an entry in my log4j.properties for com.sleepy package but no joy.
Any help is much apreciated,
Ok I have been able to test whether my BdbjeCacheLoader was reading my properties correctly.
The way I did it is just to generate the jmx bean that comes with sleepycat and then drop the jars and service descriptpor into the deploy directory and from here use the jmx console and you will be able to see what properties are set.
So for me the je.properties are getting read in when you drop them in the environment directory, and the environment directory when using JBossCache is what you set the "location" property to be for the config in the cache loader. If not set it will use the java.io.tmpdir.