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

Google Chrome shortcut keys

If you are a Google Chromey guy, please find below the list of shortcut keys for some of the most used features  :-) Find more shortcut keys @  http://www.google.com/support/chrome/bin/static.py?page=guide.cs&guide=25799&topic=28650

Eclipse plug-in - More Clipboard

More Clipboard is an Eclipse plug-in which keeps track of the latest entries copied/cut into clipboard buffer and allows you to quickly access these entries. http://sourceforge.net/projects/moreclipboard/ http://marketplace.eclipse.org/content/more-clipboard

Basic design decisions for a commerce search setup ( with an ATG Search view)

In this blog I would like to explain the basic set of configuration/design decisions needed to setup an ATG search project. Most of these design decisions are common for all Enterprise search applications. 1. Decide the searchable properties :   This means the properties that the business want the user to search in the ecommerce platform. In ATG search these are configured as the text properties in the product-catalog-output-config.xml ( the definitionFile of the \atg\commerce\search\ProductCatalogOutputConfig). Usually the displayName of product/sku, displayName of department/category/sub-category, skuId, brandName are the properties configured as searchable. 2. Decide the search refinement properties or the faceted properties :   After a user search for a keyword, search refinement is the next step done to filter his results. ATG supports the search refinement using the Faceted Search concept. Read more about facted search @...

Eclipse Luna - Good features of Eclipse 4.4 JDT / Workbench

Split editors Do you ever find yourself working in a large file and need to view or edit multiple sections at once ? You can now split / unsplit the currently active editor. Use quick access and type split to get different options. Dark theme A new dark window theme has been introduced. You can enable it from the General > Appearance preference page. Show In System Explorer If you select a resource and right click, there is now a Show In>System Explorer context menu entry that will open the folder containing that resource in your system's file explorer. New layout for minimized views Minimized views can have a different display mode by right-click on the "Restore" button of a minimized stack and select the "Show in the Original Location" menu item. Filter conflicting projects during import When importing existing projects, you can now filter out any conflicting projects (projects that are already present in your workspace). Quick Fixes ...

Intimation u/s 143(1) of the Income Tax act

Have you got your Income Tax filing e-receipt ? After a successful assessment of tax returns, income tax department issues Intimation u/s 143(1). Normally these intimations will be received through email to the Email address provided when filing income tax returns online. If “NET AMOUNT REFUNDABLE /NET AMOUNT DEMAND”  is less than Rs 100, you can treat this Intimation u/s 143(1) as completion of income tax returns assessment under Income Tax Act. It can be useful for the proof of Income/ Completion of income tax returns assessment. In case of demand , we need to pay the entire Demand within 30 days of receipt of this intimation.The payment can be made using the printed challan enclosed in the mail or you can go for online tax payment. The Tax Payment challan is enclosed if the Tax Payable exceeds Rs. 100. If you go for online tax payment, follow the instructions listed @   http://tips4ufromsony.blogspot.com/2011/03/online-income-tax-payment-using.html  a...