What is ofam JVM Process

简介: 参考metalink文档:R12: What Is the OAFM JVM Process Used For? (文档 ID 763658.1) 在运行adopmnctl.

参考metalink文档:R12: What Is the OAFM JVM Process Used For? (文档 ID 763658.1)

在运行adopmnctl.sh的时候,你会看到一个叫:OC4J:oafm的java进程,当运行adstrtal.sh的时候,你也可以看见adoafmctl.sh 会被调用,那么到底OAFM java Virtual machine是什么呢?他用来干嘛的?是否可以被关闭呢?

oafm的全称:“Oracle Applications Fusion Middleware” 这个名字搞的太高端大气上档次,也不能很好的表述这个oafm是干嘛的。。。

更确切的说:oafm JVM 是给Map Viewer applications、oracle Transport Agent XML transactions、和web services用的。

有2个applications会用Map Viewer,他们是: Field Service(域服务) 和 Transportation Planning(运输规划)


如果在系统中没有用到域服务、传输规划、XML Gateway 、或者web Services,那么就没有必要启动OAFM JVM。我们可以通过sql语句查询是否有启动这些服务,然后用过如下步骤stop这个服务:

1、余下adoafmctl.sh 停止OAFM JVM。

2、用context editor编辑context file,把“s_oafmstatus”设置成disabled。

3、运行autoconfig

现在如果adstrtal.sh脚本再运行的时候,就不会去调用adoafmctl.sh。因此OAFM进程就不会被启动了。如果有多个节点的应用层,就要在每个节点上执行一遍。

If you are using Field Service and/or Transportation Planninga good rule of thumb would be to have 1 OAFM jvm per 80-100 active Map Viewer users. Map data generally is quite large in size so stick to the lower end of the scale….80 users per JVM.

To adjust the number of OAFM JVMs edit context via the context editor and changes_oafm_nprocs to the number of JVMs required per node. Now run Autoconfig to propagate the change. Repeat the steps for each application tier.

 

另附:

sql的语句:Script to check if OAFM apps are being used (not a complete list, doesn’t include web services)

select fa.APPLICATION_SHORT_NAME, fpi.PATCH_LEVEL, DECODE(fpi.STATUS,'I','Installed',
'S','Shared','N', 'Inactive', fpi.STATUS) Status , fpi.DB_STATUS
from fnd_product_installations fpi,FND_APPLICATION fa
where fpi.APPLICATION_ID in (
select APPLICATION_ID from FND_APPLICATION where APPLICATION_SHORT_NAME in ('CSKF','MST','ECX'))
and fa.APPLICATION_ID=fpi.APPLICATION_ID;

where the status is like:
I= ‘Installed’
N=’Inactive’ – product is not fully implemented and not used.
S=’Shared’ are not fully implemented and patching these products isn’t required.


相关文章
|
7月前
|
人工智能 自然语言处理 Linux
进程(process) vs 线程(Thread)
本文主要介绍了进程和线程的基本概念、区别以及操作系统如何调度线程的方式。同时,还介绍了线程锁的核心原理和实现方式。在多线程编程中,理解进程和线程的概念以及线程锁的使用,对于保证程序的安全性和性能非常重要。
146 0
|
7月前
|
前端开发 Java
Java Process类Runtime.getRuntime().exec() 执行bat脚本程序
Java Process类Runtime.getRuntime().exec() 执行bat脚本程序
461 0
|
7月前
|
Go 调度
go-issues#14592 runtime: let idle OS threads exit 内核线程暴增与线程回收问题
go-issues#14592 runtime: let idle OS threads exit 内核线程暴增与线程回收问题
47 0
|
7月前
|
算法 安全 Ubuntu
8 种 Java 内存溢出之八 -Kill process or sacrifice child
8 种 Java 内存溢出之八 -Kill process or sacrifice child
|
6月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
Gaussian Process
【6月更文挑战第14天】
51 4
|
Java Unix Linux
The JVM Tool Interface (JVM TI): How VM Agents Work
The JVM Tool Interface (JVM TI): How VM Agents Work
185 0
|
Arthas Java 应用服务中间件
Jvm 相关命令之:thread | 学习笔记
快速学习 Jvm 相关命令之:thread
Jvm 相关命令之:thread | 学习笔记
|
存储 监控 算法
System.gc()与Runtime.gc()的区别
System.gc()与Runtime.gc()的区别
205 0
|
前端开发 Java Android开发
JVM garbage collector thrashing and after running out of JVM memory
React Native Android 项目使用 ./gradlew assembleRelease 命令打包报错
557 0
JVM garbage collector thrashing and after running out of JVM memory
|
存储 Java
JVM系列之:JIT中的Virtual Call
JVM系列之:JIT中的Virtual Call
JVM系列之:JIT中的Virtual Call