Thursday, July 3, 2014

WCS e-commerce solution with powerful cross-channel analytics



Web e-commerce solution with powerful cross-channel analytics
Analytics WCS Report Types Description
Top Line Cross Channel Top Line Cross Channel report provides conversion related KPIs (e.g., sales, average order value, items ordered, etc.) for both the web and call center channels.
Campaigns Campaigns report types provide detailed performance metrics (impressions, clicks, click thru rates, conversion rates, sales, orders, etc.) using the identical hierarchical structure and campaign names specified from within the WebSphere Commerce business user tool set.
Promotions (Web, Call Center and Cross Channel) Promotions reports show a range of performance metrics (orders, sales, average order value, cost of promotion, average cost, sales cost, etc.) associated with discount promotions deployed on a WebSphere Commerce site. Promotions reports include separate views focused on the web and call center channels as well as a combined (web and call center) cross channel view.
E-Marketing Spots E-Marketing Spot reports provide metrics (impressions, clicks, click thru rates, conversion rates, sales, orders, etc.) from the perspective of the individual E-Spots deployed in WebSphere Commerce.
Marketing Experiments Marketing Experiments reports track results (impressions, clicks, conversion rates, sales, etc.) of A/B tests deployed in WebSphere Commerce.
B2B Contracts (Web, Call Center and Cross Channel) B2B Contracts reports provide a hierarchical view of a seller’s business customers matching the hierarchy used in WebSphere Commerce. Within each account, you can view the assigned contracts and associated sales metrics (sales, orders, average order value, average items per order, etc). B2B Contracts also provide specific web, call center and cross channel report views.

Friday, June 20, 2014

Dynamic cache limitation

Dynamic cache limitation
 
If you use the cachespec.xml file to enable invalidation you might encounter the following behaviour:
  • When you create a catalogue entry or move a catalogue entry from one category to another in the Management Center, the catalogue entry would not show up on the storefront.
  • When you create a category in the Management Center, the category would not show up on the storefront.
  • When you update a child object in the Management Center, the parent object cache entry is not automatically invalidated. For example, when you update a catalogue entry in the Management Center, the category display page does not reflect the updates in the storefront.


 To resolve these problems, you have to do invalidate cache manually. 

1. Lunch the Cache monitor using following method:
  1. Access the web application using a web browser with the following web address, most of  this URL will be secure access, its recommended that, access the Administration host machine:
        https://admin_host_name:port/cachemonitor

2. Do one of the following steps:


Option
Description
Remove an entry from cacheClick Invalidate when viewing a cache entry.
Remove all entries for a certain dependency IDClick Invalidate when viewing entries for a dependency ID or click Invalidate when viewing entries for a template
Clear the entire contents of the cacheClick Clear Cache while viewing statistics or contents
Clear the contents on the ESI processorsClick Clear Cache while viewing ESI statistics or contents.
Clear the contents of the disk cache.Click Clear Disk

Monday, April 28, 2014

Managed Assets

Managed assets are files that are uploaded by business users to be used for store marketing or product supplements. They are added to Asset tool or the marketing tool in MC. 

1. Managed assets, when uploaded through MC, are first stored in CMFILE, CMSMALLFILE and CMLARGEFILE tables of WCS DB.

2. From there, the scheduled job "ScheduledContentManagedFileEARUpdateCmd" evaluates its set of criteria in the WCS configuration file (wc-server.xml). The criteria and their default values are :-

minNumOfFilesForUpdate - the minimum number of files for an update to occur.
minSecFromLastUpload - The minimum number of seconds since the last update. 

3. The files are extracted from DB and placed into the EAR of the staging environment.

4. These assets are then pushed to the production environments with the fileprop utility when when stagingprop called. 

Wednesday, March 5, 2014

Collecting DB2 JDBC Driver Tracing Configuration in WAS

The DB2 JDBC driver allows trace configuration through the following data source custom properties. 

traceLevel – Set to “-1” by default to capture all JDBC driver trace data.


                
If the value is null and the WAS.database=all or com.ibm.ws.db2.logwriter=all is included in the WAS trace specification, then the trace will be integrated with the WebSphere Application Server trace.

Append the following to a WebSphere connection pool trace:

WAS.database=all OR com.ibm.ws.db2.logwriter=all

The “WAS.database=all” trace property allows an integrated trace to enabled and disabled during runtime.

Tuesday, March 4, 2014

Troubleshooting and performance using ServiceLogger

ServiceLogger is a new lightweight trace that can be used in mainly in Production environment. This feature available in 7.0.0.4 onwards.

Add the  following code to web.xml file for the Stores.war project. This is for logging of JSP execution times with ServiceLogger requires a new Servlet Filter is registered in web.xml file.


<filter>
  <filter-name>JspExecutionServiceLoggingFilter</filter-name>
<filter-class>com.ibm.commerce.webcontroller.JspExecutionServiceLoggingFilter</filter-class>
  <init-param>
    <param-name>ServletName</param-name>
    <param-value>JspExecutionServiceLoggingFilter</param-value>
  </init-param>
</filter>


<filter-mapping>
  <filter-name>JspExecutionServiceLoggingFilter</filter-name>
  <url-pattern>/*</url-pattern>
  <dispatcher>FORWARD</dispatcher>
  <dispatcher>INCLUDE</dispatcher>
  <dispatcher>ERROR</dispatcher>
</filter-mapping>

Enabling the Logger in the WAS Admin Console:-

com.ibm.commerce.foundation.logging.ServiceLogger={fine,finer,finest}
 
The difference with this logger is that it will write more or less depending on the logging level selected {fine,finer,finest}. This  fine grained control allows to minimize the performance impact for use in production and other environments.

Sunday, March 2, 2014

Websphere Commerces Change CommonsHttpSolrServer To HttpSolrServer


WCS Fix Pack 8 and Feature Pack 7, IBM does not changed from
CommonsHttpSolrServer class to HttpSolrServer in JSPs, its still referring old CommonsHttpSolrServer class in JSP files, so when open any starter store, solr search throws exception. 

In solr 4.0 onwards CommonsHttpSolrServer is not available, so just replace it with HttpSolrServer.It does not documented anywhere.

Solution:-

1. Find all he JSPs which contain CommonsHttpSolrServer reference
2. Replace with HttpSolrServer and save JSPs
3. Restart the app server and enjoy the new feature of FEP-7
 

WCS fixpack 8 and feature pack 7



IBM officially released WCS Fix Pack 8 and Feature Pack 7.  It would be good to have your new project.

TITLE: Fix Pack 8 (7.0.0.8) for WebSphere Commerce V7.0

TITLE: Feature Pack 7 for WebSphere Commerce V7.0

Saturday, February 1, 2014

Solr with Websphere Commerce Server 6.0

Solr doesn't run out of the box on Websphere Application Server because does not support Java 5. The minimum version for Running Solar is WAS 6.1.x, cause WAS 6.0 doesn't support Java 5.
There are things needs required modifications for the apache-solr-1.3.0.war or latest solr version on WAS-6. This modifications should work with all versions of the the WAS 6.1 series.

Enabling Java 5 for JSP pages

Cause WAS-6.x is a J2EE 1.4 container, it doesn't support Java 5. We have to explicit enable Java 5 for the JSP compiler. To do this, we've got to create (or modify) 2 files:

  • WEB-INF/ibm-web-bnd.xmi
  • WEB-INF/ibm-web-ext.xmi
in ibm-web-bnd.xmi
<?xml version="1.0" encoding="UTF-8"?>
<webappbnd:WebAppBinding xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:webappbnd="webappbnd.xmi" xmi:id="WebAppBinding_1213147492785" virtualHostName="default_host">
  <webapp href="WEB-INF/web.xml#WebApp_ID"/>
</webappbnd:WebAppBinding>

in ibm-web-bnd.xmi

<?xml version="1.0" encoding="UTF-8"?>
<webappext:WebAppExtension xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:webappext="webappext.xmi" xmi:id="WebAppExtension_1213147492785" reloadInterval="3" reloadingEnabled="true" additionalClassPath="" fileServingEnabled="true" directoryBrowsingEnabled="false" serveServletsByClassnameEnabled="true">
  <webApp href="WEB-INF/web.xml#WebApp_ID"/>
  <jspAttributes xmi:id="JSPAttribute_1" name="jdkSourceLevel" value="15"/>
</webappext:WebAppExtension>

Adding index.jsp to Welcome File List

In the apache-solr-1.3.0.war or latest version, there is now welcome file section. WebSphere doesn't handle index.jsp as auto welcome file, so we've got to modify the web.xml to get a page displayed. Add the 'welcome-file' section add the bottom of the web.xml file.
web.xml.

Enable remote JMX monitoring on WebSphere and register Solr MBeans.

When you try to access Solr on WAS (with <jmx/> config enabled in solrconfig.xml) it fails to register beans (query, facet, etc) and throws"javax.management.InstanceAlreadyExitsException. We need to add following System property to your server (Application servers > server > Process definition > Java Virtual Machine > Custom properties)

javax.management.builder.initial=javax.management.MBeanServerBuilder

Restart the server and now WAS should not throw exception. To confirm that beans have been registered successfully make sure that you have following line in your logs.

org.apache.solr.core.JmxMonitoredMap <init> JMX monitoring is enabled. Adding Solr mbeans to JMX Server:

Once the beans registered we can connect and access Solr configurations and statistics via JMX remotely by adding following System properties to server.

com.sun.management.jmxremote.port="any unused port number"
com.sun.management.jmxremote.authenticate=false
com.sun.management.jmxremote.ssl=false

Restart the server and now we can use tool like JConsole to connect and access Solr configurations and statistics remotely via JMX by specifying the hostname and port.