If your external profiles contain any references to versioned repositories, you must configure the profiles so that the references point to the appropriate database. A customer profile on an ATG Commerce site, for example, can have properties that reference the Claimable repository, which stores information about coupons. The Claimable repository is a versioned repository, whose assets are edited on the management server and deployed to its unversioned instance on the production server. Without additional configuration, the instance of the external profile repository on the asset management server would point by default to the versioned instance of the Claimable repository. The following diagram illustrates this relationship:

In this unconfigured setup, if you used the Business Control Center to edit an external profile that had references to any versioned repository, it would be possible to drill down to properties in the versioned repository on the asset management server. You could not edit any such properties this way (the UI would prevent you from doing so because you would not be working within the context of a project). However, if any of these properties represented an asset that you select through a picker, it would be possible to add the asset to the profile. You would thus be attaching a versioned asset to an external profile on the production server, but the asset might not have been deployed. Doing so could cause undesirable results.

To avoid this problem, identify any references from your external profiles to custom versioned repositories. Then complete the steps shown below. Note that standard ATG repositories are preconfigured appropriately—you need to complete the procedure only for repositories that you have added.

  1. Add versioned and unversioned instances of the foreign repository to the asset management server (for example, (for example, /atg/myApp/MyRepository and /atg/myApp/MyRepository_production).

  2. In the non-versioned (production) instance of the foreign repository on the asset management server (for example, MyRepository_production), set the foreignRepositoryMapper property to /atg/repository/
    ProductionRepositoryMapper
    .

  3. In the localconfig layer on the asset management server, add a /atg/repository/ProductionRepositoryMapper.properties file. In the RepositoryMappings property, specify the versioned repository as a key and the matching non-versioned (production) repository as the value, as shown in the example:

    RepositoryMappings+=\
       /atg/myApp/MyRepository=/atg/myApp/MyRepository_production

  4. In the localconfig layer on the asset management server, add a /atg/registry/ContentRepositories.properties file. Add the versioned repository to the initialRepositories property, as shown below:

    initialRepositories+=\
       /atg/myApp/MyRepository

  5. In the localconfig layer on the asset management server, add a /atg/dynamo/service/AssetResolver.properties file. Add the non-versioned (production) repository to the additionalAssetSources property, as shown below:

    additionalAssetSources+=\
       /atg/myApp/MyRepository_production

    This step is necessary so that the Business Control Center can create and resolve asset URIs for items in the new repository. If you see a message similar to the following when you try to display an item that contains a reference to a foreign repository, make sure that this step has been completed.

    "Cannot find asset with URI atgasset:/<repository>_production/
    <repository ID>.You may not have permission to view the asset."

Note that the same situation could occur for unversioned repositories as well, particularly if preview user profiles could reference items in those repositories. Essentially, whenever you have a repository that is referenced by an external or preview user profile, you need to configure it appropriately with production and non-production instances on the asset management server that point to the correct database.


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