As explained in the "Index
Synchronization Concepts" topic, the SSI_MASS_SYNC agent is to be
used to bring the index ‘in sync’ with the database. This
agent is used when there are mass inconsistencies between these two
systems. Some examples of mass inconsistencies include:
- When an index is lost or corrupted
- When an index definition is modified by adding more attributes
- When data is migrated to the OMS system without using OMS APIs
- When a critical system failure occurs
- After an OMS 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 OMS system without using
OMS 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 OMS 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
Table 1. SSI mass sync agent attributesAttribute |
Value |
Base Transaction ID |
SSI_MASS_SYNC |
Base Process Type |
General |
Criteria Parameters
In addition to the index mode criteria, SSI Mass Sync Agent takes
the following criteria parameters.
Table 2. SSI mass sync agent
criteria parametersParameter 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