从 R12.1.1 升级到 R12.1.2 中文语言 Patch问题
一、背景:
1) Demo环境
2)从 R12.1.1 升级到 R12.1.2 Patch顺利完成
3)从 R12.1.1 升级到 R12.1.2 中文语言 Patch 过程中有部分ldt 任务failue , adctrl retry多次未果,就Skip 过去了。
二、现象
IE打开R12的时候报错(http://syfdemo.ml.com:8000):
Oracle error 6519: java.sql.SQLException: ORA-06519: 检测到活动的独立的事务处理, 已经回退 ORA-06512: 在 "APPS.FND_FUNCTION", line 2155 ORA-06512: 在 "APPS.FND_FUNCTION", line 1090 ORA-06512: 在 "APPS.FND_FUNCTION", line 1018 ORA-06512: 在 "APPS.FND_FUNCTION", line 1304 ORA-06512: 在 "APPS.FND_FUNCTION", line 1592 ORA-06512: 在 "APPS.FND_FUNCTION", line 1674 ORA-06512: 在 "APPS.FND_SESSION_MANAGEMENT", line 1321 ORA-06512: 在 "APPS.FND_AOLJ_UTIL", line 421 ORA-06512: 在 line 1 has been detected in FND_AOLJ_UTIL.is_Valid_ICX.
Servlet error: An exception occurred. The current application deployment descriptors do not allow for including it in this response. Please consult the application log for details.
解决过程:
1)使用“Oracle error 6519: java.sql.SQLException: ORA-06519: 检测到活动的独立的事务处理, 已经回退”
“ ORA-06512 在 “APPS.FND_FUNCTION”, line 2155”
“ ORA-06512: 在 line 1 has been detected in FND_AOLJ_UTIL.is_Valid_ICX”
等关键短语在google, metalink检索 能查到少量信息,也即别人也遇到这样类似的问题,但未有答案。
这一步耗时10分钟,但未有成果。
2)查看程序 FND_FUNCTION, line 2155,发现对应程序为:FND_FUNCTION.FAST_COMPILE 过程。意思是这个过程用于重新编译那些需要被编译的菜单,该过程使用了自治事务。在注释中提到,管理员可以直接在sqlplus中运行FND_FUNCTION.FAST_COMPILE;
于是在plsqldeveloper 的 command 窗口中直接运行
SQL> execute FND_FUNCTION.FAST_COMPILE;
begin FND_FUNCTION.FAST_COMPILE; end;
ORA-06519: active autonomous transaction detected and rolled back
ORA-06512: at “APPS.FND_FUNCTION”, line 2155
ORA-06512: at line 2
SQL>
结果报上述错误。
Metalink 搜索 ORA-06519: active autonomous transaction detected and rolled back
20条结果发现 有一条比较接近,因为它同时含有“get_icx_ticket” 与我IE中报出的“FND_AOLJ_UTIL.is_Valid_ICX”相关。于是没有看其他19条结果,直接看这条结果:
这条结果的标题是:APP-FND-01564: ORACLE error 6519 in get_icx_ticket [ID 1088834.1]
查看具体内容,说因为表空间不足。
3)根据 数据库初始化参数 diagnostic_dest 找到 alert.log 的位置,打开看 :
ORA-1691: unable to extend lobsegment APPLSYS.SYS_LOB0001935853C00024$$ by 16 in tablespace APPS_TS_SEED
client_id=” type=’UNKNOWN’ level=’16’
host_id=’syfdemo.ml.com’ host_addr=’192.168.1.23′ module=’FNDIRLPP’
pid=’19142′>
ORA-1653: unable to extend table APPLSYS.FND_OBJECTS by 16 in tablespace APPS_TS_SEED
client_id=” type=’UNKNOWN’ level=’16’
host_id=’syfdemo.ml.com’ host_addr=’192.168.1.23′ module=’FNDIRLPP’
pid=’19142′>
ORA-1653: unable to extend table APPLSYS.FND_OBJECTS by 16 in tablespace APPS_TS_SEED
确实是APPS_TS_SEED用完了,至少metalink指出的原因在我这里也发生了,也许不仅仅是这个原因,也许仅仅是这个原因,不管怎样,先把这个问题解决试试看:
4) 扩展APPS_TS_SEED表空间:
找到它的数据问题文件
select * from dba_data_files t where t.tablespace_name = ‘APPS_TS_SEED’
扩大其中一个数据文件,由原来的400多M 扩展到2个G:
alter database datafile ‘/d01/oracle/VIS/db/apps_st/data/reference1.dbf’ resize 2000M
5) 再次测试:
在PLSQL DEVELOPER Command窗口中运行
SQL> execute FND_FUNCTION.FAST_COMPILE;
PL/SQL procedure successfully completed
SQL>
成功。
再次在IE中打开R12, 错误消失,可正常登录。
讨论:
若把这个问题解决当作是猜题游戏(根据现象 猜测真实原因),那么本次猜题游戏能得多少分呢(满分100分制)?
自评:
a) 解决过程中第一步,完全是浪费,扣20分;
b) 解决过程中第二步,直接从20多条Metalink结果中,找到一条吻合的,运气成分太高了,虽然不错,但逻辑性不强,扣10分;
得分:100-30 = 70分
思考,这个问题,基于怎样的思维方式,可以在更准,更快的定位问题原因呢?
后续:因为前面的R12.1.2 中文语言 Patch 遇到表空间不足,有2252个ldt任务被我用adctrl skip过去了,所以虽然adpatch complete ,但打得不成功,在扩展表空间以后再打了一次R12.1.2 中文语言 Patch,发现这次的ldt任务就是针对剩下的2252个的,它自动接着上次skip的那些ldt任务开始的(之所以这么说是因为我查上一次的R12.1.2 中文语言 Patch的log发现ldt任务有3600多个,在剩余2252多个的时候因为表空间不足被skip);这次没有报什么错误,顺利把剩余部分的ldt给打上去了。
关于作者:
昵称:Jack.shang 档案信息:jack.shang 一位从技术走向管理,再从管理走向市场的普通行者 联系方式:你可以通过syfvb@hotmail.com联系作者 点击查看Jack.shang发表过的所有文章... 本文永久链接: http://blog.retailsolution.cn/archives/2581 |
对本文的评价:
ldt 敢跳2252个 你们老板胆子真大
@宝宝
呵呵,这是个人实验虚拟机环境,正式环境谁敢这么搞啊。另外在扩展表空间以后再打了一次R12.1.2 中文语言 Patch,它把跳掉的那些ldt又自动重新打了一遍,所以就回来了。:)
商老大好多文章都提到了metalink,然后我上网查了一下,居然不是免费对外开放的,好悲哀,我也很想在里面搜搜资料,淘宝买号吧,呵呵。