Skip to main content

Dyna Cache

Dynacache service is an in-memory cache system that has disk offload capacity.

What is CacheSpec.xml?

The objects to be cached are specified in cachespec.xml.
Location of cachespec in toolkit\Stores\WebContent\WEB-INF
On server: \Stores.war\WEB-INF\

What can be cached? Servlet\JSP's and commands that extend from CacheableCommand interface can be cached using DynaCache.

What is DynaCache Monitor? This is an application provided by IBM for dynacache statistics, it can be installed on toolkit as well as server.

Example from cachespec for JSP\Servlet caching entries:
Servlet: .e.g. storecatalogdisplay:
<cache-id>
<component id="" type="pathinfo">
<required>true</required>
<value>/StoreCatalogDisplay</value>
</component>
<component id="storeId" type="parameter">
<value>10151</value>
<required>true</required>
</component>
<component id="catalogId" type="parameter">
<required>true</required>
</component>
<component id="langId" type="parameter">
<required>false</required>
</component>
<component id="trackingEvent" type="parameter">
<required>false</required>
</component>
<priority>30</priority>
</cache-id>
JSP: e.g. header.jsp
<cache-entry>
<class>servlet</class>
<name>ABCStorefront/include/header.jsp</name>
<property name="do-not-consume">true</property>
<property name="save-attributes">false</property>
<property name="ignore-get-post">true</property>
<sharing-policy>not-shared</sharing-policy>

<cache-id>
<component id="storeId" type="parameter">
<required>true</required>
</component>
<component id="catalogId" type="parameter">
<required>true</required>
</component>

<component id="DC_lang" type="attribute">
<required>false</required>
</component>
<component id="userImpersonated" type="parameter">
<required>false</required>
</component>
<priority>100</priority>
</cache-id>

<!-- Dependency Ids -->
<dependency-id>TTL:STAGEPROP</dependency-id>

<dependency-id>storeId
<component id="storeId" type="parameter">
<required>true</required>
</component>
</dependency-id>
<dependency-id>catalogId
<component id="catalogId" type="parameter">
<required>true</required>
</component>
</dependency-id>
<!-- Ends Dependency Ids -->
</cache-entry>
Enable Servlet caching:
1. In the administrative console, click Servers > Application servers > server_name > Web container settings > Web container in the console navigation tree.
2. Select Enable servlet caching under the Configuration tab.
3. Click Apply.
4. Restart the Server.

Performance and CPU usage: performance of the overall site and CPU usage on the app server is considerably improved with Dynacache enabled. Having a good Dynacache strategy is very important for the performance of the site. Will write another blog on that topic.

Comments

Popular posts from this blog

Issues While Starting WAS Server

This happens when there is other application which is also using the same port 8880. To resolve the issue, we need to find which application is using the port 8880 through 'netstat' command in command prompt or update our WAS server to not use 8880. We can update the WAS server through these steps: 1) Stop  WAS. 2) Browse to or search for the serverIndex.xml, for example, at "C:\WAS\AppServer\config\yourNode\nodes\yourNode\serverindex.xml" 3) Open the file and locate the following lines:               endPointName="SOAP_CONNECTOR_ADDRESS"> 4) Change "port 8880" to an available port 5) Save the serverindex.xml and restart WAS

Dataload Utility

Data can be loaded into WCS tables using data load utility. WCS Data Load utility performs the following functions in a single operation: 1.                Reads the data from the input source file. 2.                Transforms the source data to Web Sphere Commerce business objects. 3.                Allocates and resolves Web Sphere Commerce business objects to physical data. 4.                Loads the physical data into the database. There are three configurations files and a input source file required to complete the data loader setup. WCS supports only CSV File Reader for other input source you have to write your own Reader Class. This means that if you are using OOB CSV Reader then your input file must be...

Webpshere Commerce Registry

Registry is an another solution for those which can’t be cached using Dyna cache. Another use would be to store configuration data for a store. By using registry, you don't need a server   restart   every time as organization admin console provides an   interface   to refresh registry. The new custom registries will be appearing in the admin console under the   registry section. Steps to create a new custom registry in WCS Step 1. Register the registry in wc-server.xml. <Registries> ...... ..... <registry name="TestRegistry" regClassName="com.wcs.registry.TestRegistry "/>   </Registries> Step 2.Create  a class that implements   interface   com.ibm.commerce.registry.Registry package com.wcs.registry; import java.util.HashMap; import com.ibm.commerce. exception .ECException; import com.ibm.commerce.registry.Registry; import com.ibm.commerce.registry.RegistryManager;     public  cla...