Fixed bug in
indexed disk cache. Partial key removal was adding duplicates in the
recycle bin. This lead to the multiple keys pointing to the same spot
on disk.Fixed bug in block
disk cache. It couldn't handle items with more than 127 blocks. Now
it can. (Note: for performance reasons, you should try to fit your
items in as few blocks as possible.)TCP Lateral now uses a queuing
zombie service during recovery.Refactored UDP Discovery.
Slots for same key
updates now get added to the recycle bin.Added File Disk
Cache.Default
properties should now work.Caught Throwable in JDBC disk
cache shrinker, so it won't die.Added a compressing serializer.
Added an LHMLRUMemoryCache.
Added a clearDiskOnStartup
configuration option for the IndexedDisk Cache. False by default.
Fixed data chunking
bug in BlockDisk.Made "openTimeOut" and
"socketTimeOut" configurable on the TCP Lateral.Fixed bug in Remote Http Client
URL creation for query strings. Fixed
disk cache custom serializer injection.Fixed bug remote cache listener
interface.Added a simple http remote
cache client and server.Fixed bug in the MySQLDiskCache
optimizer. It can now use a shared pool.Fixed balking bug in
getMatching( String pattern ) API.Fixed event naming bug in
getMatching( String pattern ) API.Added a getMatching( String
pattern ) API.Added the ability to inject a
custom event queue. You simply specify the classname as the type.
Added the ability to share a
connection pool amongst different JBC disk cache instances.Added the ability to inject a
custom RMI socket factory to be used by the remote cache server.
Added a registry keep alive and
restore option for the remote cache server.Made all disk cache managers
handle custom event loggers. Added eventLogging to major
auxiliaries and to the auxiliary factory interface. This allows you
to time and monitor the internal working of the cache.Moving to JDK 1.4 compliance.
1.3 not supported. Added the ability to inject custom
serializers into auxiliary caches. Added a
work-around to the host address resolution used by the TCP lateral
and the remote cache. Added
getSource to IElementEvent interface. Made
spool chunk size configurable. Added
RMI socket connect timeout. Made this configurable on the server and
client.Fixed
client decrement count in indexed disk cache.Moved
shutdown hook from disk cache to composite cache manager. Added getMultiple()
method to ICache Updated/added license headers in all
files. Fixed
partial key and group id removal bug in indexed disk cache. Fixed
partial key removal SQL syntax problem with the JDBC disk cache.
Fixed a
few minor missing locks. Added a summary page to the
JCSAdmin.jsp that just dumps the stats for a region. It doesn't
display all the keys. Added get, put, and remove counts
to the lateral and remote stats. Added hit count to disk cache
stats. Fixed
non thread safe OOS writes in the TCP Lateral Sender. This was
causing endless loops deep down in the OOS code. Fixed last element too
small recycle bin bug. Added the ability to
send all items to disk or to use the disk merely as a swap. This is
done by setting the DiskUsagePattern on the cache attributes for a
region. Disk
optimization now occurs in place, without using additional files. It
is far more efficient. The disk cache will not
optimize on shutdown if the freedata size is 0. Remote cache client
will now shutdown properly. Only send memory items
to disk auxiliaries on shutdown. Added the ability to schedule
optimizations for the MySQL disk cache. It can also recover from
optimization failure and repair the table. It's been tested and is
running in a production environment. Fixed the array index
out of bounds exception in the Sorted Preferential Array. Fixed UDP discovery
configuration problem. The discovery address was not being used. It
was broken in the last release. Fixed disk cache class
cast problem when running inside the remote cache. The disk cache
was casting to an instance and not the ICacheElement interface.
You can now
configure the remote cache client to not receive from the remote
server. Added a new xdoc
for the Remote Cache properties. Improved the jcs
admin jsp: added stats details, better navigation, item lookup, and
remove confirmation. You can configure
the remote cache to use a custom RMI Socket Factory with socket
timeouts. Removed redundant
system out logging from remote cache server. Added additional
stats for remote cache. Added a JDBC disk
cache. It has been tested with MYSql and HSQL. Added a special
HSQL implementation of the JDBC disk cache. This replaces the
previous experimental HSQL implementation. Added a new xdoc
for the JDBC Disk Cache properties. Removed
dependencies on commons-lang and on commons-collections from the
core of JCS. Increased test
coverage. Fixed entry set
creation problem in LRUMap. The remote cache
now sends a byte array to the server instead of the class. This
allows you to run the remote server without copies of your objects
in its classpath. This makes the remote server far easier to use.
Created an
interface for cache element serializers and made a default
implementation. This will allow use to use other serialization
mechanisms in the future. I converted the remote cache to use the
standard serializer. Added several new
unit tests. Improved Javadocs
throughout. Moved synchronization
from the client to the sorted preferential array. This solved the
index out of bounds exception that appeared periodically on disk
cleanup. Improved Javadocs
throughout. Fixed shutdown for
lateral. Added shutdown observer framework. Changed listener thread
to a daemon. Made executor on listener use a daemon setting thread
factory. Fixed abstract inner
class references for Jikes. Improved Javadocs
throughout. Properties are loaded using the
current thread's classloader by default. When a config file is not found a
descriptive error message is printed to the logs. Made an interface for the cache
manager to improve testability. Auxiliaries are assigned a cache
manager and the lateral TCP has a settable source id, so it can be
tested. Increased JGroups version to 2.2.8.
It works again. The old JGroups didn't work for unknown reasons.
Cleaned up some javadocs. Improved info level logging for TCP
lateral. Added configuration properties
xdocs for TCP lateral, indexed disk, and memory cache. Created concurrent tests for TCP
lateral to verify correct region behavior. Made BDBJE work with new auxiliary
changes. UDP discovery no longer activates
if the lateral type isn't TCP. Reduced lateral get timeout to 1
second, rather than 10. We still need to disable gets when a timeout
occurs.