Skip to main content

ATG Order update - InvalidVersionException and ConcurrentUpdateException

ATG repository item descriptor can have the version property. The atg.adapter.gsa.ItemTransactionState holds this version information. For example consider the Order item-descriptor. It has the version property defined against the table dcspp_order. Means, the dcspp_order table has the column version which defines which version of order is currently in the DB. Each order update flow will update this column.

 <property name="version" display-name-resource="version" data-type="int" queryable="true" readable="true" column-name="version" hidden="false" category-resource="categoryInfo" expert="true" required="false" cache-mode="inherit" writable="true">
    <attribute name="uiwritable" value="false"/>
    <attribute name="propertySortPriority" value="30"/>
  </property>


-------------------------------

During the OrderManager.updateOrder() call, validation is done to compare the vesion of the Order object to the one in repository and the exception atg.commerce.order.InvalidVersionException is thrown.
 
2012-09-08 11:38:24,213 99015942 ERROR [nucleusNamespace.atg.commerce.order.OrderManager] (TP-Processor77:) InvalidVersionException: Unable to update order for :6226680554
2012-09-08 11:38:24,213 99015942 ERROR [nucleusNamespace.atg.commerce.order.OrderManager] (TP-Processor77:)
atg.commerce.order.InvalidVersionException: This order (6226680554) is out of date. Changes have been made to the order and the operation should be resubmitted. Order version 136, Repository item version 138.
    at atg.commerce.order.OrderManager.updateOrder(OrderManager.java:2557)


--------------------------------   


During the order update @ GSAItemDescriptor, atg.repository.ConcurrentUpdateException is thrown if no row got updated based on the "where" condition. If the table is having a version property, the where condition includes the version also. And in case of Order, this exception may occurs if the version in the DB not matches with the one in order object.
   
Caused by: atg.repository.ConcurrentUpdateException: no rows updated oldVersion=3 for item=order:6284190656 in GSATransaction=atg.adapter.gsa.GSATransaction@1ccdb05    thread=TP-Processor86 transaction=TransactionImpl:XidImpl[FormatId=257, BranchQual=, localId=4931830]
    at atg.adapter.gsa.GSAItemDescriptor.updateItem(GSAItemDescriptor.java:6070)
    at atg.adapter.gsa.GSARepository.updateItem(GSARepository.java:949)
    at atg.commerce.order.processor.ProcSaveOrderObject.runProcess(ProcSaveOrderObject.java:180)
    at atg.service.pipeline.PipelineManager.runProcess(PipelineManager.java:453)
    at atg.commerce.order.OrderManager.updateOrder(OrderManager.java:2586)


-------------------------------

Comments

  1. This comment has been removed by the author.

    ReplyDelete
  2. How to avoid InvalidVersionException and ConcurrentUpdateException ? Does one need to wrap all update, insert order statements in begin and end transaction code ?

    ReplyDelete
  3. InvalidVersionException and ConcurrentUpdateException will occur due to bad coding/ bad server configuration / clustering.

    ReplyDelete

Post a Comment

Popular posts from this blog

Useful windows shortcut keys

Following are the most useful set of windows shortcut keys that I would like to share with you. run commands calc        -->  Calculator  mspaint   -->  To get Paint textpad   -->  To get Textpad if installed cmd        -->  Opens a new Command Window (cmd.exe)  control    -->  Displays Control Panel  msconfig   -->  Configuration to edit startup files  compmgmt.msc  -->  Computer management  fsmgmt.msc      -->  Folder Sharing Management  services.msc     -->   System Services  appwiz.cpl  --> Add/Remove Programs  ncpa.cpl     -->  Network Connections  %userprofile%  -->  Opens you User's Profile  %temp%  -->  Opens temporary file Folder  temp ...

ATG License Files and Oracle Software Delivery Cloud

Oracle no longer generates license keys that are specific to your IP address(es). Oracle now provides generic license files that enable you to fully utilize all of the features for which you are licensed. Please find the ATG License files for different ATG versions @ http://www.oracle.com/us/support/licensecodes/atg/index. @ Oracle Software Delivery Cloud , you can find downloads for all licensable Oracle products –> https://edelivery.oracle.com/ Please find below a screen shot for ATG products download :

SOAP UI faster start up

If you feel like your SOAP UI is starting up very slowly, check whether this is due to any start up web page call. You can check this @ Preferences - UI Settings - Show Startup Page ==> Here you can deselect this option to improve the start-up time.

Apache Lucene Search Engine’s Features

Apache Lucene is a high-performance, full featured text search engine library written entirely in Java. It is part of Apache Jakarta Project. Lucene was originally written by Doug Cutting in Java. While suitable for any application which requires full text indexing and searching capability, Lucene has been widely recognized for its utility in the implementation of Internet search engines and local, single-site searching. Lucene is Doug Cutting’s wife’s middle name ! Features 1. Scalable, High-Performance Indexing Over 95GB/hour on modern hardware Small RAM requirements — only 1MB heap Incremental indexing as fast as batch indexing Index size roughly 20-30% the size of text indexed 2. Powerful, Accurate and Efficient Search Algorithms Ranked searching — best results returned first Sorting by any field Multiple-index searching with merged results Allows simultaneous update and searching 3. Flexible Queries Phrase queries –>  like “star wars” –> searc...

ATG CA - BCC home screen : how to add a new link

          Activity source is the property which controls the links on the left nav on the BCC home screen. All activity sources are registered with the ActivityManager component at /atg/bizui/activity/ActivityManager . When rendering the BCC home page, the ActivityManager cycles through all the registered ActivitySource components and displays left navigation links for each of them on the BCC home page. For example if I want to add a new link "My New Link" , below screen shots exaplins how this can be done 1. Add  activityManager.properties to specify the activityresources. In this  activityManager, I specified one MyActivitySource. 2. Add  MyActivitySource.properties  to specify the name of the link and the other details . Here it refers to a bundle properties file.  3. Add  the bundle properties file  to specify the name of the link.  4. Now you could see the new link...