ぺーぺーSEのブログ

備忘録・メモ用サイト。

WebLogic入門

WebLogic12cをさわってみた。

インストール

■インストール(GUI

「> java -jar -wls_121200.jar」
あとはよしなに。

■インストール(CUI
  • 環境変数の指定
    • Linux
      • 「$ export JAVA_HOME=/home/myhome/myjavahome」
      • 「$ export MW_HOME=/home/myhome/mywls/wls12130」
    • Mac
      • 「$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home」
      • 「$ export USER_MEM_ARGS="-Xmx1024m -XX:MaxPermSize=256m"」
      • 「$ export MW_HOME=/home/myhome/mywls/wls12130
    • Windows
      • 「> set JAVA_HOME=C:\home\myhome\myjavahome」
      • 「> set MW_HOME=C:\home\myhome\mywls\wls12130」
  • MW_HOMEディレクトリのコンフィグレーションスクリプトを実行
    • Linux/Mac
      • 「$ . ./configure.sh [-silent] 」
    • Windows
      • 「> configure.cmd [-silent]」
      • Windowsだと管理サーバが起動するので、終わったら「Ctr+C」で止める
  • 環境設定スクリプトを実行
    • Linux
      • 「$ . $MW_HOME/wlserver/server/bin/setWLSEnv.sh」
    • Mac
      • 「$ . $MW_HOME/wlserver/server/bin/setWLSEnv.sh」
    • Windows
      • 「> %MW_HOME%\wlserver\server\bin\setWLSEnv.cmd」
  • ドメインディレクトリを作成
    • Linux
      • 「$ mkdir /home/myhome/mydomain」
      • 「$ cd /home/myhome/mydomain」
      • 「$ $JAVA_HOME/bin/java $JAVA_OPTIONS -Xmx1024m -XX:MaxPermSize=256m weblogic.Server」
    • Mac
      • 「$ mkdir /home/myhome/mydomain」
      • 「$ cd /home/myhome/mydomain」
      • 「$ $JAVA_HOME/bin/java $JAVA_OPTIONS -Xmx1024m -XX:MaxPermSize=256m weblogic.Server」
    • Windows
      • 「> mkdir C:\home\myhome\mydomain」
      • 「> cd C:\home\myhome\mydomain」
      • 「> %JAVA_HOME%\bin\java.exe %JAVA_OPTIONS% -Xmx1024m -XX:MaxPermSize=256m weblogic.Server」
    • ★「MW_HOME/wlserver/common/bin/config.[sh|cmd]」をたたくと構成ウィザード(GUI)で設定可能
  • ブラウザで管理コンソールhttp://localhost:7001/console)へアクセス
      • 管理コンソールは管理サーバにだけデプロイされる管理用Webアプリケーション
      • データソースの作成・管理やデプロイメントなど様々なオペレーションが可能


ドメインディレクトリ構成
  • domainドメインディレクトリ(ディレクトリ名=ドメイン名)
    • autodeploy:自動デプロイメントディレクトリ(開発モード用)
    • bin:起動・停止スクリプト
    • config:コンフィグレーションディレクトリ(config.xmlが配置される)
    • init-infoドメインの初期化情報
    • nodemanager:ノード・マネージャ・ホームディレクトリ
    • pendingペンディングコンフィグレーションストア(編集中のコンフィグレーションの保存先)
    • security:セキュリティファイル(ldift、SerializedSystemIni.dat)
    • servers:サーバーローカルディレクトリ
      • server_name:servers灰化にサーバー毎にディレクトリが作成される


用語

  • ドメイン
    • リソース管理単位=設定の単位
  • サーバ
  • マシン
    • サーバが所属するハードウェアの境界をあらわす
    • マシンは以下のような場合に必要
      • ノード・マネージャによるサーバ制御を行う場合
      • インメモリレプリケーションの境界線を設定する場合
      • UNIX環境での特権起動後にUID/GIDを変更する場合


■管理サーバと管理対象サーバ
  • 管理サーバ
  • 管理対象サーバ
    • 管理サーバから設定情報を取得して起動するサーバ
    • アプリケーションやサービスのデプロイ先として使用
    • ドメイン内に複数作成可能
    • ノード・マネージャーというコンポーネントで管理対象サーバのプロセスを制御・監視することができる(必須ではない)
    • ノード・マネージャーから管理対象サーバの起動・停止を制御できる
    • ドメイン内の任意の管理対象サーバをまとめて「クラスタ」を構成できる(ドメインをまたがってクラスタを構成することはできない)
    • クラスタ単位でのアプリケーションやHTTPセッションレプリケーションなどの高可用性機能が使用可能になる


ノード・マネージャ

サーバの起動・停止を行うことができるWebLogic Server付属のユーティリティ。

  • Javaベースとスクリプトベースのノード・マネージャが提供される
  • 管理サーバ/管理対象サーバ両方を制御可能
    • 起動・停止・再起動
    • サーバの状態やログファイルを取得可能
  • ノード・マネージャを使用して起動したサーバに障害が発生するとサーバを自動的に再起動する

また、ノード・マネージャは複数のサーバを管理することができる。
管理コンソール、WLST(WebLogic Scripting Tool)から使用できる。

■ノード・マネージャの起動
  • ノード・マネージャの起動スクリプト/$WL_HOME/server/bin/startNodeManager.sh(.cmd)
    • 必要に応じて環境偏すを編集
      • NODEMGR_HOME:ノード・マネージャホームディレクトリ(デフォルト:$WL_HOME/common/nodemanager)
      • LISTEN_ADDRESS:ノードマネージャのリッスンアドレス
      • LISTEN_PORT:ノード・マネージャのリッスンポート
  • スクリプト版は「$DOMAIN/bin/nodemanager/wlcontrol.sh」

参考:
http://www.slideshare.net/OracleMiddleJP/20121122-wlstudy-wlsadvancehandsout-15381214

WebLogicの起動・停止

WebLogic Serverには以下の2つの動作モードがある。

  1. 開発モード
    • アプリケーションの変更を自動検知
    • 管理サーバ起動時の認証が不要
    • 管理コンソールでの操作が即時反映
    • 管理コンソールなどの内部アプリケーションは初回アクセス時に初めてデプロイ
  2. 本番モード(プロダクションモード)
    • デフォルトでアプリケーションの変更を自動検知しない
    • 管理サーバ起動時の認証が必要
    • 管理コンソールでの操作はロックを取得してから行い、ロールバック可能
    • 管理コンソールなどの内部アプリケーションはデプロイ済の状態


■管理サーバの起動・停止
  • 起動
    • startWebLogic.cmd
    • startWebLogic.sh
  • 停止
    • stotWebLogic.cmd
    • stotWebLogic.sh


■管理対象サーバの起動・停止
  • 起動
    • startManagedWebLogic.cmd
    • startManagedWebLogic.sh
  • 停止
    • stotManagedWebLogic.cmd
    • stotManagedWebLogic.sh

スクリプトの場所は「■ドメインディレクトリ構成」を参照。


■デプロイメント
デプロイメントには書きの2フェーズがある

  • インストール(準備完了状態)
    • アプリケーションをドメインに登録
    • アプリケーションのデプロイ対象指定(サーバー、クラスタ
  • アクティベーション(アクティブ状態)
    • デプロイ対象でアプリケーションを起動

参考:
http://www.slideshare.net/OracleMiddleJP/20140527-wlstudy-startjee1handsout
http://www.slideshare.net/OracleMiddleJP/20131113-wls-benkyokaiosaka

ログ

■ロガー

WebLogicはデフォルトで「java.util.logging.Logger」を使用している。

■レベル

TRACE、DEBUG、INFO、NOTICE、WARNING、ERROR、CRITICAL、ALERT、EMERGENCY

■ログ体系

ログは「DOMAIN_NAME\servers\SERVER_NAME\logs」配下にある。

参考:
http://otndnld.oracle.co.jp/document/products/wls/docs91/ConsoleHelp/taskhelp/logging/EnableAndConfigureHTTPLogs.html


deployment descriptor extension(デプロイメントディスクリプタの拡張)

warの場合

web.xmlの拡張としてweblogic.xmlがあり、WEB-INF配下に配備する。
weblogic.xmlがwarに同梱されていない場合、weblogic.xmlの各要素のデフォルト設定が適用される。
weblogic.xml

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app 
                                      http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd">
  <security-role-assignment>
    <role-name>RegisteredUsers</role-name>
    <principal-name>RegisteredUsers</principal-name>
  </security-role-assignment> 
  <session-descriptor>
    <timeout-secs>3600</timeout-secs>
    <invalidation-interval-secs>60</invalidation-interval-secs>
    <cookie-name>GalleriaCookie</cookie-name>
    <cookie-max-age-secs>-1</cookie-max-age-secs>
    <url-rewriting-enabled>false</url-rewriting-enabled>
  </session-descriptor>
  <container-descriptor>
    <prefer-web-inf-classes>true</prefer-web-inf-classes>
  </container-descriptor>
</weblogic-web-app>

よく使用するのは「prefer-web-inf-classes」で、これをtrueにすると、WebアプリケーションのWEB-INFディレクトリにあるクラスが、アプリケーションまたはシステム・クラスローダー内にロードされたクラスより優先される。
参考:
http://docs.oracle.com/cd/E24329_01/web.1211/e21049/weblogic_xml.htm#WBAPP571
http://docs.oracle.com/cd/E28613_01/web.1211/b65890/weblogic_xml.htm
http://danielveselka.blogspot.jp/2013/02/weblogic-12c-java-ee-6-decriptors.html
http://begirama.hatenablog.com/entry/2014/03/29/130017

earの場合

application.xmlの拡張としてweblogic-application.xmlがあり、META-INF配下に配備する。
weblogic-application.xmlがearに同梱されていない場合、weblogic-application.xmlの各要素のデフォルト設定が適用される。
weblogic-application.xml

<?xml version='1.0' encoding='UTF-8'?>
<weblogic-application xmlns="http://xmlns.oracle.com/weblogic/weblogic-application" 
                      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                      xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-application 
                                          http://xmlns.oracle.com/weblogic/weblogic-application/1.4/weblogic-application.xsd">
  <prefer-application-packages>
    <package-name>antlr.*</package-name>
  </prefer-application-packages>
</weblogic-application>

参考:
http://docs.oracle.com/cd/E24329_01/web.1211/e24368/app_xml.htm#WLPRG389
http://otndnld.oracle.co.jp/document/products/wls/docs92/programming/app_xml.html
http://danielveselka.blogspot.jp/2013/02/weblogic-12c-java-ee-6-decriptors.html

EJBの場合

ejb-jar.xmlの拡張としてweblogic-ejb-jar.xmlがあり、META-INF配下に配備する。
weblogic-ejb-jar.xmlがjarに同梱されていない場合、weblogic-ejb-jar.xmlの各要素のデフォルト設定が適用される。
http://docs.oracle.com/cd/E28389_01/web.1111/b61624/ejb_jar_ref.htm