EBS並發管理器的並發請求表 fnd_concurrent_requests,這個表有三個時間列,如何獲得並發請求診斷信息


並發管理的並發請求表fnd_concurrent_requests,這個表存在三個時間:

requested_start_date The date and time when users want the request to start running(用戶希望請求開始運行的日期和時間)
request_date Concurrent request submission date(並發請求提交日期)
ACTUAL_START_DATE The actual time and date when the request started running(請求開始運行的實際時間和日期)

問題:請求啟動時間與請求時間相比,有時候啟動時間小於請求時間,有時候啟動時間大於請求時間

解決:查看請求狀態,請求狀態的對應關系是--

 

  • PENDING(待定) Normal(正常) Request is waiting for the next available manager.(請求正在等待下一個可用的管理器。)
  • PENDING(待定) Standby(正在等待准備) Program to run request is incompatible with other program(s) currently running.(運行請求的程序與當前運行的其他程序不兼容。)
  • PENDING(待定) Scheduled(調度) Request is scheduled to start at a future time or date.(請求計划在將來的時間或日期開始。)
  • PENDING(待定) Waiting(等待中) A child request is waiting for its Parent request to mark it ready to run. For example, a report in a report set that runs sequentially must wait for a prior report to complete.(子請求正在等待其父請求將其標記為准備運行。 例如,按順序運行的報表集中的報表必須等待先前的報表完成。)
  1. 當為待定正常時候,啟動時間大於請求時間,說明計划請求已經到了提交時間,但是要等待管理器空閑才能開始。ACTUAL_START_DATE無值
  2. 當為待定正在等待時候,啟動時間小於請求時間,說明計划請求請求已經開始時間已經到了,但是需要等待其他請求完成才能提交。ACTUAL_START_DATE無值
  3. 當為運行正常的時候,啟動時間等於請求時間。ACTUAL_START_DATE有值。

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

對於請求為 : 階段:[待定] ,狀態:[ 正常]

Oracle的診斷信息是:[下一個可用的並發管理器將處理此請求。 並發管理器在完成其當前處理的請求和早於此請求的其它請求后,才會處理此請求。用戶 ***** 在 02-*月 -*** 09:30:07 提交此請求。 未請求活動。這是正常狀態。您可以通過降低該請求的優先級值來提前此請求的處理開始時間。只有系統管理員職責才可以更新請求的優先級值。]

對於請求為 : 階段:[待定] ,狀態:[正在等待]

Oracle的診斷信息是:[此請求正在等待沖突解決管理器的處理。 由於其它請求與此請求相沖突,因此尚未開始處理此請求。沖突解決管理器將確定此請求的開始處理時間。 用戶 ***** 在 02-*月 -*** 09:30:07 提交此請求。 未請求活動。這是正常狀態。]

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

診斷信息是用包FND_CONC.DIAGNOSE獲得。FND_CONC.GET_PHASE ,FND_CONC.GET_STATUS

----------------------------------20190904

最近發現單獨調用FND_CONC.DIAGNOSE不全面,原來后面還要拼接fnd_message.get,fnd_message不熟繼續研究,然后發現可以拼接如下表獲得和form里診斷文本框完全相同的結果:

if (name_in('help.user_status_code') in ('Q', 'A', 'W')) then
  fnd_message.set_name('FND', 'CONC-DG-WAITING REQS');
  help_text := help_text || chr(10) || chr(10) || fnd_message.get || chr(10);

  for rec in (select wreqid, why
    from fnd_conc_waiting_requests
    where reqid = request_id) loop
  exit when loopcnt > 10;
    help_text := help_text || rec.wreqid || ' - ' || rec.why || chr(10);
  loopcnt := loopcnt + 1;
  end loop;
end if;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM