oracle application server之核心技术opmn之分析_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2639 | 回复: 0   主题: oracle application server之核心技术opmn之分析        下一篇 
刘习托
注册用户
等级:中士
经验:208
发帖:66
精华:0
注册:2011-11-23
状态:离线
发送短消息息给刘习托 加好友    发送短消息息给刘习托 发消息
发表于: IP:您无权察看 2015-4-1 14:51:54 | [全部帖] [楼主帖] 楼主

最近研究了一下oas的核心技术opmn,借此机会和大家分享。Opmn是 oracle application server的核心,Oas10.1.3以前的版本,oc4j在opmn.xml中只能是单独的实例,如:

<ias-component id=”OC4J”>
<process-type id=”home” module-id=”OC4J”>
<port id=”ajp” range=”3301-3400″ />
<port id=”rmi” range=”3101-3200″ />
<port id=”jms” range=”3201-3300″ />
<process-set id=”default-group” numprocs=”1″/>
</process-type>
</ias-component>


Oas10.1.3.1以上的版本测支持实例组,如:

<ias-component id=”COLORS”>
<process-type id=”home” module-id=”OC4J”>
<port id=”ajp” range=”3301-3400″ />
<port id=”rmi” range=”3101-3200″ />
<port id=”jms” range=”3201-3300″ />
</process-type>
<process-type id=”oc4j_soa” module-id=”OC4J”>
<port id=”ajp” range=”3301-3400″ />
<port id=”rmi” range=”3101-3200″ />
<port id=”jms” range=”3201-3300″ />
</process-type>
</ias-component>


在一个实例组中,所有实例使用相同的配置。

什么是opmn

Opmn是安装和配置每一个oracle application sverver(oas)所必须的。

Opmn具有以下功能:

Ø 提供一个控制和监视单个或多个oas 组件和实例进程的命令行接口

Ø 提供一套整合的管理oas组件的方法

Ø 能够管理oas子部件和子子部件

Ø 提供不同oas组件之间的通讯管道

Ø 解决了oas部件实例之间启动与停止顺序的依赖性

Ø 通过事件脚本实现自定义功能

Ø 收集主机和oas进程状态和任务信息

Ø 当oas进程被ping机制或者通知机制断定为无响应、以外终止或不可访问状态时,自动重启进程

Ø 提供了进程死亡状态的自动检测

Ø Opmn的启动不再依赖任何其他oas组件

Ø 通过修改opmn.xml控制oc4j实例

Ø 允许通过修改组配置而更改组内所有实例成员的配置

Opmn 如何工作

Opmn包含三个核心组件在各个opmn server之间翻译并传输指令。

三个核心组件:Oracle Notification Server、Oracle Process Manager、PM Modules

Ons是oas组件间失败、恢复、启动等关联信息的传输装置。

它的运转依靠一个发布协议模型,这个模型是oas的一个组件,它接受每一个可靠的信息并传送给ons,ons再将信息发送给其他相关的组件。

Pm是oas的集中进程管理器,用来管理oas进程。Pm影响每一个进程的启动、重启、关闭指令,并且监控进程状态。Pm处理所有发送给opmn的请求,包括控制指令与获取进程信息,以及进程死亡检测、自动重启。Oas进程的配置信息都指定在opmn.xml文件中。

这张图是从oracle 的官方文档上截下来的,个人感觉画的不好,并没有把三个核心组件之间的关系很好的描述出来,大家凑合看吧。

Opmn server有两个进程,

第一个进程:在必要的时候启动第二个进程。

第二个进程:该进程处理所有的请求,如果该进程被停掉,第一个进程将重启第二个进程。

在Windows环境下,当第二个进程意外终止时,第一个进程不会重启第二个进程,相反地,第一个进程也会自动结束,而需要手工启动它们。

PM Modules,The Oracle Process Manager Modules 实现oas 进程管理的功能。

1. 处理所有运行组件的通讯信息。

2. 建立oas组件具体指令(如何启动、停止、重启组件。)

3. 检测oas组件运行状态。

handle any communications originating from the running component.
construct Oracle Application Server component specific control information (how
to start, stop, restart the component).
test responsiveness in an Oracle Application Server component specific manner to
determine if a component is responding to requests.


Opmn.xml文件

Opmn.xml是opmn的主配置文件,它位于oracle_home/opmn/conf/,包括pm和oas组件的配置信息,并向你展示所有被管理的oas组件。

有几个配置元素提供了灵活的配置信息,可以应用到整个oas组件或者其中一个。

<ias-component>
<process-type>
<process-set>
<ias-component>:oas组件的整体描述,它管理进程的启停等操作。
<process-type>:它是<ias-component>的组部件,用于声明进程的类型。
<process-set>:它是<ias-component>的子子部件,可以为oas部件单独定义配置。


ons也在opmn.xml定义,例如:

<notification-server>
<port local=”6100″ remote=”6200″ request=”6003″/>
<ssl enabled=”true” wallet-file=”$ORACLE_HOME\opmn\conf\ssl.wlt\default”/>
</notification-server>

Opmn.xml文件中可定义的内容:

1.oc4j实例组

在oc4j10.1.3.1.0以上的版本,可以建立oc4j实例组,在<ias-component>元素下可以定义组配置。

例如:

<ias-component id=”COLORS”>
<process-type id=”home” module-id=”OC4J”>
<port id=”ajp” range=”3301-3400″ />
<port id=”rmi” range=”3101-3200″ />
<port id=”jms” range=”3201-3300″ />
</process-type>
<process-type id=”oc4J_soa” module-id=”OC4J”>
<port id=”ajp” range=”3301-3400″ />
<port id=”rmi” range=”3101-3200″ />
<port id=”jms” range=”3201-3300″ />
</process-type>
</ias-component>

在同一个组下的oc4j实例可以同时进行如下操作:

Ø 修改组内所有oc4j实例的配置

Ø 启动和停止组内所有oc4j实例

Ø 部署、卸载或重新发布组内实例上的应用程序

Ø 执行jdbc的管理操作,如创建、修改、删除jdbc data source和connection pools

Ø 执行jms管理操作,如创建、删除jms 目标,创建、修改、删除jms连接工厂。

2.自动重启

Opmn为我们提供了自动进程死亡检测状态并且重启进程;我们可以配置属性,取消自动重启。

3.事件脚本

可以自定义一些事件脚本,配置opmn,当进程启动、停止、crash时,执行这些脚本,脚本的触发包括以下几种情况:

Ø Pre-start:当所有已配置的相关检测条件通过后,opmn将执行

Ø Pre-start脚本,之后执行启动命令

Ø Pre-stop:opmn将在停止进程之前先执行Pre-stop脚本,它可以帮助我们在停止oc4j进程之前收集一些jvm信息。

Ø Post-crash:当检测到oas实例意外终止后,ipmn将执行post-crash脚本。

4.启动顺序关联:一些oas实例的启动要求其他实例必须是running状态,opmn可以配置默认的启动顺序。

5.配置log文件

6.安全配置:opmn 本地监听端口使用ons,pm管理进程也不使用ssl安全加密,而使用两个其他机制确保访问安全:

7.ipv6支持:10.1.3以后的版本支持ipv4和ipv6

Opmnctl 命令

Opmnctl可以向所有oas实例或某个特定的实例执行控制和监控命令。常用命令如下:

Ø Start:启动opmn进程

Ø Startall:启动opmn和受管进程

Ø Stopall:停止opmn和受管进程

Ø Shutdown:强制关闭opmn和受管进程

Ø Startproc <attr>=<val>:启动指定的进程

Ø Stopproc <attr>=<val>:停止指定的进程

Ø Restartproc <attr>=<val>:重启指定进程。

Ø Status:返回受管进程状态。

配置oracle http server

http server配置也是在opmn.xml中,

Ø 每一个oracle_home只能配置一个http server

Ø Oas10.1.3.1.0以上的版本http server使用apache1.3

Apache安装目录在oracle_home/apache,主配置文件在oracle_home/Apache/Apache/conf/httpd.conf,

http server的主要属性包括端口、连接超时时间、最大连接数等,其中最大连接数直接影响系统性能。

总结

了解oas的核心工作原理对我们进一步学习oas很有帮助,它是oas最底层的技术。万丈高楼平地起,学习opmn是我们建设“万丈高楼”的奠基石。希望看了上面的文章,对预研究oas的兄弟有所帮助。

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论