Fraska Portal

Exploring the WebSphere Commerce world

Francesco Schettini

Francesco Schettini

Freelance e-Commerce Solution Architect focused on web development projects using technologies like WebSphere, SOLR, JEE and Eclipse RCP.

contacts:
blog: fschettini.com
linkedIn: es.linkedin.com/in/fschettini

The WebSphere Dynacache- the main tool WebSphere integrates for caching strategies- can be imagined like an HashTable stored in the JVM Heap, with disk offload options and rules defined for retrieve and invalidate objects. In addition, Dynacache is supported in a cluster environment using the Distribute Replication Service- DRS.

The invalidation is a powerful feature of Dynacache but sometimes- like in the case I'm reporting- it has its logic split between XML configuration and JSP coding.

In particular, I refer to the fragments invalidation. Let's take the following example:

  • JSP Page (root): page1.jsp
    • Fragment 1 (1st level child): fragment1.jspf
      • Fragment 2 (2nd level child): fragment2.jspf

In terms of code, page1.jsp will have something like:

...

<% out.flush() %>
<c:import file="${filedir}page1.jsp"/>
<% out.flush() %>

...

and so do fragment1.jspf. 

In addition, cachespec.xml will have the following configuration:

<class>servlet</class>
		<name>/directory/page1.jsp</name>
		<property name="do-not-consume">true</property>
		<property name="save-attributes">false</property>
		<property name="consume-subfragments">true</property>
...

The problem: despite the configuration is the IBM's InfoCenter suggested one, the fragments do not seem to be invalidated properly. In other words, when something changes in the fragments page1.jsp does not change at all.

Posted by on in Tips

Sometimes we have to elaborate rows- results of a SELECT- in a way we cannot think to accomplish it with simple SQL code but we can be wrong ... SQL is pretty powerful. Let's take this case.

What we have:

Customer Wishlist
Customer 1 AA11, BB22, FF92
Customer 2 CC43, RR55

What we need:

Customer Wished product
Customer 1 AA11
Customer 1 BB22
Customer 1 FF92
Customer 2 CC43
Customer 2 RR55

 

 

Posted by on in Tips

If you are working with Oracle and jdbc API and you are facing an odd behaviour trying to fetch the value of a CLOB or BLOB field, the following note could help you.

Making a SELECT includes the fetch of one or more CLOBs the system can returns a value like "oracle.sql.CLOB@...." instead of the real value of the field. It seems the buffer cannot handle a so big and memory expensive value. A workaround is to use an Oracle function converts the CLOB in a VARCHAR and trim the value as requested.

 

Posted by on in Data Load

If you need to populate the Commerce User's Wish List you cannot demand it to an Out Of The Box Business Mediator (like it happens- for example- with Catalog Entries, Prices or Attribute Dictionaries) but you will need to use a generic TableObjectBuilder/TableObjectMediator.

Most Popular Post

WebSphere Commerce, the SOLR extension index
Administration
Rate this blog entry:
4
WebSphere Commerce, Data Load and SOLR Delta Index
Data Load
Rate this blog entry:
0
WebSphere Commerce, the curious life of a front-end catalog request
Core
Rate this blog entry:
5

Latest Blogs

WebSphere Commerce, CommandLevelAuthorizationCache
Cache
Rate this blog entry:
0
WebSphere Commerce v8, toolkit exception, ClassNotFound db2
Administration
Rate this blog entry:
1
WebSphere Commerce, ATP migration
Store
Rate this blog entry:
0
WebSphere Commerce, the curious life of a front-end catalog request
Core
Rate this blog entry:
5
WebSphere Commerce, Performance analysis of few European stores
Performance
Rate this blog entry:
0