[WLS, Java, FMW] 12.2.1 WebLogic JMS: Dynamic Scalability and High Availability Made Simple

原文はこちら。
https://blogs.oracle.com/WebLogicServer/entry/12_2_1_weblogic_jms

Introduction

WebLogic Server 12.2.1はすばらしくシンプルな、簡単に利用できるJMS構成および管理モデルを特徴としています。このシンプルなモデルは、JMS構成が簡単で可搬性があるため、シームレスにクラスタとMulti-Tenant/クラウド環境の両方で動作します。12.1.2で追加されたJMSクラスタターゲット機能の初期バージョンにあった主な制限を、古い管理モデルでは利用できない機能拡張を付け加えることで基本的にクリアしています。
  • 全てのタイプのJMSサービスアーティファクトが動的クラスタ環境をフル活用でき、自動的にスケールアップするだけでなく、クラスタのサイズ変更に合わせて負荷をクラスタ間で均等に分散します。言い換えると、クラスタの成長または変化に応答して、JMSアーティファクトを各クラスタメンバに個別に構成、デプロイする必要はありません。
  • 高可用性構成(フェールオーバ、フェールバック、インプレース再起動)を簡単に構成でき、個別のターゲットを使うことで、以前は一部しかサポートしていなかった機能が使えるようになっています。
  • 12.2.1では、シンプルな構成モデルで、クラスタのシングルトン宛先を構成できるようになっています。
これらの機能はすべてのWebLogic Serverクラスタのタイプ、つまり、個々にWebLogic Serverを構成したものを組み合わせた旧来の静的なクラスタ、複数のインスタンスに伸長できる動的な1個のWebLogic Serverを組み合わせた動的クラスタ、そしてその両方を組み合わせたクラスタといったすべてのタイプに当てはまります。

Configuration Changes

このモデルを使うと、動的にスケールし、高可用性を持つJMSを一カ所(永続データを扱うすべてのJMSアーティファクトのためのカスタムストアもしくはメッセージング・ブリッジ)で簡単に構成、管理することができます。このモデルで導入されたこの新しい構成パラメータは総称して「高可用性」ポリシーとして知られています。これらは、管理コンソール(WebLogic管理コンソール、Fusion Middleware Control (FMWC))だけでなく、WLSTスクリプトやJava Mbean APIを通じてユーザーに公開されています。ストア上にJMSを設定している場合、このストアを参照するJMSサービスのアーティファクトは、シンプルにこうした設定をストアから継承し、それに従った動作します。
Figure 1. Configuration Inheritance
最も重要な設定パラメータはdistribution-policy(分散ポリシー)とmigration-policy(移行ポリシー)です。これらはそれぞれ、関連するサービス・アーティファクトの動的な拡張性と可用性を制御します。
distribution-policyを構成済みのアーティファクトに”distributed”と設定した場合、デプロイ時に、システムが自動的にインスタンスを各クラスタメンバ上で作成します。"singleton"に設定すると、システムは、クラスタ全体で単一のインスタンスを作成します。

ホストのWebLogic Serverにちなんで分散インスタンスは一意に命名されています(構成した名称にはサーバ名が後ろにつく)。ここでホストのWebLogic Serverは、実行時の監視と位置の追跡のために最初に作成され、開始しています。このサーバは、それにちなんで命名されている分散インスタンスのホームまたは優先サーバーと呼ばれています。シングルトン・インスタンスは、サーバ名で装飾されず、そのかわりに単に「-01」が後ろについています。システムはインスタンスをホストするクラスタ内で管理対象サーバの1個を選択します。

distribution-policyは、migration-policyと呼ばれる新しい高可用性オプションと協調し、予期せぬサービス障害やサーバクラッシュ、あるいはサーバの計画停止に対してさえもインスタンスが停止しないことを保証します。このポリシーは使用可能なクラスタメンバーにインスタンスを自動的に移行することでこれを実現します。
migration-policy用に、3個の選択肢から1個選ぶことができます。

  • on-failure:インスタンスの移行は予期しないサービス障害やサーバクラッシュ時のみ
  • always:インスタンスの移行は計画的な管理されたサーバ停止をも含めて実施
  • off :サービスレベルの移行を無効化(必要であれば)
Figure 2. Console screenshot: HA Configuration
migration-policyに加え、この新しいモデルでは、restart-in-place(インプレース再起動)と呼ばれる、ストアのための別の高可用性の概念を提供しています。これを有効にすると、システムはまず、クラスタ内の別のサーバーにフェールオーバーする前に、現在のサーバー上で失敗したストアインスタンスを再起動しようとします。このオプションを調整し、試行回数と各試行間の時間間隔を制限することができます。
この機能のおかげで、レイテンシや過負荷が原因でデータベースが停止したりネットワークやI/Oリクエストに対する応答がないといった一時的な不調時に、システムが不必要な移行をしなくてすみます。障害発生後(定期的に再接続しようとします)、すでに自動的に再起動しているため、ブリッジはrestart-in-place設定を無視します。
高可用性の強化は、障害発生時のサービス・アーティファクトのフェールオーバだけでなく、ホームサーバがクラッシュやシャットダウン後に再起動された際の分散インスタンスの自動的なフェールバックも提供する、ということにご注意ください。これらは以前のリリースではご利用いただけませんでした。この機能のおかげで、アプリケーションが可能ならいつでも高いレベルのサーバや設定の親和性を実現することができます。以前のリリースとは異なり、起動中、フェールオーバ中のいずれであっても、インスタンスがクラスタメンバ間で均等に分散されていることをシステムが保証しようとします。そのため、クラスタのあるサーバが突発的に過負荷になることを避けています。

下表は新しい分散、移行、restart-in-place設定をまとめたものです。
属性名説明オプションデフォルト
distribution-policyJMSサービスインスタンスの個数と名前を管理する[Distributed | Singleton]Distributed
migration-policy高可用性構成時に挙動を制御する[Off | On-Failure | Always]Off
restart-in-place正常なWebLogic Serverでの停止したストアインスタンスの自動再起動を有効にする[true | false ]true
seconds-between-restarts停止したサービスのrestart-in-placeの試行の時間間隔(秒)[1 … {Max Integer}]30
number-of-restart-attempts停止したサービスの移行前に再起動を試行する回数[-1,0 … {Max Long}]6
initial-boot-delay-secondsサーバでアーティファクトのインスタンスを起動するまでに待機する時間(秒)[-1,0 … {Max Long}]60
failback-delay-seconds優先サーバへアーティファクトがフェールバックするまでに待機する時間(秒)[-1,0 … {Max Long}]30
partial-cluster-stability-secondsクラスタが「定常状態」であると認識するまでの待機時間。その時間に達するまでは、いくつかのリソースだけクラスタ内で開始することができる。この設定により、クラスタにはゆっくり立ち上がったり、停止したりする時間が与えられる。[-1,0 … {Max Long}]240

Runtime Monitoring

前述の通り、クラスタを対象にした場合、システムは自動的に1個(シングルトン)もしくは複数(分散)のインスタンスを1個の構成済みアーティファクトから生成します。これらのインスタンスは、一意に命名された、適切なランタイムMBeanが背後にあります。適切に有効範囲を設定されたサーバ(マルチテナント環境の場合はパーティション)のランタイムMBeanツリーの下で、アクセスしたり監視したりすることができます。
Figure 3. Console screenshot: Runtime Monitoring
上図はクラスタに向けられたSAFエージェントのランタイムインスタンスがクラスタメンバーのサーバ名で一意になるよう装飾されているところを示すスクリーンショットです。

Validation and Legal Checks

ユーザーがこれらの新しいパラメータの無効な組み合わせを設定できないようにするための法的チェックと検証ルールがあります。次の2つの表は、これら2個の新しいポリシーがそれぞれリソースタイプとサービスの種類によってサポートする組み合わせを示したものです。

サービス・アーティファクト分散ポリシー移行ポリシー
Off Always On-Failure
永続ストア Distributed
Singleton
JMSサーバ Distributed
Singleton
SAF エージェント Distributed
パス・サービス Singleton
メッセージング・ブリッジ Distributed
Singleton

上記の表では、適法な組み合わせは、JMSサービスの種類に基づいて記載されています。たとえば、パス・サービス(順序単位や作業単位と呼ばれる、人気のあるWebLogic Serverの順序付け拡張を活用する、メッセージのルーティング情報を永続化、保持するメッセージングサービス)は、サービスやサーバの障害があってもクラスタ内で高可用性を保つ必要があるシングルトンサービスです。そのため、唯一の有効かつ適法な組み合わせは以下の通りです。
  • distribution-policy:singleton
  • migration-policy:always
アプリケーションで使用されているリソースのタイプに基づいて導出されるルールがあります。たとえば、同一の分散送り先をホストするJMSサーバや常にインポート済み送り先をホストするSAFエージェントのルールの場合、distribution-policyにsingletonを指定しても意味がありませんし、許可されていません。
リソース・タイプSingletonDistributed
JMSサーバ(分散送り先をホスト)
SAFエージェント(インポート済み送り先をホスト)
JMSサーバ( シングルトン宛先をホスト)
パス・サービス
ブリッジ
こうした適法性チェックに違反する無効な組み合わせの場合、エラーになったり、ログメッセージに同様の内容を出力します。ある場合においては、デプロイメントサーバの起動に失敗することがあります。

Best Practices

改善された機能を十分に活用するには、最初に慎重にスケーラビリティと可用性の要件だけでなく、デプロイメント環境を確認して、あなたのJMSアプリケーションを設計してください。たとえば、アプリケーションをクラスタにデプロイするのか、マルチテナント環境にデプロイするのか、均一な分散送り先またはスタンドアロン(非分散)の宛先なのか、またはその両方を使用するかどうかを確認します。
上記の要件を確認してから、カスタム永続ストアを定義し、適切なJMSサービスの成果物と関連付けてください。この新しいHAパラメータが要件に応じて明示的に設定されていて(ガイダンスとして上記の表を使用してください)、JMSサービスのアーティファクトと、それに対応するストアの両方が同様に(同じクラスタ、マルチテナント環境の場合は同じリソースグループ、リソースグループ・テンプレートを)ターゲットにしていることを確認してください。
JMSの高可用性機構がWebLogic Serverのヘルス・モニタおよびシングルトン・サービスに依存していること、そしてクラスタ・リースと呼ばれる機構に依存していることを覚えておいてください。そのため、migration-policyがon-failureもしくはalwaysに設定されている場合、もしくはJMSアーティファクトのシングルトンインスタンスを作成したい場合は特に、有効なクラスタリーシング構成を設定する必要があります。WebLogic Serverは2個のリース方法(コンセンサス・リースとデータベース・リース)を用意していますが、ベストプラクティスとしてデータベース・リースを利用することを強く推奨します。
また、JMSアプリケーションは、多くの場合、直接トランザクションを使いますし、JMSの内部は暗黙的にトランザクションを使っているので、WebLogicのトランザクションシステムの可用性高めるように構成することを強く推奨します。WebLogicトランザクションの高可用性を担保するためには、デフォルト設定のままではなく、すべての管理対象サーバに明示的にリスニングアドレスとリスニングポート番号が構成されている必要があります。そうでなければ完全なトランザクションのHAサポートを得ることはできません。動的クラスタ構成の場合には、動的サーバテンプレート定義の一部として、これらの設定を構成することができます。
最後に、NodeManagerを使ってクラスタメンバのすべての管理対象サーバを起動することを推奨します。

WebLogic JMSに関する詳細情報は以下のドキュメントをご覧ください。
Oracle® Fusion Middleware Administering JMS Resources for Oracle WebLogic Server 12c (12.2.1)
http://docs.oracle.com/middleware/1221/wls/JMSAD/title.htm
その他のOracle WebLogic Server 12.2.1の新しい改善点は、以下のリンクのWhat's Newの章をご覧ください。
Oracle® Fusion Middleware What's New in Oracle WebLogic Server 12.2.1 12c (12.2.1)
What's New in Oracle WebLogic Server 12.2.1
http://docs.oracle.com/middleware/1221/wls/NOTES/whatsnew.htm#NOTES107

Conclusion

WebLogic JMSのこうした新しい拡張機能を使用して、一般的にはWebLogic JMSの構成、管理に関わる時間やコストを大幅に削減しつつ、拡張性や高可用性を向上し、結果として投資利益を向上しながら使いやすくなるというメリットを享受することができます。

[Java] Content Negotiation using 'q' Factors with JAX-RS 2/Java EE 7

原文はこちら。
https://blogs.oracle.com/theaquarium/entry/content_negotiation_using_q_factors

HTTPやコンテント・ネゴシエーションを考える場合、ほとんどの場合すぐにmime-typeのことを考えるでしょう。mime-typeは確かにクライアントとサーバ間でのHTTP通信で重要なものであってそれには同意しますが、HTTPにはもっときめ細かいコンテント・ネゴシエーション・メカニズムを持っており、それはrelative quality factor、略して'q' factorといいます。'q' factorはこれまでブラウザによるサポートが少なく、ほとんどの開発者があまり知られていませんが、q-factorを使うと、クライアントが複数のmime-typeをサポートし得る場合に、JPGよりもPNGを期待する、とすれば、期待するmime-typeに対するプリファレンスをクライアントが指定することができます。この'q' factorは基本的にmime-typeに紐付く0.0から1.0までの間の数で、より大きな数であればあるほど、より好ましいmime-typeであることを示します。同様に、サーバもまた、'qs' factor、もしくはquality of source factorを指定することによって、レスポンスとして送信するにはどのmime-typeが好ましいかを示すことができます。以下のリンクは、'q' factorについてベストと思われる説明です。
Content Negotiation Explained
http://www.apacheweek.com/features/negotiation 
この記事では、'q' factorが多少曖昧な性質であり、これまでのWebの世界では‘q’ factorベースのネゴシエーションをサポートするブラウザが少ないけれども、Apache httpdは、長い間強力に'q' factorをサポートしてきたという事実を指摘しています。
'q' factorベースのネゴシエーションはRESTで非常に価値があります。より堅牢なサービスAPIを書く手助けになる可能性があります。例えば、JSONもXMLもサポートするとして、クライアントが両方をサポートしている場合には、XMLよりJSONが好ましいと伝えることができるでしょう。同様に、柔軟に複数のコンテントタイプを処理できる、より強力なクライアントを作ることができます。パブリックREST APIを作成したり、全く予測できない様々なクライアントと関わったりする場合に、こうした機能が特に役立ちます。3rdパーティのサービスを使う場合、クライアント側でも同じことが言えます。ここでよいお知らせです。JAX-RS 2とJava EE 7では強力に'q' factorベースのコンテントネゴシエーションをサポートします。Sam SepassiがJAX-RS 2.0でのコンテント・ネゴシエーションに関するすばらしい記事を先頃Upしてくれました。
Content Negotiation in JAX-RS 2.0
https://dzone.com/articles/content-negotiation-in-jax-rs-20 
是非一読されて、この機能のよいユースケースがあれば利用を検討してください。

[Support, FMW] Fusion Middleware Lifetime Support Policy Update (December 2015)

原文はこちら。
https://blogs.oracle.com/proactivesupportEPM/entry/lsp_fmw_201512

Fusion Middlewareのライフタイム・サポート・ポリシーが先頃更新されました。
このドキュメントには、OracleのHyperionソフトウェアリリースに関連するライフタイムサポートの詳細が含まれており、Oracle Fusion Middleware 12c Certificationsに関わる情報が含まれています。
このドキュメントはOracle SupportのWebサイトからご覧いただけます。
ORACLE INFORMATION-DRIVEN SUPPORT
Oracle Lifetime Support Policy
Oracle Fusion Middleware 
http://www.oracle.com/us/support/library/lifetime-support-middleware-069163.pdf 
以下の製品群に関する新たな記載が含まれています。
  • Oracle Fusion Middleware 12.2.x
  • Oracle Business Intelligence Applications 11.1.1.10.1
  • Oracle GoldenGate Monitor 12.2.1
  • Oracle GoldenGate Veridata 12.2.x
以下製品に関する情報が更新されています。
  • Oracle Crystal Ball 11.1.2.x (サポート期間が延長されました)
Oracleのライフタイム・サポート・ステージやライフタイムサポートの特典を知りたい方、関連するOracleライフタイムサポートドキュメントにアクセスしたい方は、以下のWebページにアクセスしてください。
Oracle Lifetime Support Policies
http://www.oracle.com/us/support/lifetime-support/index.html
[参考]

[WLS, Database] ONS Configuration in WLS

原文はこちら。
https://blogs.oracle.com/WebLogicServer/entry/ons_configuration_in_wls

Oracle Real Application Clusters (RAC) やOracle Data Guard環境からノードやサービスを追加・削除する際に、高速アプリケーション通知(FAN)を使って、サービスやノードの通知イベントを提供します。
Oracle Notification SystemはFANのためのトランスポートとして利用されます。Oracle Notification Systemに関する詳細は以下のリンクからどうぞ。
Fast Application Notification (FAN)
Includes FANwatcher:
A utility to subscribe to ONS and view FAN events
Oracle White Paper | May, 2015
http://www.oracle.com/technetwork/database/options/clustering/overview/fastapplicationnotification12c-2538999.pdf
ONSの構成はWebLogic Server 10.3.6以後、Active GridLink(AGL)に対して利用可能です。最近のリリースでは、自動ONSが追加されました。それにより、もはや明示的なONSの構成が不要になり、設定しないことが推奨されていますが、いくつかのケースでは明示的にONSの設定を実施する必要があります。その理由の一つは、walletファイルとパスワードを指定する(これは自動ONSではできません)ことが必要だから、もう一つの理由は明示的にONSトポロジーを指定し、接続数に手を入れるためです。

ONS構成はWebLogic Server 12.2.1で機能強化されました。OnsNodeList値はシングルノードリストもしくはプロパティノードリスト(これはWebLogic Server 12.2.1で導入されました)のいずれかで設定する必要があります(両方ではありません)。WebLogic ServerのOnsNodeListに等号(=)が含まれている場合、シングルノードリストではなく、プロパティノードリストがあると想定されます。

シングルノードリスト

コロンで区切られたONSデーモンのリスンアドレスとポートのペアのカンマ区切りリスト

例:

instance1:6200,instance2:6200

プロパティノードリスト

この文字列は複数のレコードから構成されています。各レコードはキー=値のペアから構成され、改行文字( '\ n')文字で終了します。以下のキーを指定することができます。
  • nodes.<id>
    リモートONSサーバの一意のトポロジーを表すノードのリスト。 <id> はノードリストに対し一意の識別子を指定します。重複エントリは無視されます。任意のリストで構成されたノードリストには、同じクライアントに対し他のリストで構成されているノードや、重複する通知が送信・配信されるノードが含まれていてはいけません。リストのフォーマットは、ONSデーモンのリスニングアドレスとポートの組合せをコロンで区切ったもののカンマ区切りで並べたものです。
  • maxconnections.<id>
    ONSサーバで管理される最大同時接続数を指定します。<id> はパラメータが適用されるノードリストを指定します。デフォルト値は3です。
  • active.<id>
    true の場合、リストはアクティブで、自動的に設定個数のONSサーバへの接続が確立されます。 false の場合、リストは非アクティブで、アクティブリスト用の接続を確立できない場合にフェールオーバリストとしてのみ使われます。非アクティブリストは、一度に一つのアクティブなリストのためのフェールオーバとしての機能を果たすだけです。一度単一の接続がアクティブリストで再確立すると、フェールオーバリストは非アクティブに戻ります。リストがフェールオーバした後にクライアントが発行した通知のみがフェールオーバリストに送信されることに注意してください。 <id> はこのパラメータが適用されるノードリストを指定します。デフォルト値は true です。
  • remotetimeout
    各リモートサーバへの接続に対するタイムアウト期間(単位はミリ秒)。リモートサーバがこのタイムアウト期間内に応答しなかった場合、接続を閉じます。デフォルト値は30秒です。
walletfile と walletpassword を文字列でサポートしていますが、WebLogic Serverはこれらの値に対し、別の構成要素であるOnsWalletFileとOnsWalletPasswordEncryptedを有していることにご注意ください。

この例は上記のシングルノードリストと同じ意味です。
nodes.1=instance1:6200,instance2:6200
データソースを構成して2個のクラスタに接続し、FANイベントを両クラスタから受け取る場合、例えばData GuardとともにRACを構成しているような場合、2個のONSノードグループが必要です。具体的には以下のようです。
nodes.1=rac1-scan:6200
maxconnections.1=4
nodes.2=rac2-scan::6200
maxconnections.2=4
URLには各クラスタに対し別々のADDRESS_LISTが必要で、SCAN名を拡張するために、ADDRESSごとにLOAD_BALANCE=ONを設定することをお忘れなく。

管理コンソールを使用してActive GridLinkデータソースを設定する場合、作成フローの中でプロパティノードリストを指定することはできません。その代わりに、データソース作成後、ONSタブでONSノード値を変更する必要があります。次の図は、2つのRACクラスタ用に2つのグループを使うプロパティノードリストの例です。

次の図は、ONSの統計情報監視ページを示しています。 2つのエントリがありますが、それぞれ各ホストとポートのペアです。

次の図は、rac2 ONSノード・グループをテストした後の監視ページの例です。

WLSTを使用して、ONSパラメータを作成することもできます。 ONS値の複数の行を埋め込まれた改行で区切る必要があります。以下はActive GridLinkデータソースを作成するための完全なサンプルです。
connect('weblogic','welcome1','t3://'+'localhost'+':7001')
edit()
startEdit()
cd('/')
dsName='aglds'
cmo.createJDBCSystemResource(dsName)
cd('/JDBCSystemResources/' + dsName + '/JDBCResource/' + dsName)
cmo.setName(dsName)
cmo.setDatasourceType(‘AGL’)
cd('/JDBCSystemResources/' + dsName + '/JDBCResource/' + dsName + '/JDBCDataSourceParams/' + dsName )
set('JNDINames',jarray.array([String('jdbc/' + dsName )], String))
cd('/JDBCSystemResources/' + dsName + '/JDBCResource/' + dsName + '/JDBCDriverParams/' + dsName
cmo.setUrl('jdbc:oracle:thin:@(DESCRIPTION=(CONNECT_TIMEOUT=4) (RETRY_COUNT=30)(RETRY_DELAY=3) (ADDRESS_LIST=(LOAD_BALANCE=on) (ADDRESS=(PROTOCOL=TCP)(HOST=rac1)(PORT=1521)))(ADDRESS_LIST=(LOAD_BALANCE=on) (ADDRESS=(PROTOCOL=TCP)(HOST=rac2)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=otrade)))')
cmo.setDriverName( 'oracle.jdbc.OracleDriver' )
cmo.setPassword('tiger')
cd('/JDBCSystemResources/' + dsName + '/JDBCResource/' + dsName + '/JDBCConnectionPoolParams/' + dsName )
cmo.setTestTableName('SQL ISVALID')
cd('/JDBCSystemResources/' + dsName + '/JDBCResource/' + dsName + '/JDBCDriverParams/' + dsName + '/Properties/' + dsName )
cmo.createProperty('user')
cd('/JDBCSystemResources/' + dsName + '/JDBCResource/' + dsName + '/JDBCDriverParams/' + dsName + '/Properties/' + dsName + '/Properties/user')
cmo.setValue('scott')
cd('/JDBCSystemResources/' + dsName + '/JDBCResource/' + dsName + '/JDBCDataSourceParams/' + dsName )
cmo.setGlobalTransactionsProtocol('None')
cd('/JDBCSystemResources/' + dsName + '/JDBCResource/' + dsName + '/JDBCOracleParams/' + dsName)
cmo.setFanEnabled(true)
cmo.setOnsNodeList('nodes.1=rac1:6200\nnodes.2=rac2:6200\nmaxconnections.1=4\n')
cd('/SystemResources/' + dsName )
set('Targets',jarray.array([ObjectName('com.bea:Name=' + 'myserver' + ',Type=Server')], ObjectName))
save()
activate()
自動的に設定されたONSを使うことができるならばそれが望ましいのですが、ONSを明示的に構成する必要がある場合、WebLogic Server 12.2.1には正確に要件を指定することができます。

[Java, WLS] Deploying Java EE 7 Applications to Partitions from Eclipse

原文はこちら。
https://blogs.oracle.com/WebLogicServer/entry/deploying_java_ee_7_applications

新しいWebLogic Server 12.2.1 Multitenancy機能を使うと、それぞれが分離され、別々に管理可能なパーティションをドメインに作成することができます。開発の観点からすると、この分離は興味深い機会を開きます。例えば、それは彼らがURLや資源の相互アクセスの衝突を心配しなくても、同じアプリケーションで作業し、複数の開発者によって共有される単一のドメインを複数の開発者に共有し、同じアプリケーションに取り組むことができるにも関わらず、URLの衝突やリソースの相互アクセスを考える必要はありません。

パーティションのライフサイクルはその他のパーティションとは独立して管理することができるので、アプリケーションの立ち上げ・立ち下げのためにパーティションの起動・停止を他の共有ドメインユーザーに対して影響を与えずに実行できます。デプロイされたリソースやアプリケーションのすべてを含めてパーティションをドメインからエクスポート(取り外す)することも、全く別のドメインにインポート(取り付ける)し、正に同じパーティションを新しい場所にリストアすることができます。これにより、非常にわかりやすい方法で、様々な環境間で完全に実行可能なアプリケーションを共有し移動させることができます。
開発環境内でパーティションを利用するコンセプトの説明として、以下の動画をご覧ください。この動画ではJava EE 7のCargo Trackerアプリケーションを例に、様々なターゲットに対しEclipseからデプロイするという例です。
WebLogic Server 12.2.1 - Deploying Java EE 7 Applications to Partitions from Eclipse

Cargo Tracker - Applied domain-driven design blueprints for Java EE
http://cargotracker.java.net/
  • 最初の例では、CargoTrackerを既知のWebLogic Serverターゲットに、これもよく知られた「Run as Server」アプローチを使ってデプロイします。これはEclipseが構成済みサーバを起動し、アプリケーションをbase_domainにデプロイします。
  • 続く例は、"test"という同一ドメインに作成されたパーティションを使い、同一のアプリケーションコードベースをビルドし、mavenやweblogic-maven-pluginを使ってパーティションにデプロイしています。仮想ターゲットマッピングを使ってパーティションのアプリケーションにアクセスすると、想定通り動作する例を紹介しています。
  • デモの仕上げに、開発の変更を模倣するようCargoTrackerアプリケーションのIndexページを変更し、"uat"と呼ばれる別のパーティションにデプロイします。アクセスすると、ページの変更がなされていることがわかります。
  • この時点で、同じアプリケーションの3個のインスタンスすべては同一サーバ上で独立しており、同時にアクセスすることができます。基本的に単一ドメインで同一アプリケーションの複数インスタンスを独立してホストする方法を示しています。

[Security, Java, Support, WLS] CVE-2015-4852に対するパッチや回避策

Apache Commons Collectionライブラリに起因する脆弱性がセキュリティ・アドバイザリとして2015年11月10日(PST)に公開されましたが、その脆弱性に対応するパッチが出ています。
Oracle Security Alert for CVE-2015-4852
http://www.oracle.com/technetwork/topics/security/alert-cve-2015-4852-2763333.html
CVE-2015-4852 Patch Availability Document for Oracle WebLogic Server Component of Oracle Fusion Middleware (ドキュメントID 2075927.1)
https://support.oracle.com/rs?type=doc&id=2075927.1
パッチの適用が今すぐには難しい、という場合には、回避策が同じくMy Oracle Supportで公開されています。
CVE-2015-4852 Mitigation Recommendations for Oracle WebLogic Server Component of Oracle Fusion Middleware (ドキュメントID 2076338.1)
https://support.oracle.com/rs?type=doc&id=2076338.1
詳しくはMy Oracle Supportのドキュメントをご覧ください。

[Java, WLS, FMW] JMS 2.0 support in WebLogic Server 12.2.1

原文はこちら。
https://blogs.oracle.com/WebLogicServer/entry/jms_2_0_support_in

Java EE 7サポートの一環として、WebLogic Server 12.2.1はJMS 2.0仕様をサポートしています。

JMS 2.0は2002年にversion 1.1がリリースされてから初めてのJMS仕様に対するアップデートです。あまりにも長い間変わらずに残っているAPIが瀕死で使われずに成長してきたと思う人がいるかもしれませんが、異なる実装の数でAPI標準の成功を判断するのであれば、JMSは最も成功したAPIの一つです。

JMS2.0では、強調は、他のエンタープライズJavaテクノロジに加えられた使いやすさの改善に追いつくこと力点を置いています。今ではEnterprise JavaBeansやJava Persistenceなどの技術が、十年前に比べてずっと簡単に使用できるのに対し、JMSは成功したものの冗長なAPIとして代わらずに残ってきました。

JMS2.0における唯一にして最大の変化は、メッセージ送受信のための新たなシンプルになった新しいAPIの導入です。これにより、開発者が記述しなければならないコードの量が少なくなっています。WebLogic Server自体で実行するアプリケーションのために、新しいAPIは、リソース注入(resource injection)をサポートしています。これを使うと、WebLogic Serverは、アプリケーションをずっと簡素化しながら、JMSオブジェクトの作成と管理の世話をすることができます。

JMS2.0の非同期送信、共有トピックサブスクリプションや配信遅延にも変更が入っています。これらはWebLogic Serverの既存機能ですが、今では改善された標準APIを使って利用することができます。

JMS 2.0についてもっと知りたい方は、以下の15分間の動画プレゼンテーションをご覧ください。
15 minute audio-visual slide presentation


以下のOTN技術記事2個をお読みください。
以下の製品ドキュメントもご一読ください。
Oracle® Fusion Middleware Developing JMS Applications for Oracle WebLogic Server 12c (12.2.1)
Understanding the Simplified API Programming Model
https://docs.oracle.com/middleware/1221/wls/JMSPG/simplified_api.htm#JMSPG1034
お急ぎですか?それであれば、以下のエントリをご覧ください。
Ten ways in which JMS 2.0 means writing less code
https://java.net/projects/jms-spec/pages/JMS20MeansLessCode