To start playing with Websphere eXtreme Scale and Websphere Commerce as suggested on developerWorks, you could “improve” your Websphere Commerce Developer environment installing WXS and configuring a local grid.
The goal is to apply the developerWorks tips to Websphere Commerce cache instances (baseCache and data cache) and check WXS functionalities.
I started from a Websphere Commerce Developer v7 environment with FixPack 6 and FEP5 installed. Websphere Application Server is a WAS 22.214.171.124 Base.
To setup WXS environment you need two fundamental pieces: a catalog server and a container to host the grid.
WXS 8.6 allows many different topologies: in this case we will setup the catalog server in WAS to use PMI infrastructure and XIO. The container will be created as stand alone JVM because Websphere Commerce Test Environment is still on 32 bit only…
The high level steps to integrate WXS with Websphere Commerce are quite simple:
1) Install WebSphere eXtreme Scale as a standalone product (to execute WXS container locally)
2) Install the WebSphere eXtreme Scale on the WebSphere Commerce server (to execute catalog server in WAS)
3) Augment all WebSphere Commerce nodes with WebSphere eXtreme Scale using the WebSphere Application Server profile management tool.
Let’s see how to apply these steps in a Websphere Commerce Developer environment.
First of all, download WXS installation package with your Passport account (or through Partnerworld): the part number is CIK3HML and the file is “WS_XSCALE_V126.96.36.199_MP_ML.zip”
Add the WXS repository to your Installation Manager installation and install “WebSphere eXtreme Scale in a stand-alone environment” (step 1)
Step 2 (“Install the WebSphere eXtreme Scale on the WebSphere Commerce deployment”) needs a couple of tricks to be done in a RAD + WAS Test environment environment.
In general we have to follow the instructions to install WXS client in a Websphere Application Server.
“If you want to install WebSphere eXtreme Scale or WebSphere eXtreme Scale Client within a WebSphere Application Server Version 7 environment, then complete the following steps:”
but in our case Websphere Application Server is already installed: it’s the WAS 7 Test Environment in RAD.
To be able to install WXS over WAS Test environment you have to
a) Create a local repository that contains the latest data downloading
and adding it as a repository
pointing to the RAD Test Environment runtime for WAS 7 (“C:\WebSphere\IBM\SDP\runtimes\base_v7” in my case)
c) we can start to install WXS on the existing WAS Test Environment
because WAS 188.8.131.52 Test Environment is now a known package group
Remember to not create a new profile at the end of the installation: we want to use the existing one.
Now step 2 is complete and we can go forward augmenting the existing WAS profile (step 3).
To do this, you first need to know WAS profile name
which normally starts with “WCTOOL” in Websphere Commerce Developer. In my case was “WCTOOL~1_113452”
Then augmenting the profile is quite simple
manageprofiles.bat -augment -profileName WCTOOL~1_113452 -templatePath C:\WebSphere\IBM\SDP\runtimes\base_v7\profileTemplates\xs_augment\default
The result is to get WXS administration menus in the WAS Console
Now the infrastructural part is complete and we need to start up both catalog server and container to get a fully functional WXS environment.
First of all we need to create a catalog server domain and add a catalog server using WAS console. One catalog server and one container is enough to have functional tests with Websphere Commerce and WXS.
The catalog server will be initially stopped because catalog server properties aren’t configured yet.
Using the available sample in the WXS installation (C:\IBM\WebSphere\eXtremeScale\ObjectGrid\properties\sampleServer.properties), I created a new specific properties file to configure it and I copied it in the WAS properties directory (C:\WebSphere\WCToolkit\wasprofile\properties)
The most important changes are:
Restarting WAS after adding the catalog.services.cluster custom property to server1, the catalog server is started as expected (with XIO enabled)
If everything is fine, your sysout should report
[1/23/14 19:03:52:937 CET] 00000000 RuntimeInfo I CWOBJ0903I: The internal version of WebSphere eXtreme Scale is v7.0.2 (184.108.40.206) [cf21323.07120159].
[1/23/14 16:21:42:453 CET] 00000004 TCPChannel A TCPC0001I: TCP Channel XIOInboundTCP is listening on host * (IPv4) port 4809.
[1/23/14 16:21:42:453 CET] 00000004 WSChannelFram A CHFW0019I: The Transport Channel Service has started chain Chain-XIOInbound.
[1/23/14 16:21:42:468 CET] 00000004 XIORegistry I CWOBJ9054I: The eXtremeIO registry is using the endpoint ID [40000143bfb14544e0000498296fa73c].
Finally it’s time to startup the container.
As we are using XIO as transport and the catalog server is local, we need to change a couple of things using WXS cachespec sample files as templates (C:\IBM\WebSphere\eXtremeScale\ObjectGrid\dynacache\etc).
I created a new folder
and I copied there dynacache-objectgrid.xml and dynacache-deployment.xml changing a couple of properties.
Then we can start the container
startXsServer.bat wccontainer1 -objectGridFile C:\IBM\WebSphere\eXtremeScale\ObjectGrid\webspherecommerce\etc/dynacache-objectgrid.xml -deploymentPolicyFile C:\IBM\WebSphere\eXtremeScale\ObjectGrid\webspherecommerce\etc/dynacache-deployment.xml -catalogServiceEndPoints localhost:4809
To simplify container configuration I only changed dynacache-objectgrid.xml and dynacache-deployment.xml as suggested in the developerWorks article (“The configuration consists of two files that define both the structure of the grid and the deployment characteristics of the grid for dynacache:…”)
During the startup the container will connect with the catalog server
[1/24/14 8:34:04:999 CET] 00000001 ServerImpl I CWOBJ0204I: The transport type of this Server JVM is being determined by contacting the catalog service domain with the catalog service endpoints of: localhost:4809.
[1/24/14 8:34:06:233 CET] 00000001 ServerImpl I CWOBJ0200I: The transport type is eXtremeIO.
[1/24/14 8:34:35:624 CET] 00000001 ServerImpl I CWOBJ1001I: ObjectGrid Server wccontainer1 is ready to process requests.
The setup is now complete.
To check out how the grid is working, start the WXS web console and create the reference for a new catalog server
and then create a catalog service domain and add the existing catalog server
Finally you can check the grid: it’s up and running
Thanks to Stefano Zauli to review the full procedure before publish.