如何解决Oracle WLS/Coherence补丁安装时的错误码73问题?
我之前在维护WebLogic集群时也碰到过一模一样的问题——明明装了12.2.1.4.0版本的WLS(官方说明里确实包含Coherence),但补丁死活检测不到组件,折腾了好一阵才解决,给你分享几个靠谱的排查和修复步骤:
1. 先确认Coherence是否真的安装在Oracle Home里
别光看安装包说明,用OPatch命令实打实查一遍已安装组件:
opatch lsinventory -detail
如果输出里完全找不到oracle.coherence:12.2.1.4.0相关的条目,那就是安装WLS时没勾选Coherence组件。这种情况直接重新运行WebLogic安装程序,选「修改现有安装」,把Coherence的勾选框打上,完成组件补装就行。
2. 核对补丁要求的Coherence版本兼容性
你的错误提示里补丁要求的是oracle.coherence:12.1.3.0.0或更高版本,虽然12.2.1.4.0版本更高,但有些旧补丁只适配特定主版本的Coherence。建议打开补丁包里的README.html,仔细看它的支持环境列表,确认是否兼容WebLogic 12.2.1.4.0。如果补丁不兼容,得去Oracle Support找对应12.2.x版本的替代补丁。
3. 重新执行attachHome并修复Inventory
你已经跑过attachHome,但可以再重新执行一次,确保Central Inventory正确识别Oracle Home里的组件:
opatch attachHome -oh C:\Oracle\Middleware
执行完再跑一遍opatch lsinventory,看Coherence有没有被列出来。另外注意Windows系统下要以管理员身份运行命令行,不然OPatch可能没有权限读写Inventory目录(C:\Program Files (x86)\Oracle\Inventory),导致组件识别失败。
4. 检查环境变量的细节问题
虽然你说已经配置了ORACLE_HOME和JAVA_HOME,但还是要确认几个点:
- ORACLE_HOME尽量用完整路径
C:\Oracle\Middleware,别用短路径C:\Oracle\MIDDLE~1,虽然OPatch能识别,但偶尔会有兼容性问题 - JAVA_HOME必须指向Oracle官方的JDK(WebLogic 12.2.1.4.0推荐JDK 8u201及以上版本),别用OpenJDK或者其他第三方JDK
- PATH环境变量里要把
%JAVA_HOME%\bin和%ORACLE_HOME%\OPatch放在最前面,避免调用到系统里的旧版本工具
5. 清理OPatch缓存后重试
有时候OPatch的临时缓存会导致检测逻辑出错,先清理缓存再试:
- 删除
C:\Oracle\Middleware\cfgtoollogs\opatch目录下的所有日志和临时文件 - 再次以管理员身份运行补丁安装命令:
opatch apply <你的补丁文件路径>
最后一招:从日志里挖细节
如果上面的步骤都没用,打开OPatch的日志文件(C:\Oracle\MIDDLE~1\cfgtoollogs\opatch\opatch2020-12-29_20-42-48PM_1.log),搜索oracle.coherence相关的内容,里面会有更详细的检测失败原因,比如组件版本不匹配、Inventory条目损坏等,顺着这个线索找问题会更精准。
内容的提问来源于stack exchange,提问作者RoBar

