原文はこちら。
https://blogs.oracle.com/opal/entry/node_oracledb_goes_1_0
node-oracledb 1.0 add-on for Node.jsでは、以下の標準機能や拡張機能をサポートしています。
そして今、version 1.0に到達しました。では次は?ここからスタートです。数多くの重要で興味深いタスクが目の前にあります。開発プロセスから、ドライバの機能、配布に至るまでのプロジェクトのレビューからスタートします。このレビューで、次のタスクを決定します。ユーザーからのヒアリングは優先順位付けのために重要なので、躊躇せずにGitHubへのコメントをお願いします。
成長しているnode-oracledbミュニティ、特にコードや提案、議論でnode-oracledbに貢献してくださった方々への感謝をもって、この発表の結びとします。
https://blogs.oracle.com/opal/entry/node_oracledb_goes_1_0
Announcement
本日Oracleはnode-oracledb 1.0をリリースしました。これは高性能のOracle Databaseアプリケーションを実現するためのNode.jsのAdd-onです。Node.jsNode-oracledbはnpmjs.comやGitHubからご利用いただけます。
https://nodejs.org/
Oracle Database Driver by Oracle Corp. (npmjs.com)GitHubに今年頭に最初のコードをPushしてからほぼ毎月、新機能を加えながら、node-oracledbのアップデートをリリースしてきました。非常にエキサイティングなことに、すでに採用され、本番運用されている重要なアプリケーションで動作しているそうです。node-oracledbとしての8回目のリリースである今回のリリースは、これまでの中で最高のものであることをお約束します。
https://www.npmjs.com/package/oracledb
Oracle Database driver for Node.js (GitHub)
https://github.com/oracle/node-oracledb
node-oracledb 1.0 add-on for Node.jsでは、以下の標準機能や拡張機能をサポートしています。
- SQL and PL/SQL execution(SQL、PL/SQLの実行)
https://github.com/oracle/node-oracledb/blob/master/doc/api.md#sqlexecution - Fetching of large result sets(大きな結果セットのフェッチ)
https://github.com/oracle/node-oracledb/blob/master/doc/api.md#resultsethandling - REF CURSORs(REF CURSORのサポート)
https://github.com/oracle/node-oracledb/blob/master/doc/api.md#refcursors - Large Objects: CLOBs and BLOBs(CLOBやBLOBのラージオブジェクトの読み書き)
https://github.com/oracle/node-oracledb/blob/master/doc/api.md#lobhandling - Smart mapping between JavaScript and Oracle types with manual mapping also available(JavaScriptの型とOracle Databaseの型の自動マッピング、手動マッピングも可能)
https://github.com/oracle/node-oracledb/blob/master/doc/api.md#typemap - Query results as JavaScript objects or array (JavaScriptオブジェクトや配列としての問い合わせ結果)
https://github.com/oracle/node-oracledb/blob/master/doc/api.md#queryoutputformats - Data binding using JavaScript objects or arrays(JavaScriptオブジェクトや配列を使ったデータバインディング)
https://github.com/oracle/node-oracledb/blob/master/doc/api.md#bind - Transaction Management(トランザクション管理)
https://github.com/oracle/node-oracledb/blob/master/doc/api.md#transactionmgt - Inbuilt Connection Pooling(接続プーリング)
https://github.com/oracle/node-oracledb/blob/master/doc/api.md#connpooling - Database Resident Connection Pooling (DRCP)(データベース常駐接続プーリング)
https://github.com/oracle/node-oracledb/blob/master/doc/api.md#drcp - External Authentication(外部認証)
- https://github.com/oracle/node-oracledb/blob/master/doc/api.md#extauth
- Row Prefetching(行の再フェッチ)
https://github.com/oracle/node-oracledb/blob/master/doc/api.md#rowprefetching - Statement Caching(文キャッシュ)
https://github.com/oracle/node-oracledb/blob/master/doc/api.md#stmtcache - Client Result Caching(クライアントの結果キャッシュ)
http://docs.oracle.com/database/121/ADFNS/adfns_perf_scale.htm#ADFNS464
http://docs.oracle.com/cd/E57425_01/121/ADFNS/adfns_perf_scale.htm#ADFNS464 - End-to-end tracing(End-to-Endアプリケーションのトレース)
http://docs.oracle.com/database/121/TGSQL/tgsql_trace.htm#CHDBDGIJ
http://docs.oracle.com/cd/E57425_01/121/TGSQL/tgsql_trace.htm#CHDBDGIJ - 高可用性に関わる機能
- Fast Application Notification (FAN)(高速アプリケーション通知)
http://docs.oracle.com/database/121/ADFNS/adfns_avail.htm#ADFNS538
http://docs.oracle.com/cd/E57425_01/121/ADFNS/adfns_avail.htm#BABDBJDI - Runtime Load Balancing (RLB)(実行時接続ロード・バランシング)
http://docs.oracle.com/database/121/ADFNS/adfns_perf_scale.htm#ADFNS515
http://docs.oracle.com/cd/E57425_01/121/ADFNS/adfns_perf_scale.htm#CACBEACF - Transparent Application Failover (TAF)(透過的アプリケーション・フェイルオーバー)
http://docs.oracle.com/database/121/ADFNS/adfns_avail.htm#ADFNS534
http://docs.oracle.com/cd/E57425_01/121/ADFNS/adfns_avail.htm#BABCEDHA
- Fast Application Notification (FAN)(高速アプリケーション通知)
node-oracledbの入手方法
Oracle Technology NetworkのNode.js Developer Centerにnode-oracledbを始めるにあたって必要なすべてのリンクや情報があります。Node.js Developer Centerまずは、node-oracledbの手順に従ってスタートしてください。
http://www.oracle.com/technetwork/database/database-technologies/node_js/index.html
Installing node-oracledb
https://github.com/oracle/node-oracledb/blob/master/INSTALL.md
過去のリリースからの変更点
大きな変更点は以下の通りです。- LOBに対するクエリ、インサート、PL/SQLでのLOBバインド変数のサポートを追加し、CLOB、BLOB型のStreamインターフェースを実装しました
多くのレガシースキーマを取り扱う際に必要になっただけでなく、LOBのサポートもあって、アプリケーション開発者はOracle Database 12.1.0.2のJSONデータ型をVARCHAR2の最大長の制限を気にせずに利用できます。
お客様からは、いつLOBがサポートされるのか、早期アクセスしたい、と毎日のようにコンタクトしてこられましたが、ようやく、サポートしました。引き続き負荷テストやベンチマークを実施して機能強化に努めていきます。
LOBをnode-oracledbで利用する方法は、以下のドキュメントやサンプルをご覧ください。Working with CLOB and BLOB Data
Oracle DatabaseでのJSONサポートに関する一般的な情報は、以下のドキュメントもしくはJSONチームのブログエントリをご覧ください。
https://github.com/oracle/node-oracledb/blob/master/doc/api.md#lobhandling
node-oracledbのサンプル
https://github.com/oracle/node-oracledb/tree/master/examplesJSON in Oracle Database
http://docs.oracle.com/database/121/ADXDB/json.htm#CACGCBEG
http://docs.oracle.com/cd/E57425_01/121/ADXDB/json.htm#CACGCBEG
JSON in the Oracle database
https://blogs.oracle.com/jsondb/ Oracledb.fetchAsString
とexecute()
の新たなfetchInfo
プロパティを追加し、数字(number)、日付(date)、ROWIDを文字列としてフェッチできるようになりました。
日付(date)と数字(number)はアプリケーションレベルで、日付と数字、ROWIDは文レベルで利用可能です。これらの機能を使うと、JavaScriptの表現や変換における制限を克服することができます。- DATE型としてのDATE、TIMESTAMP、ローカルタイムゾーン付きTIMESTAMPをDML RETURNING(RETURNING INTO)型にバインドできるようになりました。
これらのデータ型を文字列としてバインドできます。 - 内部Oracleクライアント文字セットが常にAL32UTF8に設定されるようになりました。
これでもう外部でNLS_LANGを設定する必要はありません。ユーザーから報告された、マルチバイトデータに関連するバグは内部バッファの割り当てを正したことにより修正されました。NLSエクスペリエンスの一貫性が向上しました。 - テストスィートの資格証明やサンプルデータベースの資格証明を環境変数から設定できるようになりました。
自動的にプロビジョニングされた環境でのテストを支援するちょっとした変更です。テストスィートっはすでに大規模な件数をカバーしています。将来のリリースで機能強化を続けていきます。 - node-oracledbのバグ修正。これらは変更履歴に列挙しています。
Change Log
https://github.com/oracle/node-oracledb/blob/master/CHANGELOG.md
次は?
ダイナミックに変化する環境におけるオープンソースプロジェクトゆえ、我々のStatement of Directionは、簡単かつ柔軟な目標としていました。積極的にOracle Databaseの機能のサポートやプロジェクトに関係するユーザーから機能要求に取り組んでいます。我々の優先順位リストは、それぞれのポイントリリースで再評価します。そして今、version 1.0に到達しました。では次は?ここからスタートです。数多くの重要で興味深いタスクが目の前にあります。開発プロセスから、ドライバの機能、配布に至るまでのプロジェクトのレビューからスタートします。このレビューで、次のタスクを決定します。ユーザーからのヒアリングは優先順位付けのために重要なので、躊躇せずにGitHubへのコメントをお願いします。
oracle/node-oracledb : Issuesio.jsとの再マージやNode.js Foundationの構成など、Node.jsには大きな変化が起こっています。マージされたNode.jsのコードベースが安定し、Node.js FoundationのLTS(長期間サポート)の計画が固まると、node-oracledbのスケジュールの詳細について、より秩序だってお話することができるようになるでしょう。Node.jsやパートナーの皆様と一緒に最高のエクスペリエンスを提供するように取り組んでいます(テクニカルノートで、互換性レイヤNANのV2リリースは直近の数日間で行われたため、node-oracledb 1.0への取り込みには間に合いませんでした。そのため、最新、最先端のio.jsのサポートはnode-oracledbの将来バージョンにて実施する予定です)。
https://github.com/oracle/node-oracledb/issues
成長しているnode-oracledbミュニティ、特にコードや提案、議論でnode-oracledbに貢献してくださった方々への感謝をもって、この発表の結びとします。