Followers

Thursday, April 4, 2013

Solr with Remote DB.

Solr with Remote DB.

Issue:

I tried to connect to SOLR ( Preprocess and build index). It failed with following error.


INFO: Data import process was unsuccessful. An unrecoverable error has occurred.
Throwable occurred: org.apache.solr.client.solrj.SolrServerException: org.apache.commons.httpclient.ConnectTimeoutException: The host did not accept the connection within timeout of 100 ms
                at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:480)
                at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:246)
                at org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:105)
                at com.ibm.commerce.foundation.dataimport.process.util.SolrUtil.makeDataImportNoCleanCommand(SolrUtil.java:301)
                at com.ibm.commerce.foundation.dataimport.process.DataImportProcessorMain.fullDataImport(DataImportProcessorMain.java:1379)
                at com.ibm.commerce.foundation.dataimport.process.DataImportProcessorMain.executeDIH(DataImportProcessorMain.java:759)
                at com.ibm.commerce.foundation.dataimport.process.DataImportProcessorMain.main(DataImportProcessorMain.java:312)


Then I tried to increase timeout like this:
C:\WCDE_ENT70\bin> di-buildindex.bat -masterCatalogId 10001 -solrConnTimeout 15000

Then I got:
org.apache.solr.client.solrj.SolrServerException: java.net.ConnectException: Connection refused: connect

SOLUTION:

Connection setting in DB for SOLR was wrong in remote DB ( which is running in Linux)
I have to update the tables SRCHCONF and SRCHCONFEXT to point it to local toolkit server.

update SRCHCONF set config='IndexScopeTag=0,SearchServerPort=80,SearchServerName=localhost,PreProcessConfigDirectory=C:\WCDE_E~1\search\pre-processConfig\MC_10001\DB2' where indextype='CatalogEntry';

update SRCHCONF set config='IndexScopeTag=1,SearchServerPort=80,SearchServerName=localhost,PreProcessConfigDirectory=C:\WCDE_E~1\search\pre-processConfig\MC_10001\DB2\CatalogGroup' where indextype='CatalogGroup';

update SRCHCONFEXT set config ='SearchServerPort=80,SearchServerName=localhost';


Restarted server and it worked. Earlier these config values were pointing to wrong servers ( Linux machines).

Server and port names should match with workspace\WC\xml\config\com.ibm.commerce.catalog-fep\wc-search.xml

Wednesday, March 6, 2013

Restore DB instance

Commands used  to restore WCD2 to WCD1 for a new DB2 instance

  • ​​​db2 restore database WCD2 from /db2backup/WCD1/backup on /db2/WCD1 into WCD1   

(or)
db2 restore db wcd2 from /db2backup/WCD1/backup on /db2/WCD1 into WCD1 logtarget /tmp     

  • db2 rollforward db wcd1 to end of logs and stop overflow log path (/tmp) noretrieve

How to configure your WebSphere Commerce instance to point to a new database (DB2)

   Refer: http://www-01.ibm.com/support/docview.wss?uid=swg21252738

   
  •  Make a backup of this file:
    /opt/IBM/WebSphere/CommerceServer70/instances/comm01/xml <instanceName>.xml
    and save it as
    /opt/IBM/WebSphere/CommerceServer70/instances/comm01/xml <instanceName>.xml.original​
  • Edit the DB name key in your <instanceName>.xml (comm01​.xml):
     <Database>
          <DB DBAHomeDir=""
              DBAName=""
              DBAPwd=""
              DBHost="myhost.ibm.com"
              DBMSName="DB2"
              DBNode="mynode"
              DBServerPort=""
              DBUserHomeDir=""
              DBUserID="myuserid"
              DBUserPwd="Minsq+r9JqRrQSWb4dmuWQ=="
              DefaultLang=""
              JDBCDriverType="native"
              OraUserID=""
              RemoteDB="false"
              RunDB2SG="false"
              ServiceName=""
              StagingEnable="false"
              active="true"
              name="MyDBName" />
        </Database>
  • Save your changes.
         
  • Stop and restart your servers. 
  • After above step we need to update EAR as per below notes.
               http://pic.dhe.ibm.com/infocenter/wchelp/v6r0m0/index.jsp?topic=%2Fcom.ibm.commerce.admin.doc%2Fconcepts%2Fccmxml.htm

               http://pic.dhe.ibm.com/infocenter/wchelp/v6r0m0/index.jsp?topic=%2Fcom.ibm.commerce.admin.doc%2Frefs%2FrcmUpdateEAR.htm​


          /opt/IBM/WebSphere/CommerceServer70/bin
          [wasadmin@nrnlx447 bin]$ ./config_ant.sh -DinstanceName=comm01 UpdateEAR
     
     This should update wc-server.xml file but didn't work so has to update it manually as mentioned in next step.
    • Go to was admin console and update database connections manually.
           ​Resources > JDBC > JDBC providers
            

           Click on WebSphere Commerce Search DB2 JDBC Provider comm01 > Click DataSources under Additional Properties.
           

             Again click on WebSphere Commerce Search DB2 DataSource comm01 from the datasources list > Configuration Page will be opened
             Edit the DB nodes to desired values, apply and save.

           
             Repeat this for rest of the JDBC providers for comm01.
             Restart server.

EJB Deploying error in QuickBuild


EJB Deploying error in QuickBuild

   Error
22:33:28,395 INFO  - [wsejbd​eploy] Throwable occurred: java.lang.NoSuchFieldError: com/ibm/datatools/internal/core/util/EngineeringOptionID.GLOBAL_VARIABLE
22:33:28,395 INFO  - [wsejbdeploy]     at com.ibm.datatools.db2.luw.ddl.LUWDdlGenerator$SingletonOptionDependency.getSingletonObject(LUWDdlGenerator.java:2414)
22:33:28,395 INFO  - [wsejbdeploy]     at com.ibm.datatools.db2.luw.ddl.LUWDdlGenerator.getAllContainedDisplayableElementSetDepedency(LUWDdlGenerator.java:1602)

  Cause

     This is a known issue cause by two old data tool plugins that existed in "deploytools/itp/plugins/" directory:
  • com.ibm.datatools.core_3.0.101.v200811190853.jar
  • org.eclipse.datatools.modelbase.sql.query_1.0.1.v200811050430.jar

  Resolving the problem

  1. Remove the old data tool plugins 
  • ​Navigate to "deploytools/itp/plugins/" directory
  • Back up the following jar files
    • com.ibm.datatools.core_3.0.101.v200811190853.jar
    • ​org.eclipse.datatools.modelbase.sql.query_1.0.1.v200811050430.jar
  • Remove the jar files from step #2 in the "deploytools/itp/plugins/" directory
  • Navigate to "/opt/IBM/WebSphere/AppServer/deploytool/itp/configuration" 
  • Back up the "/configuration" directory
  • Delete all the files and directories within "/configuration" directory
  1. Note: Except "config.ini" if present. 
Run wcbd-build again and verify the result.

Thursday, February 28, 2013

WCS Trobleshooting Tips - WC Publishing failed.

WCS Trobleshooting Tips - WC Publishing failed.

    Error:
The publish encountered some problems and the application may not have been installed or it may have been successfully installed but was unable to start. View the Details to display the exceptions and server logs that occurred during the publish.  
    Solution:

  • Remove WC projects from server using add/remove projects. 
  • Stop server and close RAD
  • Delete all files from following locations ( Please have a back up of these files before deleting)
​- WCDE_installdir/wasprofile/config/cells/localhost/cus
- WCDE_installdir/wasprofile/config/cells/localhost/blas
- WCDE_installdir/wasprofile/wstemp
- WCDE_installdir/wasprofile/temp
- WCDE_installdir/wasprofile/config/temp​

  • ​Open RAD and start server, then add WC.
  •  If adminstrative console is not coming up you may have to reinstall it. Try opening adminstrative console from server > Adminstration > Run Administrative Console.


      
  • Steps for installing server admin console​ ( server should be running)

  1. Open cmd prompt as adminstrator
  2. Navigate to C:\WCDE_ENT70\wasprofile\bin>
  3. For uninstalling​ wasadmin issue following command   C:\WCDE_ENT70\wasprofile\bin>​ wsadmin.bat -f deployConsole.py remove     
  4. For installing wasadmin issue following command C:\WCDE_ENT70\wasprofile\bin>​ wsadmin.bat -f deployConsole.py install
  5. Successfully installed screen
       

        After this step do a complete clean and build , remove wc , stop server, start server , add wc project.