The Integration Framework uses a separate SQL repository to track integration information. This SQL repository is referred to as the persistent cache or the Integration Data repository. This repository exists to track when particular repository item properties have been fetched from the remote system. This lets the Integration Framework limit the frequency with which it needs to access the remote system.
The Integration Data repository has a Nucleus address of /atg/integrations/repository/IntegrationData
. You should not need to do anything to configure or use the Integration Data repository. The repository uses a database table named if_integ_data
that is created when you install the Oracle Commerce Platform.
The Integration Data repository defines a single item descriptor, named integration-data
. For each repository item in the local repository, there is a corresponding repository item in the Integration Data repository. The integration-data
item descriptor defines five properties:
Property | Description |
---|---|
| The repository ID of the repository item in the local repository that this information applies to. |
| The name of the item descriptor in the local repository that this information applies to. |
| The name of the local repository. |
| This property tracks whether the item in the local repository is up to date with the data in the remote system. The state can be one of OK, INVALID, or UNKNOWN. Unless the state is OK, then the Integration Repository tries to get the data from the remote system, rather than relying on the local repository. |
| This property tracks the last time a |
The item descriptor definition in the Integration Repository definition file specifies a local-value-timeout
attribute:
<item-descriptor name="my-item" local-value-timeout="1000"/>
The state of a repository item can be set to one of OK, INVALID, or UNKNOWN. The state can be changed if an Integration Repository command returns an error or times out. The Integration Repository checks the state
and lastRun
values on a get-item
operation. If the state
is INVALID, or the lastRun
time for the given command is more than local-value-timeout
milliseconds from the current time, then the item is reloaded from the remote system (using the get-item
Command
). If an item is transient, then a transient instance of the Integration Data repository item would be created.
An item descriptor in the Integration Repository can also define one or more read-only states. If the state of an item in the Integration Data repository is in a read-only state, then the values in the local repository can be used for read-only operations (query, get) but not for write operations (update, add, remove).
Cleaning up the Persistent Cache
The Integration Framework includes a scheduled service named CleanIntegrationData
(class atg.adapter.integrations.CleanIntegrationData
extends atg.service.scheduler.SingletonSchedulableService
). This service is a Nucleus component with the address /atg/integrations/repository/CleanIntegrationData
. It is responsible for cleaning up the persistent cache. The CleanIntegrationData
service deletes from the Integration Data repository any records that have not been updated since the time specified by its expireTimePeriod
property. If its deleteInvalidStateItems
property is set to true
, then records that are not in the state IntegrationRepository.OK
will also be deleted. Note that the corresponding repository items are not deleted from the local repository. The CleanIntegrationData
component has the following configurable properties:
Property Name | Description | Default Value |
---|---|---|
| Time in seconds that items remain in the persistent cache after they are last updated. | 864000 (10 days) |
| Items are deleted if their state is not OK. | true |
| SeeScheduler Services for information about how to set schedules in schedulable services. |