Friday, July 18, 2014

Error 404: SRVE0190E: File not found: /stores/servlet/home

This could happen due to multiple reasons but a couple of reasons that I have seen prominently and please free to add in your comments.

Debugging 1st approach: WebServer configuration
1.Goto access.log in C:\IBM\HTTPServer\logs  and you will see 127.0.0.1 - -"GET /shop/home HTTP/1.1" 404 60
2. Goto C:\IBM\HTTPServer\conf and make sure the httpd.conf and make sure toolkit is pointing to correct directory.
3. Before you make any modifications, do take a backup of httpd.conf

Debugging 2nd approach:

1. Make sure the WC->properties->Java EE Module dependencies has Stores.war checked.


Tuesday, July 15, 2014

Deploying WebsphereCommerceServerExtensionsData --EJBDeployer had Errors


This happens due to a bug in RAD and RAD goes into an inconsistent state. I would try clean build and close data project but even if this does not work. If you have a working data project copy , try to replace that with the data project from workspace and try doing java EE->prepare deployment.




Wednesday, June 25, 2014

CMN8413E: The messaging system cannot find an appropriate profile | Enable transports in V7

If you see an error similar to the one below, most likely your transport is inactive.

[6/25/14 14:05:41:279 PDT] 00000047 CommerceSrvr  A com.ibm.commerce.messaging.outboundservice.Messaging loadAdminData(Integer,Integer,Integer) CMN8413E: The messaging system cannot find an appropriate profile for MSGTYPE_ID "101" to match an active transport of the STORE_ID "10051" in table PROFILE. Ensure that the MSGTYPE has been assigned to an active transport under the store or site.

Login into Admin console and activate Websphere MQ by changing status as show in the image on the right.

If the transports are not visible enable them from wc-server.xml. In V7 by default they are not enabled so 

Search for the string below in wc-server.xml and make enable true and similarly you can do it for other transports: A couple of enabled transport xml snippets from wc-server.xml below.
<OutboundConnector
        default="true"
        enabled="true" id="3"
        name="JMS" retries="3">
...
  <OutboundConnector
        default="true"
        enabled="true" id="1"
        name="JavaMail" retries="3">
        <JNDI
          JndiName="eis/JCAEmail" display="false"/>
...



Thursday, June 12, 2014

Data Loader Override FullImage, Thumbnail scenario fix or any other columns exclusion

This blog explain a scenario where  FULLIMAGE and THUMBNAIL are overridden in table CATGRPDESC even when the CSV files is not passing the values for these fields.
This can be used to apply column level exclusions for any other component similarly so these fields are not overridden.


C:\IBM\WCDE_ENT70\workspace\WC\xml\config\com.ibm.commerce.catalog\dataload\wc-loader-catalog-group.xml

Pasting a block where the change is required..this XML has much more business object configurations:
 <_config:DataLoader className="com.ibm.commerce.foundation.dataload.BusinessObjectLoader">
  <_config:ColumnExclusionList>   
    <_config:table name="CATGRPDESC" columns="FULLIMAGE,THUMBNAIL" />
  </_config:ColumnExclusionList>  
    <_config:DataReader className="com.ibm.commerce.foundation.dataload.datareader.CSVReader" firstLineIsHeader="true" useHeaderAsColumnName="true" />
......
......
.....

Sample RunProductLoad.bat for testing, make sure the path for wc-dataload-catalog-group.xml is correctly done as it is pointing to relative below:

@echo off
setlocal
cd "C:\IBM\WCDE_ENT70\bin"
call dataload ..\workspace\DataLoad\dataload\CustomDataLoad\MasterCatalog\wc-dataload-catalog-group.xml -DXmlValidation="false" -DComponent=CustomDataLoad\MasterCatalog -DFeedHome=C:\IBM\WCDE_ENT70\workspace\DataLoad\dataload -DWCConfigHome=C:\IBM\WCDE_ENT70\workspace\WC\xml\config -DCVConfigHome=C:\IBM\WCDE_ENT70\workspace\DataLoad\dataload\Config
endlocal


Sample CSV file: CatalogGroup.csv, GroupIdentifier points to CATGROUP.IDENTIFIER and ParentGroupIdentifier is the parent from CATGRPREL

Start date 2013-01-28 16:40:42 
GroupIdentifier,ParentGroupIdentifier,TopGroup,Sequence,Name,ShortDescription,Published
36010,310010,FALSE,0,Sample & Decors,Sample & Decors,1

If you have spaces before of GroupIdentifier or ParentGroupIdentifier: It causes this issue below:

Exception message:
The ID was not resolved for the table CATGROUP with the unique index data [  310010, 7000000000000000051].
Stack trace:
com.ibm.commerce.foundation.dataload.exception.DataLoadApplicationException: The ID was not resolved for the table CATGROUP with the unique index data [  310010, 7000000000000000051].
at com.ibm.commerce.foundation.dataload.idresolve.IDResolverForOneTable.resolveId(IDResolverForOneTable.java:339)
at com.ibm.commerce.foundation.dataload.idresolve.IDResolverImpl.resolveId(IDResolverImpl.java:369)
at com.ibm.commerce.foundation.dataload.util.DataLoadHelper.resolveIds(DataLoadHelper.java:2818)

Success or failure: logs folder in toolkit: Sample success log

Load summary for load item: CatalogGroup.
----------------------------------------------------------------------------------
Business Object Configuration: C:\IBM\WCDE_ENT70\workspace\WC\xml\config/com.ibm.commerce.catalog/dataload/wc-loader-catalog-group.xml
Data loader mode: Replace.
Batch size: 1.
Commit count: 100.
Error Tolerance Level: 1.
Error Count: 0.
Amount of data processed: 3.
Amount of business objects processed: 1.
Amount of business objects committed: 1.
Data loader initialization time: 1 seconds.
Data loader completed in 4.236 seconds.
Total flush time: 0 seconds.
Total commit time: 0.002 seconds.
CSV file location: C:\IBM\WCDE_ENT70\bin\..\workspace\DataLoad\dataload\CustomDataLoad\MasterCatalog\CatalogGroup.csv.
Affected tables (6):
Table name: CATGROUP, Affected number of rows: 1.
Table name: STORECGRP, Affected number of rows: 1.
Table name: CATGRPDESC, Affected number of rows: 1.
Table name: CATTOGRP, Affected number of rows: 0.
Table name: CATGRPREL, Affected number of rows: 1.
Table name: TI_DELTA_CATGROUP, Affected number of rows: 1.

Wednesday, May 21, 2014

IBM HTTPS Key expired | All HTTPS URL's failing

If you can't get to any of the HTTPS pages this is probably it. 

Here are the steps to fix:

1.  Open iKeyMan - C:\IBM\HTTPServer\bin\ikeyman.bat

2.  Click the open folder and retrieve file: C:\IBM\HTTPServer\SSLKeys\sslkeys.kdb -  Enter the password e.g. "Pass0wrd".

3.  Click "Delete".  

4.  Click New Self-Signed...

5.  Type in label "CLIENT_INITIALS".

6.  Save/Close it.

7.  Open your Windows Services and restart the IBM HTTP Server.

8.  Restart your toolkit (if started already).

9.  Test https://localhost

Wednesday, April 23, 2014

"oracle.jdbc.pool.OracleConnectionPoolDataSource" could not be found

Error below, can happen due to multiple reasons on server start, if it can't locate the Oracle JDBC driver. please find below some of the resolution steps that may help debug.

J2CA0036E: An exception occurred while invoking method setDataSourceProperties on com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl used by resource jdbc/WebSphere Commerce Oracle DataSource demo : com.ibm.ws.exception.WsException: DSRA0023E: The DataSource implementation class "oracle.jdbc.pool.OracleConnectionPoolDataSource" could not be found.
    at java.net.URLClassLoader.findClass(URLClassLoader.java:423)
    at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:191)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:660)
    at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:111)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:626)


Resolution:
ToolkitModuleConfig.xml -->Update XML to point to correct toolkit location.
Close toolkit
Run setDBType          (For Oracle 11g Oracle home:: Oracle\product\11.2.0\client_1)
Which updates wc-server.xml and variables.xml for oracle home.
Right click on server and click clean.

In wc-server.xml
Also make sure the JDBCDriverLocation is correctly pointing to the JDBC driver location.
<Websphere
            DatasourceName="WebSphere Commerce Oracle DataSource demo"
            HelpServerHostName="localhost" HelpServerPort="8001"
            JDBCDriverLocation="C:\IBM\Oracle\product\11.2.0\client_1\jdbc\lib\ojdbc6.jar"
            JDBCDriverType="native" WASProfileName=""
            appUpdateTimeout="1800000" applicationName="WC" port="900"> 




Monday, April 7, 2014

Encryption key based algorithms in Commerce | Error Invalid Key Size

I have encountered this since older versions of commerce, all the way to V7 and this could happen with any type of key based encrypted algorithms. In this scenario, I was testing AESCipher using AES encryption but can happen working on multiple algorithms with larger key size.

This error is caused by restrictions in some countries with key size and hence the default Java spec does not provide unlimited key strength as a default configuration and it requires the policy jars to be updated.

Back up the following files from C:\IBM\SDP\runtimes\base_v7\java\jre\lib\security and get the latest files for IBM JDK and replace with these existing files and restart. Do not get these files below from Oracle.com as IBM uses it's own SDK.

US_export_policy.jar
local_policy.jar
Steps to download the IBM JDK security files:
http://pic.dhe.ibm.com/infocenter/asehelp/v8r8m0/topic/com.ibm.ase.help.doc/topics/t_update_java_sdk_policy_files.html

This step would be required on all the server environments similarly to update the policy files.