百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Oracle EBS 中 WF_DEFERRED 表快速增长的问题解决方案

moboyou 2025-03-19 14:52 11 浏览

针对 Oracle EBS 中 WF_DEFERRED 表快速增长的问题,以下是分步解决方案:


1. 确认问题根源

首先需明确 WF_DEFERRED 表的作用:它存储待处理的工作流后台事务(如异步活动、延迟事件)。数据激增通常由以下原因引起:

  • 工作流后台进程异常:处理延迟事务的进程(如 WFENGINE)未运行或卡死。
  • 未清理历史数据:已完成的延迟事务未被定期清理。
  • 业务逻辑缺陷:工作流设计不合理,导致大量无效延迟事务堆积。
  • 长事务阻塞:某个工作流活动长时间未完成,导致后续事务堆积。

2. 检查工作流后台进程

2.1 验证后台进程状态

sql

复制

-- 查看工作流后台进程状态
SELECT component_name, process_status, process_id
FROM fnd_concurrent_queues
WHERE component_name LIKE '%Workflow%';

-- 检查后台进程日志
SELECT * FROM fnd_concurrent_processes 
WHERE concurrent_queue_name = 'FNDWFENG';
  • 如果进程状态为 InactiveTerminated,需重启进程。
  • 通过 EBS 管理员界面 重启:
    System Administrator > Concurrent > Process > Administer

2.2 调整进程数量和频率

  • Workflow Background Process 的并发程序定义中,增加 Processes 数量(默认1-2个)。
  • 缩短 Sleep Seconds(默认60秒),加快轮询间隔。

3. 清理历史数据

3.1 运行标准清理程序

Oracle EBS 提供标准并发程序清理过期工作流数据:

  • 程序名称:Workflow Background Process(需勾选 Purge Obsolete Data 选项)。
  • 参数设置
    • Purge Type:选择 Obsolete。
    • Purge Age:设置保留天数(如7天)。
  • 提交路径
    System Administrator > Concurrent > Program > Run

3.2 手动清理(紧急情况)

sql

复制

-- 谨慎操作!建议先备份表数据
DELETE FROM WF_DEFERRED
WHERE user_comment = 'COMPLETED'  -- 仅删除已完成的记录
AND TRUNC(deferred_date) < TRUNC(SYSDATE) - 7;  -- 清理7天前的数据

COMMIT;

4. 分析异常事务

4.1 检查未处理的事务

sql

复制

-- 查询未完成的延迟事务
SELECT COUNT(*), activity_name, error_name
FROM WF_DEFERRED
WHERE status = 'ERROR'
GROUP BY activity_name, error_name;
  • 若存在大量错误(ERROR 状态),需检查工作流活动日志:

  • sql
  • 复制
  • SELECT * FROM WF_ITEM_ACTIVITY_STATUSES WHERE item_type = 'WF_DEFERRED';

4.2 修复卡住的流程

  • 使用 Workflow Administrator 工具:
    Workflow Administrator > Workflow Status > Query,查找异常工作流实例并尝试重置或终止。

5. 优化工作流设计

  • 减少不必要的延迟活动:检查业务逻辑,避免过度依赖异步操作。
  • 优化超时设置:在 WF_ACTIVITIES 中调整 EXPANDED_ROLE 或 ERROR_ITEM 的超时时间。
  • 启用批量处理:合并相似事务,减少频繁的单条记录插入。

6. 监控与预防

6.1 定期监控

sql

复制

-- 每日检查表增长趋势
SELECT segment_name, bytes/1024/1024 AS size_mb
FROM dba_segments
WHERE segment_name = 'WF_DEFERRED';

6.2 自动化清理调度

  • 创建定期执行的并发请求,自动调用 Workflow Background Process 清理程序。

6.3 表空间管理

确保 WF_DEFERRED 表所在表空间有足够空间,并启用自动扩展:

sql

复制

ALTER DATABASE DATAFILE '+DATA/ebs/datafile/wf_deferred_01.dbf' 
AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED;

7. 高级处理(如问题持续)

  • 重建索引:若表因频繁删除导致索引碎片化,重建索引提升性能:
  • sql
  • 复制
  • ALTER INDEX WF_DEFERRED_N1 REBUILD;
  • 分区表:对 WF_DEFERRED 表按时间分区,加速历史数据清理。

总结

通过 重启进程清理数据优化设计定期监控 四步,可有效控制 WF_DEFERRED 表的增长。建议优先使用标准清理程序,避免手动操作风险。若问题复杂,请联系 Oracle Support 获取进一步诊断支持。

相关推荐

产品页不显示价格?用这招让独立站转化率翻倍

“客户急得直拍桌子:‘为什么美国用户点进来看不到价格?’”建站设计师小夏盯着屏幕上的报错提示——结构化数据没写对,Google爬虫根本没抓到价格信息。这是一家卖手工珠宝的跨境店,主推定制款,价格因材质...

FOGProject 1.5.10 开源 可以使用PXE、PartClone和Web GUI

FOGProject起点介绍FOG是一个免费的开源克隆/镜像/救援套件/库存管理系统。FOG可以使用PXE、PartClone和WebGUI来对WindowsXP、Vista、Windows7...

AI+隐私计算:淘宝API的下一站,数据开放与安全的双重革命

淘宝API分类全解析:从商品管理到智能营销的接口生态引言在电商行业数字化转型中,淘宝API(ApplicationProgrammingInterface)作为连接平台与开发者的技术桥梁,已成为实...

PHP MySQLi基础教程 MySQL 创建数据库

数据库存有一个或多个表。你需要CREATE权限来创建或删除MySQL数据库。使用MySQLi和PDO创建MySQL数据库CREATEDATABASE语句用于在MySQL中创...

PHP跑不动?服务器慢成蜗牛,客户投诉不断.

最近公司电商系统总卡,用户下单页面半天打不开,客服电话快被打爆。技术主管说PHP性能不行,我们几个新来的程序员被拉来紧急开会。老王翻出一本破旧的《高性能PHP开发》说:"这本书早该读了"...

PHP+UniApp:低成本打造外卖系统横扫App+小程序+H5全平台

在餐饮行业数字化转型中,外卖系统开发常面临两大痛点:高昂的开发成本(需独立开发App、小程序、H5)和多端维护的复杂性。PHP+UniApp的组合通过技术复用与跨平台能力,为中小商家和开发者提供了“降...

PHP分布式锁超卖方案以及高并发优化

在PHP的生态中,是通过多进程的方式去优化程序性能的。在单机架构情况下防止超卖不像JAVA那样可以使用自身的锁机制实现。需要借助第三方程序来实现,如:数据库、Redis等。接下来我们通过一个基于Re...

PHP实战经验之系统如何支撑高并发

高并发系统各不相同。比如每秒百万并发的中间件系统、每日百亿请求的网关系统、瞬时每秒几十万请求的秒杀大促系统。他们在应对高并发的时候,因为系统各自特点的不同,所以应对架构都是不一样的。另外,比如电商平台...

PHP高并发架构:三招让Redis与MySQL数据强同步(含黑科技方案)

技术段位:百万级并发架构师必修实战价值:数据不一致窗口期<50ms|零代码侵入方案|抗亿级流量冲击一、颠覆认知:99%的项目在用错误方案(你中招了吗?)1.经典双删策略的致命缺陷//...

基于Python的仓库库存管理系统的设计和实现

《基于Python的仓库库存管理系统的设计和实现》该项目采用技术Python的django框架、mysql数据库,项目含有源码、论文、PPT、配套开发软件、软件安装教程、项目发布教程、核心代码介绍视...

如何在Redis中处理并发写入php电商网站库存超卖示例

经常会遇到需要在项目中处理并发的情况。今天就用redis来处理并发,解决电商项目中的库存超卖常见需求。项目背景电商网站需要处理高并发的购买请求,每个请求都会减少对应商品的库存数量。为了避免库存超卖,我...

【新书推荐】6.1 鼠标基础知识(鼠标的基础操作)

第六章鼠标Windows程序以其友好的用户交互体验著称。键盘和鼠标都是用户与Windows程序交互的工具。键盘一般被当作用来输入和管理文本数据的设备,鼠标则被看作是用来绘制和处理图形对象的设备。上一...

FFmpeg学习(1)开篇(ffmpeg 教程)

FFmpeg学习(1)开篇FFmpeg学习(2)源码编译,环境配置为什么要学习FFmpeg本人希望打算深入研究音视频领域,音视频领域的内容很多,我自己打算从几方面循序渐进:FFmpeg常用功能实践,...

华纳云:服务器监控系统中最常用的性能指标有哪些

  服务器监控系统通常用于监视服务器的性能和健康状况,以确保其正常运行并及时发现问题。以下是服务器监控系统中最常用的性能指标:  1.CPU使用率:CPU使用率是指服务器上的中央处理器(CPU...

实战线上 Linux 服务器深度优化指南

1.系统基础配置优化优化目标:建立统一、安全、稳定的系统基础环境,为后续优化奠定基础。1.1规范化主机命名采用"功能-地域-机房-机柜-编号"命名法,这样便于资产管理和定位。#采用...