Thursday, March 31, 2011

Things should know about - Scheduler in WCS

--Main tables..
select count(*) from SCHCONFIG;
select count(*) from SCHACTIVE;
select count(*) from SCHORDERS;
select count(*) from SCHSTATUS;



Some tips ..
Suppose You have 2 appserver running in clusterd enviroment.Each have 2 JVM .You started one scheduler . Now how we will identify this scheduler is taken care by which Appservers'JVM .. :) ?
Don't worry Bipin have answer : Check the SCSQUEUE for details ..

Monday, March 28, 2011

wcs Server is not staring. ?? workspace crashed?

Don;t worry . A proven solution from Bipin is given below :)

Please try these steps
Right click WC project in RAD
Click Properties menu
Click Server section
Selct the Websphere commerce Test server
Restore defaults
CLose it
Open the WC again
Close the WC project (uncheck both check box)
Allow to rebuld your workspace
REstart it.. :)
enjoy your toolkit

Sunday, March 27, 2011

How to clear the activity data

Clear data from CTXDATA. WCS 7.0 + ie 8 may stuck with activity data. Better solution is clear the data from ctxdata and update CTXMGMT status to 'E'

Hope your problem solved.. :) enjoy madi

Saturday, March 26, 2011

How to disable Order locking feature in wcs?

Stop order locking/ disable order locking.
stop order lock/locking

Add the following element to the wc-server.xml file between the InstanceProperties> and InstanceProperties> tags.

< orderlockfeature enabled="false" > But this is

But this is not advisable...and only available in the WCS 7.0 not in WCS 6.0
As per my understanding there are 3 locking mechanism available in SOFT lock section
Lock 0- orderlockfeature enabled="false"
Lock 1- orderlockfeature enabled="true"
Lock 2- CSR lock

You can try below code in wcs6.0 this will help u to unlock the SOFT lock in order subsystem
OrderLockingHelper oh = getOrderLockingHelper();
This will unlock the order for the curren transaction ..

:) enjoy order with out lock ..

Wednesday, March 23, 2011

WebSphere Commerce -Member Subsystem

WebSphere Commerce Member Subsystem:
Business logic in the Member subsystem provides member registration and profile management services

Member Subsytem: A top view

User Registration Flow:

User type :

  • S(Site administrator ), A(Administrator) ,G(Guest user),R(Registered User)

User Role:



  • PreUserRegistrationAddCmd
  • Update USERS.REGISTERTYPE='R' from 'G'
  • Create new record in USERREG
  • Create new records in USERPROF,BUSPROF,USERDEMO
  • Create new record in ADDRESS with unique nickname
  • AuthenticationPolicyCmd
  • ProcessPaymentMemberCmd
  • ProcessPolicyTypeCmd
  • AuditUserRegistrationCmd
  • UserRegistrationRoleAssignCmd
  • PostUserRegistrationAddCmd


  • Address type-S, B, SB
  • isPrimary -0,1
  • Address Status : P(permanent),T(Temporary)
  • Unique nickname
  • AddressBook

AddressDelete: status = T (from P)
AddressCheck:Check user has atleast one P address
AddressUpdate : Nick name cannot be updated

Thursday, March 10, 2011

How to Improve the RAD performance -?

Hi guyes..
Your productivity is so much related to the tools that you are using for your daily works
So keep your tools efficient as you..

Here are the tips..

How to redirect from controller command to view ?

responseProperties.put(ECConstants.EC_VIEWTASKNAME, ECConstants.EC_GENERIC_REDIRECTVIEW);
responseProperties.put(ECConstants.EC_REDIRECTURL, "MySearchView");

How to get the http request and Http Response in WCS?

ViewCommandContext viewContext = (ViewCommandContext) getCommandContext();

HttpServletRequest httpRequest = ((HttpControllerRequestObject) viewContext.getRequest()).getHttpRequest();

HttpServletResponse httpResponse = (HttpServletResponse) viewContext.getResponse();

Tuesday, March 8, 2011

If your RAD not working in Debug mode.. check here

Thanks to Yateesh

Hi Bipin,

1. Navigate to the below dir D:\WCToolkitEE60\wasprofile\config\cells\localhost\nodes\localhost\servers\server1\

2. Edit server.xml

Please make sure you have the below entry in this file - debugArgs.

jvmEntries debugArgs=" -Xj9 -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7777" debugMode="true" genericJvmArguments="-Xquickstart" hprofArguments="" initialHeapSize="512" maximumHeapSize="1024" runHProf="false" verboseModeClass="false" verboseModeGarbageCollection="false" verboseModeJNI="false" xmi:id="JavaVirtualMachine_1247828987711" >

systemProperties name="" required="true" value="D:/WCTOOL~1/conf/xml/loader/WCALoggerConfig.xml" xmi:id="Property_1247829214602"

systemProperties name="" required="true" value="true" xmi:id="Property_1247829214633"

systemProperties name="" required="true" value="false" xmi:id="Property_1247829214664"

systemProperties name="" required="true" value="0" xmi:id="Property_1247829214680"


Select Launch in debug mode when workspace contains breakpoints-Always

Make sure your debugMode=true.. :) enjoy the debugging...


Monday, March 7, 2011

What is the difference between Session and Context

Websphere commerce supports both session and context.
In some extend Context is a container. It is used to hold Session , request respose etc
In WCS we have multiple Context. Starting from BaseContext it holding he EntitlementContxt,BusinessContext etc Each is used for carrying specific set of data in the server- Botton line.. Context is widely used by server rather than developer. But that will redirect the business flow

Sesssion : Hope basis every body knows that. Session will sit inside the Context

mm sounds confuced.. sorry this is what i can share n ow ..

Tuesday, March 1, 2011

Do you know about RunAsId() ? here is the ans

It is to run the request against some other user id.

Ex. You(user Id: 1000) logged into the system .But you want to place an order as if your wife(User Id:1001) is placing an order. In this case, you can set RunAsId to 1001. Interface BaseContext.setRunAsId(java.lang.Long nMemberId)
This method sets the run-as user for the request associated with this context

This method gets the run-as user for the request associated with this context.

BaseContext baseContext = (BaseContext)getCommandContext().getContext(BaseContext.CONTEXT_NAME);

Thanks for senthil ..