Propagating the WebSphere Commerce Search index with the repeater
You can use the indexprop utility to propagate the WebSphere Commerce search index. It sends an HTTP request to the search index repeater to start replicating with the staging search index. This process ensures that your catalog changes are populated into the WebSphere Commerce Search index in production.
The search index repeater is used as both a master and a subordinate for search replication.
It is used as a subordinate when replicating with the staging search index, where the staging search index is the master and the repeater is the subordinate acting as a backup of the search index for production. After the first replication is completed from staging, the repeater communicates the changes to its subordinate nodes that are in production.
The repeater then becomes the master, where all nodes from
the search index cluster are configured to poll changes from the repeater on a regular
preconfigured fixed-time interval. This time interval is defined in the
solrconfig.xml file under replication
.
Replicating between the repeater and all search index clusters in production can be automated, as the indexed data in the repeater always matches the indexed data in production. The search index repeater must be a subordinate to the staging search server and master to the production search server.
- An optional index validation parameter (-queryCheckPropFile) to validate the index on the master server. Only when all index validations are successful, the index replication is triggered; otherwise, no replication occurs.
- An optional parameter (-
disableReplicationOnRepeaterUntilIndexPropSuccessful
) that blocks replication from the repeater while the utility is running, to synchronize all the new indexes and therefore be available at the same time for all subordinate servers to pull.
Before you begin
- Ensure that the test server is stopped and that Rational Application Developer is not running.
- Ensure that your administrative server is started. For example:
- If WebSphere Commerce is managed by WebSphere Application Server Deployment Manager (dmgr), start the deployment manager and all node agents. Your cluster can also be started.
- If WebSphere Commerce is not managed by WebSphere Application Server Deployment Manager (dmgr), start the WebSphere Application Server server1.
- If global security is enabled, ensure that security credentials for replication are set up for all search servers.
Procedure
-
Complete one of the following tasks:
- Log on as a WebSphere Commerce non-root user.
- Log on with a user ID that is a member of the Windows Administration group.
-
If you are using this utility to replicate the search index, update the replication
configuration file on the staging server to match your WebSphere Commerce Search environment:
-
Go to the following directory:
- WC_installdir/bin
- WCDE_installdir\bin
-
Run the indexprop utility:
-
indexprop.bat -solrHome solrHome -masterCatalogId masterCatalogId -instance instance_name -dbuser dbuser -dbuserpwd dbuserpwd [-destdb destdb] [-destdb_user destdb_user] [-destdb_passwd destdb_passwd] [-restartTime restartTime] [-dbtype dbtype] [-destdb_schema destdb_schema] [-destdb_url destdb_url]
[-passwordFile passwordFile]
[-disableReplicationOnRepeaterUntilIndexPropSuccessful true|false] [-queryCheckPropFile queryCheckPropFile]
./indexprop.sh -solrHome solrHome -masterCatalogId masterCatalogId -instance instance_name -dbuser dbuser -dbuserpwd dbuserpwd [-destdb destdb] [-destdb_user destdb_user] [-destdb_passwd destdb_passwd] [-restartTime restartTime] [-dbtype dbtype] [-destdb_schema destdb_schema] [-destdb_url destdb_url]
[-passwordFile passwordFile]
[-disableReplicationOnRepeaterUntilIndexPropSuccessful true|false] [-queryCheckPropFile queryCheckPropFile]
- solrHome
- The location of the directory that contains the replication configuration file (replication.csv).
- masterCatalogId
- The ID of the master catalog (for example, 10101).
- instance
- The name of the WebSphere Commerce instance with which you are working (for example, demo).
- dbuser
-
The name of the user that is connecting to the database.
The user ID connecting to the database.
- dbuserpwd
- The password for the user that is connecting to the database.
- connectTimeout
- The time, in milliseconds, before the connection times out fetching the search index from the master server. The default value is 10000.
- sleepTimeout
- The time, in milliseconds, before the connection times out waiting for the replication status. The default value is 10000.
- dbUrl
- The URL used to connect to the database.Note: This parameter is only needed for Oracle Real Application Clusters (RAC).
- dbtype
- The production database type to connect to.
- destdb
- The production database name to connect to.
- destdb_user
- The production database user name to connect with.
- destdb_passwd
- The production database password to connect with.
- destdb_schema
- The production database schema to connect to.
- destdb_url
- The production database URL to connect to.
- restartTime
- The restart time to begin invalidating the cache on the production server. That is, the time stamp when the last stagingprop command starts running.
- passwordFile
- Optional: The full path to the password.properties file that contains the password for the user who is connecting to the database, and the production database password to connect with. For example, C:\password.properties.
- disableReplicationOnRepeaterUntilIndexPropSuccessful
- Indicates whether to disable replication on the repeater so that subordinate servers cannot pull until index propagation is successful. Replication is then enabled upon completing successfully.
- queryCheckPropFile
- The fully qualified path to a test query properties file used to validate the search index before propagating. Replication is aborted if any of the test queries fail.
-
-
Ensure that the utility runs successfully.
Inspect the following log file for errors:
- WC_installdir/logs/wc-indexprop.log
INFO
toFINEST
in the WC_installdir/instances/instance_name/xml/config/dataimport/indexprop-logging.properties file:# Default global logging level, INFO com.ibm.commerce.level=FINEST
After you propagate the WebSphere Commerce Search index, you can verify the changes in the storefront.