WebApp/Weblogic †インストール †ドメイン名 :base_domain -- 32bit OS ではDownLoadしたバイナリを実行すれば良い WebLogic10.3.6-linux32.bin を実行することで、GUIのインストーラーが起動する。64bitの場合は対応してない為、コンソールモードで起動する -- 64bit OS で インストールするには Java JDK(HotSpot版/ OpenJDKはNG)から jarファイル(Generic WebLogic Server and Choherence installer)を実行する rpm -ivh jdk-7u79-linux-x64.rpm /usr/java/jdk1.7.0_79/jre/bin/java -d64 -jar fmw_12.1.3.0.0_wls.jar 以降の手順は 10.3.6 インストールした時の手順。(最新版も同じ感じでいける) ディレクトリ構成 †
ツール †ドメイン作成 /u01/oracle/wlserver_10.3/common/bin/config.sh [-mode=console] 管理サーバー起動 /u01/oracle/user_projects/domains/base_domain/startWebLogic.sh 管理対象サーバ起動 /u01/oracle/user_projects/domains/base_domain/bin/ startManagedWebLogic.sh srv1 t3://localhost:7001/ ノードマネージャ起動 /u01/oracle/wlserver_10.3/server/bin/startNodeManager.sh <LISTENアドレス> <LISTENポート> アンインストール /u01/oracle/utils/uninstall/uninstall.sh 起動時のパスワード入力をやめる †cd /u01/oracle/user_projects/domains/base_domain/servers/admin mkdir security cd security touch boot.properties ------------------- username=ユーザー名 password=パスワード ------------------- WLDFコンソール拡張 †以下の2つのファイルを $DOMAIN_HOME/console-ext ディレクトリにコピーすることで、管理コンソールの上部に「WLDFコンソール拡張」タブが表示される
WEBGUIログイン †http://<IPアドレス>:7001/console/login/LoginForm.jsp デプロイのサンプル †アプリのデプロイ先は、/u01/oracle/user_projects/domains/base_domain/servers/管理対象サーバ名/stage ディレクトリ以下に格納される。 ファイル構成 †mainWeb mainWeb/WEB-INF mainWeb/WEB-INF/web.xml mainWeb/WEB-INF/classes mainWeb/WEB-INF/classes/HelloWorld.java mainWeb/WEB-INF/classes/HelloWorld.class HelloWorld.class †import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloWorld extends HttpServlet{ public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>Hello World</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Hello World</h1>"); out.println("</body>"); out.println("</html>"); out.close(); } } web.xml †<web-app xmlns="http://java.sun.com/xml/ns/j2ee"> <servlet> <servlet-name>hello</servlet-name> <servlet-class>HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/HelloWorld</url-pattern> </servlet-mapping> </web-app> ブラウザからのアクセス †http://<IPアドレス>:<ポート番号>/mainWeb/HelloWorld ノードマネージャ †ノードマネージャ管理者ガイド v10.3 ノードマネージャ作成 †
ノードマネージャ起動 †/u01/oracle/wlserver_10.3/server/bin/startNodeManager.sh localhost 5556 [マシン] - [マシン名クリック] - [監視] - [ノード・マネージャのステータス] で ステータスが「アクセス可能」になってること 管理対象サーバーの設定 †
設定ファイル/ログ †/u01/oracle/wlserver_10.3/common/nodemanager/
JDBCデータソース †DBとのコネクションプールを作成しておくことが可能。
コーディングサンプル †import java.io.IOException; import java.io.PrintWriter; import java.sql.*; import java.util.logging.Level; import java.util.logging.Logger; import javax.sql.DataSource; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class DataSourceTest extends HttpServlet{ private InitialContext ic; @Override public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Connection conn = null; Statement stmt = null; ResultSet rset = null; response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head></head>"); out.println("<body>"); try { this.ic = new InitialContext(); String sql = "select empno, ename from emp"; DataSource ds = (DataSource)ic.lookup("jdbc/test"); // データソースオブジェクト取得(JNDI名を指定) conn = ds.getConnection(); // コネクション取得 stmt = conn.createStatement(); // Statementの作成 rset = stmt.executeQuery(sql); // 結果セットの取得 // 結果セットの表示 while ( rset.next() ) { out.println(rset.getInt(1) + "," + rset.getString(2) + "<br>"); } } catch (NamingException ex) { Logger.getLogger(DataSourceTest.class.getName()).log(Level.SEVERE, null, ex); } catch (SQLException ex) { Logger.getLogger(DataSourceTest.class.getName()).log(Level.SEVERE, null, ex); } finally { try { if(rset != null){rset.close();} // 結果セットクローズ処理 if(stmt != null){stmt.close();} // Statementクローズ処理 if(conn != null){conn.close();} // コネクションクローズ処理 } catch (SQLException ex) { Logger.getLogger(DataSourceTest.class.getName()).log(Level.SEVERE, null, ex); } } out.println("</body>"); out.println("</html>"); out.close(); } } JRockit †サーバーサイドJavaアプリケーションを高速かつ安定して動作させることを目標としたSun Java VM と互換性が保証されたJava VM。 GCログの取得 †startWebLogic.sh などの起動スクリプト内にある JAVA_OPTIONS にオプションを追加する JAVA_OPTIONS="${JAVA_OPTIONS} <オプション>"
jstatコマンド †ヒープサイズの使用率や、GC回数や、実行時間の確認。 $JROCKIT_HOME/bin/jstat -gc <PID> <間隔>s [回数] ex) jstat -gc 12455 10s 60 jrcmdコマンド †$JROCKIT_HOME/bin/jrcmd <PID> [コマンド] [パラメータ] $JROCKIT_HOME/bin/jrcmd <PID> help [コマンド] 引数なしで実行するとローカルマシンで動作している全てのPID表示
スレッドダンプは取得した瞬間のスナップショット
start_flightrecording の settingsパラメータ †
実行例 †
JFR †JRockit Mission Control †グラフィカルにJFRの解析を可能にするツール。 -- 事前にヒープメモリを確保して起動する(容量大きいJFR読み込む場合は大量のヒープが必要な為) jrmc.exe -J-Xmx4g -J-Xms4g ※ 起動したら、ファイルからJFRを読み込む。4g指定は、64bit版でしか指定できな 確認項目 †
WLST(WebLogic Server Scripting Tool) †java -cp クラスパスを指定 weblogic.WLST wls:/offline> プロンプトになるので各種コマンド実行 Webサーバープラグイン †モジュールのコピー †以下どちらかのpluginを、/etc/httpd/modules にコピーする $WLS_HOME/server/plugin/linux/`uname -m`/mod_wl_22.so ※通常強度の暗号化 $WLS_HOME/server/plugin/linux/`uname -m`/mod_wl128_22.so ※128bitでの暗号化 httpd.conf の書き換え †# モジュールを読み込む LoadModule mod_wl_22.so modules/mod_wl_22.so # 転送するWebLogicサーバの情報 <IfModule mod_weblogic.c> WebLogicHost wls.com WebLogicPort 7002 </IfModule> # 転送するWebLogicサーバ(クラスターの場合) <IfModule mod_weblogic.c> WebLogicCluster wls1.com:7002,wls2.com:7002,wls3.com:7002 </IfModule> # URLパターンでの転送 <Location /weblogic> SetHandler weblogic-handler PathTrim /webapps </Location> # MIMEタイプでの転送 <IfModule mod_weblogic.c> WebLogicHost wls.com WebLogicPort 7002 MatchExpression *.do </IfModule> # MIMEタイプでの転送(複数パターン) <IfModule mod_weblogic.c> MatchExpression *.do WebLogicHost=wls1.com|ebLogicPort=7002 MatchExpression *.jsp WebLogicHost=wls2.com|ebLogicPort=7002 MatchExpression /webapps/*.do WebLogicHost=wls3.com|ebLogicPort=7002 MatchExpression * WebLogicCluster=wls1.com:7002,wls2.com:7002,wls3.com:7002 </IfModule>
サーバーのライフサイクル †
トラブルシューティング †ログ †$DOMAIN_HOME/<ドメイン名>/servers/<サーバ名>/logs/ /u01/oracle/user_projects/domains/base_domain/servers/admin/logs/
CLASSPATH確認方法 †java.lang.NoClassDefFoundError の後に出力されたクラスは、そのクラスへアクセスできないことを示している。 |