所有由小潘发布的文章

喜欢分享的小潘.

Oracle ebs 查看菜单展开项

SELECT LPAD(' ', 6 * (LEVEL – 1)) || menu_entry.entry_sequence sequence,
       LPAD(' ', 6 * (LEVEL – 1)) || menu.user_menu_name SubMenu_Descrition,
       LPAD(' ', 6 * (LEVEL – 1)) || func.user_function_name Function_Description,
       menu.menu_id,
       func.function_id,
       menu_entry.grant_flag Grant_Flag,
       DECODE(menu_entry.sub_menu_id,
              null,
              'FUNCTION',
              DECODE(menu_entry.function_id, null, 'SUBMENU', 'BOTH')) Type
  FROM fnd_menu_entries      menu_entry,
       fnd_menus_vl          menu,
       fnd_form_functions_vl func
 WHERE 1 = 1
   AND menu_entry.sub_menu_id = menu.menu_id(+)
   AND menu_entry.function_id = func.function_id(+)
   AND grant_flag = 'Y'
 START WITH menu_entry.menu_id =
            (SELECT menu_id
               FROM fnd_menus_tl menu2
              WHERE menu2.user_menu_name = 'FIN_GL_MANAGER'–根据自己实际情况替换
                and menu2.language = 'ZHS')
CONNECT BY menu_entry.menu_id = PRIOR menu_entry.sub_menu_id
 ORDER SIBLINGS BY menu_entry.entry_sequence;
 

Oracle EBS如何追踪用户登录IP(Form层)

说明:一般不建议开启登录审计,因为这会占用大量的系统资源。

以下操作都通过系统管理员职责进行操作。

1. 开启配置文件“登录:审计层”,根据需要是全局,还是用户层;

2. 启用并发管理器中“OAM Generic Collection Service:XXXX”,此服务默认不启动,直接在前台界面查询出来激活即可;

3. 通过以下命令查询,可以限制需要查询的用户的用户名等相关信息。

SELECT L.LOGIN_ID,
       L.USER_ID,
       L.START_TIME LOGIN_TIME,
       NVL(F.START_TIME, NVL(R.START_TIME, L.START_TIME)) FORM_TIME,
       USR.USER_NAME,
       RSP.RESPONSIBILITY_NAME,
       FRM.USER_FORM_NAME,
       (SELECT IPADDRESS
          FROM FND_OAM_FORMS_RTI OFRI
         WHERE 1 = 1
           AND (TO_CHAR(OFRI.PID) = NVL(SF.PROCESS, SR.PROCESS) OR
               NVL(SF.PROCESS, SR.PROCESS) =
               CONCAT(CONCAT(TO_CHAR(OFRI.PID), ':'),
                       TO_CHAR(OFRI.THREADID)))
           AND ROWNUM <= 1) IPADDRESS,
       R.RESP_APPL_ID,
       R.RESPONSIBILITY_ID,
       F.FORM_ID,
       F.FORM_APPL_ID,
       L.PID,
       L.PROCESS_SPID,
       DECODE(NVL(SF.SID, -999), -999, 'RESP_LEVEL', 'FORM_LEVEL') SESSION_LEVEL,
       NVL(F.AUDSID, R.AUDSID) AUDSID,
       NVL(SF.SID, SR.SID) SID,
       NVL(SF.SERIAL#, SR.SERIAL#) SERIAL#,
       NVL(SF.PROCESS, SR.PROCESS) PROCESS
  FROM FND_RESPONSIBILITY_TL      RSP,
       FND_FORM_TL                FRM,
       FND_USER                   USR,
       FND_LOGINS                 L,
       FND_LOGIN_RESP_FORMS       F,
       GV$SESSION                 SF,
       FND_LOGIN_RESPONSIBILITIES R,
       GV$SESSION                 SR
 WHERE 1 = 1
   AND L.LOGIN_ID = R.LOGIN_ID(+)
   AND R.LOGIN_ID = F.LOGIN_ID(+)
   AND R.LOGIN_RESP_ID = F.LOGIN_RESP_ID(+)
   AND L.LOGIN_TYPE = 'FORM'
   AND L.USER_ID = USR.USER_ID
   AND R.RESPONSIBILITY_ID = RSP.RESPONSIBILITY_ID(+)
   AND R.RESP_APPL_ID = RSP.APPLICATION_ID(+)
   AND RSP.LANGUAGE(+) = USERENV('LANG')
   AND F.FORM_ID = FRM.FORM_ID(+)
   AND F.FORM_APPL_ID = FRM.APPLICATION_ID(+)
   AND FRM.LANGUAGE(+) = USERENV('LANG')
   AND F.AUDSID = SF.AUDSID(+)
   AND R.AUDSID = SR.AUDSID(+) — AND L.LOGIN_ID = :P_LOGIN_ID

4. 根据得出的"PROCESS",通过应用用户去操作系统相应目录查询相关IP信息,如下命令:

cd $FORMS_TRACE_DIR

可以看到系统生成了相应PROCESS名字的rti文件,如下图所示(可通过log文件进去查相应PROCESS对应的IP):

同时可以找到em_86653.rti文件,然后cat该文件的内容,如下图所示:

至此可以查询出登录用户登录form的相应IP信息。

参考:https://www.cnblogs.com/quanweiru/p/8570732.html

          https://blog.csdn.net/mchdba/article/details/45749131

          https://www.cnblogs.com/hopedba/p/5895106.html

          https://bbs.csdn.net/topics/10450699

          https://blog.csdn.net/mchdba/article/details/68625963

Linux操作系统查看CPU及系统版本相关信息

一、CPU相关信息

查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

# 查看物理CPU个数
cat /proc/cpuinfo| grep “physical id”| sort| uniq| wc -l

# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep “cpu cores”| uniq

# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep “processor”| wc -l

总结:Oracle EBS标准管理器的工作班次下的流程数设置数(数据库节点服务器)为不超过逻辑CPU个数的两倍,比如查询结果为8,最大设置16,因为所有进程都需要在CPU上排队处理,多了也无用;但是如果设置数过小,又会造成CPU浪费。

二、操作系统内存大小信息

cat /proc/meminfo | grep MemTotal

三、操作系统版本相关信息

cat /etc/issue
Oracle Linux Server release 6.8

cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.8 (Santiago)

cat /proc/version
Linux version 2.6.32-642.el6.x86_64 (mockbuild@x86-ol6-builder-05)
(gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) ) #1 SMP Tue May
10 12:00:56 PDT 2016

uname -a
Linux r3115035596-1 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 12:00:56 PDT 2016 x86_64 x86_64 x86_64 GNU/Linux

lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: OracleServer
Description:    Oracle Linux Server release 6.8
Release:        6.8
Codename:       n/a

四、SWAP空间

但我们平时安装系统时,默认都分内存的2倍.

物理内存 交换分区(SWAP)
<= 4G 至少4G
4~16G 至少8G
16G~64G 至少16G
64G~256G 至少32G
Linux 下 取进程占用 cpu 最高的前10个进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head

# linux 下 取进程占用内存(MEM)最高的前10个进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head

https://blog.csdn.net/bingqingsuimeng/article/details/51858858

https://linux.cn/article-211-1.html

https://blog.csdn.net/sunqp0208/article/details/41343443

查询ebs jdk版本:

sh -c “`awk -F= ‘$1 ~ /^JSERVJAVA.*$/ {print $2}’ $ADMIN_SCRIPTS_HOME/java.sh` -version;”

 

Oracle ebs 资产编号跳号问题分析

       在财务系统中会有很多地方都用到缓存,Oracle的解释是为了提高性能而做出的设置,比如在资产模块中,资产编号的生成,就设置了缓存为20,具体如下:

create sequence fa.fa_additions_s
minvalue 1
maxvalue 2000000000
start with 100000001
increment by 1
cache 20
order;

解决方案有两个(一般不建议操作,因为资产编号对资产盘点没有很大的帮助,在实物资产系统一般是用资产标签号进行标识唯一的资产,可说服用户使用标签号;同时建议做个性化对资产编号进行锁定不允许修改):

1)直接去掉序列号缓存,执行下列命令,但这可能会在性能上造成一定的下降:

alter sequence fa_additions_s nocache; 

2)固定序列号的缓存,通过下列命令:

dbms_shared_pool.keep('FA_ADDITIONS_S','Q').

当确认序列不再变更,把上面的代码添加到一个sql脚本,它可以在db启动时运行它,这样在db反弹后pinning不会丢失。

这个问题可能会发生在应用程序的任何序列中,所以用你的序列名替换FA_ADDITIONS_S。

Oracle EBS职责分配不生效问题处理(变更过失效日期)

一、通过功能管理员清除高速缓存,同时通过系统管理员提交“有效用户和职责”,观察结果;

二、通过请求同步局部工作流,观察结果;

三、如果前面两步未生效,可考虑应用以下解决方案

1. Go into the responsibility: System Administrator.

2. Navigate to Request > Run.

3. Submit request 'Synchronize WF LOCAL tables'

4. Submit request 'Workflow Directory Services User/Role Validation'

5. Check result in table wf_local_user_roles via:

select role_name, effective_end_date from wf_local_user_roles
where user_name='<>';

6. If still find some records haven't been changed to null, perform:
a.) backup the records:
create table wf_local_user_roles_bak as
select * from wf_local_user_roles
where user_name='<>' and effective_end_date <> to_date('<>','RRRR-MM-DD');
b.) update effective_end_date to null
update wf_local_user_roles
set effective_end_date=to_date('9999-01-01','RRRR-MM-DD')
where user_name='<>' and effective_end_date <> to_date('<>','RRRR-MM-DD');

7. Retest the issue.

8. Migrate the solution as appropriate to other environments.