WebLogic網域設定策略–手動和模板選項,第一部分

來源:互聯網
上載者:User
域含有BEA WebLogic Server執行個體的配置資訊。它包含有關伺服器、叢集和機器的配置資訊。域還含有關於資源,例如Java資料庫連接(Java DataBase Connectivity,JDBC)、串連池、JDBC資料來源、串連工廠和JavaMessage Service(Java Message Service,JMS)隊列等的配置資訊。此外,域還包含有關部署在該執行個體上的應用程式的配置資訊。網域設定資訊儲存在config.xml檔案中。在本文中,我將評價WebLogic網域設定的各種策略。

  您可以直接操縱config.xml檔案(例如,手動編輯該檔案)。但是本文評價的大多數工具將間接操縱config.xml。大多數工具(例如,WebLogic Console)處理Java管理擴充(JMX) Management Bean(MBean)。WebLogic Server執行個體在config.xml檔案中儲存Mbean的狀態。

網域設定和JMX
  config.xml檔案含有關於WebLogic Server執行個體的持久性資訊。當WebLogic Server 執行個體啟動時,WebLogic Server讀取config.xml檔案並部署資源和應用程式。資源和應用程式具有相應的MBean。伺服器通過這些Mbean接觸配置資訊。有許多不同類型的Mbean。在本文中,我主要討論config.xml檔案中與條目對應的Mbean。
  如果在運行時更改了Mbean的屬性值,新的值將被儲存在config.xml檔案中,使它成為持久的值。例如,如果在WebLogic Server Console中修改Mbean的屬性值,該屬性值也將儲存在config.xml檔案中。因而,在伺服器重啟期間,可以利用配置屬性值,因為配置屬性值持久地儲存在config.xml檔案中。
  下節描述了域建立和配置的的各種方法,並將不同的可用選項分類。
眾多的選項
  幸運的是,可以使用很多不同的方法來建立和佈建網域。最常用的建立域的方法是使用Domain Configuration Wizard(網域設定嚮導),而最常用的佈建網域的方法是使用WebLogic Console。還有許多其他可用的方法,包括:

 

  • 使用網域設定嚮導
  • 使用網域設定模板
  • 使用無聲指令碼
  • 使用WLShell指令碼
  • 使用WLST指令碼
  • 直接使用Java編碼和JMXAPI(API)
  • 使用記號替代法(例如,Bedrock)
  • 使用weblogic管理員命令
  • 使用wlconfig和wldeploy Ant任務
  • 手動編輯config.xml檔案

  下面是根據佈建網域所採用的技術將上述選項分類的一種方法:

  • 手動:WebLogic Console、Complete Domain Configuration Wizard
  • 模板:自訂符號替代指令碼(例如,使用Ant)、Bedrock、完全模板、擴充模板
  • 指令碼:無聲、WLShell、WLST、Ant
  • 使用Java編程

  將上述選項分類的另一種方法是根據它們是否隨WebLogic平台一起發布:

  • 包括的(和支援的): WebLogic Console、完全Domain Configuration Wizard、完全模板、 擴充模板、無聲指令碼、Ant
  • 其他的:WL Shell、WLST、自訂符號替代指令碼、Bedrock

  還有一種將上述選項分類的方法是:根據伺服器線上或者離線時,是否需要修改選項。當伺服器的執行個體正在運行時,進行線上修改。由伺服器線上修改JMX Mbean,並儲存在config.xml檔案中。當伺服器正在運行時,建議不要直接修改config.xml檔案。

  • 線上:WebLogic Console、ANT、WLST
  • 離線:完全Domain Configuration Wizard、完全模板、擴充模板、無聲指令碼、WLShell、自訂符號替代指令碼、Bedrock

  為了舉例說明網域設定的各種策略,您將建立一個域,並修改它。

進階目標
  使用不同的域建立和配置策略,您將實現下面的目標:請不要立即按照這些步驟做。稍後,我將要求您每次使用不同的策略建立和佈建網域:

  1. 建立 WebLogic Workshop 域
  2. 將伺服器的調試層級變為資訊級
  3. 改變伺服器,使能夠對標準輸出(stdout)調試
  4. 配置一個名為semJDBCConnectionPool的JDBC串連池
  5. 配置一個名為jdbc/semJDBCDataSource的JDBC資料來源,其JNDI名稱為jdbc/semJDBCDataSource
  6. 配置一個名為semJMSConnectionFactory的JMS串連工廠
  7. 配置一個名為semJMSJDBCStore的JMSJDBCStore
  8. 配置一個名為semJMSServer的JMSServer
  9. 配置一個名為semJMSJDBCStore的semJMSServe倉庫
  10. 配置一個名為PersonQueue的JMS隊列,其JNDI名稱為jms/PersonQueue
  11. 部署應用程式範例:SEMApp Enterprise ARchive(EAR)
  12. 測試應用程式,驗證網域設定

  對於每一種策略,某些步驟,例如域建立、資料庫配置和驗證配置都是通用的。下面幾節介紹這些步驟。

域建立
  利用Domain Configuration Wizard,按照下面這些步驟建立一個WebLogic Workshop域。請不要立即進行這些步驟。稍後,在我詳細解釋不同策略的時候,我會要求您執行這些步驟:

  1. 啟動Domain Configuration Wizard(例如,在Windows上, 選擇 Start > All Programs > BEA WebLogic Platform > Configuration Wizard)
  2. 選擇Create a new WebLogic Configuration,並點擊Next
  3. 選擇Basic WebLogic Workshop Domain,並點擊Next
  4. 選擇Express,並點擊Next
  5. 指定User name為system
  6. 指定User password並將Confirm user password指定為password ,並點擊Next
  7. 選擇Development Mode,並點擊Next
  8. 指定Configuration Name為某些有意義的名稱,並點擊Create
  9. 點擊Done

  在您能夠佈建網域之前,您需要設定資料庫。資料庫配置發生在建立域之後,佈建網域之前。

資料庫配置
  所有樣本都使用PointBase作為資料庫。啟動WebLogic Server的執行個體(Workshop域的)也啟動了PointBase。在PointBase的執行個體中,建立使用者、模式(schema)和表。請不要立即進行這些步驟。稍後,在我詳細解釋不同策略的時候,我會要求您執行這些步驟:

  1. 驗證WebLogic Server的某個執行個體正在運行
  2. 啟動PointBase 控制台(例如,在Windows 上,選擇Start > All Programs > BEA WebLogic Platform > Examples > WebLogic Workshop > PointBase Console)
  3. 在Connect to the database對話方塊中,指定下述各項
  4. 驗證資料庫的URL是:jdbc:pointbase:server://localhost:9093/workshop
  5. 驗證User是WebLogic
  6. 指定Password為WebLogic
  7. 建立一個新使用者(例如,Ctrl+u),使用者名稱是sem、密碼也是sem
  8. 斷開與資料庫的串連(DBA菜單和Disconnect from Database)
  9. 使用sem作為User、sem作為Password串連到資料庫(DBA菜單和Connect to Database或者F3)
  10. 建立一種模式(例如,Ctrl + h),並命名為sem
  11. 複製和粘貼db/sem.sql 的內容到Enter SQL Commands視窗中
  12. 選擇Execute All toolbar條目
  13. 驗證sem模式已用表生產

  一旦建立了域,就要設定資料庫,並且要用資源和應用程式範例配置該域,需要驗證設定過程。

驗證網域設定
  要驗證建立和配置的域是否正確,請運行簡單的Junit測試程式。包含的原始碼樣本含有一個應用程式範例和一個運行Junit測試的Ant檔案。複製sample-build.properties到build.properties中,編輯build.properties中的條目以適合您的環境。build.properties只需要建立一次。一旦您建立並配置了某個域之後,我會要求您調用下面的命令:

ant - v code fact.

  如果測試程式成功運行,則應用程式部署正確、資源配置正確。如果有任何異常,並且測試失敗,則應用程式或者資源沒有配置或者部署不正確。仔細檢查並分析棧跟蹤情況,並進行問題調試。

  一旦測試程式成功運行,就關閉WebLogic Server執行個體(例如,域目錄/stopWebLogic.bat或者 sh)。總是利用指令碼、而不是激烈的手段(如ctrl+c)來關閉WebLogic Server。

手動快速(Express )配置
  利用域建立一節所述的步驟,用SEMDomain-Manual-Express作為配置名建立一個新域。啟動WebLogic Server執行個體,利用資料庫配置一節所述的步驟設定資料庫。
  在許多不同的項目中,我已經利用WebLogic Server Console成功地完成了多次手動設定。

變更記錄檔記錄層級

  1. 確定WebLogic Server正在運行
  2. 啟動WebLogic Server Console(例如:http://localhost:7001/console)
  3. 登入到控制台
  4. 選擇Servers / cgServer
  5. 選擇Logging選項卡
  6. 複選Debug to Stdout複選框
  7. 從下拉式清單中,選擇Stdout Severity Threshold為Info
  8. 選擇Apply

配置串連池

  1. 確定WebLogic Server正在運行
  2. 啟動WebLogic Server 控制台(例如:http://localhost:7001/console)
  3. 登入到控制台
  4. 選擇Services/JDBC/Connection Pools
  5. 選擇Configure a new JDBC Connection Pool
  6. 從Database Type下拉式清單中選擇PointBase
  7. 從Database Driver中,選擇PointBase's Driver (Type 4) Versions: 4.X
  8. 選擇Continue
  9. 指定Name為semJDBCConnectionPool
  10. 指定Database Name為workshop
  11. 指定Host Name為localhost
  12. 指定Port為9093
  13. 指定Database User Name為sem
  14. 指定Password為sem
  15. 指定Confirm Password為sem
  16. 選擇Continue
  17. 測試驅動程式配置
  18. 建立並部署

配置資料來源

  1. 確定WebLogic Server正在運行
  2. 啟動WebLogic Server 控制台(例如:http://localhost:7001/console)
  3. 登入到控制台
  4. 選擇Services / JDBC / Data Sources
  5. 選擇Configure a new JDBC data Source
  6. 指定Name為 jdbc/semJDBCDataSource
  7. 指定JNDI Name為jdbc/semJDBCDataSource
  8. 選擇Emulate Two-Phase Commit for non-XA Driver
  9. 選擇Continue
  10. 指定Pool Name為semJDBCConnectionPool
  11. 選擇Continue
  12. 點擊Create,確定資料來源的目標

配置JMS串連工廠

  1. 確定WebLogic Server正在運行
  2. 啟動WebLogic Server 控制台(例如:http://localhost:7001/console)
  3. 登入到控制台
  4. 選擇Services / JMS / Connection Factories
  5. 選擇Configure a new JMS Connection Factory
  6. 指定Name為semJMSConnectionFactory
  7. 指定JNDI Name為jms/semJMSConnectionFactory
  8. 選擇Create
  9. 作為目標並在cgServer上部署
  10. 選擇Configuration選項卡
  11. 選擇Transactions子選項卡
  12. 選擇XA Connection Factory Enabled
  13. 選擇Apply

配置JMS JDBC庫

  1. 確定WebLogic Server正在運行
  2. 啟動WebLogic Server控制台(例如:http://localhost:7001/console)
  3. 登入到控制台
  4. 在左邊的瀏覽窗格中選擇Services / JMS / Stores
  5. 選擇Configure a new JMS JDBC Store
  6. 指定Name為semJMSJDBCStore
  7. 選擇Connection Pool為semJDBCConnectionPool
  8. 選擇Create

配置JMS伺服器

  1. 確定WebLogic Server正在運行
  2. 啟動WebLogic Server控制台(例如:http://localhost:7001/console)
  3. 登入到控制台
  4. 在左邊的瀏覽窗格中,選擇Services / JMS / Stores
  5. 選擇Configure a new JMS Server
  6. 指定Name作為semJMSServer
  7. 通過在下拉式清單中進行選擇,指定Persistence Store為semJMSJDBCStore
  8. 選擇Create
  9. 將semJMSServer的目標設為cgServer

配置JMS隊列

  1. 確定WebLogic Server正在運行
  2. 啟動WebLogic Server控制台(例如:http://localhost:7001/console)
  3. 登入到控制台
  4. 在左邊的瀏覽窗格中,選擇Services/JMS/Servers/semJMSServer /Destinations
  5. 選擇Configure a new JMS Queue
  6. 指定Name為PersonQueue
  7. 指定JNDI Name為jms/PersonQueue
  8. 選擇create
  9. 選擇Redelivery子選項卡
  10. 指定Redelivery Limit為3
  11. 選擇Apply

  現在,您已經完成對應用程式資源的配置。但在部署應用程式之前,您仍需要配置與workshop相關的資源。

配置與workshop相關的資源

  1. 確定WebLogic Server正在運行
  2. 啟動WebLogic Server控制台(例如:http://localhost:7001/console)
  3. 登入到控制台
  4. 在左邊的瀏覽窗格中,選擇Services/JMS/Servers/semJMSServer/ Destinations
  5. 選擇Configure a new JMS Queue
  6. 指定Name為SEMAppWeb.queue.AsyncDispatcher_error
  7. 指定JNDI Name為SEMAppWeb.queue.AsyncDispatcher_error
  8. 選擇Create
  9. 選擇Redelivery子選項卡
  10. 指定Redelivery Limit為0
  11. 選擇Apply
  12. 在左邊的瀏覽窗格中,選擇Services/JMS/Servers/semJMSServer/ Destinations
  13. 選擇Configure a new JMS Queue
  14. 指定Name為SEMAppWeb.queue.AsyncDispatcher
  15. 指定JNDI Name為SEMAppWeb.queue.AsyncDispatcher
  16. 選擇Create
  17. 選擇Redelivery子選項卡
  18. 選擇Error Destination為 SEMAppWeb.queue.AsyncDispatcher_error
  19. 選擇Apply

  現在您已經準備好部署應用程式了。

部署應用程式

  1. 確定WebLogic Server正在運行
  2. 啟動WebLogic Server控制台(例如:http://localhost:7001/console)
  3. 登入到控制台
  4. 在左邊的瀏覽窗格中,選擇Deployments/Applications
  5. 選擇Deploy a new Application
  6. 瀏覽到SEMApp.ear檔案的位置
  7. 選擇SEMApp.ear
  8. 選擇Continue
  9. 選擇Deploy

  一旦應用程式部署成功,就重啟伺服器。按照驗證網域設定一節所述運行測試程式。
  也存在其他利用Domain Configuration Wizard的手動策略。一個選擇是通過選擇Custom選項(而不是Express)來建立和配置一個全新的域。當嚮導提示您建立資源,例如JDBC Connection Pools時,按照建立和部署資源的步驟執行。另一個選擇是使用Domain Configuration Wizard配置一個已經建立的域。在Domain Configuration Wizard的第1步中,選擇Extend an existing WebLogic configuration。建立上述域的過程留做一個練習。但是使用這些策略並不一定能夠完成所有的配置,例如目的地的Redelivery屬性的配置。
  為了成功地使用手動策略,項目需要儲存一個配置指南。該配置指南包含如上所述的逐步指令。但是,手動設定過程冗長乏味而且耗費時間。設定另一個域還需要額外的時間和精力,更重要的是,該過程還易於出錯。微小的配置錯誤,例如,JNDI名稱拼錯,都會導致大量的故障排除和調試工作。
  自動化建立和佈建網域選項應該是首選。Java是功能強大的語言,用Java可以直接操縱Mbean。但這種方法是低層次的方法。還有其他可供選擇的方法,例如模板和指令碼。在手動模板中,用標記將config.xml模板化。稍後再用實際值替代標記。手動模板方法要求非常深入、徹底地瞭解config.xml檔案。在有些項目中,我曾使用過手動模板。Bedrock是基於Ant的、支援這樣的模板的工具。但是,Bedrock看起來不能有效地維護。另一種重要的模板技術是使用域模板。這種技術不要求深入地瞭解config.xml。模板的建立通過配置模板構建工具得到了很好地支援。下一節討論使用配置模板構建工具通過模板自動設定域的方法。

域模板
  當您手動建立域時,您使用了workshop模板。但什麼是模板呢?模板是含有配置資訊的Java ARchive(JAR)檔案,是config.xml檔案的相關片斷。有兩種類型的模板:完全模板和擴充模板。使用完全模板,可以建立一個新的域。上面所用的workshop模板就是完全模板的一個樣本。而使用擴充模板,可以擴充一個域。稍後使用的DefaultWebApp模板則是擴充模板的一個樣本。
  怎樣建立一個模板呢?有一個稱為配置模板產生器的特殊工具可以協助完成,無論是完全模板還是擴充模板。建立模板的方法都有兩種。第一種方法是:擴充某一擴充模板。第二種方法是:根據現有的域建立模板。下一節,您將根據現有的域建立一個完全模板。

完全模板
  這一節,我將舉例說明根據一個現有的、預先配置的並且工作的域來建立完全模板的方法。按照下述這些步驟建立一個完全模板:

  1. 啟動配置模板產生器(在Windows上,選擇Start > All Programs > BEA WebLogic Platform > Other Development Tools > Configuration Template Builder)
  2. 選擇Create a Configuration Template,並點擊Next
  3. 選擇Basic WebLogic Workshop Domain,並點擊Next
  4. 選擇一個現有的、預先配置的並且工作的SEM域(例如, SEMDomain-Manual-Express),並點擊Next
  5. 指定Name為SEMTemplate- Complete
  6. 指定Author(例如,Bart)
  7. 指定Category(例如,SEM)
  8. 指定Description,並點擊Next
  9. 點擊後續對話方塊中的Next,取預設值
  10. 在Create Template中,為模板指定一個名稱(例如,SEMTemplate- Complete)、觀察並記住模板JAR檔案的位置%BEA_HOME%/user_templates/,並點擊Create
  11. 點擊Done

  現在,根據完全模板建立一個新域。按照下述這些步驟建立一個完全域:

基於完全模板的域建立

  1. 啟動網域設定嚮導(在 Windows上, 選擇 Start > All Programs > BEA WebLogic Platform > Configuration Wizard)
  2. 選擇Create a new WebLogic Configuration,並點擊Next
  3. 瀏覽到完全模板(%BEA_HOME%/user_templates)的位置,而不是選擇預設的模板之一
  4. 選擇SEMTemplate-Complete,並點擊Next
  5. 點擊後續對話方塊中的Next,取預設值
  6. 指定Configuration Name為某些有意義的內容(例如,SEMDomain-Complete),並點擊Create
  7. 點擊Done

  然而,啟動此域中的WebLogic Server執行個體失敗。加密的安全憑證衝突。如下手動修改config.xml檔案:

修改config.xml

  1. 將SecurityConfiguration元素的Credential屬性的值修改為""
  2. 將EmbeddedLDAP元素的Credential屬性的值修改為""
  3. 將cgPool Password屬性的值修改為“weblogic”
  4. 將semJDBCConnectionPool Password屬性的值修改為“sem”

  按照驗證網域設定一節所述的步驟驗證該域是否工作正常。
  另一種重要的模板策略是建立一個擴充模板,例如一個擴充DefaultWebApp模板、並配置所有必需資源的擴充模板。建立該擴充模板、建立一個域,並用擴充模板擴充該域留做練習。

結束語
  手動編輯config.xml檔案進行網域設定是一種容易出錯且危險的方法。而另一種極端的方法——通過編寫Java代碼來佈建網域則冗長乏味。常用的可供選擇的方法包括使用WebLogic Console、Domain Configuration Wizard來佈建網域。然而,這兩種可供選擇的方法都是手動的,可能重複性強,並且耗費時間。在探索自動化解決方案時,我評估了模板方法。請留意我的下一篇文章,它將評價指令碼策略。我希望本文能協助您在選擇使網域設定自動化的工具和技術時能做到有備無患。

參考書目
· 要討論本文或者詢問問題,請從這裡開始: www.bartssandbox.com。

關於作者
Prakash Malani在構建、設計和開發物件導向的軟體方面有著豐富的經驗,在許多應用領域開發過軟體,例如娛樂、零售、醫學、通訊以及互動式電視等。他實踐並指導一些先進的技術,例如J2EE、UML和XML等。Prakash在各種業內領先的出版物上發表過各種文章。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.