WebSphere Commerce V6 migration between WAS V6 and V6.1

July 27th, 2010

I am writing a separate post on setting up IBM WebSphere Extreme scale with Commerce, which is going to be really important for you if you have a Commerce site and want to improve your performance.  If you are on Commerce V7 then get Feature Pack 1 installed and you are supported and can try WXS out.  If you are on WebSphere Commerce V6 and that migration all the way to V7 looks ou of the question right now well you can use WXS, but you are going to need to move from WAS 6 to WAS 6.1.  The tasks are in a very loose format  documented in the info centre under Migration, which is a little strange because its talking about migrating from a previous version.  We are not doing that though  because we are on Commerce V6 and we want to change WAS versions.  But it is there just open up the Migration topic and you will find out, then read this alongside it.

Environment & Changes

The migration I was doing was under AIX 5.3 and one import aspect is make sure you set the ulimit value to a high level.  if you don’t and the default we had on our machines was 2000 the migration will fail.  I think its just because of the amount of content that gets moved around, and it just runs out of handlers for it.

So edit the /etc/security/limits file. Add the following lines to the user account that the WebSphere Application Server process runs on:  (for migration this is root).  It can also help the system increasing the default number of files from 2000 to 10000.  if you want you can set these to be unlimited with a -1.

nofiles =  10000
nofiles_hard = 10000
The other aspect is make sure you have a significant amount of space free on the system.  The steps will create various log files and sometimes these can be huge I saw one that was in excess of 10Gb.  We were then getting some very spurious errors about failure to copy an object but nothing that specifically said it failed because of space issues.

Time to allow for Migration

In order to complete the migration you are going to want to allow at least 10 hours.  When I ran the migration on the AIX environment it was a P5 machine with 12Gb memory, so plenty of resources.  It took a long time to complete some of these steps, so don’t expect this to be quick.  I am still working through the ND steps and that may be even longer.

Stand Alone Migration

The first attempt I made at doing the migration was stand alone by that I mean a single WAS server ran my Commerce instance.  In fact had two commerce instances that I wanted to migrate a stage server and a normal server, both existed on the same machine they each ran inside a different WAS profile.

1) Install and then patch WebSphere 6.1 to the latest release

The first thing that you want to do is create yourself a new 6.1 WAS profile.  You can do this either on the Command line or using the Profile Manager tool found under <was61_install_path>/bin

Network Deployment Migration

This was much more complicated and straight away when you read the documentation you will have questions.  The first being Ok it says to migrate my Network deployment manager first, but if you read the instructions will it be any different to just a stand alone server.  Its just not there so instead go into the WAS 6.1 IndoCenter and open this link to migrate the manager.

Ensure that whatever file system you will run the migration on has plenty of space, I would suggest at least 12Gb because of the size of log files that will be created.

1) After installing and patching WAS 6.1 I created a new instance using the instance tool.  I gave it the same node and cell settings as the current manager and also the same ports, as I would expect that the nodes connected to it will want to see the same ports available once migrated.  The documentation under WAS makes it clear that you want to have the same CELL and NODE names, under the Commerce side it does not.

2) If you read the WAS documentation they expect you to use the migration tool that is in the bin directory, they suggest it is the simplest way.  One thing this will do for you is run both the WASPreUpgrade and the WASPostUpgrade commands that are required.  In the Commerce documentation you run the actual commands.

3) Stop your ND Manager under V6

4) Create a backup directory, this will be used by the migration to hold the backed up files and then build from.

5) Run the migration tool, the screens are fairly obvious until you get to the ‘What to do with the applications installed‘ , leave this on the default to migrate and install the applications. On the ‘Directory to Install the Applications‘ again leave the default for the default directory of the target version. Depending on what stage you are at you can either disable or not disable the previous ND Manager version for V6.  If you don’t just be very careful because if you migrate and then start it, and don’t have the V61 version running you will have problems. On the ‘Port value assignments’ take those over from the current version, which will mean you cannot have both ND managers running.

Searching in WebSphere Commerce the best and most integrated option

April 28th, 2010

The one thing a blog should not be is a blatant plug of a product, or your company thats boring and is what your marketing is for.  Its a bit like being asked to do a presentation at an event and then talking all about how good you are, and not giving anyone any useful information.  However to a very small extent I am breaking my rule here, I know George at eGlobal who is behind what I will talk about, but its well worth it.

Searching and your eCommerce site, if there is one thing that should be as perfect as possible its giving customers the ability to find what they want.  The problem though from a WebSphere Commerce point of view is frankly this has always been terrible.  What is provided in the basic store is very poor, it is nothing more than SQL searches across certain field’s.  Spell it wrong, put it in a different text and your results will vary and you end up with something very different.  It should really be the first thing you plan on changing.

And there are options available at different levels from the free with Lucene, which I have worked with on several different projects such as www.thebookpeople.co.uk or www.jeroboams.co.uk.  To the expensive with the likes of Endeca and Omnifind, which can do some very cool things for your website and its navigation and usability.  However the problem with all of these is they don’t integrate with Commerce.  They are separate products and if you wan’t to manage them well its done outside of Commerce.  Even when IBM controlled the product they still did not understand this and make it happen.  You want one place to manage all your components not several different locations.

So step up eGlobal and George Niece who I have known for many years, because he has taken what has been missing the integration and made it really work.  The reason why George can make this work is probably more than anyone else he understands the Commerce code.  And I would put him ahead of most of the people actually writing the product, he has been there in the guts for a long time.  I play around on the architecture he gets right in there and this is what he has come up with.  A list of what the product can do is below, and you can see it in action here at the www.SitStay.com site. The site used SEO optimised tiny URLs like,

www.sitstay.com/dogs/salmon

or

www.sitstay.com/dogs/fido+fleece

These greatly increase the page ranking through search engines. In addition, note that the search handles spelling variants through an admin interface, so “Men’s Shorts” and “Men Shorts” will actually return results, as opposed to the OOTB search which would probably return nothing. This prevents the “Sorry, We Did Not Find Anything” page and allows the user to see immediate results, rather than indicating you don’t have any products for the keywords used.

In addition, note the Search Suggestions at the top of the returned search page links noted above and in the case study, these are based dynamically on what people are clicking through when they search for a specific keyword or keywords. These links are SEO optimized and create additional upward ranking in search engines.

If you search for something and no results are returned, a list of popular searches are shown as in the following link, www.sitstay.com/dogs/fossil, these are added with an admin tool to allow for them to be dynamically changed and reorganised.

The short URLs into the search have been shown time and again to improve search ranking and as you will note are not redirects, but rather direct invocations into the WebSphere eCommerce engine. The admin interface is wired into the WebSphere Commerce Accelerator and allows for easy reporting on what people are searching for, when they are searching, and as importantly what they are not finding.

And best of all from a cost point of view you just pay once, its not PVU’s its not per processor and if you are good then the work could be done within a week.  So yes perhaps I broke one of my rules there I do have an interest in this, I want to see George and his team kept busy.  It is one purchase for your WebSphere Commerce environment that you would not go wrong with.  Get in touch with them to see how it could work for you.

If you wanted a new house would you just hire a builder?

April 28th, 2010

In the programs on TV when someone builds a house from scratch they typically don’t just hire a builder.  Instead the first person you get in is anan architect, get the plans laid out and make sure you get something that fits your needs and have something the builders can work from.  The builders might be very good but they tend to focus on what they are good at, they are not bothered by the pieces they don’t do and need something to work to.  The architect should then stay with the project ensuring that issues are addressed and that both the person getting the house gets what they wanted.  While the people building understand what is required, and they are part of the process in resolving any issues.  You will have your project manager in there working on the day to day, but for serious issues the architect needs to adjust the plans and make sure things happen.

To me the same should be very true for the technical solutions being put together.  You do need someone who understands the products, they don’t really write code but they do know the pieces of the products available, they can listen to what you want and they can help create a plan that other people can follow.  However all to often it seems to me the expectation is that developers can do all of this and a small majority can.  But for the most part they are interested in developing the code in solving issues with code in making things work.  They are not so interested in the architecture and most do need a plan to follow.

Yet time and again you see adverts for developers and when you talk to the customer it seems they had not even though of involving someone who understands the products themselves.  Understands the pieces involved and ensures you will get the right things from the right products.  Its a combination of people that make for a good project, so make sure you get them all involved.

WebSphere Extreme Scale with WebSphere Commerce for improved cache performance

April 26th, 2010

If there is one thing you should be doing if you you use WebSphere Commerce then it is running a cache policy.  If you don’t you are making your site work much harder than need be, and you are making it respond much more slowly for your users.  It is the one aspect that gets forgotton lots of focus on functionality, the design of the site oh and then maybe performance.  Get cache going in the right way and it will really help, although it does need to be part of your design process than an after thought.

However even cache can have its issues especially once you start to cluster the WebSphere servers.  Multiple copies of the same item will existing across the nodes, so say youcache fragment for a product page would exist in each node inside your WebSphere cluster.  The fact that everything the Commerce environment and cache must exist in a single JVM on the node, this means you are limited by the memory available.  Given most people will be running a 32bit JVM that is really not very much.  Once that memory is used then you get into disk caches and on a busy site you can get a big overhead for your disk offload cache.

Well now there is an option available that can help remove these issues, and it can also be implemented with no extra coding required in the Dynacache environment.  This is IBM’s WebSphere Extreme Scale offering allowing you to move the cache from within the same JVM as Commerce plus keeping everything in memory for better performance.  It also can work away from the machines (virtual or physical running commerce) so can be implemented on cheaper commodity hardware.  It works by utilising multiple JVM’s, which scale in a linear fashion and keeping track of where an object is held across those JVM’s.  So rather than each JVM keeping a copy of your page fragment for a product it is held once in a single JVM.  The WXS environment then keeps track of where the objects are for serving up when requests are made.  Also by only having a single copy of an object an invalidation of an object does not put load on each cache, the object is removed once and rebuilt once rather than multiple times.  When you also come along and turn on a new JVM then it also becomes active straight away but it does not have to build and prime a whole load of cache items.

A couple of other points worth noting if you are on WebSphere Commerce V6 and on WAS 6.0.X, then you will need to upgrade to WAS 6.1.0.25 to run your Commerce environment with Extreme Scale.  It does support WebSPhere Commerce V7 straight away so no problem there.  Also it is possible to use application servers such as Tomcat to provide your JVM’s so no additional WebSphere license costs.  Although WXS does have features such as plugging into the Performance tools in WebSphere, which can give your more integration if required.

IBM WC Info Centre Search

March 23rd, 2010

I use the WebSphere Commerce InfoCenter a lot, over here in the UK as well it is spelt centre!  However given all the resources IBM has for search technology, why can then not make it cable of searching on either spelling mistakes or alternative spelling of words.  For example take the word ‘centre’ you do a search on it and you do get hits (those naughty people using the right spelling) , but all for the word ‘centre’ none for the word ‘center’, seems a bit silly to me.

I am sure it could easily do this, and for all the great content in there it really should be a standard piece of functionality.  Search on misspellings of my word and alternate spellings, because it would help me find things rather than always searching by default on exactly what I put in.

Also one additional thing make sure when you just grab a small piece of text from the page, that your feedback and description are not at the top.  Otherwise as in the V6 info centre you always get the same piece of text in your search results, which means a very small description of what might be in that page.

WebSphere Portal & TAM 6

March 19th, 2010

Towards the end of last year I worked on migrating a TAM 5.1 environment to V6.  One of the applications we had secured behind that was Portal, using Javascript to ensure a complete session shutdown when you logged out Portal.  What we found was our Javascript no longer worked, although there was no clear indication in the TAM manuals of any change.  After quite a bit of investigation we discovered the reason and it was the junction’s defaults has changed.

I passed back the details to IBM who created a technote and for some reason it was secured.  SO here are the details from that technote https://www-304.ibm.com/support/entdocview.wss?uid=swg21406596

__________________________

Section 7.5.11 of the “Develop and Deploy a Secure Portal Solution Using WebSphere Portal Redbook” (http://www.redbooks.ibm.com/abstracts/sg246325.html?Open) describes how to configure Portal login/logout for use with WebSEAL 5.1. If you implemented the sample JavaScript code in the WebSeal 5.1 logout.html page, to avoid a new user logging into WebSEAL after a timeout you would have manipulated the WebSphere Portal cookie “JSESSIONID”‘

In WebSeal 6.1 the JSESSIONID cookie information has changed. In WebSeal 5.1 it is based off the root “/”. In WebSeal 6.1 it is based off junction name, e.g. “/portal”. This change means that after a migration the JavaScript code in the logout function may fail to find the cookies based off root “/”, because they no longer exist.

As described above, when you plug WebSphere Portal into TAM WebSeal 5.1, the JSESSIONID cookie from WAS is created on the “/” level. It is created in the same format as with the -j option in TAM WebSeal 6.1.

Therefore, it is possible to recreate the junctions in WebSEAL v6.x with the -j option, thus ensuring that the JSESSIONID cookie from WAS is created on the root “/” level.

When you do not specify the -j option in WebSeal 6.1 then your cookie is created as JSESSIONID itself and it is associated with the junction name.

It is recommended that access rights be given to unauthenticated on pkmslogout. Otherwise, if TAM WebSEAL times out the user (such as due to inactivity) the user is no longer authenticated and will not be able to perform a clean logout.

And we are back!

January 14th, 2010

Well its good to be back, and under a new banner here at Sarona.  It was a long 12 years at Morpheus very long for the last 7 months, but as they say onwards and upwards.  It has just taken me a while to get things together as far as a Sarona website goes, plenty of things have been keeping me busy.  However the last week has been one of open source so I thought we had better get this blog going.  I have quite a few things from over the last few months that I can post about.  And now to understand and customise wordpress.

Bleddyn