weblogic10.3.6补丁升级时报错遇到无法识别的补丁程序ID

环境配置:
服务器:win2008 R2
weblogic版本:10.3.6

问题描述:
尝试升级补丁程序时遇见以下报错
遇到无法识别的补丁ID:xxxx

通常原因:
通常会发生这种情况,因为特定的补丁程序ID不在Smart Update在cache_dir中使用的patch-catalog.xml文件中。
发生这种情况有几个原因:
1、试图将一个WLS版本的补丁应用到另一个WLS版本的安装。
2、提供了错误的补丁程序ID。
3、智能更新使用了错误版本的patch-catalog.xml。
4、bsu工具版本过低导致无法识别(在10.3.6中bsu工具的版本都是3.3,哪怕安装了bsu_update,因为只是增强了bsu工具的性能,版本号不升级,3.3也为bsu工具的最后一个版本,12c以后升级工具不再是bsu。)

诊断此错误时要检查的事项:
1、检查升级命令是否正确,补丁ID尽量直接复制PSU补丁程序的ID。
2、检查cache_dir下是否有对应的PSU,有xxxx.jar和相对应的patch-catalog_xxxx.xml文件就可以。
3、检查bsu的版本–bsu.cmd -version。

解决方案:
1、不充命名patch-catalog_xxxx.xml
2、默认的patch_download_dir为MW_HOME/utils/bsu/cache_dir。您可以在首选项下的Smart Update GUI中对此进行更改,这里有一个选项可以指定patch_download_dir。或者,在运行bsu -install命令时。打开smart update GUI可以直接运行bsu.cmd。
3、bsu目录下的patch-client.jar。怀疑是否已损坏,应该是516 bytes。可以尝试从别的环境拉一个jar包替换。

PS:win版升级在确认停了应用服务后还是无法卸载已有的补丁程序,可以尝试打开启动管理器,服务中有nodemanager服务在运行可以手动停止,升级完成后需要手动启动,否则主控无法启动受控节点。

本次解决方案:
方案一:

  1. 查看D:\Oracle\Middleware\wlserver_10.3里面是否有补丁信息(比如带补丁号的目录、I37G.jar文件、patch-catalog_xxxxx.xml文件、patch-catalog.xml等文件)。如果有的话,把这里面的补丁信息和D:\Oracle\Middleware\utils\bsu\cache_dir目录备份到其他地方,D:\Oracle\Middleware\wlserver_10.3里原来的补丁信息内容和D:\Oracle\Middleware\utils\bsu\cache_dir目录就删掉。
    注意:D:\Oracle\Middleware\wlserver_10.3只删补丁相关的信息,不要整体把目录删掉。

  2. 进入注册表,找到HKEY_CURRENT_USER\Software\JavaSoft\Prefs\com\bea\plateng\patch\,会看到这个目录里面存放着一些文件。把这些文件备份出来(一定要备份到其他地方,不要简单地删掉);备份之后,把HKEY_CURRENT_USER\Software\JavaSoft\Prefs\com\bea\plateng\patch\目录里面的文件都清空(导出然后以任意名字命名就可以了)。

  3. 执行bsu.cmd -prod_dir=D:\Oracle\Middleware\wlserver_10.3 -status=applied -verbose -view
    结果:
    a. 显示DownloadDir: D:\Oracle\Middleware\utils\bsu\cache_dir
    b. 显示补丁为空
    c. bsu目录中自动创建cache_dir,但是cache_dir目录为空

  4. 放一个补丁(21Y4的jar包和自带patch-catalog_xxxxx.xml文件)到cache_dir目录(注意:只放这两个文件,不要把patch的解压目录直接放进去),运行bsu.cmd -prod_dir=D:\Oracle\Middleware\wlserver_10.3 -status=downloaded -verbose -view
    结果:
    cache_dir目录自动创建patch-catalog.xml文件

  5. 执行bsu.cmd -prod_dir=D:\Oracle\Middleware\wlserver_10.3 -status=applied -verbose -view
    结果:
    现在应该能显示出已经安装过的I37G和TYIA补丁了

  6. 接下来移除I37G补丁,再安装21Y4补丁即可。

方案二

  1. 进入 \patch_wls1036 目录,

  2. 备份patch_jars 和 registry 目录到其他地方

  3. 删除 \patch_wls1036\patch_jars 目录里的所有jar文件

  4. 进入 \patch_wls1036\registry目录,打开 patch-registry.xml 文件, 删除从到之间的全部内容(含这两行)。

例如:

<?xml version="1.0" encoding="UTF-8"?> WebLogic Server 10.3.6.0 并且删除patch-backup.xml文件。
  1. 重新执行安装21Y4补丁的命令。

方案三

  1. 打印跟踪日志bsu.cmd -prod_dir=D:\Oracle\Middleware\wlserver_10.3 -patch_download_dir=D:\Oracle\Middleware\utils\bsu\cache_dir -view -status=applied -log=bsu_view_trace.log -log_priority=trace
  2. bsu.cmd -report > bsu.report.log
    打印跟踪日志之后发现报错磁盘空间不足,但是C盘还有3.7G,D盘还有10G以上的空间
  3. 尝试在bsu.cmd中添加参数-Djava.io.tmpdir=D:\tmp,补丁程序可以识别。 从: “%JAVA_HOME%\bin%JAVA%” %MEM_ARGS% -jar patch-client.jar %* 到: “%JAVA_HOME%\bin%JAVA%” %MEM_ARGS% -Djava.io.tmpdir=D:\tmp -jar patch-client.jar %* (注意D盘下对应要创建tmp目录)
  4. 测试发现当c盘磁盘空间满了以后就会报错,遇到无法识别的补丁程序ID。因为程序会复制modules/com.bea.cie.patch-common_3.3.0.0.jar中的一个临时文件到\Users\ADMINI~1\AppData\Local\Temp\2\16541669845476893839097646782720.tmp,此次问题c盘还有3.7G空间,怀疑是360杀毒软件造成的权限问题。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值