【新炬網路名師大講堂】oracle application server之核心技術opmn

shsnchyw發表於2014-12-15

最近研究了一下oas的核心技術opmn,藉此機會和大家分享。Opmn是oracle application server的核心,Oas10.1.3以前的版本,oc4j在opmn.xml中只能是單獨的例項,如:

Oas10.1.3.1以上的版本測支援例項組,如:

在一個例項組中,所有例項使用相同的配置。

什麼是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元件或者其中一個。

:oas元件的整體描述,它管理程式的啟停等操作。

:它是的組部件,用於宣告程式的型別。

:它是的子子部件,可以為oas部件單獨定義配置。

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




Opmn.xml檔案中可定義的內容:

1.oc4j例項組

在oc4j10.1.3.1.0以上的版本,可以建立oc4j例項組,在元素下可以定義組配置。

例如:












在同一個組下的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 =:啟動指定的程式

? Stopproc =:停止指定的程式

? Restartproc =:重啟指定程式。

? 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的兄弟有所幫助。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29960155/viewspace-1368315/,如需轉載,請註明出處,否則將追究法律責任。

相關文章