[WLS] Using Apache Derby Database with WebLogic (the express way) by Frank Munz

原文はこちら。
https://blogs.oracle.com/emeapartnerweblogic/entry/using_apache_derby_database_with

詳細を忘れてしまって急いでいるときにいらついてしまうため、それを避けるための備忘録です。
WebLogic Server 12c(もしくはDerbyが付属する10.3.3以後のバージョン)やコンテンツ(例えば監視ツールやWLSTスクリプトなどを試す、とか)でデータベースが必要な場合には、次のようにしましょう。
  • WebLogicのサンプルとサンプルDBがインストールされていることを確認
  • 新しいドメインを作成
  • <Domain_Home>/binのsetDomainEnv.sh/cmdのDERBY_FLAGをfalseからtrueに変更
  • 管理サーバーを起動し、Derbyデータベースを起動
  • 以下の値を使い、データソースを作成
    • データベース名: medrec
    • ホスト: localhost
    • ポート番号: 1527
    • ユーザー名: medrec
    • パスワード: medrec
  • 接続プール作成後、テストを実施
これでできあがりです。詳細やレシピ、説明などは以下の書籍をご覧下さい。
Oracle WebLogic Server 12c: Distinctive Recipes (Architecture, Development and Administration)
http://www.amazon.com/dp/0980798019(Amazon US)
http://www.amazon.co.jp/Oracle-WebLogic-Server-12c-Administration/dp/0980798019/(Amazon JP)


元エントリのURLは以下の通りです。
Using Apache Derby Database with WebLogic (the express way)
http://www.munzandmore.com/2012/ora/derby-db-with-weblogic

[Support] オラクル(Oracle)製品の KROWN や 日本語のナレッジ、パッチ(patch)情報 へのクイックなアクセスはこのページをご利用下さい

原文はこちら。
https://blogs.oracle.com/supportjp/entry/quick_access_krown_patch

My Oracle Supportに、KROWN、ディレクトリ・サービス(KDS)、ナレッジ(Note)の日本語翻訳版、パッチ(patch)情報とダウンロード、動作保証情報やサポート・ポリシーなどへの近道となるページが出来た、ということです。是非原文をどうぞ!

[2012/12/28追記]
原文のURLが変更されていたので、変更を反映しました。

[Big Data] Oracle R Enterprise 1.3 released

原文はこちら。
https://blogs.oracle.com/R/entry/oracle_r_enterprise_1_3

Oracle R Enterpriseの最新リリースを発表できることを嬉しく思います。既にダウンロード頂けるようになっています。Oracle R Enterprise 1.3は以下のような機能が追加されています。
  • データベース内のモデル構築やモデルスコアリングのための新しい予測分析のインターフェース
  • データベース内のサンプリングやパーティショニング技術のサポート
  • 時系列分析や予測のためのデータ準備が容易になるよう、Oracle DatabaseのDATE型やTIMESTAMP型を透過的にサポート
RデータフレームのデータとOracle Databaseの表の間での整数型インデックスや順序の一貫性の保証により、Oracle R EnterpriseではOracle Databaseの表への透過的なアクセスが可能になっています。最新リリースにはプログラミングの効率化や性能向上に関する改善も施されています。

1.3での主要な追加機能は以下の通りです。
  • Enhanced Model Scoring
    新しいパッケージであるOREpredictを使うことにより、Rが生成したモデルのデータベース内でのスコアリングが可能になっています。サポートされるモデルは以下の通りです。
    • 線形回帰(linear regression (lm))
    • 汎用線形モデル(generalized linear models (glm))
    • 階層的クラスタ(hierarchical clustering (hclust))
    • k平均法クラスタリング(k-means clustering (kmeans))
    • 多項対数線形モデル(multinomial log-linear models (multinom))
    • ニューラルネットワーク(neural networks (nnet))
    • 再帰分割、回帰ツリー(recursive partitioning and regression trees (rpart))
  • Oracle Data Mining Support
    新しいパッケージであるOREdmでは、データベース内のOracle Database Mining予測分析とデータマイニングアルゴリズムへのRインターフェースを提供しています。サポートされるモデルは以下の通りです。
    • 属性評価(attribute importance)
    • デシジョンツリー
    • 汎用線形モデル
    • k平均クラスタリング
    • 単純ベイズ
    • ベクトルマシンのサポート
  • Neural Network Modeling
    新しいフィードフォワードのニューラルネットワークアルゴリズムをデータベース内で実行できます。
  • Date and Time Support
    Support for Oracle DatabaseのDATE型TIMESTAMP型をサポートし、日付計算、集計、百分率の計算、移動ウィンドウの計算といった分析機能を使いデータベース内での実行を可能にします。
  • Sampling Methods
    データベース内のサンプリングやパーティショニング技術をデータベースに存在するデータに対して利用できます。サンプリング技術は以下のものをサポートしています。
    • 単純無作為抽出(simple random sampling)
    • 系統的抽出(systematic sampling)
    • 層化抽出(stratified sampling)
    • クラスタ抽出(集落サンプリング、cluster sampling)
    • 割り当て抽出(quota sampling)
    • 偶発的抽出(accidental sampling)
  • Object Persistence
    RオブジェクトをOracle Databaseの「データストア」に格納したり復元できるようになりました。このデータストアはデータベース内にRオブジェクトをサポートするだけでなく、任意のタイプのRオブジェクトを組み込みR実行関数に渡すことが簡単にできます。
  • Database Auto-Connection
    組み込みRスクリプト内のコンテキストの資格情報を利用して、自動的にデータベース接続を確立する機能が搭載されました。これにより、便利で安全にOracle Databaseへの接続が可能になります。
Oracle Exadata Database MachineやOracle Big Data Applianceと組み合わせて利用する場合、Oracle R EnterpriseおよびOracle R Connector for Hadoopにより、Big Dataへのアクセスおよび分析のためのEngineered Systemsの完全な組み合わせを提供します。Oracle R Enterpriseを用いると、IT部門は重要な決定を下すための情報を提供しつつ、迅速に高度な分析ソリューションを展開できます。

新しいORE 1.3の機能については、次回以後で取り上げますのでお楽しみに。Oracle R Enterprise 1.3の機能に関する詳細は、New Features GuideもしくはReference Manualからどうぞ。
Oracle R Enterprise: New Features in Release 1.3
www.oracle.com/technetwork/database/options/advanced-analytics/r-enterprise/ore-new-features-1882823.pdfOracle R Enterprise 1.3 Reference Manual
www.oracle.com/technetwork/database/options/advanced-analytics/r-enterprise/ore-reference-manual-1882822.pdf

[EM] New Oracle Enterprise Manager 12c Book Now Available

原文はこちら。
https://blogs.oracle.com/csoto/entry/new_oracle_enterprise_manager_12c

この新しいOracle Enterprise Manager 12cの書籍の発行を発表できることを、非常に嬉しく思っています。印刷した書籍としても、e-bookの形式でもお買い求め頂けます。
これは世界発のEM12cの書籍です。
有用なEM12cの入門書で、理解しやすい英語で記載されています。詳細情報やお求めは、以下のリンクからどうぞ。
Oracle Enterprise Manager Cloud Control 12c: Managing Data Center Chaos
http://www.packtpub.com/oracle-enterprise-manager-12c-cloud-control/book


[FMW] Oracle SOA/BPM Suiteで継続的インテグレーション(Continous Integration)をやってみる(その0)

これはJPOUG Advent Calendar 23日目(12月23日)への参加記事です。
22日は @yamadamn さんによる、"WebLogicのExpressモード" でした。24日は Mototaka_Yoshida さんの"Let's Roll."です。

本日は、ロジ子の冬休みの自由研究課題(?)、「Oracleのミドルウェア製品、特にSOA/BPM製品群におけるContinuous Integration(継続的インテグレーション、以下CI)」の概要をご紹介します。詳細はこの冬休みに追加していきます。

CIの意味は今更感があるかと思いますので省略します(わからない方はGoogle先生やBing兄さんに聞いて下さい)。CIを実現するためのツールとして、JenkinsやHudson(この両者の間には色々大人の事情がありますが、そこには触れません)、Visual Studio Team Foundation Server/Serviceなどが有名です。

CIは、JavaやC#などでの開発で使うもの、と考えてしまいがちですが、別にそのような制限もしきたりもありません。というより、ビルド、デプロイ、テストを頻繁に回して不具合の混入を早い段階で探知し、品質向上を進めるための習慣・方法であるCIは、全てのシステム開発において取り入れるべきものと考えます。
では、Oracleのミドルウェア製品を使った開発でCIを実現するにはどうすればよいでしょうか。「開発」のイメージが強いOracle CoherenceやADF(Application Development Framework)はCIをイメージすることは容易ですが、Oracle SOA/BPM Suiteを用いた開発の場合は、どうでしょうか。

(1) 開発ツールとソース・リポジトリを連係する

Oracle SOA/BPM Suiteでの開発では、JDeveloperもしくはOracle Enterprise Pack for Eclipse(以下、OEPE)を使います。
[注]
Oracle Service Bus(以下、OSB)の場合、Webベースでの開発も可能ですが、チーム開発には適していません。
これらのIDE(統合開発環境)には、ソースコード管理ツールとかソース・リポジトリといった類のものと接続できるようになっています。つまり、作成・修正したSOAコンポジット、OSBの場合であればProxy Serviceなどをリポジトリにチェックインして、その後はCIツールにお任せする、という流れです。つまり、JavaやC#などでの開発と全く同じです。

(2) ビルド・デプロイする

antやmavenなどを使ってビルドし、テスト環境にデプロイするわけですが、Oracle SOA/BPM Suiteの場合、antでのビルドが可能なので、antスクリプトを作成して、CIツールから呼び出せるように仕込みます。
Oracle Service Busの場合は、通常、OEPEで作成したプロジェクト全体を開発環境のサーバーにデプロイしますが、この場合も同様、antで実行できます。antスクリプトから、WLSTを呼び出し、OSBのインポート機能で開発環境にデプロイするのが最も簡単です。プロジェクト単位にjarファイルを作成し、作成したjarをOSBにインポートします。
jarファイルでのインポートとなると、「プロジェクトが全て揃わないとだめなのか?」と考えてしまいますが、OSBのドキュメントにある通り、XQueryやXSLTなどだけでもインポートすることは可能ですし、必要なリソースだけインポートすることもできます。

(3) テストする

ビルドできるだけでは意味がないですね。テスト、テスト、テスト(大事なので3回言いました)。では、どうやってテストコードを書きましょう。。。
Oracle SOA/BPM Suiteでは、テスト・スイートを利用します。
Oracle® Fusion Middleware Oracle SOA Suite開発者ガイド 11g リリース1 (11.1.1.6.2)
SOAコンポジット・アプリケーションのテストの自動化
http://docs.oracle.com/cd/E28389_01/dev.1111/b56238/bp_testsuite.htm#CACFAGBC 
これを使ってテストケースを作成しておきます。もちろんantから呼び出せますので、自動化自体は問題ありません。OSBの場合はテスト・スイートを使うことはできませんが、リクエストメッセージに対するレスポンスメッセージを定義しておき、実際のレスポンスと一致するか否かを判断するように設定しておきます。
[注]
Oracle Enterprise Manager製品群の一つ、Application Testing Suiteを使って頂いたり、メッセージの監視にBusiness Transaction Managementなどを使って頂けると、Oracleとしては非常にありがたいです(もちろんCIを実践する上で必須ではないです)。
ここまでお読み頂くとおわかりの通り、Oracle SOA/BPM Suiteであっても、JavaやC#などと同じように、CIが可能なのです。今後のエントリで、Oracle SOA/BPM SuiteでのCIのポイントを記載していきます。みなさんもOracleのミドルウェアでCIやってみませんか?
[注]
テスト状況の可視化などはCIツールの機能なので、今回の自由研究では触れません。

[Java] New OBE Series: EJB 3.1 New Features

原文はこちら。
https://blogs.oracle.com/javatraining/entry/new_obe_series_ejb_3

(Anjana Shenoyによる寄稿です)
このOracle By Example (OBE) シリーズでは多くのEJB 3.1の新機能を取り扱っています。JSR 318(Enterprise JavaBeans 3.1)をベースにしているEJBテクノロジーの最新リリースであるEJB 3.1は、ますますテクノロジーがシンプルになり、多くの改善が施されています。EJB 3.1はJava EE 6プラットフォームでご利用頂けます。
EJB 3.1 New Features Series
https://apex.oracle.com/pls/apex/f?p=44785:24:23168164336116::::P24_CONTENT_ID,P24_PREV_PAGE:6418,24
JSR 318: Enterprise JavaBeansTM 3.1
http://jcp.org/en/jsr/detail?id=318
このシリーズは5つのパートに分かれています。
最後のOBEは直近に追加されたもので、このチュートリアルではEJB 3.1 Singleton Session Beanを作成し、BeanをJAX-WS Webサービスとして公開します。また、様々なWebサービス食らう案とを使ってこのWebサービスを利用するところも範囲としています。

是非無料の素晴らしいコンテンツをチェックして下さい。
Oracle Learning Library
http://apex.oracle.com/pls/apex/f?p=44785:1:0

[Java] Marek Potociar on JAX-RS 2

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

Java EE 7は最終ラップに入りました!先月末、JAX-RS 2 (JSR 339) とBean Validation 1.1 (JSR 349) は公開レビュー投票により採択され、二つのJSRが批准されました。InfoQでは、Marek Potociarは、JSR 339の共同スペックリード(MarekとSantiago Pericas-GeertsenがJAX-RSを引っ張るパワフルな2人)の一人であるMarek Potociarにインタビューしました。

MarekはJAX-RS 2の内容、意義と未来について語ってくれています。インタビューの全文は以下のリンクからどうぞ。
JAX-RS 2.0 and Bean Validation 1.1 First Java EE 7 JSRs to Win Public Approval
http://www.infoq.com/news/2012/12/javaEE7kicksOff

[JavaFX] WebFX: Running JavaFX as web page

原文はこちら。
https://blogs.oracle.com/brunoborges/entry/webfx_running_javafx_as_web

今週末JavaFXを勉強したかったので、数年前に初めてJavaFX Scriptを見たときのアイデアをコードにしてみようと決めました。そしてHTML5をサポートしているWebViewを使ってHTMLを実行するWebブラウザをコーディングし始めました。しかし、このブラウザにはもう一つのすてきな機能があるのです。FXMLファイルをHTMLのようにロードするのです。そんなわけで、HTMLでWebページを定義したり、WebKktで実行せずに、FXMLとCSS、JSを使ってWebページを定義でき、JavaFXアプリケーションとして実行することができるのです。

このプロジェクトをWebFXと呼んでおり、既にプロトタイプをGitHubにUpしています。このアイデアを説明する動画をYouTubeにUpしています。
brunoborges / webfx - Using JavaFX as the new HTML for web browsing
https://github.com/brunoborges/webfx
WebFX - JavaFX as web pages
https://www.youtube.com/watch?v=5yatMypNrTA

将来WebページにHTMLではなく、JavaFXを使うというのはどうでしょう?

[Java] Oracle JDK 7u10 released with new security features

原文はこちら。
https://blogs.oracle.com/henrik/entry/oracle_jdk_7u10_released_with

数日前にJDK 7 update 10がリリースされましたが、このリリースには以下の新しいプラットフォームのサポートが追加されています。
  • Windows 8 (x86-64)
    • ただし、Modern UIモード(以前はMetroと呼ばれていました)はサポートされていません
  • Windows 8上でのInternet Explorer 10
  • Mac OS X 10.8(Mountain Lion)
このリリースではJavaアプレットやwebstartアプリケーション用に強化されたセキュリティを提供する新機能も導入されています。具体的には…
  • Java runtimeが最新のセキュリティベースラインにアップデートされているかどうか追跡します。未署名のアプレットを古いバージョンのJavaで実行しようとした場合、警告メッセージが現れ、アプレット実行前にアップデートするように指示します。
  • Java runtimeにはハードコードされた推奨された使用期限日が含まれており、この日付より前に新バージョンがリリースされるものと想定しています。クライアントがこの日付以前にアップデートチェックができなかった場合には、Java runtimeがセキュアでないと想定し、アプレット実行に先立ち、ユーザーに警告を発します。
  • Javaコントロールパネルには、低ー中ー高ー非常に高(low-medium-high-very high)の基準で所望のセキュリティレベルに設定するオプションだけでなく、Javaアプレットやwebstartを完全に無効にするオプションが含まれています。このレベルは例えばJava runtimeが未署名のコードを実行させるような場合を管理し、そのような場合にユーザーに警告を表示します。
セキュリティ設定に関する詳細は以下のドキュメントでご覧頂けます。下図はスクリーンショットのサンプルです。
Setting the Security Level of the Java Client
http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/client-security.html

(訳注)
OS X 10.8の日本語ロケールでのスクリーンショットです。[設定]ボタンがずれているようですね…

JREやJDKの最新アップデートはOTNからご利用頂けます。このリリースに関する詳細はリリースノートをご覧下さい。
Java SE Downloads
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Update Release Notes
http://www.oracle.com/technetwork/java/javase/7u10-relnotes-1880995.html

[Java] JavaFX 2.2.4 Documentation

原文はこちら。
https://blogs.oracle.com/thejavatutorials/entry/javafx_2_2_4_documentation

JavaFX 2.2.4とJDK 7u10が木曜日にリリースされましたが、そのリリースドキュメントに加え、以下の新しい情報が提供されています。
その他のドキュメントはアップデートされ、小さなバグ修正が反映されました。

JavaFX 2.2.4はOTNからダウンロードできます。全てのチュートリアルとAPIに関するドキュメントは、以下のリンクからどうぞ。
JavaFXダウンロード
http://www.oracle.com/technetwork/java/javafx/downloads/index.html
JavaFX 2ドキュメント
http://docs.oracle.com/javafx

[Java] Great Java EE Concurrency Write-up!

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

ご存知のように、JSR-236(Concurrency Utilities for the Java EE platform)はJava EE 7へ追加される予定です。ただ、重要なAPIであるにも関わらず、その重要性がいまいち明らかではありません。これは、特に非同期処理、EJB 3の@Asynchronousアノテーション、Servlet 3の非同期サーブレット、JAX-RS 2 非同期処理などのような既存の機能で特に顕著です。DZone MVBのSander Makが自身のブログでJSR-236の動機と重要性について説明するという素晴らしいエントリをUpしています。
もっと重要なことですが、おそらくCDIやJava SEのFork/Joinの調整といったAPIの潜在的な問題について説明しています。以下のリンクから素晴らしい記事を一読下さい。
Modern concurrency and Java EE (Branch and Bound)
http://branchandbound.net/blog/java/2012/07/modern-concurrency-and-javaee/

[Java] Adopt a Java EE 7 JSR!

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

幅広いコミュニティの参加がテクノロジーの成功の鍵です。この事実を認識して、Adopt-a-JSRプログラムを立ち上げました。これは世界中の主要なJUGリーダーによるイニシアチブで、JUGメンバーをJSRに巻き込み、JSRをJUGや幅広いJavaのコミュニティに伝え、草の根の参加者を増やすことを目的としています。Chennai JUG、SouJava、London Java Community、BeJUG、GoJava、 Morrocco JUG、Campinas JUGやItpJavaといった数多くのJUGが既に参加されています。ご注意頂きたいのですが、このイニシアチブには開発者なら誰でも参加できます。JUGのリーダーである必要はありません。
今この時点でも、WebSocketやJSON, Caching、Concurrency for EE、JAX-RS2やJMS2を含め、手伝って頂ける数多くのJava EE 7のJSRがあります。詳細は以下のリンクからどうぞ。
Adopt-a-JSR for Java EE 7
http://glassfish.java.net/adoptajsr/.

[Database, Security] Announcing Oracle Audit Vault and Database Firewall

原文はこちら。
https://blogs.oracle.com/securityinsideout/entry/announcing_oracle_audit_vault_and

本日Oracleは、データベースアクティビティの監視と監査データ分析を一つのソリューションに統合する、新しいOracle Audit VaultとDatabase Firewall製品を発表しました。
Oracle Announces Oracle Audit Vault and Database Firewall
http://www.oracle.com/us/corporate/press/1885421

この新製品は、OSやディレクトリ、カスタムソースの監査をサポートすることにより、Oracle Databaseや他社製データベースを問わず保護を拡張します。以下でOracle Audit VaultとDatabase Firewallの主要機能をご紹介します。

管理コンソールが一つに統合されました


デフォルトのレポート


標準のコンプライアンスレポート


複数のソースタイプからのデータに基づくレポート


ストアドプロシージャの呼び出しに関する監査も可能です(ネットワーク上では把握できませんね)


監査の詳細情報


SQLインジェクション攻撃をブロック



アラートフィルタ条件を細かく設定できます



Oracle Audit Vault及びDatabase Firewallの新機能に関する詳細はオンデマンドでご覧頂けるWebcastからどうぞ。
Oracle Audit Vault and Database Firewall(日本語はまだです)
http://www.oracle.com/us/products/database/security/audit-vault-database-firewall/overview/index.html
Webcast - Introducing Oracle Audit Vault and Database Firewall
http://event.on24.com/r.htm?e=541890&s=1&k=E38B905176AAA94A27C94F87B829007A

[Linux] Announcement: DTrace for Oracle Linux General Availability

原文はこちら。
https://blogs.oracle.com/linux/entry/announcement_dtrace_for_oracle_linux

本日DTrace for Oracle Linuxが正式リリースされました。Oracle Linux Supportを契約されているお客様は、ULN (Unbreakable Linux Network) からダウンロード頂けます。
Unbreakable Linux Network
https://linux.oracle.com/pls/apex/f?p=101:3
DTraceは包括的な動的トレースフレームワークで、Oracle Solarisで最初に開発されたものですが、Oracle Linuxのお客様もとうとうご利用頂けるようになりました。DTraceはオペレーション上の情報を入手できるように設計されており、この情報を使ってOSのチューニングや問題解決することができます。
DTraceはOracle Linuxの開発者にパフォーマンス分析のためのツールを提供します。そのため、所有しているシステムの動作をより一層観測しやすくなりました。DTraceを使うとより高品質なアプリケーションを開発したり、ダウンタイムの削減やコストの削減、既存リソースの利用率を改善したりすることができます。

Oracle LinuxのDTraceに含まれる主要な機能とメリット

  • 性能ボトルネックを見つけるように設計されています
  • 動的に数多くのプローブポイントを持つカーネルを有効にして、ソフトウェアのサービス能力を改善することができます
  • リソース利用率やアプリケーションの性能を最大化することができます
  • 複数のソフトウェアレイヤを持つ複雑なシステム上であっても、すぐ、簡単に利用できます
既にOracle Linuxサポートの契約をお持ちなら、ULNチャネルからDTraceをダウンロードできます。専用のフォーラムも用意していますので、体験や質問はこちらでどうぞ。
Unbreakable Linux Network
https://linux.oracle.com/pls/apex/f?p=101:3
Forum: DTrace for Oracle Linux Tech Preview
https://forums.oracle.com/forums/forum.jspa?forumID=1398
[訳注]
フォーラムのタイトルはTech Previewとなっていますが、Preview版に限っていないようです。

[Java] WebSocket Samples in GlassFish 4 build 66 - javax.websocket.* package: TOTD #190

原文はこちら。
https://blogs.oracle.com/arungupta/entry/websocket_samples_in_glassfish_4

このブログでは、GlassFish 4 promoted buildsに統合されているJSR 356の参照実装(Tyrus)を使っていくつかエントリを投稿してきました。
GlassFish 4 promoted builds
http://download.java.net/glassfish/4.0/promoted
  • TOTD #183: Getting Started with WebSocket in GlassFish
  • TOTD #184: Logging WebSocket Frames using Chrome Developer Tools, Net-internals and Wireshark
  • TOTD #185: Processing Text and Binary (Blob, ArrayBuffer, ArrayBufferView) Payload in WebSocket
  • TOTD #186: Custom Text and Binary Payloads using WebSocket
  • TOTD #189: Collaborative Whiteboard using WebSocket in GlassFish 4
以前のエントリでは以下のようにWebSocketのエンドポイントを作成しました。
import javax.net.websocket.annotations.WebSocketEndpoint;

@WebSocketEndpoint("websocket")
public class MyEndpoint {
 . . .
JSR 356専門家グループの議論の結果、パッケージ名がjavax.websocket.*.に変更されました。
[jsr356-users] [jsr356-experts] Re: Package naming and arrangement
http://java.net/projects/websocket-spec/lists/users/archive/2012-12/message/34
そのため、アップデートされたエンドポイント定義は以下のようになります。
import javax.websocket.WebSocketEndpoint;

@WebSocketEndpoint("websocket")
public class MyEndpoint {
 . . .
POMファイルは以下のようになります。
<dependency>
 <groupId>javax.websocket</groupId>
 <artifactId>javax.websocket-api</artifactId>
 <version>1.0-b09</version> 
</dependency>
GlassFish 4 build 66を利用している場合は、次のようなダミーのEndpointFactory実装を用意する必要もあります。
import javax.websocket.WebSocketEndpoint;

@WebSocketEndpoint(value="websocket", factory=MyEndpoint.DummyEndpointFactory.class)
public class MyEndpoint {
. . .   

class DummyEndpointFactory implements EndpointFactory {
    @Override
 public Object createEndpoint() { return null; }
  }
}
GlassFish 4 build 66
http://dlc.sun.com.edgesuite.net/glassfish/4.0/promoted/glassfish-4.0-b66.zip
これは過渡的なものに過ぎず、以後のビルドでは不要になりますが、このやり方に関して不平があがっていることを見てきたので、この短いエントリがお役に立つのではないか、と思っています。
GlassFish 4 promoted buildで最新のJava EE 7実装を追いかけてらっしゃいますか?

[Java] Java SE Updates

原文はこちら。
https://blogs.oracle.com/java/entry/java_updates

世界中からのDukeのヘルパーが、全ての開発者向けにJavaを作成して忙しかったところです。以下にアップデートをまとめました。
注意
Java SE 6のパブリックアップデートの期限が2013年2月に迫っています。詳細は、以下のリンクをご覧下さい。

[Database, SAP] Oracle Database Appliance Now Certified by SAP

原文はこちら。
https://blogs.oracle.com/bhuang/entry/oracle_database_appliance_now_certified

Oracle Database 11g Release 2 (単一ノードもしくはRAC)で動作検証・保証されている、SAP NetWeaver 7.xベースの全てのSAP製品が、Oracle Database Applianceでの利用が可能になりました。ただし、以下の制限があります。
  • RAC One Nodeはサポート対象外です。
  • 3階層のSAPインストールのみです。
  • Oracle DatabaseだけがOracle Database Appliance上で実行できます。
    • SAPインスタンスをOracle Database Applianceにデプロイすることはできません。
    • SAPインスタンスは、任意のハードウェアアーキテクチャやOSの異なるミドルティアマシン上で実行する必要があります。 
  • Central Services (ASCS and/or SCS) を構成して、SAPのUnicodeインストールをOracle Database Appliance上で実行することができます。
  • SAP BR*ToolsはOracle Database Applianceをサポートしています。
SAP on ODA(Oracle Database Appliance)に関する詳細情報は、以下の資料をご覧下さい。

[Java] JSR Updates - Multiple JSRs migrate to latest JCP version

原文はこちら。
https://blogs.oracle.com/jcp/entry/jsr_updates_multiple_jsrs_migrate

JCP.Nextの動きの一環として、多くのJSRが先月、JCPプログラムの最新バージョンに移行しました。JCPプログラムを通じ、JSRの開発作業に対するコミュニティの透明性を増したり、参加者を増やしたり、俊敏性を向上させようとしてJCPがやってきたことに対し、これらのJSRのスペックリードや専門家グループはその進歩に貢献しています。

最新のJCPバージョンに移行することに関心のあるその他のJSRスペックリードは、11月13日現在、Merged Executive Committee (EC) を組み入れたJCP 2.9になっています。最新のJCPバージョンへの移行手順はSpec Lead Guideをご覧下さい。
Spec Lead Guide: Changing to the most recent JCP version
http://jcp.org/en/resources/change_jcp_version
JCP 2.8 JSRについては、2個のECがもはや存在しないため、既にJCP 2.9の下で効果的に運営されています。これがJCP 2.9に移行しているJCP 2.8 JSR(マージされたJSR)の違いです。移行を公式に実施するためには、パブリックチャネルで専門家グループに通知し、リクエストのメールをadmin at jcp.orgに送信して下さい。

[EM] Enterprise Manager Extensibility Exchange – Version 1.1 Now Available!

原文はこちら。
https://blogs.oracle.com/oem/entry/enterprise_manager_extensibility_exchange_version

Oracle OpenWorld 2012での発表以来、Enterprise Manager Extensibility ExchangeがEnterprise Managerエンティティ(プラグイン、コネクタ、デプロイメントプロシージャ、アセンブリ、テンプレートなどを含む)にアクセスするための情報源になりつつあります。
Oracle Enterprise Manager 12c Introduces New Tools and Programs for Partners
http://www.oracle.com/us/corporate/press/1858794
フィードバックを元にして、Exchangeを最近アップデートし、Enterprise Managerの管理者がOracleやパートナーが作成したプラグインやコネクタをより簡単に探せ、アクセスできるようになりました。

Exchangeを使うと、誰でも"Contribute"タブからEnterprise Managerエンティティに貢献できます。ここでエンティティの情報を入手します。また、承認されるとExchange上に情報が配置されます。Exchangeに関するコメントは、Enterprise Managerのフォーラムからお願いします。

OracleのパートナーはDevelopment ResourceタブのExtensibility Development Kit (EDK) を使ってプラグインを開発することができます。Oracleのパートナーやお客様は、プラグイン開発やデプロイに特化し、そのプラクティスを構築してきたパートナーを巻き込むこともできます。こうしたパートナーの一つにBlue Medoraがあります。このパートナーは効果的にEDKを使い非Oracle製品やサービスを管理するためのプラグインを開発してきました。
Blue Medora
http://bluemedora.com/em-products
次週、Blue Medoraがゲストブロガーとなって異種混在環境におけるデータセンター管理に関するすてきなお話をしてくれることでしょう。

[訳注]
執筆当時の次週なので、12月10日の週にBlue Medoraのエントリが掲載されることでしょう。

パートナーはOracle Validated Integration (OVI)プログラムによりプラグインの検証を実施することができます。
Oracle Validated Integration Knowledge Zone
http://www.oracle.com/partners/en/knowledge-zone/applications/validated-integration-030895.htm
NetAppは、最近Enterprise Managerプラグインを開発しこのプログラムで検証したパートナーです。2週間前のブログエントリをチェックすると、Enterprise Manager "OVI" プラグインの価値を説明しつつ、NetAppストレージプラグインの特長を紹介しています。NetApp Enterprise Manager Validated Integrationのデータシートは以下のリンクからご覧頂けます。
NETAPP Storage System Plug-in Validated Integration with Oracle Enterprise Manager 12c
http://www.oracle.com/us/partnerships/solutions-catalog/specialized-partners/ds-netapp-em12c-1853027.pdf
Enterprise Manager Exchangeは以下のリンクからどうぞ。
Enterprise Manager Exchange
http://www.oracle.com/goto/EMExtensibility

[FMW] Virtual Developer Day: Oracle Fusion Development - Dec 11

原文はこちら。
https://blogs.oracle.com/otn/entry/virtual_developer_day_oracle_fusion1

プレゼントを包んだり、靴下に詰め込むことはできませんが、Virtual Developer Day, Oracle Fusion Developmentに参加し、Oracle Fusion Developmentのスキルを向上させることは可能です。
Virtual Developer Day, Oracle Fusion Development(登録ページ)
https://oracle.6connex.com/portal/fusiondev/
この無料のオンラインイベントは3トラックで6個のセッションを開催します。さらに、ライブでのハンズオンもあります。全てOracle ADFを使った開発をテーマとしています。このイベントは2012年12月11日の火曜日に開催されます。主としてEMEA(ヨーロッパ、中東、アフリカ)の方々を対象としています。

[訳注]
全て英語での開催ですが、時差の関係上、日本在住の方も受講しやすいかと思います。
開催日時は以下の通りです。
  • 2012年12月11日(火)
    • 18:00 - 22:00 (JST)
    • 9:00 - 13:00 (GMT)
    • 10:00 - 14:00 (CET)
    • 12:00 - 16:00 (AST)
    • 13:00 - 17:00 (MSK)
    • 14:30 - 18:30 (IST)
是非登録ページで詳細(アジェンダ、セッションの概要など)を確認いただき、参加手続きをして下さい。


[misc] Season's Greetings and Happy Holidays from Oracle

毎年恒例のGreeting e-Cardが出来ました。
今年は(今年も?)DukeやTux、Engineered Systems(江草家のGreeting Cardではないです)、Oracle Team USAをモチーフにしたデザイン、の3種類です。

2012 Holiday E-Card - Duke and Tux
http://www.oracle.com/us/e-cards/ecard-dukeandtux-english-1879473.html

2012 Holiday E-Card - Engineered Systems
http://www.oracle.com/us/e-cards/ecard-engineeredsystems-english-1879452.html

2012 Holiday E-Card - Extreme Performance
http://www.oracle.com/us/e-cards/ecard-extremeperformance-english-1879465.html

[Cloud, EM] Amazon Web Services (AWS) Plug-in for Oracle Enterprise Manager

原文はこちら。
https://blogs.oracle.com/zerotocloud/entry/amazon_web_services_aws_plug

このエントリはSunil KunisettyDaniel Chanが寄稿しました。

Introduction and Architecture

クリティカルでないワークロードをAmazon Web Services (AWS)にデプロイする企業が増えるにつれ、オンプレミスのリソースに並び、AWSのリソース監視が重要になってきています。

この目的を達成するためのツールとして、Oracleは先頃Oracle Enterprise Manager Plug-in for Amazon Web Services (AWS)を発表しました。オンプレミスのOracle Enterprise Manager (EM12c)で、AWSリソースだけでなくプライベートクラウドのリソースも単一のツールで包括的に監視することができます。貴社のEM Cloud Control環境にプラグインをデプロイすることで次のような監視機能を使うことができます。
  • Amazon Web ServicesのEBS、EC2、RDSインスタンスの監視
  • AWSインスタンスの性能メトリックや構成情報の詳細
  • 監視時に設定した閾値に基づいたアラートや違反の発行
  • 収集したデータに基づくレポートの生成
Plug-inの利用者は、システム昇格、閾値ベースのインシデント生成、他社製アプリケーションとの連係などの豊富なEnterprise Managerの機能を利用することができます。このPlug-inを使ってのAWSの監視は、Amazon CloudWatch APIを介して実現しており、Plug-in利用者はAWSならびにCloudWatch APIへのアクセスのために資格証明を提供する必要があります。

このPlug-inをデプロイできるのはEM12c R2プラットフォームに限られており、エージェントのバージョンは最低12c R2である必要があります。以下にアーキテクチャの概要をまとめました。

主要な機能は以下の通りです。
  • 豊富かつ包括的なメトリックのリスト。メトリックをAWSの外部で動作するエージェントから収集
  • 重要な構成情報を収集
  • 図やAWSの構成情報を使ったカスタムホームページの作成
  • 監視データに設定した閾値ベースでのインシデントを生成

Discovery and Monitoring

AWSの資格証明(秘密鍵とアクセスキーID)と、ターゲットプロパティとしてリソース固有のプロパティを使うと、EM12cのUI、もしくはEM12cのコマンドラインインターフェース(EMCLI)から、AWSインスタンスをEM 12cに追加できます。以下は簡単に各AWSリソースに対応するターゲットタイプおよびプロパティを表にしました。
AWSリソースタイプ ターゲットタイプ リソース固有のプロパティ
EBS Resource Amazon EBS Service CloudWatchベースURI
EC2ベースURI
期間
ボリュームID
プロキシサーバおよびポート番号
EC2 ResourceAmazon EC2 ServiceCloudWatchベースURI
EC2ベースURI
期間
インスタンスID
プロキシサーバおよびポート番号
RDS ResourceAmazon RDS ServiceCloudWatchベースURI
RDSベースURI
期間
インスタンスID
プロキシサーバおよびポート番号

プロキシサーバとポート番号は任意で、エージェントがファイアウォール内にある場合にのみ必要です。
以下はEC2ターゲットを追加するemcliの例です。詳細はインストレーションガイドとReadMeを、Plug-inのデプロイとAWSインスタンスの追加はステップバイステップの手順書をご覧下さい。
./emcli add_target -name="<target name>" \
                   -type="AmazonEC2Service" \
                   -host="<host>" \
                   -properties="ProxyHost=<proxy server>;ProxyPort=<proxy port>;EC2_BaseURI=http://ec2.<region>.amazonaws.com;BaseURI=http://monitoring.<region>.amazonaws.com;InstanceId=<EC2 instance  Id>;Period=<data point period>"  \
                   -subseparator=properties="="

./emcli set_monitoring_credential -set_name="AWSKeyCredentialSet" \
                                  -target_name="<target name>" \
                                  -target_type="AmazonEC2Service" \
                                  -cred_type="AWSKeyCredential" \
                                  -attributes="AccessKeyId:<access key id>;SecretKey:<secret key>"
EmcliユーティリティはEM12cインストール先の<ORACLE_HOME>の下にあります。インスタンスを発見すると、ターゲットが"Amazon EC2 Service"の下の"All Targets"リストの下に現れます。

インスタンスが追加されると、これらのリソースタイプのカスタムホームページに移動できます。カスタムホームページには重要なメトリックだけでなく、重要な設定パラメータやインスタンスから発生したインシデントも含みます。設定パラメータをインスタンスプロパティとしてマッピングすることで、EM12cの構成検索機能を使うことで種々のAWSインスタンスを様々な切り口で分析したり、グループ化することができます。これらのリソースタイプでは、以下の設定プロパティおよびメトリックを収集できます。
リソースタイプ 設定プロパティ メトリック
EBS Resource ボリュームID
ボリュームタイプ
デバイス名
サイズ
アベイラビリティゾーン
レスポンス
Status
利用状況
QueueLength
IdleTime
ボリューム統計情報
ReadBrandwith
WriteBandwidth
ReadThroughput
WriteThroughput
オペレーション統計情報
ReadSize, WriteSize
ReadLatency
WriteLatency
EC2 Resource インスタンスID
オーナーID
ルートデバイスタイプ
インスタンスタイプ
アベイラビリティゾーン
レスポンス
Status
CPU利用状況
CPU Utilization
Disk I/O
DiskReadBytes
DiskWriteBytes
DiskReadOps
DiskWriteOps
DiskReadRate
DiskWriteRate
DiskIOThroughput
DiskReadOpsRate
DiskWriteOpsRate
DiskOperationThroughput
Network I/O
NetworkIn
NetworkOut
NetworkInRate
NetworkOutRate
NetworkThroughput
RDS Resource インスタンスID
データベースエンジン名
データベースエンジンのバージョン
データベースインスタンスクラス
割り当てられたストレージサイズ
アベイラビリティゾーン
レスポンス
Status
Disk I/O
ReadIOPS
WriteIOPS
ReadLatency
WriteLatency
ReadThroughput
WriteThroughput
DB利用状況
BinLogDiskUsage
CPUUtilization
DatabaseConnections
FreeableMemory
ReplicaLag
SwapUsage

Custom Home Pages

上記の通り、各ターゲットタイプのカスタムホームページがあり、基本的な構成情報や直近24時間の可用性、主要なメトリックや生成されたインシデントを表示します。いくつかスナップショットをご紹介しましょう。

EBS Instance Home Page:


EC2 Instance Home Page:


RDS Instance Home Page:


参考資料

  1. AWS Pluginのダウンロード
    http://www.oracle.com/technetwork/oem/grid-control/downloads/oem-aws-plugin-1852739.html
    http://www.oracle.com/technetwork/jp/oem/grid-control/downloads/oem-aws-plugin-1852739.html
  2. Oracle® Enterprise Manager User's Guide for Amazon Web Services
    http://download.oracle.com/otn/java/oem/emaws.pdf
  3. Amazon web services plug in for Oracle Enterprise Manager (SlideShare)
    http://www.slideshare.net/OracleEnterpriseManager/amazon-web-services-plug-in-for-oracle-enterprise-manager
  4. Oracle® Enterprise Manager Cloud Control Extensibility Programmer's Guide 12c Release 2 (12.1.0.2)
    http://docs.oracle.com/cd/E24628_01/doc.121/e25159/toc.htm
  5. Amazon Web Services
    http://aws.amazon.com/ (英語)
    http://aws.amazon.com/jp (日本語)

[Java] The New OEPE 12.1.1.2 is Out - ADF Development and More

原文はこちら。
https://blogs.oracle.com/oepe/entry/the_new_oepe_12_1

先週、OEPE 12.1.1.1.1にOracle Cloud向けアプリケーション開発機能がサポートされてリリースされたことを発表しました。
New Oracle Cloud support in OEPE
https://blogs.oracle.com/oepe/entry/new_oracle_cloud_support_in
http://orablogs-jp.blogspot.jp/2012/12/new-oracle-cloud-support-in-oepe.html
Oracle Cloud
https://cloud.oracle.com/
本日は、OEPE 12c (12.1.1.2)のリリースを発表できることをうれしく思います。このOEPE12cには、前リリースのOracle Cloudサポートに加えて、Webサービスのポリシーやセキュリティに関する改善、Eclipse Juno (3.8.1と4.2.1)でのADFアプリケーション開発に関する新機能、これまでの製品の不具合修正が含まれています。
このリリースに追加されている新機能の多くは、ADFコミュニティからフィードバックされた内容をベースにしたものであり、フィードバックどうもありがとうございます。まだまだフィードバック受付中です。それでは新機能をいくつかご紹介しましょう。
  • ダイアグラムでのタスクフローアクティビティに対するADFバインディングのサポート
  • Muti-nodeツリーコンポーネントバインディングのサポート
  • ADF Facesコンポーネントの自動ID生成
  • 通常のJSPエディターに加え、コンポーネント/バインディングのページアウトラインへのドラッグ&ドロップをサポート。
  • 改善されたWebサービスのポリシーやセキュリティ
新バージョンは以下のURLからダウンロードできます。フィードバックはOTNのフォーラムからお願いします。
Oracle Enterprise Pack for Eclipse (12.1.1.2)
http://www.oracle.com/technetwork/developer-tools/eclipse/downloads/index.htmlForum: Enterprise Pack for Eclipse
https://forums.oracle.com/forums/forum.jspa?forumID=578

[Solaris] Top 10 Oracle Solaris How To Articles

原文はこちら。
https://blogs.oracle.com/gman/entry/top_10_oracle_solaris_how

Oracle Solaris 11の技術記事を作成することは、ここOracleでの最優先事項の一つですが、Web統計を見て常に一喜一憂しながら、どの既存のコンテンツが人気があるかを確認しています。人気のあるコンテンツの上位10個をリストアップしました。どれがお気に入りですか?教えて下さいね。

順位
記事
1.
Taking your first steps with Oracle Solaris 11
http://www.oracle.com/technetwork/articles/servers-storage-admin/o11-112-s11-first-steps-524819.html
2.
How to get started creating Zones on Oracle Solaris 11
http://www.oracle.com/technetwork/articles/servers-storage-admin/o11-092-s11-zones-intro-524494.html
3.
How to script Oracle Solaris 11 Zone creation for a network in a box configuration
http://www.oracle.com/technetwork/articles/servers-storage-admin/o11-118-s11-script-zones-524499.html
4.
How to configure Oracle Solaris 11 using the sysconfig command
http://www.oracle.com/technetwork/articles/servers-storage-admin/o11-111-s11-sysconfig-524498.html
5.
How to update Oracle Solaris 11 systems using Support Repository Updates
http://www.oracle.com/technetwork/articles/servers-storage-admin/o11-018-howto-update-s11-1572261.html
6.
How to perform system archival and recovery with Oracle Solaris 11
http://www.oracle.com/technetwork/articles/servers-storage-admin/o11-091-sol-dis-recovery-489183.html
7.
Introducing the basics of IPS on Oracle Solaris 11
http://www.oracle.com/technetwork/articles/servers-storage-admin/o11-083-ips-basics-523756.html
8.
How to update to Oracle Solaris 11.1 using IPS
http://www.oracle.com/technetwork/articles/servers-storage-admin/howto-update-11dot1-ips-1866781.html
9.
How to set up Automated Installer services on Oracle Solaris 11
http://www.oracle.com/technetwork/articles/servers-storage-admin/howto-autoinstall-s11-1624122.html
10.
How to live install from Oracle Solaris 10 to Oracle Solaris 11 11/11
http://www.oracle.com/technetwork/articles/servers-storage-admin/howto-solaris-live-install-1599365.html

[SOA/BPM] Retrieve Performance Data from SOA Infrastructure Database

原文はこちら。
https://blogs.oracle.com/ateamsoab2b/entry/retrieve_performance_data_from_soa

以前以下のエントリで、BPELエンジンの性能統計を抽出、読み取って性能問題を解決するために利用する方法をご紹介しました。
Using BPEL Performance Statistics to Diagnose Performance Bottlenecks
http://thesoaman.blogspot.jp/2012/06/using-bpel-performance-statistics-to.html
Enterprise ManagerのBPELエンジンの統計の強みはリクエスト毎にブレイクダウンできるところにあるのですが、上記エントリでご紹介したようにBPELの性能統計情報には少々制約があります。
  • 統計は永続化されずにメモリに格納されていました。メモリのオーバーフローを避けるため、データはサイズ制限があるバッファに格納されています。統計エントリが上限を超えると、古いデータは消去され新しい情報が追記されます。そのため、最新のX件だけを保持できるのです。5時間前の統計情報は存在しえないでしょう。
  • BPELエンジンの性能統計情報には遅延時間を含むだけであって、スループットは含んでいません。
幸いにして、Oracle SOA SuiteはSOA Infrastructureデータベースと共に実行しており、数多くの性能データが当然そこに永続化されています。メモリ内のBPEL統計情報よりも粗いものではありますが、永続化していることによりその強みを持っています。
ここで、Oracle SOA Suite 11gのSOAインフラストラクチャデータベースに対して実行できる基本的なSQLクエリをご紹介します。これを使うと、特定期間の性能統計情報を取得できます。みなさんの環境に合わせて是非お試し下さい。

1. 非同期/一方向のメッセージの流入率

以下のクエリでは、特定期間中に一方向/非同期BPELプロセスに送信されたメッセージ数を、プロセス名や状態で整理して取得します。
select composite_name composite, state, count(*) Count from dlv_message
       where receive_date >= to_timestamp('2012-10-24 21:00:00','YYYY-MM-DD HH24:MI:SS')
         and receive_date <= to_timestamp('2012-10-24 21:59:59','YYYY-MM-DD HH24:MI:SS')
      group by composite_name, state
      order by Count;

2. BPELプロセスインスタンスのスループット

以下のクエリでは、特定期間中に作成された同期・非同期プロセスインスタンスの個数を取得します。このクエリでは全ての状態(実行中、失敗したものを含む)のインスタンスをリストにします。結果には全てのSOAパーティション全体のコンポジットの情報が含まれます。
select state, count(*) Count, composite_name composite, component_name,componenttype from cube_instance
       where creation_date >= to_timestamp('2012-10-24 21:00:00','YYYY-MM-DD HH24:MI:SS')
          and creation_date <= to_timestamp('2012-10-24 21:59:59','YYYY-MM-DD HH24:MI:SS')
        group by composite_name, component_name, componenttype 
          order by count(*) desc;

3. BPELプロセスインスタンスのスループットと遅延時間

このクエリでは、先ほどご紹介したものを手直しして、スループットだけでなく、BPELプロセスインスタンスの最大・最小・平均経過時間を取得できるようにしています。
select composite_name Composite, component_name Process, componenttype, state,
       count(*) Count,
      trunc(Max(extract(day    from (modify_date-creation_date))*24*60*60 + 
                extract(hour   from (modify_date-creation_date))*60*60 + 
                extract(minute from (modify_date-creation_date))*60 + 
                extract(second from (modify_date-creation_date))),4) MaxTime, 
      trunc(Min(extract(day    from (modify_date-creation_date))*24*60*60 + 
                extract(hour   from (modify_date-creation_date))*60*60 +  
                extract(minute from (modify_date-creation_date))*60 + 
                extract(second from (modify_date-creation_date))),4) MinTime, 
      trunc(AVG(extract(day    from (modify_date-creation_date))*24*60*60 +  
                extract(hour   from (modify_date-creation_date))*60*60 +  
                extract(minute from (modify_date-creation_date))*60 + 
                extract(second from (modify_date-creation_date))),4) AvgTime       
       from cube_instance
       where creation_date >= to_timestamp('2012-10-24 21:00:00','YYYY-MM-DD HH24:MI:SS')
          and creation_date <= to_timestamp('2012-10-24 21:59:59','YYYY-MM-DD HH24:MI:SS')
        group by composite_name, component_name, componenttype, state
          order by count(*) desc; 
4. 全て組み合わせてみる
3個のクエリを全て組み合わせ、さらに指定時間の範囲をパラメータ化してスクリプトをもうちょっと堅牢にしてみました。以下のスクリプトでは、指定時間の範囲をデータベースへのクエリ発行前に尋ねてくるようになっています。
accept startTime prompt 'Enter start time (YYYY-MM-DD HH24:MI:SS)'
accept endTime   prompt 'Enter end time (YYYY-MM-DD HH24:MI:SS)'

Prompt "==== Rejected Messages ====";
REM 2012-10-24 21:00:00
REM 2012-10-24 21:59:59
select count(*), composite_dn from rejected_message
       where created_time >= to_timestamp('&&StartTime','YYYY-MM-DD HH24:MI:SS')
         and created_time <= to_timestamp('&&EndTime','YYYY-MM-DD HH24:MI:SS')
    group by composite_dn;
    
Prompt "   ";
Prompt "==== Throughput of one-way/asynchronous messages ====";
select state, count(*) Count, composite_name composite from dlv_message
       where receive_date >= to_timestamp('&StartTime','YYYY-MM-DD HH24:MI:SS')
         and receive_date <= to_timestamp('&EndTime','YYYY-MM-DD HH24:MI:SS')
      group by composite_name, state
      order by Count;

Prompt "   ";
Prompt "==== Throughput and latency of BPEL process instances ===="
select state,
       count(*) Count,
      trunc(Max(extract(day    from (modify_date-creation_date))*24*60*60 + 
                extract(hour   from (modify_date-creation_date))*60*60 + 
                extract(minute from (modify_date-creation_date))*60 + 
                extract(second from (modify_date-creation_date))),4) MaxTime, 
      trunc(Min(extract(day    from (modify_date-creation_date))*24*60*60 + 
                extract(hour   from (modify_date-creation_date))*60*60 +  
                extract(minute from (modify_date-creation_date))*60 + 
                extract(second from (modify_date-creation_date))),4) MinTime, 
      trunc(AVG(extract(day    from (modify_date-creation_date))*24*60*60 +  
                extract(hour   from (modify_date-creation_date))*60*60 +  
                extract(minute from (modify_date-creation_date))*60 + 
                extract(second from (modify_date-creation_date))),4) AvgTime,
       composite_name Composite, component_name Process, componenttype
       from cube_instance
       where creation_date >= to_timestamp('&StartTime','YYYY-MM-DD HH24:MI:SS')
          and creation_date <= to_timestamp('&EndTime','YYYY-MM-DD HH24:MI:SS')
        group by composite_name, component_name, componenttype, state
          order by count(*) desc; 

[Java] End of Public Updates for Java SE 6

原文はこちら。
https://blogs.oracle.com/java/entry/end_of_public_updates_for

開発者やシステム管理者がJava SE 7へ移行するか、もしくはJava SEサポートプログラムを通じてアップデートを入手するか、いずれかの選択をしてください。
JDK 7 Adoption Guide
http://docs.oracle.com/javase/7/docs/webnotes/adoptionGuide/index.html
Oracle Java SE Support
http://www.oracle.com/us/technologies/java/standard-edition/support/overview/index.html
Java SE 7にアップデートされましたか?すばらしい機能(Fork/Join、NIO、Project Coin)を備えているJava SE 7は定期的にアップデートされ、パッチが提供されています。Java SE 7がリリースされてから1年以上経っており、以下のリンクからダウンロードできます。
Java SE Downloads
http://www.oracle.com/technetwork/java/javase/downloads/index.html
最後のJDK 6のリリースは2013年2月に予定されています。これは、2013年2月19日からはJava SE 6およびJava SE 5の新たなセキュリティアップデートやパッチ、修正版はMy Oracle Supportからのみご利用頂けるようになります。つまり、商用ライセンスが必要になる、ということです。

Java SE 7への移行準備がまだの場合、Oracleから以下のようなご提案があります。
Java SEのサポートに関するロードマップはJDK 6のパブリックアップデート終了に向けたタイムラインを反映しています。
Oracle Java SE Support Roadmap
http://www.oracle.com/technetwork/java/eol-135779.html
パブリックアップデートの終了日が2012年11月から2013年2月に延長され、JDK 7への移行のための猶予ができました。Java SE 6の旧リリースは継続してJava SE Archiveからご利用いただける予定ですが、新しいセキュリティアップデートやパッチ、修正などを入手するためには商用ライセンスをお求め頂く必要があります。

注意事項

Java SE 6のパブリックアップデートの終了は、Fusion Middleware 11g/12cで利用しているJava SE 6には影響しません。この発表によって、Fusion Middlewareで利用しているJava SEのサポート期間が影響を受けることはありません

詳細は…

OracleのサイトのJava SEのページへどうぞ。
Java Platform, Standard Edition (Java SE)
http://www.oracle.com/us/technologies/java/standard-edition/overview/index.html

[Certification] Introducing Exam Preparation Seminars on iPad

原文はこちら。
https://blogs.oracle.com/certification/entry/0760

Oracle Universityは新しいiPad用のOracle Training On Demandアプリケーションのリリースを発表しました。これは、Training On Demandの形式で提供しているOracle認定資格試験の準備セミナーを、iPadでいつでもどこでもご覧頂けるようになった、ということです。
Oracle トレーニング・オンデマンド
http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=600
このアプリケーションはWebブラウザバージョンを補助するものです。

機能

  • Oracle Training On Demandコースタイトルにアクセス
  • 高品質な動画の再生
  • 動画をダウンロードして、オフライン視聴が可能
  • インタラクティブな目次
  • コース検索
  • 利用可能なコースの検索およびプレビューが可能
アプリケーションはApple AppStoreから無料でダウンロードできます。
Oracle Training On Demand
https://itunes.apple.com/us/app/oracle-training-on-demand/id552620138?mt=8&ls=1

[Database, Certification] New Exam Prep Seminar for Program With PL/SQL!

原文はこちら。
https://blogs.oracle.com/certification/entry/08111

新しくなった認定資格試験準備コース「Program with PL/SQL」をご案内できることをうれしく思います。この新しい試験準備コースは単独コースとしてご利用頂けます。
Certification Exam Prep Seminar: Program with PL/SQL
http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=609&p_org_id=1001&lang=US&get_params=dc:D78709GC10,p_preview:N
Oracle PL/SQL Developer Certified Associateの認定資格の準備をしてらっしゃる方にとって、このコースは非常に有用でOracle Universityに所属するデータベースの最高の講師から役立つ情報や知識を得ることができます。この試験準備コースを受講すれば、試験準備がはかどり、認定資格試験の幅と奥行きがわかることでしょう。
Oracle PL/SQL Developer Certified Associate
http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=458&get_params=p_track_id:PLSQL
この手の試験準備は通常Oracle OpenWorldでのみご利用頂けましたが、Training on Demandの形式でご利用頂けるようになりました。もちろんオンラインビデオですから、必要に応じて開始、停止、巻き戻し、再確認などが可能です。さらにこのセミナーがOracle Training On Demandの形式ですので、Oracle Universityの新しい無料のiPadアプリケーションでiPadからご覧頂くこともできます。
Oracle Universityの新しいiPadアプリに関するエントリ
https://blogs.oracle.com/certification/entry/0760 (英語)
http://orablogs-jp.blogspot.jp/2012/12/introducing-exam-preparation-seminars.html(日本語)

試験準備コースの概要

[WLS, Database] Data Source Use of Oracle Edition Based Redefinition (EBR)

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

Edition-based redefinition (エディションベースの再定義) はOracle Database 11gR2の新機能で、アプリケーションの実行中にそのデータベースコンポーネントをアップグレードでき、停止時間を最小化あるいは排除することができます。データのアップグレード前、アップグレード後のビューが同時に存在でき、ホットアップグレード機能を提供することによって動作します。どのビューを特定のセッションで利用するかを指定できます。詳細は以下のリンクをご覧下さい。
Oracle Databaseのこの機能の利用にあたり、新しいWebLogic Serverの機能は不要です。データソースの構成中の初期化SQL(Init SQL)パラメータに、以下の文を指定するだけで。自動的に各接続プールの接続に設定されます。
SQL ALTER SESSION SET EDITION = edition_name 
この設定はWebLogic管理コンソールもしくはWLST(JDBCConnectionPoolParamsのsetInitSQLから)で設定できます。新規作成された物理的な各データベース接続に対して、このSQL文を実行します。データソースがデータベースの一つのエディションだけを参照していることに注意して下さい。
この機能を利用するため、以前のデータベースのエディションを参照するデータソースを使うアプリケーションの以前のバージョンと、最近のエディションのデータベースのエディションを参照するデータソースを使うアプリケーションの最近のバージョンがあるとします。WebLogic Serverのアプリケーションの複数バーションについて話を始めると、きっとWebLogic Serverの"Side-by-Side"もしくは"バージョン付き"デプロイ機能(プロダクション再デプロイメント機能)を使うことでしょう。プロダクション再デプロイメントについて詳細は以下のリンクをご覧下さい。
Oracle Databaseのエディションベースの再定義機能と、WebLogic Serverのプロダクション再デプロイメント機能を組み合わせると、各々個別に使うよりもより強力になり、アプリケーションをダウンタイムなしでフェールオーバーすることができます。
一つ落とし穴があります。バージョンの切り替えを実現するためには、バージョン付きのデータベースとアプリケーションを実行する必要があります。推奨するWebLogic Serverのアプリケーションのバージョニング方法は、シンプルにMANIFEST.MFファイルの"Weblogic-Application-Version"プロパティを追加することです(ここでデプロイメント時にバージョンを指定することができます)。データソースの構成方法の推奨は、earファイルもしくはwarファイルに格納されたパッケージ化されたデータソースディスクリプタを使って、全てを自己完結するというものです。
なお、次のような制限がありますのでご注意下さい。
  • パッケージ化されたデータソースではLogging Last Resource(LLR)の構成を取ることができないため、システムリソースを利用する必要があります。
  • global-transactions-protocolにEmulateTwoPhaseCommit(疑似2PC)を使用している場合、アプリケーションスコープでパッケージ化されたデータソースをバージョニングされたアプリケーションと共に使うことはできないため、グローバル・スコープを使う必要があります。
詳細は以下のドキュメントをご覧下さい。
あと、XAデータソースでは正しく動作しない、という既知の問題が1件ありますが、パッチが提供されています(パッチ番号:14075837)。

[ADF, Applications] ADF and Oracle E-Business Suite Integration Series Index

原文はこちら。
https://blogs.oracle.com/jruiz/entry/adf_and_oracle_e_business2

Oracle E-Business SuiteとADFの統合に関連する一連のエントリを筆者がまとめています。将来エントリが追加された場合には、このエントリに追記されるのかもしれません。
[訳注]
一部のエントリは過去に日本語化したものもあったので、そのリンクも追加しています。

その他の参考資料

[Java] New Oracle Cloud support in OEPE

原文はこちら。
https://blogs.oracle.com/oepe/entry/new_oracle_cloud_support_in

Oracle Enterprise Pack for Eclipse 12c (12.1.1.1.1) にJava Cloud Serviceでの開発のサポートが追加されています。これにより、ローカルとリモートのWebLogic Serverでのテストに加えて、Java Cloud Serviceのインスタンスに対して反復開発を行うことができます。クラウドツールの詳細は以下の通りです。
  • Oracle Cloud Service用のプロジェクト作成やサーバー構成テンプレート、ウィザードを用意しています。
  • クラウドにデプロイ、実行するアプリケーションを開発できます。もちろんOracle ADFの開発もできます。
  • 新しいログアナライザーでクラウドサーバーランタイムやデプロイメントログを確認できます。
  • 統合されたホワイトリスト・スキャンを使ってデプロイ前にアプリケーションをテストできます。ホワイトリストツールはas-you-type検証、プロジェクトビルド検証、コーディング違反を見つけ出すためのオンデマンドスキャンをサポートしています。アプリケーションソースやProblemsビュー、ホワイトリスト違反ビューににエラーを通知します。
  • Oracle Public Cloud管理コンソールに直接Eclipseからアクセスできます。
Oracle Enterprise Pack for Eclipse (OTN-US)
http://www.oracle.com/technetwork/developer-tools/eclipse/downloads/index.html

[misc] Oracle for SAP update最新ニュースレター公開

原文はこちら。
https://blogs.oracle.com/mamoruiwasaki/entry/oracle_for_sap_update%E6%9C%80%E6%96%B0%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9%E3%83%AC%E3%82%BF%E3%83%BC%E5%85%AC%E9%96%8B

Oracle for SAP最新ニュースレターが11月30日に公開されたそうです。
詳細は日本語の原文をどうぞ。
ご興味ある方は是非チェックしてください。

[FMW] B2B communication using IBM MQ

原文はこちら。
https://blogs.oracle.com/oracleb2bgurus/entry/b2b_communication_using_ibm_mq

Oracle B2B 11gは、標準でIBM MQ(WebSphere MQ)に接続してメッセージ交換できます。これはOracle B2BのJMS機能を使って実現します。

これにより、B2Bでのトレーディング・パートナーとの既存の通信機能のスタックに加え、MQを使うことができます。
B2BでIBM MQと接続する方法には2つあります。
  1. 資格証明を使う接続
  2. .bindingsファイルを使う接続
IBM MQに接続するための前提条件として、以下のライブラリをクラスパスに通しておく必要があります。
  • com.ibm.mqjms.jar
  • dhbcore.jar
  • com.ibm.mq.jar
  • com.ibm.mq.jmqi.jar
  • mqcontext.jar
  • com.ibm.mq.pcf.jar
  • com.ibm.mq.commonservices.jar
  • com.ibm.mq.headers.jar
  • fscontext.jar
  • jms.jar
上記のjarファイルをドメインのライブラリディレクトリ(<Domain_Home>/lib)に追加します。<Domain_Home>/libのjarファイルは、サーバー起動時に動的にクラスパスに追加されます。
[例]
<FMW_Home>/user_projects/domains/<ドメイン名>/lib
(訳注)原文の誤りを訂正して掲載しています。
もしくは、setDomainEnv.shの中に上記jarファイルの在処を追加することでも実現できます。

資格証明を使う接続
  • Outbound
    "Generic JMS"プロトコルを使ってトレーディングパートナーのデリバリーチャネルを構成します。
  • Inbound
    "Generic JMS"プロトコルを使って、内部デリバリーチャネルを構成します。
以下は詳細です。
パラメータ名説明
接続先名MQのキュー名
コネクション・ファクトリMQのキューマネージャー名
接続先プロバイダjava.naming.factory.initial=com.ibm.mq.jms.context.WMQInitialContextFactory;
java.naming.provider.url=<ホスト名>:<キューマネージャーのリスニングポート番号>/<MQチャネル名>;
ユーザー名MQ User Name
パスワードMQ password

.bindingsファイルを使う接続
前提条件として、MQサーバーで作成した.bindingsファイルを用意する必要があります(MQ Administratorが作成できます)。
以下の値をインバウンド、アウトバウンドのデリバリーチャネルにそれぞれ設定します。
パラメータ名説明
接続先名MQのキュー名
コネクション・ファクトリMQのキューマネージャー名
接続先プロバイダjava.naming.factory.initial=com.ibm.mq.jms.context.WMQInitialContextFactory;
java.naming.provider.url=file:///<.bindingsファイルの場所>;

[BPM] BPM 11g - Dynamic Task Assignment with Multi-level Organization Units

原文はこちら。
https://blogs.oracle.com/ateamsoab2b/entry/bpm_11g_dynamic_task_assignment

プロセスに渡されたデータのある値に基づいて、BPM11gのタスク割り当てに対し細かいレベルを持たせるという要件を何度か見てきました。通常、パラメトリック·ロールをまず使って、この要件を満たそうとするのですが、このエントリでは、より簡単な実装で柔軟な組織単位を使い、多くのユースケースを満足する方法をご紹介します。

ユースケース

タスク割当ては複数ユーザーを含む承認グループに実施します。ランタイムでは、入力データ中の場所を示す値を使って、タスクを最終的に割り当てるユーザーを決定します。
このケースでは、SOA管理ガイドのDemo Community、特に"szweig"、"mmitch"、"fkafka"の3名をメンバーとする"LoanAnalyticGroup"を使います。このシナリオでは、タスクを割当てます。入力データの場所が"JapanCentral"の場合は"szweig"に、"JapanNorth"の場合は"fkafka"に、"JapanSouth"の場合は"mmitch"にそれぞれタスクを、場所が"Japan"の場合は全員にタスク割り当てます。つまり、下図のような感じです。

プロセス

ヒューマンタスクが1個ある簡単なプロセスです。

Startアクティビティの出力データのアソシエーションでは、入力データに基づいて組織単位の事前定義変数を設定する必要があります(事前定義変数は出力データのアソシエーションでのみ設定できます)。
[訳注]
BPMの用語に合わせ、アソシエーションという言葉を使用しています。

そして、ヒューマンアクティビティの出力データのアソシエーションでは、組織単位の値をリセットして空にし、組織単位を必要としない後続のヒューマンアクティビティのために組織単位を使わないようにしておきます。

組織単位の設定

BPM Workspaceに管理者ユーザーとしてログイン(今回はweblogic/welcome1)し、[管理]オプションを選択します。
[ロール]で、プロセスのスイムレーン"ProcessOwner"に"LoanAnalyticGroup"を割り当てます。

[組織単位]で、組織をモデリングできます。[ルート組織単位] として"Japan"を、[子組織単位]として"Central"、"South"、"North"と図のように設定します。前述の通り、ユーザー"szweig"を"Central"に、"mmitch"を"South"に、"fkafka"を"North"に割り当てます。

プロセスのテスト

無効なデータ

まず、無効なデータでテストし、どんな結果になるかを確認しましょう。ここでは"X"を入力値とします。

インスタンスを確認すると、エラーの発生を確認できます。

組織単位のルートレベルを割り当てる

では、"Japan"を入力データとして指定した場合にどうなるか確認しましょう。

フロートレースを確認すると、タスクが割り当てられていることがわかります。

しかし、誰にタスクが割り当てられたのでしょうか。ユーザー"szweig"のBPM Workspaceを見てみましょう。

次は、"mmitch"

そして、"fkafka"も確認してみます。

ルートレベルの組織単位を使うと全てのユーザーにタスクが割り当てられていることがわかります。

組織単位の子レベルに割り当てる

では、入力データとして"Japan/North"を使ってテストしましょう。

"fkafka"のワークスペースを見てみると、タスクが割り当てられていることがわかります。彼は"JapanNorth"と関連づけられているからです。

 では、"szweig"のワークスペースはどうでしょうか。

タスクは割り当てられていません。"mmitch"も同様です。これは予想通りです。

まとめ

このエントリで、簡単に組織単位を使い多階層の動的なタスクルーティングを、パラメトリックロールに比べて一般的なユースケースで、より単純なソリューションで簡単に実装する方法をご紹介しました。

[Event] Oracle CloudWorld

「Oracle CloudWorld」というイベントを、東京でも2013年4月に開催予定だそうです。
既に以下のエントリをご覧の方は、最後に記載されていたので、ご存知かもしれませんね。
「Oracle Cloudを通して最高品質のエンタープライズ・ソリューションを届ける」──トーマス・クリアンが語るオラクルの新たなクラウド戦略
https://blogs.oracle.com/dbjp/entry/cloud_000250
プレスリリースも出ています。
Oracle Expands Commitment to Cloud with Oracle CloudWorld
http://www.oracle.com/us/corporate/press/1879424
このイベントは、オラクルのクラウド・ソリューションの全容を一挙に紹介するもので、以下の都市で開催予定です(日程が変更される場合もあります)。
  • Dubai, United Arab Emirates :2013年1月15日(登録開始しています)
  • Los Angeles, United States :2013年1月
  • Mexico City, Mexico :2013年2月13日
  • Sydney, Australia :2013年3月13日
  • Mumbai, India :2013年4月2日
  • Singapore, Singapore :2013年4月4日
  • Tokyo, Japan :2013年4月9日
  • Munich, Germany :2013年4月
  • London, England :2013年4月
  • New York City, United States 2013年4月
東京開催でのコンテンツはまだ決まっていないようですが、ご興味ある方はマークしておいて下さい。

# ハッシュタグは #ocwjp とかになるのかもしれませんね。

[Database] Oracle Database Information Now Available on the Oracle Mobile Application

原文はこちら。
https://blogs.oracle.com/databaseinsider/entry/oracle_database_information_now_available

Oracleのモバイルアプリでデータベースの情報を入手できるようになりました。


無料のOracleモバイルアプリを手に入れると、どこでもOracle Databaseチームとつながることができます。移動中でも、最新のOracle Databaseのニュース、ブログ、ソーシャルメディア、動画、などなど盛りだくさんのコンテンツをチェックできます。
Oracle Mobile Application
http://www.oracle.com/us/corporate/mobile-application/index.html
  • News—Oracle Databaseのニュースを追いかけることができます
  • Blogs—Oracle Databaseのブロガーとの進行中の会話に参加できます
  • Social—イベントやWebcast、その他の発表をOracle Databaseソーシャルチャネルからチェックできます
  • Video—Webcastやエグゼクティブの挨拶や基調講演、Oracle Databaseのお客様事例などの動画をご覧頂けます

[Essbase] Essbase Excel Add in - S.o.D

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

悲しいことに、もう一人の長い間の友人が、過去のプログラム(...とAOLのCD)がある、湿った、冷たいデータ空間に葬られようとしています。

The Essbase Excel Add In is about to be de-continued
(see  Doc ID 1466700.1) in January '13.

(すでにリリースされている)バージョン11.1.2.2.xのExcel Add Inは、この特定のプログラムの最後のリリースであると見なすべきでしょう。(Applied OLAPからすでに備わっているopenOffice Add Inとは別に独自のバージョンを持ち出さなければ)。
予想されたように、SmartViewがリリース11.1.2.1.102で機能的に同じことができるようになったため、それ以来、私たちの古い友人がいなくなるのはそれは単に時間の問題だったのです。
知られているとExcelが過去10年間Excel Add Inのことを知っており、かつ使ってきた私のような全てのユーザーにとって、これは損失です。
SmartViewが同等の機能を持ち、全くExcel Add Inよりも強力で、Planningフォームの機能やHFMへの接続といった機能などの面でオープンな技術かもしれません。
しかし、(個人的な視点からですが)エンドユーザーとEssbase Server間に何もない状態で、エンドユーザが自分のデータベースに同じように直接アクセスできるわけではありません。もちろん、どちらか一方のみが生き残ることができると予想していて、これがSmartViewだろうということは明らかだったので、これは驚くには当たりません。

と言っても、
ちょっと時間を下さい…


ありがとう、ありがとう、そして、将来に目を向けましょう。
来たるシーズンに何も計画がないならば、Essbaseとの対話のニーズに応じて、SmartViewの調査に費やすべきです。
クリスマスから新年までの期間には、新しいものをテストできる無限の可能性を秘めているそうですよ。
もしくは、「可能な限り早い時点でSmartViewに切り替える」というのを新年の決意にしましょう。

[Java] Non-blocking I/O using Servlet 3.1: Scalable applications using Java EE 7 (TOTD #188)

原文はこちら。
https://blogs.oracle.com/arungupta/entry/non_blocking_i_o_using

Servlet 3.0では非同期リクエスト処理が可能ですが、Traditional I/Oしか使えませんでした。そのため、アプリケーションのスケーラビリティに制限が出ることがあります。通常、アプリケーションではwhileループ内でServletInputStreamを読んでいます。
public class TestServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
         throws IOException, ServletException {     
 ServletInputStream input = request.getInputStream();
       byte[] b = new byte[1024];
       int len = -1;
       while ((len = input.read(b)) != -1) {
          . . . 
       }
   }
}
インバウンドデータがブロックされたり、サーバーの読み取り可能なスピードよりも遅く流れると、サーバースレッドはデータを待ちます。データをServletOutputStreamに書き出す場合でも同じことが起こりえます。

This is resolved in Servet 3.1 (JSR 340:Java EE 7の一部としてリリースされる予定です)ではこの問題をイベントリスナー、ReadListenerWriteListenerインターフェースを追加することによって解決します。リスナーは、コンテンツがブロッキングなしで読み取り可能、もしくは書き出し可能になった時点で起動されるコールバックメソッドを持ちます。
JSR 340: Java Servlet 3.1 Specification
http://jcp.org/en/jsr/detail?id=340
Interface EventListener
http://docs.oracle.com/javase/7/docs/api/java/util/EventListener.html
doGetを書き換えると、次のようになります。
AsyncContext context = request.startAsync();
ServletInputStream input = request.getInputStream();
input.setReadListener(new MyReadListener(input, context));
setXXXListenerメソッドを呼び出すということは、Traditional I/Oではなく、non-blocking I/Oを使うことを意味します。高々1個のReadListenerServletIntputStream に登録でき、同様に高々1個のWriteListenerServletOutputStreamに登録することができます。 ServletInputStream.isReadyServletInputStream.isFinished は新しいメソッドで、non-blocking I/O readの状況をチェックできます。ServletOutputStream.canWriteはデータをブロックせずに書き込めるかどうかを確認する新しいメソッドです。

MyReadListenerの実装は次のような感じです。
@Override
public void onDataAvailable() {
 try {
 StringBuilder sb = new StringBuilder();
 int len = -1;
 byte b[] = new byte[1024];
 while (input.isReady()
 && (len = input.read(b)) != -1) {
 String data = new String(b, 0, len);
 System.out.println("--> " + data);
 }
 } catch (IOException ex) {
 Logger.getLogger(MyReadListener.class.getName()).log(Level.SEVERE, null, ex);
 }
}

@Override
public void onAllDataRead() {
 System.out.println("onAllDataRead");
 context.complete();
}

@Override
public void onError(Throwable t) {
 t.printStackTrace();
 context.complete();
}
この実装には3個のコールバックメソッドがあります。
  • onDataAvailable コールバック・メソッド:データをブロックせずに読み出すことが可能な場合に呼び出される
  • onAllDataRead コールバック・メソッド:現在のリクエストを完全に読み込んだ際に呼び出される
  • onError コールバック・メソッド:リクエスト処理中にエラーが発生した場合に呼び出される
context.complete()onAllDataReadもしくはonErrorでデータの読み込み完了を通知するために呼び出されることにご注意ください。

現在のところ、データの最初のチャンク(塊)をサーブレットのdoGetもしくはserviceメソッドで読み取る必要がありますが、そのあと、残りのデータはnon-blocking方式でReadListenerを使って読み取ることができます。これにより、すべての読み取りデータはReadListenerでのみ発生することになります。

このエントリでご紹介したサンプルはここからダウンロードできます。実行する場合はGlassFish 4.0 build 64以降のものをお使いください。
GlassFish 4.0 build 64
http://dlc.sun.com.edgesuite.net/glassfish/4.0/promoted/glassfish-4.0-b64.zip
Promoted build
http://dlc.sun.com.edgesuite.net/glassfish/4.0/promoted/
JavaOneでのセッション「What's new in Servlet 3.1: An Overview」の動画とセッション資料は以下のリンクからどうぞ。
CON6793 - What’s New in Servlet 3.1: An Overview
https://oracleus.activeevents.com/connect/sessionDetail.ww?SESSION_ID=6793 

以下は参考資料です。
[訳注]
WebLogic Channelの過去記事も参考にどうぞ。
Java Servlet 3.1の新機能――クラウド対応のJava EE 7でどう変わるのか?【Java EEエキスパート・シリーズ】
https://blogs.oracle.com/weblogic_channel/entry/javaee_c116 

    [Exadata] Exadata Database Machine X3 - New technical whitepaper available

    原文はこちら。
    https://blogs.oracle.com/exadatapartnercommunity/entry/exadata_database_machine_x3_new

    Exadata Database Machine X3の技術的な特長や機能の詳細を記載した新しいテクニカルホワイトペーパーがダウンロードできるようになりました。
    A Technical Overview of the Oracle Exadata Database Machine and Exadata Storage Server
    http://www.oracle.com/us/products/database/exadata-tech-overview-wp-1867437.pdf

    [FMW] MAA Best Practices - Oracle Fusion Middleware

    Oracle Databaseに関わる方であれば、MAAという略語をどこかで聞いたことがあるかと思います。
    MAA = Maximum Availability Architecture
    ですね。可用性を最大にするためのアーキテクチャ、という観点でまとめたベストプラクティス集(ホワイトペーパー)です。
    Maximum Availability Architecture Best Practices
    OTN-US: http://www.oracle.com/technetwork/database/features/availability/maa-best-practices-155366.html
    OTN-JP: http://www.oracle.com/technetwork/jp/database/features/availability/maa-best-practices-155366.html 
    URLにdatabaseという文字が入っていますが、データベースだけを取り上げているわけではありません。例えばミドルウェアの場合、WebLogic Serverであれば、クラスタを構成するだけではなくて、TLogはどのように構成すべきか、とか、JDBCデータソースの設定や、RAC構成をとっているOracle Databaseと接続する上でどういった構成がベストなのか、など。SOA SuiteやBPM Suiteであれば、MDS(Meta Data Services)やDehydration Storeなどのサイジングに関するガイドなど。Disaster Recoveryに関するガイドもあります。

    全て英語なのがちょっと…という方もいらっしゃるかもしれませんが、適宜新しいホワイトペーパーが追加されていますので、是非定期的にチェックして下さい。
    MAA Best Practices - Oracle Fusion Middleware
    http://www.oracle.com/technetwork/database/features/availability/fusion-middleware-maa-155387.html
    [2012/12/20追記]
    日本語ページもあります。
    MAA Best Practices - Oracle Fusion Middleware(日本語)
    http://www.oracle.com/technetwork/jp/database/features/availability/fusion-middleware-maa-155387-ja.html
    一部はWebLogic ServerのLearn Moreページからリンクが張ってありますので、そちらからも辿ることができるようになっています。

    http://www.oracle.com/technetwork/jp/middleware/weblogic/learnmore/index.html

    [Certification] New Process For Receiving Oracle Certification Exam Results

    原文はこちら。
    https://blogs.oracle.com/certification/entry/07381

    2012年11月15日、Oracle認定資格試験の結果が直接Oracleの認定資格ポータルのCertViewからご覧頂けるようになりました。
    CertView
    (英語) https://education.oracle.com/pls/eval-eddap-dcd/ocp_interface.ocp_candidate_login?p_include=Y&p_org_id=1001&p_lang=US
    (日本語) https://education.oracle.com/pls/eval-eddap-dcd/ocp_interface.ocp_candidate_login?p_include=Y&p_org_id=70&p_lang=JA
    試験センターで試験終了後、CertViewにログインして「See My New Exam Results Now」もしくは「Print My New Exam Results Now」のリンクから、試験の得点を表示することができます。これにより、Oracleでの他の活動とより緊密に統合し、1カ所ですべての認証と試験履歴へアクセスを可能にします。さらに、このポリシーの変更により、データプライバシーの安全性を向上します。

    CertViewアカウントの認証

    1点、重要な作業があります。それは受験前にCertViewアカウントを認証することです。こうすることで、認可において問題がある場合に、テストの前に解決する猶予を持つことができます。手作業で認証する必要CertViewアカウントを手作業で認証するために最大3営業日を要することにご注意下さい。そのため、テスト前にこのプロセスを完了することが重要です。試験登録の前にPearsonVUEでWebアカウントを作成する必要があり、CertViewアカウントの認証前に、OracleのWebアカウントを作成する必要があります。CertViewアカウントはcertview.oracle.comでPearsonVUEのWebアカウントを作成してから30分以内で認証に利用できるようになります。
    PearsonVUE
    (英語) http://www.pearsonvue.com/oracle/
    (日本語) http://www.pearsonvue.com/japan/IT/oracle_index.html
    Oracle MyProfileの作成
    https://myprofile.oracle.com/EndUser/faces/profile/createUser.jspx

    試験結果を知るには

    • 受験前に、メールアドレスとPearson VUE社のプロファイルのOracle Testing IDを使い、certview.oracle.com  で認証する必要があります。CertViewアカウントを認証するには、OracleのWebアカウントが必要です。
    • 受験後、Oracleより試験結果がcertview.oracle.comより確認できる旨のメールが配信されます。
      • 既にCertViewアカウントを認証済みであれば、メールに記載されているリンクをクリックすると、CertView画面に到達し、ログインして、「See My New Exam Results Now」を選択して下さい。
      • 通知メールを受信する前にCertViewアカウントの認証が済んでいない場合、CertViewアカウントを認証してからでなければ試験結果を確認できません。認証にはOracleのWebアカウントユーザー名、パスワードと、Pearson VUE社のプロファイルに登録したメールアドレスとOracle Testing IDが必要です。
        • メール内のリンクをクリックし、CertViewアカウントを認証して下さい。
        • まだOracle Webアカウントをお持ちでない場合は、アカウントを作成することができます。
    アカウントの認証が終了すると、CertViewにログインし、「See My New Exam Results Now」から試験結果を確認したり、「Print My New Exam Results Now」から試験結果を印刷することができます。

    CertViewアカウントについてご質問があれば、いつものようにOracle認定資格に関するお問い合わせ窓口からどうぞ。
    Oracle Certification Program (OCP) Support Form
    http://education.oracle.com/pls/eval-eddap-dcd/OU_SUPPORT_OCP.home?p_source=OCP
    [訳注]日本語の場合、以下のリンクも参考にしてください。
    https://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=225&p_org_id=70&lang=JA#4

    よくあるお問い合わせなど(FAQ)