2015年7月4日

[Database] Oracle Database In-Memory Bundle Patch 9 Released

原文はこちら。
https://blogs.oracle.com/In-Memory/entry/oracle_database_in_memory_bundle2

Database In-Memoryの最新のBundle Patchがリリースされました(#21053000、もしくは12.1.0.2 Bundle Patch 9 for Engineered Systems and DB In-Memory (June2015))。最新のBundle Patchの詳細情報はMy Oracle SupportのNoteをご覧ください。
12.1.0.2 Bundle Patches for Engineered Systems and DB In-Memory (Doc ID 1937782.1)
Bundle Patch 9固有の詳細情報は、以下のMy Oracle SupportのNoteをご覧ください。
Bug 21053000 - 12.1.0.2 Bundle Patch 9 for Engineered Systems and DB In-Memory (June 2015) (Doc ID 21053000.8)
https://support.oracle.com/rs?type=doc&id=21053000.8
Bundle Patchとは集積Patchであり、Bundle Patch 9にはBundle Patch 1からBundle Patch 8までのすべての修正Patchに加え、新しいPatchが含まれています。また、直近にリリースされたPatch Set Update(PSU)も含まれていますが、これにはBundle Patchが作成された時点での直近にリリースされたCritical Patch Update(CPU)が含まれています。このことがかなり懸念の対象になっていたので、詳細を記載したMy Oracle SupportのNoteをご紹介しておきます。
Exactaの箇所で怖がらないでください。Bundle PatchはExadata以外のDatabaseもサポートしています。Bundle Patch 9のNote(21053000.8)の文章に注意してください。
***
*** This patch includes fixes for both Engineered Systems and for DB In-Memory.
*** It can be used on both Exadata and non-Exadata systems, and can be used
*** for both RAC and non-RAC configurations. For RAC configurations the bundle
*** includes GI PSU fixes to be applied to the Grid home.
***
*** This patch includes all fixes from April 2015 GI PSU and DB PSU.
***

含まれているPSUについても言及があります。
CPU、PSU、Bundle Patchのパッチ適用方法の一つだけを使ってインストールすることができる、ということは重要なので覚えておいてください。この件は以下のMy Oracle SupportのNoteに記載があります。
Oracle Database - Overview of Database Patch Delivery Methods (Doc ID 1962125.1)
https://support.oracle.com/rs?type=doc&id=1962125.1
常に最新のBundle Patchを適用することをお勧めします。そして、この情報でBundle PatchがExadataプラットフォームだけのものといういかなる懸念も払拭ができることを願っています。

[Database] News on Oracle Database STANDARD EDITION 12.1.0.2

原文はこちら。
https://blogs.oracle.com/UPGRADE/entry/news_on_oracle_database_standard

Oracle Database 12.1.0.2 Standard Editionのリリースに関するニュースを求めて、同僚やお客様やパートナー様から、週に何度もメールやメッセージやコメントや電話やインスタントメッセージをもらいます。
まぁ、おちついてください。まだ出てませんよー。
とはいえ、重要なニュースが以下にあがっています。
Oracle Database 12c Standard Edition 2 (12.1.0.2) (ドキュメントID 2027072.1)
https://support.oracle.com/rs?type=doc&id=2027072.1
まとめますと、次のような感じです。
  • Oracle Database 12.1.0.1 SE/SE1のサポート期間が延長されます。
    "We will continue to provide full patching support for 12.1.0.1 for SE and SE1 for 6 months post the release of SE2 12.1.0.2. Quarterly Patch Set Updates and Critical Patch Updates for 12.1.0.1 SE and SE1 will be delivered for an additional two cycles, so quarterly patch updates for 12.1.0.1 will be available in October 2015 and January 2016"
    (SE 12.1.0.2がリリース後6ヶ月間は、12.1.0.1 SE、SE1へのパッチ提供は引き続き実施する予定です。2015年10月、2016年1月に、4半期ごとの12.1.0.1 SE、SE1のPatch Set UpdateやCritical Patch Updateを提供する予定です
  • Oracle Databse 12.1.0.2 Standard Edition 2(略称SE2)という新しい名前になって、SE、SE1にとって変わります。
    SE/SE1の最終バージョンはOracle Database 12.1.0.1になる予定です。
  • CPUソケット数に制限があります。
    "SE2 will run on systems with up to 2 sockets and will have the ability to support a two node RAC cluster"(SE2は最大2ソケットのシステムで動作します。2ノードRACクラスタをサポートします。) 
  • 最後に、まもなくリリースされることでしょう。
    "The release of Oracle Database 12.1.0.2 SE2 is planned for Q3 CY2015"(Oracle Database 12.1.0.2 SE2は2015年第3四半期でのリリースを予定しています。

[Java] CDI 2.0 Early Draft Released!

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

Java EE 6で初めて登場して以後、Java EEにおいてCDIは重要なAPIの一つになりました。その後、CDI 1.1と1.2という2回のマイナーリリースがありましたが、CDI 2では、これまでと比較してかなり大規模な変更がありそうで、Javaのための標準的な依存性注入(Dependency Injection、DI)の限界を押し上げる機会です。その目的のため、CDI 2のスペックリードが早期ドラフトをレビューのためにリリースしました。
JSR 365: Contexts and Dependency Injection for Java 2.0
https://docs.jboss.org/cdi/spec/2.0.EDR1/cdi-spec.html
早期参照実装ビルドもまもなく登場し、試すことができるようになります。現時点では、ドラフト仕様を読み、フィードバックする時間にしてください。CDI 2のスペックリードであるAntoine Sabot-Durandは、以下のエントリで早期ドラフトの内容をまとめ、フィードバックの方法を紹介しています。
CDI 2.0 Early Draft Review 1 released
http://www.cdi-spec.org/news/2015/07/03/CDI-2_0-EDR1-released/
上記エントリで言及されている変更には、Java SEのサポート、イベントオブザーバの順序(Event observer ordering)、非同期イベント(asynchronous event)が含まれます。
この早期ドラフトは、CDI 2の計画が何か、という観点で、まだスタートにたったところでしかなく、これからたくさん変更が発生するということを覚えておいてください。口を挟んでCDIが我々が期待する高いクオリティの標準であることを確認するよい機会です。JUGとしてAdopt-a-JSRプログラムを通じて実施することもできます。
Adopt-a-JSR
https://glassfish.java.net/adoptajsr/

2015年7月1日

[Database] Oracle Database In-Memory Certified by SAP

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

Oracle Database In-MemoryがSAP NetWeaver 7.xベースのすべてのSAP製品での動作が検証され、サポートされました。
SAP on Oracle
http://scn.sap.com/community/oracle
詳細については、SAP node 2178980をご覧ください。
http://service.sap.com/sap/support/notes/2178980

2015年6月27日

[misc] うるう秒

先日、2015年6月30日23時59分60秒(UTC、日本時間では2015年7月1日8時59分60秒)の閏秒に関する以下のエントリを紹介しました。
The 2015 Leap Second’s impact on the Oracle JDK
https://blogs.oracle.com/java-platform-group/entry/the_2015_leap_second_s
[Java] The 2015 Leap Second’s impact on the Oracle JDK
http://orablogs-jp.blogspot.jp/2015/06/the-2015-leap-seconds-impact-on-oracle.html
これに関連して、閏秒がOracle製品にもたらす影響をまとめたドキュメントがMy Oracle Supportに掲載されています。
Information Center: Leap Second Information for All Products - Database - Exadata - Middleware - Exalogic - Linux - Sun - Fusion - EBS - JDE - Siebel - Peoplesoft (ドキュメントID 2019397.2)
https://support.oracle.com/rs?type=doc&id=2019397.2
Fusion Middleware製品群については、以下のドキュメントをどうぞ(上記リンクからも到達します)。
Leap Second Vulnerability on Fusion Middleware Products (ドキュメントID 2024181.1)
https://support.oracle.com/rs?type=doc&id=1967141.1

2015年6月26日

[Java] HTTP/2 and Server Push

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

数週間前に最終化されたHTTP/2は、2個の関連する仕様(RFC 7540とRFC 7541)から構成されています。HTTP/2では、現在のHTTP 1.1と可能な限り互換性を持たせることを目標としているため、既存のHTTP 1.1セマンティクスを完全に失わないようにしています。HTTP/2の主要な目的は、ネットワークリソースをより効率よく利用しつつ、同時に全体のレイテンシを削減する方法を提供することにあります。このHTTP/2とHTTP/1.1の根本の違いはトランスポートレベル、つまりネットワークでどのようにビットを交換するかという部分に存在します。そして、それこそがHTTP/2の新たなバイナリフレームのプロトコルなのです。

HTTP/2は既存のHTTP/1,1セマンティクスに依存しており、同じHTTP動詞(GET、PUT、POSTなど)、同じHTTPステータスコードなどを使います。サーバーサイドJava開発者の立場からすると、実のところ何も変わりません。既存のアプリケーションをHTTP/2スタックを使った実行は透過的ですが、ワイヤレベルでの性能向上を確認することはできるでしょう。つまり、ほとんどのHTTP/2の機能はServlet APIレベルで公開されない(透過的)、ということです。しかし、このルールに対する例外が少々存在します。Server PushはこのHTTP/2の重要な機能の一つですが、この機能は、開発者が利用できることが理想的です。

Server PushはHTTP/2の新機能で、これを使うと通常のクライアントリクエストの応答として、サーバがプロアクティブに複数のリソースを投げつけることができます。そして、サーバーサイドアプリケーションは、特定のページに描画するためにどのリソースを必要としているかはわかっているので、クライアントがそうしたリソースを必要とするだろうと知る前に、プロアクティブにクライアントが要求するリソースをアプリケーションに送信することができます。

Servlet 4.0 Expert Groupでは、このServer Push機能をAPIレベルで公開する方法を検討・決定する必要があります。方策の一つとして、 Jetty 9.3のPushBuilder APIを基にしたGreg Wilkinsの提案からインスパイアされたものがあります。
Jetty 9.3.0.v20150612
https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00080.html
[servlet-spec users] [jsr369-experts] Re: Feedback on Greg's December 2014 push API Thread
https://java.net/projects/servlet-spec/lists/users/archive/2015-03/message/0
Gregは活発に活動しているServlet EGのメンバーであり、Jettyを開発した人でもあります。
Greg Wilkins
https://twitter.com/gregwilkins
彼はJava 0.9を使って20年前にJettyの開発をスタートしました。Jettyも20歳の誕生日なんですね。おめでとうございます!

Useful resources:


2015年6月25日

[Java] The 2015 Leap Second’s impact on the Oracle JDK

原文はこちら。
https://blogs.oracle.com/java-platform-group/entry/the_2015_leap_second_s

6月30日、公式UTC(Universal Coordinated Time)に閏秒が入ります。多くのテクニカルニュースサイトでは来る閏秒の様々なシステムへの影響に関する記事が書かれています。
Leap second: What is the extra second you will get on 30 June? (International Business Times)
http://www.ibtimes.co.uk/leap-second-what-extra-second-you-will-get-30-june-1507606
閏秒を心配するシステム管理者は Javaのタイムゾーン情報のアップデートやNTPのようなOSの時間ツールを使う際の標準的なメンテナンスの問題として着目すべきです。

Update Time Zone Information

タイムゾーンのアップデートは以前以下のエントリで取り上げました。
Understanding Time Zone Updater 2.0
https://blogs.oracle.com/java-platform-group/entry/understanding_time_zone_updater_2
システムをアップデートしようとしているシステム管理者はTime Zone Updater Tool (tzupdater)を使ってJDKを更新しさえすればよいのです。
Timezone Updater Tool
http://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html
その他、各JDKリリースにはアップグレードするユーザーのために、常に最新のタイムゾーン情報が含まれています。

Check the Operating System

Javaは時間をOSの時計に依存しています。各OSは閏秒のような時間変更を取り扱う方法がそれぞれ異なりますので、閏秒の取り扱いに関するOS情報の詳細をあたってください。Linuxユーザーの場合、Linus Torvalds氏とWiredのインタビュー"Linux’s creator wants us all to chill out about the leap second."(Linuxの作者は、うるう秒について落ち着いてもらいたいと思っている)をご覧ください。
LINUX'S CREATOR WANTS US ALL TO CHILL OUT ABOUT THE LEAP SECOND
http://www.wired.com/2015/01/torvalds_leapsecond/
Windowsの場合、詳細情報は以下のリンクからどうぞ。
KB-909614 How the Windows Time service treats a leap second
https://support.microsoft.com/en-us/kb/909614(英語)
うるう秒に関する Windows タイム サービスの処理
https://support.microsoft.com/en-us/kb/909614/ja(日本語)
AmazonやGoogleといったホスティング事業者は一日の間で時間を調整するようです。
Amazon finds its own way around leap second problem - by skewing time instead
http://www.zdnet.com/article/amazon-find-its-own-way-around-leap-second-problem-by-skewing-time-instead/
Got a second? A leap second that is. Be ready for June 30th!
http://googlecloudplatform.blogspot.jp/2015/05/Got-a-second-A-leap-second-that-is-Be-ready-for-June-30th.html

Some applications may still require restarts

閏秒に対応するため、Java APIは秒を0から61までの間の数として定義しているとはいえ、アプリケーションによっては、1分は60秒または1日は86400秒と仮定して短絡している可能性があります。
Date (Java Platform SE 8)
http://docs.oracle.com/javase/jp/8/docs/api/java/util/Date.html(日本語)
https://docs.oracle.com/javase/8/docs/api/java/util/Date.html(英語)
他システムと時間ベースのトランザクションを同期するシステムは、一方のシステムがアップデートしたり、他方がアップデートしなかったりすると、問題になる可能性があります。

2015年の閏秒は2015年6月30日23時59分60秒(UTC)に発生します。システム管理者の皆様におかれましては、この時間の間プロセスを監視し、しばしの間システムへの関心をいつもよりあげていただくことをおすすめします。