ATG Selective Cache Invalidation
Oracle has introduced Selective Cache Invalidation to improve deployment times and I quote "You can optimize a site’s performance after a switch deployment by enabling selective cache invalidation on target repositories. A repository that is thus configured invalidates its item caches selectively during deployment, rather than invalidating the contents of those caches entirely.". I have seen quite a few queries on Oracle ATG community about how to validate if for real selective cache invalidation works and did not find much help. After some investigative work, I was able to validate if configuration is accurate and successfully was able to verify that Selective Cache Invalidation indeed occurred when assets were published to targets through BCC/CA.
Below is the outline of the steps:
Now that you have validated your configuration, Good luck with configuring an optimal value for "threshold" property on Component:
Oracle has introduced Selective Cache Invalidation to improve deployment times and I quote "You can optimize a site’s performance after a switch deployment by enabling selective cache invalidation on target repositories. A repository that is thus configured invalidates its item caches selectively during deployment, rather than invalidating the contents of those caches entirely.". I have seen quite a few queries on Oracle ATG community about how to validate if for real selective cache invalidation works and did not find much help. After some investigative work, I was able to validate if configuration is accurate and successfully was able to verify that Selective Cache Invalidation indeed occurred when assets were published to targets through BCC/CA.
Below is the outline of the steps:
- enable Selective Cache Invalidation on Target Repository for eg: ProductCatalog as per documentation at: http://docs.oracle.com/cd/E24152_01/Platform.10-1/ATGContentAdminProgGuide/html/s1104selectivecacheinvalidation01.html.
- Using Dynamo Admin page enable "debugSCIEvent" on component Deployment Agent( http://localhost:8080/dyn/admin/nucleus//atg/epub/DeploymentAgent/)
- Turn debug on Target Repository in Production Server for eg: Product Catalog: http://localhost:8080/dyn/admin/nucleus//atg/registry/ContentRepositories/ProductCatalog/
- Load two products one you will likely modify it in BCC by visiting product detail pages on the store front
- Capture Cache statistics
- Now create a Merchandising Project in CA and modify a product. Limit to one product to first get a feel for the kind of logs you should be looking for.
- After the Production Deployment is completed in BCC and Project is closed in BCC, try looking for logs similar to the following
2013-04-17 05:48:27,746 INFO [/atg/epub/DeploymentAgent] DEBUG prepareSwitch(): sciEvents=
2013-04-17 05:48:27,746 INFO [/atg/epub/DeploymentAgent] DEBUG [
mRepositoryPath=/atg/commerce/catalog/ProductCatalog,mFullInvalidation=false,mFullInvalidationItemDescriptorsSet=null,mItemDescriptorToIdsMap=
(
Desc=productTranslation ids=224256
)
]
2013-04-17 05:48:27,746 INFO [/atg/epub/DeploymentAgent] DEBUG SCIAgentService.udpateEvents(): sciEvents=
2013-04-17 05:48:27,746 INFO [/atg/epub/DeploymentAgent] DEBUG [
mRepositoryPath=/atg/commerce/catalog/ProductCatalog,mFullInvalidation=false,mFullInvalidationItemDescriptorsSet=null,mItemDescriptorToIdsMap=
(
Desc=productTranslation ids=224256
)
]
2013-04-17 05:48:27,746 INFO [/atg/epub/DeploymentAgent] DEBUG prepareSwitch(): cacheWarmingEnabled=true SCIEnabled=true sciEvents!=null
2013-04-17 05:48:27,747 INFO [/atg/commerce/catalog/ProductCatalog] DEBUG got DS event: /atg/dynamo/service/jdbc/SwitchingDataSource PREPARE DataSourceA
Now that you have validated your configuration, Good luck with configuring an optimal value for "threshold" property on Component:
/atg/epub/sci/ServerSCIThresholdController
on the Asset Management Server.