SSI mass sync agent
- When an index is lost or corrupted
- When an index definition is modified by adding more attributes
- When data is migrated to the Sterling™ Order Management System system without using Sterling Order Management System APIs
- When a critical system failure occurs
- After a Sterling Order Management System upgrade
Each indexable entity (order/shipment) has a column called INDEX_VERSION. This column is used to track if the entity record is indexed or not, and if so, which index-definition version the index record corresponds to. For example, if INDEX_VERSION is null for a particular order, that order is not indexed at all. If, on the other hand, its version is 3, the document indexed corresponds to the index-definition version 3. For more details about index version, refer to the "Managing Search Indexes" topic.
The agent works in three modes:
- unindexed mode
This mode is to be used during initial onboarding, or if data is migrated to the Sterling Order Management System system without using Sterling Order Management System APIs. Such existing or migrated order/shipment records will have the INDEX_VERSION column with a ‘null’ value. This mode of operation indexes all entity records that have a ‘null’ value in the INDEX_VERSION column.
- versionsync mode
This mode is to be used when the index has to be rebuilt following a change in the index definition (such as, addition or removal of indexable attributes). This will index all entity records that have INDEX_VERSION less than the current index version (as reported by the PLT_INDEX_CONFIG table). An enterprise that wants to re-index its data with the new index definition should run this agent in versionsync mode.
- full mode
Under this mode of operation, the INDEX_VERSION column is ignored, and the entire index is rebuilt for the entity. This can be used, for example, if the index gets corrupted and it needs to be rebuilt.
Notes:
- The SSI Mass Sync Agent is an enterprise agent.
- Existing data, as well as Sterling Order Management System data created through external systems, needs to be onboarded using this agent as part of enabling the search index server.
- Each executeJob runs on a ‘batch’. Each such batch corresponds to a range of entity records (for example, order records) from a particular colony. Further, batches from different colonies are interspersed. Therefore, you can configure multiple agent threads spanning across multiple agent servers for faster indexing.
- Each entity record (for example, order record) is populated with the INDEX_VERSION field with the current index version after successful indexing.
- Since the agent runs for several records of the entity tables
in each executeJob call, multiple failure scenarios can exist:
- If critical problems are encountered that affect all index attempts (for example, if the index server is unreachable), the agent’s executeJob will fail altogether with an exception. In such a case, none of the entity records of this batch will have their INDEX_VERSION set or updated.
- If individual documents fail, failure will be reported though the Exception Notification framework, and a record will be inserted in the YFS_Awaiting_Index table so that the SSI_DELAYED_SYNC agent can attempt re-indexing this entity later. In this case, the INDEX_VERSION field will be set/updated with the current value for the index.
- This agent does not set In_Sync=Y in the YFS_Index_Sync table. When the Index Management Console displays that the index is not synchronized for the Enterprise, you should ensure that the SSI_MASS_SYNC agent ran successfully. This involves ensuring that the execute agent operations ran without any exceptions. Once this is ensured, you can use the Index Management Console to synchronize the index for the Enterprise.
- This agent does not manage the YFS_Awaiting_Index table. It is recommended to run this agent only when the YFS_Awaiting_Index table does not have any stale records that are older than a few minutes, because such a state may be representative of problems with the search index server. If such records are present, it is recommended to fix the underlying problem and run the SSI_DELAYED_SYNC agent first before running this agent.
- Ensure to run this agent with 4 GB memory in order to synchronize large number of orders to the elastic search instances.
Attributes
| Attribute | Value |
|---|---|
| Base Transaction ID | SSI_MASS_SYNC |
| Base Process Type | General |
Criteria Parameters
| Parameter Name | Description |
|---|---|
| Action | Required. This parameter triggers the transaction. The default value is "Get". |
| BatchSize | Number of records to process in a single executeJob . The default is 1000. |
| NumBatchesToBuffer | Number of records to return in one iteration of getJobs. The default is 5000. |
| Enterprise Code | Enterprise Code of the enterprise to run this
agent for. This agent will run for the enterprise colony and all the Seller colonies for this enterprise. |
| Mode | Mode of operation (unindexed, versionsync, full). The default value is unindexed. |
| IndexName | Name of the index. For example: Order |
| Colony Id | Colony Id. When Colony Id is passed and Enterprise Code is not passed, the agent will be triggered for all enterprises that are configured in that colony. Also, for each of these enterprises, the agent will run for the enterprise colony and all the Seller colonies for this enterprise. |
| Collect Pending Jobs | This agent does not provide the pending jobs count for monitoring it in the System Management Console; hence, this parameter is set to N and is not modifiable. |
Events Raised
None
Statistics Tracked
None
Pending Job Count
None