Fraska Portal

Exploring the WebSphere Commerce world

WebSphere Commerce, CommandLevelAuthorizationCache

Few months ago I was working for a troubleshooting investigation regarding an ACL not expected behavior. My client was on iSeries with WCS 7 and B2B stores. I found the issue was deriving because of a base cache default configuration set by InitializationServlet.

The following brief article describe the issue and the solution adopted.

WebSphere Commerce v8, toolkit exception, ClassNotFound db2

During my first experiments with my new toolkit based on WCS v8 mod pack1, I almost instantly faced an exception just after the startup of the test server:

[4/18/16 15:07:06:039 CEST] 00000216 BusinessObjec W com.ibm.commerce.foundation.server.command.bod.BusinessObjectDocumentProcessor static com.ibm.db2.jcc.am.SqlDataException
                                 java.lang.ClassNotFoundException: com.ibm.db2.jcc.am.SqlDataException
	at java.lang.Class.forNameImpl(Native Method)
	at java.lang.Class.forName(Class.java:256)
	at com.ibm.commerce.foundation.server.command.bod.BusinessObjectDocumentProcessor.<clinit>(BusinessObjectDocumentProcessor.java:141)
	at java.lang.J9VMInternals.initializeImpl(Native Method)
	at java.lang.J9VMInternals.initialize(J9VMInternals.java:235)
	at com.ibm.commerce.marketing.facade.server.MarketingFacadeImpl.processMarketingTrigger(MarketingFacadeImpl.java:107)
	at com.ibm.commerce.marketing.facade.server.EJSLocalStatelessMarketing_0e493592.processMarketingTrigger(EJSLocalStatelessMarketing_0e493592.java:233)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
	at java.lang.reflect.Method.invoke(Method.java:620)
	at com.ibm.commerce.foundation.internal.client.services.invocation.impl.LocalEJBInvocationBindingImpl.invoke(LocalEJBInvocationBindingImpl.java:211)
	at com.ibm.commerce.foundation.internal.client.services.invocation.InvocationService.invoke(InvocationService.java:113)
	at com.ibm.commerce.foundation.client.facade.bod.AbstractBusinessObjectDocumentFacadeClient.internalSendBusinessObjectDocument(AbstractBusinessObjectDocumentFacadeClient.java:813)
	at com.ibm.commerce.foundation.client.facade.bod.AbstractBusinessObjectDocumentFacadeClient.sendBusinessObjectDocument(AbstractBusinessObjectDocumentFacadeClient.java:529)
	at com.ibm.commerce.marketing.facade.client.AbstractMarketingFacadeClient.processMarketingTrigger(AbstractMarketingFacadeClient.java:487)
	at com.ibm.commerce.marketing.facade.client.MarketingFacadeClient.processMarketingTrigger(MarketingFacadeClient.java:707)
	at com.ibm.commerce.marketing.facade.client.MarketingFacadeClient.processMarketingTrigger(MarketingFacadeClient.java:811)
	at com.ibm.commerce.marketing.internal.runtime.engine.SaveMarketingStatisticsCmdImpl.performExecute(SaveMarketingStatisticsCmdImpl.java:108)
	at com.ibm.commerce.command.ECCommandTarget.executeCommand(ECCommandTarget.java:157)
	at com.ibm.websphere.command.TargetableCommandImpl.execute(TargetableCommandImpl.java:139)
	at com.ibm.websphere.command.CacheableCommandImpl.execute(CacheableCommandImpl.java:139)
	at com.ibm.commerce.command.MeasuredCacheableCommandImpl.execute(MeasuredCacheableCommandImpl.java:68)
	at com.ibm.commerce.command.AbstractECTargetableCommand.execute(AbstractECTargetableCommand.java:199)
	at com.ibm.commerce.component.BaseComponentImpl.executeCommand(BaseComponentImpl.java:202)
	at com.ibm.commerce.component.WebAdapterComponentImpl.executeCommand(WebAdapterComponentImpl.java:46)
	at com.ibm.commerce.component.objimpl.WebAdapterServiceBeanBase.executeCommand(WebAdapterServiceBeanBase.java:58)
	at com.ibm.commerce.component.objects.EJSLocalStatelessWebAdapterService_ce749a4a.executeCommand(EJSLocalStatelessWebAdapterService_ce749a4a.java:31)
	at com.ibm.commerce.component.objects.WebAdapterServiceAccessBean.executeCommand(WebAdapterServiceAccessBean.java:160)
	at com.ibm.commerce.scheduler.SchedulerJob.process(SchedulerJob.java:562)
	at com.ibm.commerce.scheduler.SchedulerSecurityPriviledgedAction.run(SchedulerSecurityPriviledgedAction.java:59)
	at com.ibm.commerce.scheduler.SchedulerJob.run(SchedulerJob.java:1115)
	at com.ibm.commerce.threadmanagement.internal.BaseWork.run(BaseWork.java:139)
	at com.ibm.ws.asynchbeans.J2EEContext.run(J2EEContext.java:1178)
	at com.ibm.ws.asynchbeans.WorkWithExecutionContextImpl.go(WorkWithExecutionContextImpl.java:199)
	at com.ibm.ws.asynchbeans.CJWorkItemImpl.run(CJWorkItemImpl.java:236)
	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1881)

 Investigating a bit I found a possible solution.

Posted by on in Store
WebSphere Commerce, ATP migration

When I started to analyze (summer 2015) the possibilities to migrate non-ATP stores to the ATP model the IBM Knowledge Center was claiming the migration was not supported. However, not supported does not mean not possible.

So, I dig it and found a "simple" way to accomplish the migration.

Now (since 2016), finally, the switch of an existing store to the ATP mode is supported again (old version of WCS had even a migration script).

In this brief article I'll report few tips about the "migration" of existing stores to the ATP inventory model.

WebSphere Commerce, the curious life of a front-end catalog request

The life begins in a random internet browser when an unaware user- browsing the Aurora shop- makes a simple request asking for details about the child laptop product. This request can be translated in a Uniform Resource Locator exactly as the following:

http://www.mywcsaurora.com/shop/en/aurora/eletronics/laptops/child-laptop

After just few milliseconds, or maybe few hours mostly depending from the performance of the Aurora shop, the URL assumes the shape of a page, the death of the request:

b2ap3_thumbnail_WCS_liferequest.png 

 

Between the request's birth and its death some many things have happened; I'll try to summarize the "typical life of a catalog request" in a WCS v7 FEP7 "world" marking just the communication "links" between the several components look after the request.

WebSphere Commerce, Performance analysis of few European stores

The performance tuning is one of the most difficult and delicate task for any professional. It could involve virtually any piece of code deployed. It's not even that easy report how a system is performing, most of all because so many variables are involved. However, today I wanted to check the performances of few Store made using WebSphere Commerce; I decided to take as reference the metrics and results provided by:

They should never be considered as the Bible. In fact, they just provide useful advices and a big picture of the performances for a common sense. In many cases, thought, not all the advices can be applied because of the same nature of the platform. However, collecting examples of how few stores perform can tell us more about the possible limit of the platform, in this case WebSphere Commerce.
In addition, although get "optimal" performances is a very personal goal which cannot be defined as any other simple requirement, in the e-commerce slowing down during the loading of a page means loose money and clients.

So, I took a set of 12 stores between big European companies which have adopted WebSphere Commerce Enterprise. Let's see how they performed ...

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