Model Loading Process

The five models mentioned in Data Models must be loaded into TIBCO Fulfillment Order Management database so that they can be used by different components. These data models are modeled as catalogs using various repositories and relationships readily available in TIBCO Fulfillment Catalog. After modelling the catalogs in TIBCO Fulfillment Catalog, they can be made available to TIBCO Fulfillment Order Management, either by publishing them on JMS topics, or by writing them into offline XML files which can be used by TIBCO Fulfillment Order Management at a later point in time.

Note: When model loading, Orchestrator will not process any incoming order events for orchestration when the existing flag com.tibco.fom.oms.modelLoadingMaxIdle is set to true. When the flag is set to false, Orchestrator processes the order when the model loading is in progress.

You can use two ways to load the models into TIBCO Fulfillment Order Management:

After the models are received in TIBCO Fulfillment Order Management, one member is assigned a task of loading models. This member is identified by the designated model loading member instance property com.tibco.af.oms.model.loading.member in the configuration file. This member is responsible for completing the model loading process and coordination with the rest of the members in the cluster.

The following steps are performed upon receiving the model:
  1. A designated model loading member starts sending an advisory message on the topic tibco.aff.orchestrator.cluster.advisory.heartbeat indicating that the model loading has started. All the members listen to this message and set the modelLoadingStarted flag to true. This member keeps sending an advisory message until the loading is complete.
  2. If no advisory message is received by other members in the cluster, the members set the modelLoadingStarted flag to false after the threshold idle time.
  3. If there are any incoming requests to Orchestrator, it will check the modelLoadingStarted flag. If this flag is true, Orchestrator will keep waiting until the flag is set to false to proceed further. Once this flag becomes false, the Orchestrator request will be processed.