EBS并发管理器的并发请求表 fnd_concurrent_requests,这个表有三个时间列,如何获得并发请求诊断信息

2019/05/30 17:02
阅读数 2.7K

并发管理的并发请求表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;

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部