Your SlideShare is downloading. ×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

WebLogic Serverの運用管理:応用編

3,151

Published on

ノードマネージャによるサーバの起動・停止やプロダクション再デプロイメントなど WebLogic Serverの運用にあたって知っておきたい応用的なトピックスを解説します。 …

ノードマネージャによるサーバの起動・停止やプロダクション再デプロイメントなど WebLogic Serverの運用にあたって知っておきたい応用的なトピックスを解説します。

日本オラクル オラクル ユニバーシティ 岡田 大輔

0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,151
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
112
Comments
0
Likes
7
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. WebLogic Server の運用管理:応用編日本オラクル株式会社オラクルユニバーシティ岡田 大輔2012年11月22日1 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 2. 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するもので す。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み 込むことはできません。以下の事項は、マテリアルやコード、機能を提供す ることをコミットメント(確約)するものではないため、購買決定を行う際 の判断材料になさらないで下さい。オラクル製品に関して記載されている機 能の開発、リリースおよび時期については、弊社の裁量により決定されます 。 OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。 文中の社名、商品名等は各社の商標または登録商標である場合があります。2 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 3. Agenda  マシンとノード・マネージャ  プロダクション再デプロイメント3 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 4. マシンとノード・マネージャ4 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 5. 復習: 用語の確認 ドメインはドメインコンフィグレーションウィザードで作成 サーバとマシンはドメイン内のリソースとして定義  ドメイン … リソース管理単位 = 設定の単位  サーバ … WebLogic Serverインスタンス(=Javaプロセス)  マシン … H/W境界  管理サーバと管理対象サーバ – 管理サーバ … ドメインの設定を管理する(= configにアクセス可能な) サー バ。ドメイン内に必ず1つ – 管理対象サーバ … 管理サーバから設定情報を取得して起動するサーバ。 通常は、アプリケーション、サービスのデプロイ先として使用。5 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 6. ドメインで管理されるリソース ドメイン トランザクション セキュリティ 管理サーバ マシン ログ etc NM クラスタ 管理対象サーバ JMSサーバ ログ etc config (設定ファイル) JDBC データソース アプリケーション マシン 診断モジュール 管理対象サーバ JMSサーバ JMSモジュール ログ etc NM 管理対象サーバ JMSサーバ ログ etc6 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 7. マシンとは  サーバが所属するハードウェア境界をあらわす  マシンが必要な場合 – ノード・マネージャによるサーバ制御を行う場合 – インメモリレプリケーションの境界線を設定する場合 – UNIX環境で特権起動後にUID/GIDを変更する場合7 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 8. マシンを定義していない場合  マシンを定義していないサーバは? – 個々に独立した(匿名の)マシンに属していると認識される8 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 9. マシンの構成例  マシンを定義する場合 = H/W境界と一致する ドメインA ドメインB マシンA マシンX マシンY サーバ1 サーバ2 サーバ1 サーバ2 サーバ3 サーバ4 (管理サーバ) (管理対象サーバ) (管理サーバ) (管理対象サーバ) (管理対象サーバ) (管理対象サーバ) 物理サーバ 物理サーバX 物理サーバY  マシンを定義しない場合 = H/W境界と一致しない場合がある ドメインA ドメインB マシン マシン マシン マシンB マシン マシンD サーバ1 サーバ2 サーバ1 サーバ2 サーバ3 サーバ4 (管理サーバ) (管理対象サーバ) (管理サーバ) (管理対象サーバ) (管理対象サーバ) (管理対象サーバ) 物理サーバ 物理サーバX 物理サーバY9 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 10. マシンの作成 マシンとサーバを関連付ける際は、 該当のサーバを停止した状態で実行 する必要がある → 管理サーバのみを起動した状態 で作業すると操作ミスが少ない10 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 11. Unixマシンの設定 NOTE: Unixマシンとマシンの違い 特権起動アクション実行後に変更する ユーザIDやグループIDを指定可能11 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 12. ノード・マネージャとは  サーバの起動・停止を行うことができるWebLogic Server付属のユー ティリティ – Javaベースとスクリプトベースのノードマネージャが提供される – 管理サーバ/管理対象サーバ両方を制御可能  起動・停止・再起動  サーバの状態やログファイルを取得可能 – ノード・マネージャを使用して起動したサーバに障害が発生すると、サー バを自動的に再起動する12 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 13. ノード・マネージャは複数のサーバを管理可能  ノード・マネージャはH/Wにあるすべてのサーバを管理可能 – 複数ドメインのサーバも1つのノード・マネージャで管理可能  各マシンのノード・マネージャのリスニング・アドレス、リスニング・ポート 設定で同じノード・マネージャを参照する Node Manager ドメインA ドメインB マシンX NM マシンY NM サーバ1 サーバ2 サーバ3 サーバ4 (管理対象サーバ) (管理対象サーバ) (管理対象サーバ) (管理対象サーバ) 物理サーバX13 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 14. ノード・マネージャによるサーバの起動・停止 ノード・マネージャの通信 ssl | plain | ssh | rsh 接続 起動 / 停止 (ノード・マネージャあり) Node WLST Manager マシンB ノード・マネージャの 管理 ホスト名/ポート番号 起動 / 停止 起動 / 停止 サーバ 管理コンソール 停止 管理対象 (ノード・マネー サーバ ジャなし)14 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 15. ノード・マネージャの起動  ノード・マネージャの起動スクリプト – $WL_HOME/server/bin/startNodeManager.sh (.cmd)  必要に応じて環境変数を編集 – NODEMGR_HOME: ノード・マネージャホームディレクトリ (デフォルトは$WL_HOME/commnon/nodemanager) – LISTEN_ADDRESS: ノード・マネージャのリスンアドレス – LISTEN_PORT: ノード・マネージャのリスンポート – スクリプト版は $DOMAIN/bin/nodemanager/wlcontrol.sh15 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 16. ノード・マネージャが参照するファイル マシン 管理対象サーバ nmStart NodeManager (Server1) (localhost:5556) $DOMAIN/config/ $NODEMGR_HOME nodemanager $DOMAIN/servers/<server>/ $DOMAIN/servers/ ノード・マネージャ data/nodemanager <server>/logs 構成ファイル サーバ ログ 構成ファイル ファイル nm_password nodemanager nodemanager nodemanager .properties .domains .properties .log startup boot Server1.log .properties .properties サーバステータスノード・マネージャ ファイル 構成ファイル nm_data nodemanager .properties .hosts ログファイル Server1.pid Server1.lck Server1.state Server1.out 16 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 17. ノード・マネージャの構成ファイル NOTE: リモートマシン用のnodemanager.domainsと nm_password.propertiesはWLST nmEnroll コマンド で作成・更新可能  nodemanager.properties ($NODEMGR_HOME) – Javaベースのノード・マネージャの設定ファイル  nodemanager.domains ($NODEMGR_HOME) – ノード・マネージャによって管理されるドメイン名とドメインディレクトリのマッ ピング  ドメイン構成ウィザードによって作成される  nm_password.properties ($DOMAIN/config/nodemanager) – ノードマネージャへの接続に使用するユーザ名とパスワードファイル  nm_data.properties ($NODEMGR_HOME) – 非対称暗号化キーファイル17 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 18. ノード・マネージャの構成ファイル  boot.properties ($DOMAIN/servers/<server>/data/nodemanager) – サーバ起動時に使用するユーザ資格ファイル  startup.properties ($DOMAIN/servers/<server>/data/nodemanager) – ノード・マネージャによって管理されるドメイン名とドメインディレクトリのマッ ピング  ドメイン構成ウィザードによって作成される NOTE: リモートマシン用のboot.propertiesと startup.propertiesはWLST nmGenBootStartupProps コマンドで作成可能18 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 19. ノード・マネージャによるサーバ起動時のログ  ノード・マネージャログ – ノード・マネージャのログファイル(Javaベースのノード・マネージャ) – $NM_HOME/nodemanager.log  サーバインスタンスのログ(outファイル) – ノード・マネージャに起動されるサーバのStdoutとStderrを格納するログファイル – $DOMAIN/servers/<サーバ名>/logs/<サーバ名>.out  サーバログ – WebLogic Server上で動作するアプリケーションやサービス(サブシステム)の情報を 記録するログ。各サーバが出力 – $DOMAIN/servers/<サーバ名>/logs/<サーバ名>.log19 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 20. サーバの起動設定 管理コンソールの設定 nodemanager.propertiesに次の設定を行う場合は [サーバの起動]は指定不要 StartScriptEnabled=true StartScriptName=<起動スクリプト名> ※ WLS12cからStartScriptEnabledのデフォルト値はtrue StartScriptEnable=falseの場合は[サーバの起動]でサー バの起動設定を行う20 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 21. WLSTコマンド ノード・マネージャの制御 コマンド 説明 構文 ノード・マネージャに接続 nmConnect nmConnect([username, password], [host], [port], [domainName], [domainDir] [nmType], [verbose]) (オフライン) mnType: ノード・マネージャタイプ (ssl|plain|ssh|rsh) ノード・マネージャから切断 nmDisconnect nmDisconnect() (オフライン) ノード・マネージャで起動したサー nmKill バを強制停止 nmKill([serverName], [serverType]) serverType: WebLogicかCoherenceを指定 (オンライン|オフライン) NodeMangerを使用してサーバを起 nmStart 動 nmStart([serverName], [domainDir], [props], [writer], [serverType]) (オフライン) props: makePorpertiesObject(‘name=value’)で指定可能 (要 from java.util import Properties) 管理対象サーバにノード・マネー nmEnroll ジャのユーザ名・パスワードを配布 nmEnroll([domainDir], [nmHome]) domainDir: ドメインディレクトリ($DOMAIN) (オンライン) (nm_password.properties) nmHome: ノード・マネージャホームディレクトリ (nodemanager.propertiesを配置したディレクトリ) ノード・マネージャで起動したサー nmServerStatus バのステータスを取得 nmServerStatus([serverName], [serverType]) serverName: サーバ名 (オンライン|オフライン) serverType: WebLogic|Coherence (デフォルトはWebLogic)21 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 22. 参考: 本番モードでの nmConnect() の実行 •nmConnectではノード・マネージャの資格証明を 指定する必要がある •資格証明はドメイン設定で指定を行う →ドメイン作成時にはランダム値が設定されている •リモートマシンへの資格証明の展開はnmEnrollを使 用する →管理対象サーバを実行する各マシン上で実行する22 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 23. まとめ マシンとノード・マネージャ  ノード・マネージャはサーバの起動・停止・再起動を行う – 効率的なサーバの制御を行うことができる有益なツール – ノード・マネージャを使用するためにはマシンを設定する  リモートマシンでノード・マネージャを使用する場合は必要な構成 ファイルをWLSTコマンド(nmEnroll)などで展開する23 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 24. プロダクション再デプロイメ ント24 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 25. 復習: デプロイメントとは?  アプリケーションをWebLogic ドメインに登録し対象指定されたサー バでアクティブにすること  デプロイメントフェーズは2段階ある – インストール (準備完了状態)  アプリケーションをドメインに登録  アプリケーションのデプロイ対象指定(サーバ、クラスタ) – アクティベーション (アクティブ状態)  デプロイ対象でアプリケーションを起動 – = クライアントからのアクセス可能な状態25 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 26. デプロイメントの方法 コンソールデプロイメントとコマンドラインデプロイメント  コンソールデプロイメント – 管理コンソールを使用したデプロイメント(ウィザードベース) – 常に2フェースデプロイメント (インストール→起動)  コマンドラインデプロイメント – weblogic.DeployerまたはWLSTを使用したデプロイメント – デプロイメントコマンドの指定により任意の操作を実行可能  自動デプロイメント (開発用) – $DOMAIN/autodeploy配下に配置されたアプリケーションを自動的にデプ ロイ26 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 27. コマンドラインデプロイメント コマンドラインデプロイメントはWLST、 またはweblogic.Deployerで実行可能 デプロイなし * コマンドは管理サーバに対して実行 WLST weblogic.Deployer ① ④ ① distributeApplication() -distribute 準備完了 ② startApplication() -start⑤ ② ③ ⑥ ③ stopApplication() -stop ④ undeploy() -undeploy ② 管理 ③ ⑤ deploy() -deploy ② ③ ⑥ undeploy() -undeploy アクティブ ⑦ redeploy() -redeploy ⑦ 管理モード起動時は管理ポートを有効化する必要がある (主にプロダクション再デプロイメント用) 2727 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 28. 参考: コマンドラインデプロイメント(WLST) コマンド 説明 構文 deploy アプリケーションをデプロイ deploy(appName, path, [targets], [stageMode], [planPath], (オンライン) [options]) appName: デプロイメント名 undeploy アプリケーションをアンデプ undeploy(appName,[targets],[options]) (オンライン) ロイ redeploy アプリケーションを再デプロ redeploy(appName, [planPath], [options]) (オンライン) イ startApplication アプリケーションを起動 startApplication(appName, [options]) (オンライン) option: adminMode=trueを 指定すると管理モードで起動 stopApplication アプリケーションを停止 stopApplication(appName, [options]) (オンライン) distributeApplication アプリケーションを分散 distributeApplication(appPath, [planPath], [targets], (オンライン) [options]) ※ appNameは appPath のファイル名が使われる listApplications デプロイ済みアプリケーショ listApplications() (オンライン) ンの一覧28 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 29. 再デプロイメント  再デプロイメントを行うとアプリケーションのデプロイメント・ファ イルを更新できる – アプリケーションは直ちに更新される (インプレース再デプロイメント) – 更新中はアプリケーション・サービスが中断される インプレース再デプロイメントでは、サービス中断を回避するために クラスタ構成+縮退運転など運用回避を検討する必要あり。29 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 30. プロダクション再デプロイメント バージョニングによる再デプロイメント  WebLogic Serverではアプリケーションをバージョニング可能 – 保持できるバージョンは2つまで  プロダクション再デプロイメントでは新しいバージョンと古いバー ジョンを並行してデプロイする – 既存のクライアント・リクエストは古いバージョンへ – 新しいクライアント・リクエストは新しいバージョンへ プロダクション再デプロイメントを使用するとサービスを中断しない アプリケーション更新をサーバ単体で実現可能30 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 31. プロダクション再デプロイメント アクセスするバージョンはWebLgoic Serverが管理 既存の 新しい ユーザ・リクエスト ユーザ・リクエストNOTE: すべてのセッションが 古い 新しいタイムアウト or 指定したタイ アプリケーション アプリケーションムアウト時間経過でアプリ WebApp (v1) WebApp (v2)ケーションはリタイアする 新バージョンデプロイ後は デプロイ後は新バージョンが リタイア中に アクティブに WebLogic Server 31 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 32. プロダクション再デプロイメントの要件  プロダクション再デプロイメントのサポート対象 – Webアプリケーション(war) – HTTP経由またはグローバルJMS宛先からのインバウンド・メッセージ経由 でアクセスするエンタープライズ・アプリケーション(ear) – Webサービス  再デプロイメント時に変更できないもの – デプロイメント対象 – Webアプリケーションのセキュリティ・モデル – Webアプリケーションの永続ストア設定32 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 33. アプリケーションのバージョンの指定方法  プロダクション再デプロイメントを行うアプリケーションにはバー ジョン指定を行う – MANIFEST.MF ファイルに Weblogic-Application-Version を指定 – weblogic.Deployer で –appversion オプションで指定  WLSTではdeployコマンドの versionIdentifier 属性で指定 バージョン識別子は文字列で指定 使用可能な文字: 英数字, 他の文字と組み合わせた 「.」,「_」,「-」33 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 34. リタイア済みのアプリケーション  リタイアされたアプリケーションは手動で削除する必要がある – 削除しておかないと次のバージョンをデプロイできない  プロダクション再デプロイメントをロールバックするには? リタイア済みのアプリケーションを再デプロイする34 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 35. 新しいバージョンの配布 既存の 管理チャネル経由の ユーザ・リクエスト ユーザ・リクエスト リスンポート 管理ポートNOTE: 新バージョンのアプリケーションを管理モードで起 古い 新しい動すると管理ポートにアクセ アプリケーション アプリケーションスできるユーザだけがアクセ WebApp (v1) WebApp (v2)ス可能 新バージョン起動までは 分散後に管理モードで起動 アクティブに WebLogic Server 35 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 36. 新しいバージョンの配布手順 コマンドラインデプロイメント 1. 新バージョンを分散 $ java -Dweblogic.security.TrustKeyStore=DemoTrust - Dweblogic.security.SSL.ignoreHostnameVerification=true weblogic.Deployer -adminurl t3s://localhost:9002 -username weblogic -password weblogic1 -distribute -name webApp -targets cluster1 -source v1/WebApp.war 2. 管理モードで起動 $ java -Dweblogic.security.TrustKeyStore=DemoTrust - Dweblogic.security.SSL.ignoreHostnameVerification=true weblogic.Deployer -adminurl t3s://localhost:9002 -username weblogic -password weblogic1 -start -name webApp -targets cluster1 -appVersion v1 -adminmode 3. アプリケーションを起動 $ java -Dweblogic.security.TrustKeyStore=DemoTrust - Dweblogic.security.SSL.ignoreHostnameVerification=true weblogic.Deployer -adminurl t3s://localhost:9002 -username weblogic -password weblogic1 -start -name webApp -targets cluster1 -appVersion v136 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 37. 参考: 管理ポートの有効化 各サーバで管理ポート変更する場合はローカル管理ポートの オーバーライドを指定する37 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 38. まとめ プロダクション再デプロイメント  プロダクション再デプロイメントを使用するとアプリケーション・ サービスを停止せずに更新を行うことができる – バージョン指定が必須 (バージョン識別子を適切に管理すること) – 一度リタイアしたバージョンは明示的に削除する必要あり – 対応しているアプリケーションの種類や制限事項を確認  アプリケーション・サービスの停止を許容できる場合はインプレース 再デプロイメントとの併用を検討する38 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 39. 本日のまとめ  WebLogic Serverの運用管理を効率的に行うために – サーバのリモート起動を行う場合はノード・マネージャを使用する  ノード・マネージャはサーバの起動・停止・再起動を管理する  ドメインにマシンを定義する – プロダクション再デプロイメントによってアプリケーションの継続性を向 上可能  管理ポートと組み合わせるとより細かい制御(管理モード)が可能に39 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 40. Oracle Universityからのお知らせ  WebLogic Serverの管理方法を体系的に学習したい方に最適な研修コー スをご提供しています。 – Classroomトレーニングだけでなく、Live Virtual Classや『Oracle トレーニ ング・オンデマンド』など多様な受講形態から選択いただけます。40 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 41. ミドルウェア Oracle WebLogic Server 11g: 管理 Oracle Application Gridの基盤を支える Oracle WebLogic Server 11gの管理コース! このコースでは、Web管理者がOracle WebLogic Server 11gのインストールおよび設定する方法について説明し ます。Web管理者が管理コンソールやコマンドライン、およびスクリプトツール(WLST)などを使用して、 Java EEアプリケーションをOracle WebLogic Server 11gにデプロイする方法についても説明します。 その他に、Oracle WebLogic Server のWebインタフェースとしてOracle HTTP Serverを設定する方法を解説し、 ※ WLS12cとの差分は参考資料を配布します またOracle WebLogic Serverクラスタを設定してアプリケーションのフェイルオーバーとロードバランシングを サポートする方法を学習します。また、WebLogic Server管理者の管理タスクの概要について説明します。 ■Oracle Fusion Middleware の概要 ■データソース、JDBCドライバ、接続プールの設定 ■WebLogic Serverのアーキテクチャ ■JMS アプリケーションのコンフィグレーション ■Oracle WebLogic Serverのインストール ■WebLogic Serverの基本セキュリティのコンフィグレーションコース内容 ■管理コンソールおよび他の管理ツールの概要 ■Oracle HTTP Server のコンフィグレーション ■WebLogic Server ドメインのコンフィグレーション ■Oracle WebLogic クラスタのコンフィグレーション ■Oracle WebLogic Server の管理およびロギングの使用 ■バックアップおよびリカバリの管理 ■アプリケーションのデプロイ ■全体バックアップ、増分バックアップ 受講 ・Linux の基本コマンドおよびデスクトップのナビゲーション ・クライアント/サーバーの概念における TCP/IP ネットワークに関する基本的な知識 前提条件 ・Java EE の基礎知識(サーブレットや JSP など) ※推奨 ・Oracle WebLogic Server 11g/12c管理者 対象者 ・Javaアプリケーション開発者コース日程 5日間 次回開催日程 ■ 12/10(月) – 12/14(金) トレーニングキャンパス大阪 日程の詳細は Oracle University Webサイト にてご確認ください。 ■ 1/28(月) – 2/1(金) トレーニングキャンパス青山 受講料 定価¥363,825(税込) ※Oracle PartnerNetwork会員様は、パートナー割引価格で受講いただけます。41 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 42. WebLogic Server勉強会 参加者の皆さまの特典 http://education.oracle.co.jp/campaign_wlstudy/42 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 43. 43 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 44. 4444 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

×