2016年7月22日

[JavaScript, Database] Node-oracledb 1.10.1 Released to NPM

原文はこちら。
https://blogs.oracle.com/opal/entry/node_oracledb_1_10_1

node-oracledbのパッチリリースをGitHubとNPMでご利用いただけるようになりました。
oracledb - Oracle Database driver by Oracle Corp.
https://www.npmjs.com/package/oracledb
1.10.0に間に合わなかった修正も含まれています。REF CURSORのメモリリークのリグレッションも、予期せぬREF CURSOR障害の場合における、これまでにあったメモリリークと同様に修正されています。

node-oracledb 1.10.1での主要な変更点は以下の通りです。
  • JavaScriptからIN OUTバインドにnull値を渡せないという問題を修正しました。
  • 1.10で導入されたREF CURSORに伴うメモリリークを修正しました。
  • REF CURSORをフェッチする際にエラーが発生する場合、メモリリークしていた不具合を修正しました。
  • テスト・スィート用にMocha構成ファイルを追加
    テスト・スィートのREADMEで、テストの追加方法に関する手順を更新しました。
    Test node-oracledb
    https://github.com/oracle/node-oracledb/blob/master/test/README.md
    副作用として、テストは番号順に実行します。
内部機構の改良は変更履歴に記載があります。
Change Log
https://github.com/oracle/node-oracledb/blob/master/CHANGELOG.md

Resources

node-oracledbに関する問題や質問があれば、GitHubに投稿してください。みなさまからの投稿がadd-onに対する作業のスケジューリングの助けになります。よろしくお願いします。
node-oracledb : Issues
https://github.com/oracle/node-oracledb/issues
node-oracledbのインストール手順
https://github.com/oracle/node-oracledb/blob/master/INSTALL.md
node-oracledbのAPIとユーザードキュメント
https://github.com/oracle/node-oracledb/blob/master/doc/api.md

[JavaScript, Database] Node-oracledb 1.10 has Enhanced Metadata

原文はこちら。
https://blogs.oracle.com/opal/entry/node_oracledb_1_10_has

node-oracledb 1.10がご利用いただけるようになりました。変更点をご紹介します。
oracledb - Oracle Database driver by Oracle Corp
https://www.npmjs.com/package/oracledb
  • Leonardoからのプルリクエストのおかげで、メタデータのクエリが機能強化されました。
    extended metaData #386
    https://github.com/oracle/node-oracledb/pull/386
    Leonardo
    https://github.com/leolmi
    我々が引き継いで実装を微調整することを親切にも許してくれました。
    新しいboolean型の oracledb.extendedMetaData 属性もしくは対応するexecute() オプション属性の extendedMetaData がtrueの場合、クエリのための追加のメタデータとREF CURSOR列がmetaDataオブジェクトで利用可能です。
    extendedMetaData
    https://github.com/oracle/node-oracledb/blob/master/doc/api.md#propdbextendedmetadata
    extendedMetaData(execute() : Options)
    https://github.com/oracle/node-oracledb/blob/master/doc/api.md#propexecextendedmetadata
    例として、DEPARTMENTS表が以下のような場合を考えます。
    SQL> desc departments
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     DEPARTMENT_ID                             NOT NULL NUMBER(4)
     DEPARTMENT_NAME                           NOT NULL VARCHAR2(30)
     MANAGER_ID                                         NUMBER(6)
     LOCATION_ID                                        NUMBER(4)
    
    このとき、node-oracledbでのクエリでは以下のような拡張メタデータを返します。
    [ { name: 'DEPARTMENT_ID',
           fetchType: 2002,
           dbType: 2,
           precision: 4,
           scale: 0,
           nullable: false },
         { name: 'DEPARTMENT_NAME',
           fetchType: 2001,
           dbType: 1,
           byteSize: 30,
           nullable: false },
         { name: 'MANAGER_ID',
           fetchType: 2002,
           dbType: 2,
           precision: 6,
           scale: 0,
           nullable: true },
         { name: 'LOCATION_ID',
           fetchType: 2002,
           dbType: 2,
           precision: 4,
           scale: 0,
           nullable: true } ]
    利用可能な属性はデータベース型によって様々であることがわかります。属性の説明はmetaDataのドキュメントにあります。
    metaData
    https://github.com/oracle/node-oracledb/blob/master/doc/api.md#execmetadata
    extendedMetaDataの値にかかわらず、よく使われる列名は常にmetaDataで利用できます。これは以前のバージョンから変わりません。
    メタデータのdbType と fetchType という属性値はそれぞれ、新たなDB_TYPE_*  定数と既存のnode-oracledb型定数で表現されます。
    Oracle Database Type Constants
    https://github.com/oracle/node-oracledb/blob/master/doc/api.md#oracledbconstantsdbtype
    Node-oracledb Type Constants
    https://github.com/oracle/node-oracledb/blob/master/doc/api.md#oracledbconstantsnodbtype
    メタデータのタイプをチェックする際、みなさんのコードでこれらの定数を使っている必要があります。
  • 余分なメタデータをオプションにし、デフォルトでオフにしたり、データ型として文字列ではなく数字を利用したりしている理由は、一般的なユースケース、標準機能としてのエクスペリエンス、パフォーマンス、などについて議論を繰り返した結果です。
  • この機能強化の結果、みなさんのアプリケーションのメンテナンスが容易になり、より強力になると思っています。
  • LOBを伴うクエリ時にLOBデータがストリーミングされない場合に、ガベージコレクタがクリーンアップできない問題を解決しました。
  • 名前付きバインドオブジェクトを位置によるバインド(bind-by-position)コンテキストで使用した場合に、エラー(新しいエラーNJS-044)を返すようになりました。以前は、想定される属性が見つからず、バインド設定がデフォルトで最終的にデフォルトのままだったので、ORA-06502のようなエラーを返していました。引き続き、位置によるバインド(bind-by-position)で無名オブジェクトを使用することもできます。以下はその例です。
  • var sql = "begin myproc(:1, :2, :3); end;";
    var binds = [ id, name, { type: oracledb.STRING, dir: oracledb.BIND_OUT } ];
    
    3番目の配列要素が無名オブジェクトです。
  • 根底にあるResultSetがクローズされる前にQueryStreamインスタンスでエラーイベントが発生した場合の不具合を修正しました。ユーザがエラー・イベントハンドラで接続をクローズしようとした場合、ResultSetが接続クローズを妨げるため、問題が発生する可能性がありました。
  • getRows呼び出し中にエラーが発生した場合、QueryStreamインスタンスの基礎となるResultSetインスタンスでパブリックなcloseメソッドを呼び出したとき不具合を修正しました。QueryStreamインスタンスがtoQueryStreamメソッドを使ってResultSetインスタンスから生成されると、このパブリックなメソッドはエラーを送出します。Cレイヤーのcloseメソッドの呼び出しは直接呼び出されます。
  • Pool._logStats をアップデートし、プールが正しくない場合にコンソールへ表示するのではなく、エラーを送出するようにしました。
  • GitHub Issue and Pull Requestテンプレートを追加しました。
    GitHub Issue and PR templates
    https://github.com/oracle/node-oracledb/tree/master/.github
  • 新しいInstant Client 12.1リリースに対応した、OS Xへのインストール手順を更新しました。
  • AIX、Solaris x64に対応したインストール手順を追加しました。
  • 基礎となるDPIデータアクセス層に対する機能強化を実施しました。
    https://github.com/oracle/node-oracledb/tree/master/src/dpi
    この機能強化はnode-oracledbを使っていないDPIの利用者とともに実施しました。この変更によって、潜在的な、ユーザーに見える、node-oracledbの機能強化のための基礎が築かれます。
    • SYSDBA接続を許可します
    • セッションのタグ付けを許可します
    • 文字セットと各国文字セットをDPI総へのパラメータを使って指定します
    • (既存の均質なプールに加え)異種混在のプールをサポートします
    繰り返しになりますが、これらはnode-oracledbに公開されません。

Resources

node-oracledbに関する問題や質問があれば、GitHubに投稿してください。みなさまからの投稿がadd-onに対する作業のスケジューリングの助けになります。よろしくお願いします。
node-oracledb : Issues
https://github.com/oracle/node-oracledb/issues
node-oracledbのインストール手順
https://github.com/oracle/node-oracledb/blob/master/INSTALL.md
node-oracledbのドキュメント
https://github.com/oracle/node-oracledb/blob/master/doc/api.md

2016年7月20日

[Java] Inside JShell

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

Yoshida Shinya (吉田真也)さん(またの名をきつねさん、@bitter_fox)はJEP 222、JShell、別名project Kullaに関するOpenJDKのコミッタです。JDK 9のJshellを使うと、開発者は、Java 9の学習やテストが簡単になるシェルインターフェースであるread–eval–print loop (REPL)を使うことができるようになります。以下の動画で、吉田さんはJShellを使ってコードをテストする方法、JShell APIを別のツールと一緒に使う方法、彼が作成したJavaFX plug-in for JShellを説明しています。是非デモをご覧ください。

(訳注)
この動画はJava Day Tokyo 2016で収録されたものです。

[Security, Support] July 2016 Critical Patch Update Released

原文はこちら。
https://blogs.oracle.com/security/entry/july_2016_critical_patch_update

2016年7月19日(PDT)に、Oracleは2016年7月度のCritical Patch Updateをリリースしました。
Oracle Critical Patch Update Advisory - July 2016
http://www.oracle.com/technetwork/security-advisory/cpujul2016-2881720.html
このCritical Patch Updateでは、(Oracle Database Server、Oracle E-Business Suite、Oracle Industry Applications、Oracle Fusion Middleware、Oracle Sun Products、Oracle Java SE、Oracle MySQLなどの)幅広い製品群に対する修正を提供します。
OracleはこのCritical Patch Updateをできる限り早期に適用されることを推奨いたします。このCritical Patch Updateのサマリーや分析情報はMy Oracle Supportの以下のサポート文書として公開しています(ご覧いただくためにはサポート契約が必要です)。
July 2016 Critical Patch Update: Executive Summary and Analysis (Doc ID 2161607.1)
https://support.oracle.com/rs?type=doc&id=2161607.1

[Java] JDK 8u101, 8u102, 7u111, and 6u121 Released!

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

JDK 8u101、8u102、7u111、6u121がご利用できるようになりました(7u111、6u121はサポート契約されているお客様のみ)。最新のJDKはJava SE Downloadページからダウンロードできます。
Java SE Downloads
http://www.oracle.com/technetwork/java/javase/downloads/index.html
このリリースでの機能強化、変更、修正点は、それぞれのリリースに対応するリリースノートをご覧下さい。
JDK 8u101 Release Notes
http://www.oracle.com/technetwork/java/javase/8u101-relnotes-3021761.html
JDK 8u102 Release Notes
http://www.oracle.com/technetwork/java/javase/8u102-relnotes-3021767.html
JDK 7u111 Release Notes
http://www.oracle.com/technetwork/java/javaseproducts/documentation/javase7supportreleasenotes-1601161.html#R170_111
JDK 6u121 Release Notes
http://www.oracle.com/technetwork/java/javase/overview-156328.html#R160_121
JDK 8u101には、ARM用JDK 8u101も含んでいます。この製品に関する情報は、Java™ Development Kit for ARM Release Notes 8 Update 101のページに記載があります。
Java™ Development Kit for ARM Release Notes 8 Update 101
http://www.oracle.com/technetwork/java/javase/8u101-arm-relnotes-3021773.html 
(訳注)
Critical Patch Updateの一環としてリリースされているため、JREのセキュリティベースラインが変更されています。ご利用のお客様はアップデートされることを推奨します。
  • [8] 1.8.0_101-b13
  • [7] 1.7.0_111-b13
  • [6] 1.6.0_121-b09
このリリースに含まれるセキュリティ修正は以下のページから確認できます。
Oracle Critical Patch Update Advisory - July 2016
Oracle Java SE Executive Summary
http://www.oracle.com/technetwork/security-advisory/cpujul2016-2881720.html#AppendixJAVA

2016年7月19日

[WLS] WebLogic Server 12.2.1.1.0 - Domain to Partition Conversion Tool (DPCT) Updates

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

Domain to Partition Conversion Tool (DPCT) はWebLogic Server(10.3.6、12.1.2、12.1.3、もしくは12.2.1)の既存ドメインをWebLogic Server 12.2.1ドメインのパーティションに移行するためのアシスタントツールです。
このDPCTは、独立した、しかしながら関連する2個の操作から構成されています。
  1. 既存のドメインを検査し、関連する構成やバイナリファイルを取り込んでアーカイブにエクスポートする。
  2. WebLogic Server 12.2.1で利用可能なパーティションへのインポートオプションを使って、エクスポートしたドメインのアーカイブをインポートし、新規パーティションを作成する。このパーティションには移行元からの構成リソースやアプリケーション・デプロイメントが含まれる。
    WebLogic Server 12.2.1.1.0リリースに伴い、DPCTの機能改善に伴うアップデートや変更がありました。アップデートされたドキュメントには、新機能、修正された不具合、既知の制限事項がまとめられています。
    Oracle® Fusion Middleware
    Using Oracle WebLogic Server Multitenant 12c (12.2.1.1.0)
    Migrating a WebLogic Server Domain to a Domain Partition
    https://docs.oracle.com/middleware/12211/wls/WLSMT/config_dpct.htm#WLSMT1695

    Key Updates

    a) WebLogic Server 12.2.1.1.0をインストールするとDPCTも配布されるようになりました
    当初DPCTは、OTNからのみダウンロードできる別のZipファイルとして配布されていましたが、12.2.1.1.0から、DPCTは製品インストールとともに配布されるようになっています。
    $ORACLE_HOME/wlserver/common/dpct/D-PCT-12.2.1.1.0.zip
    
    12.2.1.1.0のインストール環境からこのファイルを移行元ドメインのあるサーバへコピーし、展開して利用することができます。なお、DPCTはOTNからも依然としてダウンロードできます。
    Free Oracle WebLogic Server Installers for Development
    Domain To Partition Conversion Tool
    http://www.oracle.com/technetwork/middleware/weblogic/downloads/wls-for-dev-1703574.html

    b) 利用にあたってパッチ適用は不要です
    以前はDPCTを利用するにあたって、DPCTが生成したアーカイブをインポートするために移行先の12.2.1インストール環境にパッチを適用する必要がありましたが、この制限はなくなりました。

    c) プラットフォームサポートの改善
    Windows環境ではDPCT利用にあたって発生していた不具合は解決済みです。

    d) レポートの改善
    新しくなったレポートファイルは、エクスポートされた各ドメインに対して生成されます。移行元ドメインの詳細だけでなく、エクスポートされたアーカイブに取り込まれた構成リソースやデプロイメントの各々の詳細も列挙しますし、エクスポートできなかったリソースも記載されます。

    e) オーバーライド時に使うJSONファイルのフォーマット変更
    生成されたJSONファイルを使うと、インポート時に指定して移行先環境のカスタマイズを可能とするためのオーバーライド機構を提供します。このファイルの形式が正しく整形され、変更がより簡単、わかりやすくなりました。

    f) JSONオーバーライドファイルへのリソースの追加
    移行先ドメインに対するカスタマイズを支援するため、JDBCシステムリソース、SAFエージェント、メールセッション、JDBCストアといった追加のリソースを、生成されたJSONファイル内に構成可能なオブジェクトとして記述できるようになりました。

    g) 新しいexport-domainスクリプトの包含
    DPCT実行時に使うスクリプトを書き換え、新しいスクリプトとして追加しました。この新しいスクリプトはexport-domain.[cmd|sh]という名前で、ヘルプテキストがよりわかりやすく、スクリプトへの入力値に名前付きパラメータを利用できるようになりました。以前のスクリプトも後方互換のために提供しているので引き続き利用できますが、可能であれば新しいスクリプトを利用されることを推奨します。
    export-domain スクリプトの利用方法
    Usage: export-domain.sh -oh {ORACLE_HOME} -domainDir {WL_DOMAIN_HOME}
           [-keyFile {KEYFILE}] [-toolJarFile {TOOL_JAR}] [-appNames {APP_NAMES}]
            [-includeAppBits {INCLUDE_APP_BITS}] [-wlh {WL_HOME}]
           where:
                 {ORACLE_HOME} : the MW_HOME of where the WebLogic is installed
                 {WL_DOMAIN_HOME} : the source WebLogic domain path
                 {KEYFILE} : an optional user-provided file containing a clear-text passphrase used to encrypt exported attributes written to the archive, default: None;
                 {TOOL_JAR} : file path to the com.oracle.weblogic.management.tools.migration.jar file.
                 Optional if jar is in the same directory location as the export-domain.sh
                 {APP_NAMES} : applicationNames is an optional list of application names to export.
                 {WL_HOME} : an optional parameter giving the path of the weblogic server for version 10.3.6.Used only when the WebLogic Server from 10.3.6 release is installed under a directory other than {ORACLE_HOME}/wlserver_10.3

    Enhanced Cluster Topology and JMS Support

    上記に加え、エクスポート/インポート操作を再構築し、DPCTが数多くのWebLogic Serverの主要な機能をサポートするようになりました。
    移行元ドメインを検査してエクスポート・アーカイブを生成する際に、DPCTはリソースやデプロイメントのターゲットとして、移行先ドメインの適切なサーバやクラスタを指定できるようになりました。移行元ドメインの各サーバやクラスタに対し、対応するリソースグループオブジェクトが生成されたJSONファイルに作成されます。各リソースグループは専用の仮想ターゲットにターゲット指定されており、順に移行先ドメインのサーバやクラスタへターゲット指定できるようになっています。
    移行元のドメインにおける特定のWebLogic Serverインスタンスやクラスタをターゲット指定しているすべてのアプリケーション・デプロイメントとリソースは、移行先ドメインのリソースグループに対応します。
    この変更の結果、適切に新しい環境にマップできるようJSONファイルでターゲットを指定することによって、移行先ドメインが移行元のクラスタやサーバのリソースと異なる名前である状況であってもサポートできるようになりました。
    以前あった、シングルサーバおよびクラスタトポロジーでのJMS構成のエクスポートに関わる数多くの制限が解決済みですので、一般的なJMSのユースケースでDPCTを使った移行がサポートされるようになりました。ドキュメントには既存の既知の制限が列挙されています。

    2016年7月8日

    [Linux] Oracle Linux Kernel Developers at LinuxCon Japan

    原文はこちら。
    https://blogs.oracle.com/linuxkernel/entry/oracle_linux_kernel_developers_at

    Oracle Linuxのカーネル開発者が7月13日から15日にかけて開催されるLinuxCon Japanで講演します。
    LinuxCon Japan
    (英語)http://events.linuxfoundation.org/events/linuxcon-japan
    (日本語)http://events.linuxfoundation.jp/events/linuxcon-japan
    講演タイトルとスピーカーは以下の通りです。
    James Morrisは、他のカーネル開発者とならんで、Kernel Developer Panelにも参加予定です。