otmfaqForumsBlogsRegister
FAQMembers ListCalendarToday's PostsSearch


 Subscribe Blogs:RSS
 Subscribe Forums:RSS
 Follow New Posts:Twitter
OTMFAQ Home
OTMFAQ Blogs
OTMFAQ Forums
OTM Wiki

OTM SIG
OTM Wiki
MavenWire

Go Back   Oracle OTM / G-Log GC3 Community Support > OTM / G-Log - Technical Topics > Integration and Data Mapping
Reload this Page

Automatic Refresh Cache Before Processing Inbound XML Message


Integration and Data Mapping Integrating OTM / G-Log with external and legacy systems - including XML, WebServices, SOA, ESB, BPEL, EDI and Oracle's Fusion.

Reply
 
Submit Tools LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old July 6th, 2009, 11:23
Junior Member
 
Join Date: Dec 2006
Location: Singapore
Posts: 10
Groans: 0
Groaned at 0 Times in 0 Posts
Thanks: 0
Thanked 0 Times in 0 Posts
Rep Power: 0
mkdizon is on a distinguished road
Automatic Refresh Cache Before Processing Inbound XML Message

Hi,

I had created an Order Release in OTM via integration through element <Release> with IU option. This XML message is being generated by an external system. The same external system has a restore function which basically retrieves info from OTM back to the external system. Doing this means the order that had been restored had to be removed from OTM and made available again in the external system for modification, etc. The deletion of order at OTM is being done via a call to a stored procedure that directly purges records relevant to the order at OTM database and this works fine. The order disappears at OTM after the stored proc execution. However, when we try re-importing back the same order to OTM via integration, OTM fails the transmission with status ERROR and below is the message being thrown:

IMessageCode = TRANSACTION_EXCEPTION
IMessageText = CAUGHT THE FOLLOWING EXCEPTION WHILE PROCESSING TRANSACTION: glog.util.exception.RemoteExceptionWrapper Read_Record_Failure (cachedUser=PHL/LTL.ADMIN/null/ADMIN, class=class glog.ejb.order.ejb_OrEquipment_b8c88i_Impl, currentUserName=PHL/LTL.ADMIN, primaryContext=PHL/LTL.MKD000013 1, vpdUser=PHL/LTL.ADMIN/PHL/LTL.ADMIN/ADMIN) Unable to read {0=null} {1=null} from the database. Either the record has been removed by another user or you do not have rights to view it. (cachedUser=PHL/LTL.ADMIN/null/ADMIN, class=class glog.ejb.order.ejb_OrEquipment_b8c88i_Impl, currentUserName=PHL/LTL.ADMIN, primaryContext=PHL/LTL.MKD000013 1, vpdUser=PHL/LTL.ADMIN/PHL/LTL.ADMIN/ADMIN)

Tried checking the logs and found that the failure occurs at point when system tries to update the order release while in fact, the order was no longer existing in the database. Tried changing the Transaction code of XML to "I" (insert) and system throws another error:


IntegrationLogMessage
  • ILogSeqNo = 5370809
  • ITransactionNo = 6723807
  • ObjectGid
    • Gid
      • DomainName = PHL/LTL
      • Xid = MKD000013
  • WrittenBy = ReleaseInterface
  • IMessageClass = E
  • IMessageCode = DUPLICATE_KEY_ERROR
  • IMessageText = THE ELEMENT(S) Contact.ContactGid WITH VALUE(S) PHL/SHAREDAIR_EXPORT IS A DUPLICATE PRIMARY KEY
  • TimeStamp = 20090706153340
  • DomainName = PHL/LTL
Based on above findings, it seems that the reason for failure is because the cache is not refreshed. System still evaluates the order to be existing in OTM, thus unable to execute an insert rather than update for IU mode. In "I" mode, the order id is detected to be duplicate while the order no longer exists in the database.

Now my question: Is there a way to automatically trigger a cache refresh / clear before processing an inbound XML message? Is there such configuration or property that can be set to achieve this goal?

Hoping for your kind suggestion on this.

Thanks and best regards!
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old July 6th, 2009, 20:16
Member
 
Join Date: Jul 2006
Posts: 48
Groans: 0
Groaned at 0 Times in 0 Posts
Thanks: 16
Thanked 11 Times in 9 Posts
Rep Power: 0
acuartero is on a distinguished road
Re: Automatic Refresh Cache Before Processing Inbound XML Message

Hi,

The first error does look like a cache issue. However the second looks like you have a record in the DB that you would need to delete for the pure insert 'I' to succeed.

Have you verified that the contact_gid PHL/SHAREDAIR_EXPORT is in fact not in the database at the time of the error? You may have that contact tied to multiple orders so deleteing it may not be reasonable.

Can you not use a transaction code of 'D' to delete the order rather than using PL/SQL outside of the application? This method should avoid any cache related issues.

--Alan
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
The Following User Says Thank You to acuartero For This Useful Post:
chrisplough (July 7th, 2009)
Reply


Thread Tools
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
Tender Processing vsevs Execution 4 March 3rd, 2009 11:23
Integration message processing throughput Abrar Performance, Scalability and HA 1 November 24th, 2008 17:59
Turn off automatic uppercasing svenhaul Branding, Screen Sets, XSL/CSS and Translations 10 June 3rd, 2008 11:27
Tutorial: OTM - Setup DB Connection Pool Refresh chrisplough SysAdmin and Management 0 April 23rd, 2008 09:31
Shipment Automatic Deletion. muthaharotm Execution 1 April 4th, 2008 19:00



All times are GMT. The time now is 01:09.
Copyright © 2006-2009, Open Book Solutions LLC. All rights reserved.


Inactive Reminders By Icora Web Design

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40