WebSphere Commerce Developer Enterprise(WCDE) v7- FEP6 to FEP8 upgrade - Part1


We need to execute the following steps to upgrade WebSphere Commerce Developer Enterprise(WCDE) v7- FEP6 to FEP8.

Step 1: Update WAS Fixpack (min required is 7.0.0.29)

a.       Install UpdateInstaller for WAS (latest WAS UpdateInstaller 7.0.0.39).
b.       Install WAS Fix using UpdateInstaller (min required is 7.0.0.29 for FEP8)

Step 2: Update WCDE with Feature Pack.

a.       Install the Commerce Server Fix pack (min required is 7.0.0.9)
b.       Update the Feature Pack 8

Step 3: Installation Verification.

a.       Using versionInfo.bat/sh
b.       CheckEnablementStatus.bat/sh
c.       Using DB Query

Step 4: Issues during installation & Fixes.

a.       Missing MadisionMobile.sar and causes installation failures


References

1.       Migrating WebSphere Commerce Developer

2.       WAS update installer

3.       WAS Fix pack

4.       FEP 8 Announcement

WebSphere Commerce Developer Enterprise(WCDE) v7- FEP6 to FEP8 upgrade - Part2 (WAS Fixpack update)

Download and install the WAS UpdateInstaller software


1.       Downlowad the update installer from below url.


           NOTE: Have downloaded “7.0.0.39-WS-UPDI-WinIA32.zip” which is latest update installer.

2.       Extract and click on the “install.exe”

3.       It will ask location to install the updateinstaller, give path like

            C:\Program Files (x86)\IBM\SDP\runtimes\base_v7\updi
            i.e.
            /WAS Installed Location/updateInstaller

NOTE: Tried to give installation directory name as “C:\Program Files (x86)\IBM\SDP\runtimes\ base_v7\UpdateInstaller”, but as path is too long I had to give 
directory name as “updi”


Download and install the WebSphere Application Server Fix Pack


1.       Download WAS fixpack version 7.0.0.29 (min WAS Fix required for WCS7 FEP8)

2.       Place the 7.0.0-WS-WAS-WinX32-FP0000029.pak under following directory
                   C:\Program Files (x86)\IBM\SDP\runtimes\base_v7\updi\maintenance

       NOTE:    “C:\Program Files (x86)\IBM\SDP\runtimes\base_v7” is my local WAS server location.

3.       Click on the “update.exe” from the “C:\Program Files (x86)\IBM\SDP\runtimes\base_v7\updi” directory


4.       Select the WAS production location

            


5.       Select “install maintenance” option
            


6.       It will ask for the fix pack location point to “C:\Program Files (x86)\IBM\SDP\runtimes\base_v7\updi\maintenance”

             


7.       Click Next (by default it selects fixpack location)

            

            


8.       Confirm and click next and “finish” after installation.


            

WebSphere Commerce Developer Enterprise(WCDE) v7- FEP6 to FEP8 upgrade - Part3

Used installation manager to update following

a.       Commerce Developer with Fixpack ( 7.0.0.9)
b.       Commerce Developer with Feature Pack (FEP 8)

Add following repositories to Installation Manager

1.       Download “7.0.0-WS-WCDeveloperEnterprise-FP009.zip” file and extract zip.
2.       Download “WC_V7.0_-_FEP8_FOR_MP_ML” and extract.
3.       Open Installation manager (Run as Admin)
4.       Add following repository to Installation Manger (PreferencesàManage Repositories).
            WC_V7.0_-_FEP8_FOR_MP_ML\developer\repository.config
            7.0.0-WS-WCDeveloperEnterprise-FP009\repository.config

5.       Select “update” in Installation Manager and select WebSphere Commerce and click next.

            

            


            


            


            


            


WebSphere Commerce Developer Enterprise(WCDE) v7- FEP6 to FEP8 upgrade - Part4 (Check WCS VersionInfo)

Once the FEP 8 feature update is done , We can validate the version using any of following ways.

a.       Using versionInfo.bat

       /WCDE-install-direcotry/bin/versionInfo.bat
       


b.       CheckEnablementStatus.bat



Will generate the enableFeature.log with all details.
CheckEnablementStatus:
     [echo] component list file = W:\IBM\WCDE_E~1\properties\version\FEP8.componentlist
[forEachTask] featureName: foundation

CheckPrereqInDB:
[CheckFeaturePrerequisite] Feature foundation is enabled in EAR.
[CheckFeaturePrerequisite] Feature foundation is enabled in DB.

CheckFeature:
     [echo] ------------------------------------------------------
     [echo] Feature           - INSTALLED -        - DB -        - EAR -
     [echo] ------------------------------------------------------
     [echo] foundation        7.0.8.0        7.0.8.0        7.0.8.0
     [echo] ------------------------------------------------------
[forEachTask] featureName: management-center

CheckPrereqInDB:
[CheckFeaturePrerequisite] Feature management-center is enabled in EAR.
[CheckFeaturePrerequisite] Feature management-center is enabled in DB.

CheckFeature:
     [echo] ------------------------------------------------------
     [echo] Feature           - INSTALLED -        - DB -        - EAR -
     [echo] ------------------------------------------------------
     [echo] management-center        7.0.8.0        7.0.8.0        7.0.8.0
     [echo] ------------------------------------------------------
[forEachTask] featureName: store-enhancements

CheckPrereqInDB:
[CheckFeaturePrerequisite] Feature store-enhancements is enabled in EAR.
[CheckFeaturePrerequisite] Feature store-enhancements is enabled in DB.

CheckFeature:
     [echo] ------------------------------------------------------
     [echo] Feature           - INSTALLED -        - DB -        - EAR -
     [echo] ------------------------------------------------------
     [echo] store-enhancements        7.0.8.0        7.0.8.0        7.0.8.0
     [echo] ------------------------------------------------------
[forEachTask] featureName: content-version

CheckPrereqInDB:
[CheckFeaturePrerequisite] Feature content-version is enabled in EAR.
[CheckFeaturePrerequisite] Feature content-version is enabled in DB.

CheckFeature:
     [echo] ------------------------------------------------------
     [echo] Feature           - INSTALLED -        - DB -        - EAR -
     [echo] ------------------------------------------------------
     [echo] content-version        7.0.8.0        7.0.8.0        7.0.8.0
     [echo] ------------------------------------------------------
[forEachTask] featureName: social-commerce

CheckPrereqInDB:

CheckFeature:
     [echo] ------------------------------------------------------
     [echo] Feature           - INSTALLED -        - DB -        - EAR -
     [echo] ------------------------------------------------------
     [echo] social-commerce        7.0.8.0        N/A        N/A
     [echo] ------------------------------------------------------
[forEachTask] featureName: location-services

CheckPrereqInDB:
[CheckFeaturePrerequisite] Feature location-services is enabled in EAR.
[CheckFeaturePrerequisite] Feature location-services is enabled in DB.

CheckFeature:
     [echo] ------------------------------------------------------
     [echo] Feature           - INSTALLED -        - DB -        - EAR -
     [echo] ------------------------------------------------------
     [echo] location-services        7.0.8.0        7.0.8.0        7.0.8.0
     [echo] ------------------------------------------------------
BUILD SUCCESSFUL

BUILD SUCCESSFUL
Total time: 5 seconds

c.       Using DB query.

           Select * from site;
           

d.     NIFStack.xml

For complete details of fix pack, Feature Pack and a list of APARs installed for WebSphere Commerce

WebSphere Commerce Developer Enterprise(WCDE) v7- FEP6 to FEP8 upgrade - Part5

Problem:

Installation was keep failing because of the following error.

Exception Trace:

(Feb 11, 2016 4:16:57 PM), Install, com.ibm.ws.install.ni.ismp.actions.InstallNIFMaintenance, err, Invalid entry path: starterstores/AddOnFeatures/MadisonsMobile.sar/StoreAssetsDir/mobile/ShoppingArea/CatalogSection/SearchSubsection/CatalogSearchResultOnlyDisplay.jspf
(Feb 11, 2016 4:16:57 PM), Install, com.ibm.ws.install.ni.ismp.actions.InstallNIFMaintenance, err, Invalid entry path: starterstores/AddOnFeatures/MadisonsMobile.sar/StoreAssetsDir/mobile/ShoppingArea/CatalogSection/SearchSubsection/CatalogSearchResultOnlyDisplay.jspf
(Feb 11, 2016 4:16:57 PM), Install, com.ibm.ws.install.ni.ismp.actions.InstallNIFMaintenance, err, com.ibm.ws.install.ni.framework.NIFException: Invalid entry path: starterstores/AddOnFeatures/MadisonsMobile.sar/StoreAssetsDir/mobile/ShoppingArea/CatalogSection/SearchSubsection/CatalogSearchResultOnlyDisplay.jspf
                at com.ibm.ws.install.ni.ismp.utils.ISMPLogUtils.logException(ISMPLogUtils.java:46)
                at com.ibm.ws.install.ni.ismp.actions.InstallNIFMaintenance.execute(InstallNIFMaintenance.java:105)
                at com.installshield.wizard.RunnableWizardBeanContext.run(RunnableWizardBeanContext.java:20)
Caused by: java.io.IOException: Invalid entry path: starterstores/AddOnFeatures/MadisonsMobile.sar/StoreAssetsDir/mobile/ShoppingArea/CatalogSection/SearchSubsection/CatalogSearchResultOnlyDisplay.jspf
                at com.ibm.ws.install.ni.framework.fileactions.ZIPAddFileActionPlugin.getFSRelativePathStopPosition(ZIPAddFileActionPlugin.java:250)
                at com.ibm.ws.install.ni.framework.fileactions.ZIPAddFileActionPlugin.getTargetFileSystemEntry(ZIPAddFileActionPlugin.java:187)
                at com.ibm.ws.install.ni.framework.fileactions.ZIPAddFileActionPlugin.execute(ZIPAddFileActionPlugin.java:53)
                at com.ibm.ws.install.ni.framework.fileactions.FileActionPlugin.executeFileAction(FileActionPlugin.java:54)
                at com.ibm.ws.install.ni.updi.component.was.ComponentFileActions.execute(ComponentFileActions.java:95)
                at com.ibm.ws.install.ni.updi.component.was.ComponentDeployAction.execute(ComponentDeployAction.java:48)
                at com.ibm.commerce.install.updi.product.wc.WCUpdateComponent.execute(WCUpdateComponent.java:113)
                at com.ibm.ws.install.ni.framework.component.ComponentAction.executeComponentActions(ComponentAction.java:215)
                at com.ibm.ws.install.ni.framework.component.ComponentAction.executeBackupComponentActions(ComponentAction.java:52)
                at com.ibm.ws.install.ni.framework.install.NIFPackageApplicationPlugin.backupIfNecessary(NIFPackageApplicationPlugin.java:412)
                at com.ibm.ws.install.ni.framework.install.NIFPackageApplicationPlugin.executeInBackwardCompatibleMode(NIFPackageApplicationPlugin.java:221)
                at com.ibm.ws.install.ni.framework.install.NIFPackageApplicationPlugin.execute(NIFPackageApplicationPlugin.java:110)
                at com.ibm.ws.install.ni.framework.maintenanceplugins.FixpackApplicationPlugin.execute(FixpackApplicationPlugin.java:87)
                at com.ibm.ws.install.ni.ismp.actions.InstallNIFMaintenance.executeTheseInstallPackages(InstallNIFMaintenance.java:1043)
                at com.ibm.ws.install.ni.ismp.actions.InstallNIFMaintenance.executeThisInstallPackage(InstallNIFMaintenance.java:611)
                at com.ibm.ws.install.ni.ismp.actions.InstallNIFMaintenance.executeThisInstallPackage(InstallNIFMaintenance.java:994)
                at com.ibm.ws.install.ni.ismp.actions.InstallNIFMaintenance.executeThisInstallPackage(InstallNIFMaintenance.java:489)
                at com.ibm.ws.install.ni.ismp.actions.InstallNIFMaintenance.executeThisInstallPackage(InstallNIFMaintenance.java:429)
                at com.ibm.ws.install.ni.ismp.actions.InstallNIFMaintenance.performExecution(InstallNIFMaintenance.java:376)
                at com.ibm.ws.install.ni.ismp.actions.InstallNIFMaintenance.execute(InstallNIFMaintenance.java:74)
                ... 1 more

(Feb 11, 2016 4:16:57 PM), Install, com.ibm.ws.install.ni.ismp.actions.SettleNIFRegistryAction, msg1, Current install/uninstall process failed.
(Feb 11, 2016 4:16:57 PM), Install, com.ibm.ws.install.ni.ismp.actions.SetExitCodeAction, msg1, CWUPI0000I: EXITCODE=1
(Feb 11, 2016 4:16:57 PM), Install, com.ibm.ws.install.ni.ismp.actions.ISMPLogFileAction, msg1, For more information on installing components, see the following trace file:
C:/IBM/WCDE_ENT70\logs\update\7.0.0-WS-WCDeveloperEnterprise-FP009.install\updatetrace.log.gz
(Feb 11, 2016 4:16:57 PM), Install, com.ibm.ws.install.ni.ismp.actions.ISMPLogFileAction, msg1, For more information on running configuration commands, see the following trace file:

Solution:

To mitigate this issue,
a.       from the extracted “WC_V7.0_-_FEP8_FOR_MP_ML” zip file, copy all sar files from \WC_V7.0_-_FEP8_FOR_MP_ML\developer\native\wc.toolkit.native.store-enhancements_7.0.8.20141114_0840\components\store-enhancements\starterstores to “/WCDE-Install-dir/starterstores”.
b.       And run the update using installation manager again.


NOTE: if “starterstores” directory is not there under /WCDE-install-Dir/ , create that directory

Page Specific Dynamic E- Marketing Spots

Scenario: Present page specific information on category pages/products /SKU's /content pages which uses layouts.


Solution: We can leverage the "page specific e-marketing spot" feature of widget in composer


 
Steps:
  1. Open layout layout which will be used for the product pages (i.e. category page layout as shows above in screen shot)
  2. From the design layout section select the e-marketing spot type to "Page-Specific e-marketing spot"
  3. Provide suffix "Row4_CatEntries" , which we will use to create the espots ending with that suffix as shown below.

 
  1. So  when we are on the "Boys" department it will pickup the "BoysRow4_CatEntries" espot and when we go to "Electronics" category page then it will pick "ElectronicsRo4_CatEntries"


  1. Have attached different titles content to these espots to display the different content.

Redirecting to different view JSP based on device type i.e. mobile/tablet/desktop at portal serverside


IBM websphere supports client profile information in portlets which is defined in JSR188 (https://jcp.org/en/jsr/detail?id=188)

You can check if client request is coming from mobile/tablet or from desktop and redirect to different view accordingly with following sample code

String VIEW_JSP = "desktopView";
javax.ccpp.Profile profile = (javax.ccpp.Profile) portletRequest.getAttribute("javax.portlet.ccpp");
javax.ccpp.Attribute attr = profile.getAttribute("DeviceClass");

if(attr!=null && attr.toString().equals("tablet")){
VIEW_JSP = "tabletView";
}else if(attr!=null && attr.toString().equals("smartphone")){
VIEW_JSP = "mobileView";
}


NOTE: 

  1. DeviceClass=smartphone/tablet
  2. Vendor=Apple/Samsung ..etc