EBS打补丁后Java类版本不正确如何解决 java 类版本不是最新的 应用补丁后,您确定 java 类版本没有更改。如何解决这种情况? 1.原因 在电子商务套件中,java 文件的文件版本存储在 JRIMETA.DAT 中。 当应用包含 java 类文件的补丁时,adpatch 会查看 JRIMETA.DAT 并将其与补丁中包含的类文件的版本进行比较。 如果补丁文件较新,则它会替换实际的类文件并更新 JRIMETA.DAT 文件。adpatch 不会查看 $JAVA_TOP 中的实际类文件以与补丁中的相应文件进行比较。 因此这意味着 JRIMETA.DAT 不正确并且没有正确的信息,因此不会复制 java 文件。 我们需要将它与 APPL_TOP 中的 java 文件的版本同步。 2.解决方法 查看java文件版本:
adident Header $JAVA_TOP/oracle/apps/bne/integrator/document/menu/BneMenuItemBean.class
- 像往常一样,在应用任何补丁之前,请先备份您的数据库和 APPL_TOP
- 验证是否同步
adjava -mx512m oracle.apps.ad.jri.adjcopy -masterArchive $JAVA_TOP -sync -mode CHECK_ONLY
adjava -mx512m oracle.apps.ad.jri.adjcopy -masterArchive $JAVA_TOP -sync -mode APPLY
重新打补丁
--create table apps.invalids_<rfc_num> as (select
```cpp
object_name,owner from dba_objects where status='INVALID');
create table apps.invalids_20220401 as (select object_name,owner from dba_objects where status='INVALID');
登录apps用户打开维护模式
sqlplus -s apps/passwd @$AD_TOP/patch/115/sql/adsetmmd.sql ENABLE
– 检测Java文件版本
adjava -mx512m oracle.apps.ad.jri.adjcopy -masterArchive $JAVA_TOP -sync -mode CHECK_ONLY
–执行同步
adjava -mx512m oracle.apps.ad.jri.adjcopy -masterArchive $JAVA_TOP -sync -mode APPLY
– merged打英文补丁
cd /patch/NonADmerg
adpatch workers=16 defaultsfile=$APPL_TOP/admin/$TWO_TASK/defaults.txt options=nocompiledb patchtop=`pwd` driver=u_merged.drv logfile=19c_NonADmerg_US.log
– merged打中文补丁
cd /ylebs/patch/ZHSmerg
adpatch workers=16 defaultsfile=$APPL_TOP/admin/$TWO_TASK/defaults.txt options=nocompiledb patchtop=`pwd` driver=u_merged.drv logfile=19c_NonADmerg_ZHS.log
– 再次检查是否同步Java版本
adident Header $JAVA_TOP/oracle/apps/bne/integrator/document/menu/BneMenuItemBean.class
– 查看补丁是否打好 查看无效对象。
set lines 160 pages 50000
Select distinct Bugs.Bug_Number as PATCH,
decode(Ad_Patch.Is_Patch_Applied('R12',-1,bugs.bug_Number),'EXPLICIT','APPLIED','NOT_APPLIED') as APPLIED
From
(
select '18934250' as bug_number From Dual
) Bugs order by 1;
清除无效对象。
set timing on;
@?/rdbms/admin/utlprp 16
select count(*) from dba_objects where status = 'INVALID';
– 打完补丁后
SELECT owner,object_name,object_type from dba_objects where status ='INVALID' and object_name not in(SELECT object_name from apps.invalids_20220401);
– 关闭维护模式
sqlplus -s apps/apps_771308 @$AD_TOP/patch/115/sql/adsetmmd.sql DISABLE
– 重启oacore
cd$ADMIN_SCRIPTS_HOME
adoacorectl.sh stop
adoacorectl.sh start
|