By default websphere application server creates one instance of cache(you can think of cache instance as bucket)
baseCache
and that cache instance is used for storing all the custom java objects, output of servlet, output of portlet. But what if you want to have more granular control over the cache instance. Ex. you want to cache say up to 2000 instances of custom java object or you want to make sure that only 10mb size is used for storing servlet output. In order to solve those advanced use cases you should create separate cache instance. I wanted to try how to use a separate cache instance for my storing custom java object, so first i went to WAS Admin Console and i did define a new Servlet cache instance like this
When you create a new cache instance you can define things like the JNDI name where the instance would be bound, also Cache size, which means how many objects would be stored in the cache. In my case i am using default cache size of 2000 and then i am setting JNDI name for the cache instance to be
services/cache/samplecache
.I can configure my Sample application for storing custom java object to use the
services/cache/samplecache
by making one change in the cachespec.xml file like this
<?xml version="1.0" ?>
<!DOCTYPE cache SYSTEM "cachespec.dtd">
<cache>
<cache-instance name="services/cache/samplecache">
<cache-entry>
<class> command</class>
<sharing-policy>not-shared</sharing-policy>
<name> com.webspherenotes.cache.CacheableContact.class</name>
<cache-id>
<component type="method" id="getContactId">
<required>true</required>
</component>
<priority>1</priority>
<timeout>180</timeout>
</cache-id>
</cache-entry>
</cache-instance>
</cache>
You can configure the
cache-entry
to use different cache-instance
by enclosing it in cache-instance
element where value of name attribute should be equal to the JNDI name where the cache instance is bound, the same name that you used while configuring the cache instanceAfter making the change i did execute the servlet so that the
CacheableContact
objects is set in cache, now i can see that instance using cache monitor
Thanks for info
ReplyDeleteWeb Design Company in Bangalore
Website development in Bangalore