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

itemID

The repository ID of the repository item in the local repository that this information applies to.

itemDescriptor

The name of the item descriptor in the local repository that this information applies to.

repositoryName

The name of the local repository.

state

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.

lastRun

This property tracks the last time a getItem operation retrieved the item’s data from the remote system. If the current time minus the lastRun time exceeds the local-value-timeout value set in the Integration Repository, then this item is marked INVALID and the Integration Repository retrieves the item’s data from the remote system with a getItem operation.

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

expireTimePeriod

Time in seconds that items remain in the persistent cache after they are last updated.

864000 (10 days)

deleteInvalidStateItems

Items are deleted if their state is not OK.

true

schedule

SeeScheduler Services for information about how to set schedules in schedulable services.


Copyright © 1997, 2016 Oracle and/or its affiliates. All rights reserved. Legal Notices