We had an issue during a deployment in which an ORA-01002 was thrown. The interesting part is when we compile and run what is below… import java.sql.*; public class test { public static void main (String args[]) throws Exception {…
Category: ATG
ATG repository caching and the ServerLockManager
While somewhat ancient, I use what is below to crawl an EAR and find which repositories are configured to actually use the ServerLockManager in ATG. for f in $(find . -name “*.jar” -type f ); do for x in $(jar…
ATG – printing items in a giftlist
What is below will print all SKU’s in a giftlist for a given profile… SQL> select g.catalog_ref_id, stock_level, s.display_name 2 from core.dcs_giftitem g, core.dcs_inventory i, cata.dcs_sku s 3 where id in (select giftitem_id 4 from core.dcs_giftlist_item o 5 where giftlist_id…
Comparing web content using python
We have an active/passive data center setup. We replicate the database data using GoldenGate, and maintain the application software through regular build processes. ATG publishing is included in the database data, and the targeter files are maintained via rsync. We…
How does ATG calculate a checksum on a file asset
Here is how a checksum is calculated by ATG. This could be invaluable if you ever have to fix data. Get the checksum on the publishing agent filesystem… -bash-4.1$ pwd /opt/jboss/kits/current/atg_bootstrap.war/WEB-INF/ATG-INF/DAS/lib -bash-4.1$ java -cp classes.jar atg.core.io.CRC64 /tmp/MobileHomePageTargeter.properties Via Direct Table…
Difference between InvalidVersionException and ConcurrentUpdateException
ATG is a very cache heavy application. Given its chatty database design, this is a good thing. One area that uses cache heavily and depends upon a proper configuration of the repository layer is the OrderRepository. Two common exceptions that…
Dump ATG publishing cluster state
The ATG publishing infrastructure maintains a cluster state file on each target. This is used to sync up with the Business Control Center (“BCC”) content, and ensure they match. When troubleshooting, it can be helpful to print the contents of…
Adding the session_id to JBOSS and the ATG order repository
We wanted to be able to track the path a shopper took through the initial order creation process in ATG. The IP address is often insufficient for reasons such as a shared internet connection, proxy server, etc. We extended the…
JBOSS – Which threads have a database connection checked out of the pool?
We had an issue in ATG which was eventually traced to deadlocked sessions on checkout, each of which was attempting to decrement inventory for SKU’s in opposite order. In other words, session one wanted to decrement inventory for A and…
ATG RepeatingRequestMonitor
During a recent period of high traffic level on our site, we found we had several threads blocked on a particular component. We found that the component contained a synchronized block of code, which means only one request can be…