2013年10月17日 星期四

[INV] Inventory transaction worker callTM fails

Inventory transaction worker 不定期的冒出 Error,Error Log 實在看不懂


Log 長這樣

+---------------------------------------------------------------------------+
Inventory: Version : 12.0.0

Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.

INCTCW module: Inventory transaction worker
+---------------------------------------------------------------------------+

Current system time is 17-OCT-2013 14:09:24

+---------------------------------------------------------------------------+

14:09:24 : getting release level 
14:09:24 : isJrelease is  1 
14:09:24 : Table = 3  
14:09:30 : callTM fails: err:


+---------------------------------------------------------------------------+

這 .......,callTM 是什麼????

我查了一下 Metalink,有一個很接近的描述

While processing the records through the interface tables or in background mode 
 - if the transaction header id is greater than 2^32 - 1, the inventory transaction worker is throwing an error.

不過,文件中描述的錯誤訊息是

17:05:45 : getting release level
17:05:45 : isJrelease is  1
17:05:45 : Table = 4
17:05:45 : Came out of process_Trx()
17:05:45 : callTM fails: err:

跟我的不太一樣,而且我的 transaction header id 也還遠小於 2^32-1,所以看來不像這個問題造成

以前的經驗,不太有遇過 Inventory transaction worker error 的問題,所以也沒特別研究過。

今天看了一下,發現他有兩個參數,其中第一個參數就是 mtl_transactions_interface 的 transaction_header_id

用這個參數值,查了mtl_transactions_interface,發現 record 還在 Interface Table 中,且 process_flag = 3,代表 Error。

原來,只要mtl_transactions_interface 的 data 有問題,無法處理,inventory transaction worker 就會 Error。
Inventory transaction worker 處理資料有問題時,Status 變成 Error 這我覺得沒問題。但是 Concurrent Program 的 Error Log 未免也太爛了,讓人不知從何下手處理 ....





沒有留言: