2016年5月27日

[JavaScript, Database] Node-oracledb 1.9.1 with Promises and Node 6 Support is on NPM

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

新しいnode-oracledb 1.9.1では、Promiseのサポート、Node.js 6(もちろん以前のリリースも)のサポート、そして安定性の向上のための修正を含んでいます。
Promises in node-oracledb
https://github.com/oracle/node-oracledb/blob/master/doc/api.md#promiseoverview
その他の機能については以下でご紹介します。1.9.0 developmentブランチに対してフィードバック下さった皆様に感謝します。みなさまのおかげでリリースできました。
node-oracledb 1.9.1はNPMからご利用頂けます。インストール、ドキュメントは以下のリンクからどうぞ。
oracledb - Oracle Database driver by Oracle Corp.
https://www.npmjs.com/package/oracledb
Installing node-oracledb
https://github.com/oracle/node-oracledb/blob/master/INSTALL.md
node-oracledb 1.9: Documentation for the Oracle Database Node.js Add-on
https://github.com/oracle/node-oracledb/blob/master/doc/api.md

node-oracledb 1.8から1.9.1での変更点

  • Promiseのサポート
    Promises in node-oracledb
    https://github.com/oracle/node-oracledb/blob/master/doc/api.md#promiseoverview
    全ての非同期関数はPromiseを返すことができます。非同期関数がコールバック関数パラメータを伴って渡されると、いつものコールバックフローを使いますが、コールバックパラメータを含めない場合、Promiseを返します。examplesディレクトリにサンプルがあります。promises.jsとwebapppromises.jsをご覧ください。
    oracle/node-oracledb/examples
    https://github.com/oracle/node-oracledb/tree/master/examples
    promises.js
    https://github.com/oracle/node-oracledb/tree/master/examples/promises.js
    webapppromises.js
    https://github.com/oracle/node-oracledb/tree/master/examples/webapppromises.js
    Node.jsの Promise を使うと、多くのNode.jsユーザーが快適なプログラミング・パラダイムを実現できます。node-oracledb用のPromiseラッパーを自作され、NPMで公開されていた方もいらっしゃいますが、公式に実装したのでPromiseを皆様が利用できるようになっています。PromiseのデフォルトライブラリをNode 0.12、4、5、6で使っていますが、ご自身の実装を取り込みたい場合には簡単にオーバーライドできます。これはネイティブ・ライブラリがないNode 0.10をお使いの場合に有用です。
  • ResultSetの新しいメソッド toQueryStream() 
    toQueryStream()
    https://github.com/oracle/node-oracledb/blob/master/doc/api.md#toquerystream
    Readable Streamsを使ってREF CURSORSをフェッチします。サンプルは以下をご覧ください。
    refcursortoquerystream.js
    https://github.com/oracle/node-oracledb/tree/master/examples/refcursortoquerystream.js
    トップレベルのクエリからResultSetsと一緒に使うこともできます。ResultSetsをストリームに変換します。しかし。既存のconnection.queryStream() メソッドのほうが、このシナリオではより使いやすいでしょう。
    connection#queryStream()
    https://github.com/oracle/node-oracledb/blob/master/doc/api.md#querystream
  • pool.terminate()connection.release() それぞれに対応するエイリアス:pool.close() と connection.close() 
    pool.close()
    https://github.com/oracle/node-oracledb/blob/master/doc/api.md#poolclose
    connection.close()
    https://github.com/oracle/node-oracledb/blob/master/doc/api.md#connectionclose
    これを使うと、接続のリリース、接続の切断、ResultSetのクローズに使用するメソッドを覚えやすくなるでしょう。単にclose()を使えばよいのです。

  • 実験的なクエリquerystream._close()メソッドの追加
    これを使うと全てのデータをフェッチせずにクエリストリームを閉じることができます。現在のNode Streams実装への割り込みの安全性について情報が少ないため、このメソッドは実験的(Experimental)とマークされています。
    必要に応じて、_close() を呼ぶと pause() が呼ばれます。Node 0.10では、たとえ以前にストリームを一時停止したとしても、一時停止イベントを受け取る可能性があります。これはNode 0.10ではisPaused()の呼び出しをサポートしていないためです。

  • Node 6向けにNAN 2.3へアップデート
    これにより、Node 6で発生しうるNAN 2.2以前で生成した非推奨の警告(deprecation warnings)が出なくなります。
    Nodeの旧バージョンではもちろんまだNAN 2.2以前を利用することができます。

  • JavaScriptオブジェクトのGCが早すぎた場合に発生する、迷惑かつ一見ランダムなクラッシュを軽減
     多くのアプリケーションは、通常オブジェクトを使わなくなるまで関連するJavaScriptオブジェクトを保持するのですが、一部のアプリケーションではそうではありません。早くアプリケーションが終了したり、負荷がかかっていたりすると、時期尚早なGCが後者のようなアプリケーションのスクリプトに影響する可能性があります。
    類似の変更をLOBインサート時の使われるLobバッファに対しても実施しました。

  • メモリ利用の改善
    • ResultSet利用時のメモリリークを修正しました
    • Poolキュータイマーマップでのメモリリークを修正しました
    • LOBのクエリとエラー発生時のメモリリリースロジックを修正しました
  • end-of-fetch時のqueryStram()による余計なgetRows() の呼び出しを削除
  • エラーの変更
    • メソッドのパラメータ検証、例えばパラメータ個数やパラメータのデータ型のチェックで、コールバックを使ってエラーを返すのではなく、同汽笛にエラーを返すようにしました。
    • fetchInfo 利用時の検証を改善しました.
    • Oracle Databaseのエラーメッセージのための内部バッファサイズを増やしました
    • node-oracledb NJS-xyz エラーメッセージテキストを変更しました
  • テスト・スィートの手動インストール化
    テスト・スィートは(今後も)ジョジョに大きなサイズになっていきますが、ほとんどのユーザーにとっては、使わないテストスィートの自動インストールは時間の無駄です。GitHubのクローンを使ってテストを実行することはこれまで通り可能です。アップデートされたテストのREADMEにこの手順が記載されています。
    https://github.com/oracle/node-oracledb/blob/master/test/README.md
    テストを移動し、どこでも実行できるようにするためには、パス接頭辞無しでテストのrequire('oracledb')呼び出しを残し、READMEに記述の通り、NODE_PATHを設定する必要があります。

  • DATA_BLOBのシンボル名の再定義の警告を修正
    Windowsでコンパイルする際の、DATA_BLOBのシンボル名の再定義の警告を修正しました
全体としてnode-oracledb 1.9.1はPromiseのサポート、Node 6のサポート、一般的なレジリエンシーの変更を追加したという点で重要なマイルストンです。このリリースを発表できることをうれしく思うと共に、アップグレードを推奨します。

What's Next?

ウィッシュリストにはnode-oracledbに対するエンハンスメントがまだたくさんあります。みなさんのプライオリティをお寄せ下さい。

問題や質問はGitHubに投稿してください。みなさまからの情報がnode-oracledbの作業のスケジューリングを助けてくれます。お待ちしています。
Issues
https://github.com/oracle/node-oracledb/issues

2016年5月19日

[Cloud, Security] Integration Cloud Service (ICS) Security & Compliance

Oracleもメンバーとして加わっているCloud Standards Customer Councilが作成した、”Security for Cloud Computing: Ten Steps to Ensure Success V2.0” のCloud Security Assessmentという章に基づいて作成されたホワイトペーパー "Oracle Integration Cloud Service (ICS) Security & Compliance" がリリースされています。
Oracle Integration Cloud Service (ICS) Security & Compliance
http://www.ateam-oracle.com/wp-content/uploads/2016/05/ICS-Security-and-Compliance_v1.0.pdf
Security for Cloud Computing: Ten Steps to Ensure Success Version 2.0
http://www.cloud-council.org/deliverables/CSCC-Security-for-Cloud-Computing-10-Steps-to-Ensure-Success.pdf 
特別なことを書いているわけではありませんが、トライアルを含めてICSをご利用になる場合には、一読されることをお勧めします。

2016年5月17日

[Java, Database] The top 10 JDBC documents that are linked as solutions from December 2015 to May 2016

原文はこちら。
https://blogs.oracle.com/proactivejavadevelopment/entry/the_top_10_jdbc_documents

下表は、2015年12月から2016年5月までの間でJDBCの問題に対する解決策として紐付けられたMy Oracle SupportのJDBCドキュメントのトップ10です。
401934.1 Starting With Oracle JDBC Drivers
このFAQでは、Oracle JDBCドライバを使い始める際の実用的な情報を提供しています。どのOracle JDBCドライバをJava Applicationとともに使うことができるのかを選択するための説明が記載されています。
1361107.1 Troubleshooting ORA-3137 [12333] Errors Encountered When Using Oracle JDBC Driver
Oracle JDBCドライバを使ってOracle Databaseに接続した際に、ORA-3137 [12333]のエラー、時にORA-3137 [1010] というエラーに遭遇したと、お客様からたくさんご連絡いただきました。このドキュメントでは、検証済みで成功したトラブルシューティングの方法を列挙しています。
793415.1 How to Perform the Equivalent of SQL*Net Client Tracing with Oracle JDBC Thin Driver
Oracle JDBC thinドライバは、SQLNETプロトコル(JavaNet層)という、Javaベースの実装を使っています。
1050942.1 How to Trace the Network Packets Exchanged Between JDBC and the RDBMS in Release 11.2
このドキュメントでは、Oracle JDBCドライバリリース11.2とOracle Database間で送受信された情報をトレースする方法を説明しています。
755605.1 Error "ORA-28040: No matching authentication protocol" When Using SQLNET.ALLOWED_LOGON_VERSION
10.2 thin JDBCドライバは自身を8.1.5クライアントと識別します。そのため、接続がORA-28040: No matching authentication protocol (一致する認証プロトコルがありません)というエラーで失敗します。
467804.1 How To Determine The Exact JDBC Driver Version For Standalone Programs
特にサポートでの分析にあたって有用なJDBC/JDK環境の診断情報を抽出します。抽出する情報には以下のものを含みます。
  • データベースのバージョン
  • JDBCドライバのバージョン
  • JDKのバージョン
  • PATH
  • BOOTSTRAP
  • JRE extensionsディレクトリ中のjarファイルのリスト
  • CLASSPATH
  • JDBCのURL
1555793.1 JDBC Connections Using SCAN Fail With ORA-12516/ORA-12520
ORA-12520: TNS:listener could not find available handler for requested type of server( TNS:リスナーは、リクエストしたサーバータ イプに使用可能なハンドラを検出できませんでした)
ORA-12516: TNS : listener could not find instance with matching protocol stack(TNS: リスナーは、一致するプロトコル・スタックが使用可能なハンドラを検出できませんでした)
467808.1 Standard JDBC diagnostics for Application Servers
特にサポートでの分析にあたって有用なJava Enterpriseコンテナ(Java EEコンテナ)内で使われているJDBC/JDK環境の診断情報を抽出します。抽出する情報には以下のものを含みます。
database version, JDBC driver version, JDK version, PATH, BOOTSTRAP, JRE Extensions directory, CLASSPATH and JDBC URL and debug flags information. ( Application Server specific)
  • データベースのバージョン
  • JDBCドライバのバージョン
  • JDKのバージョン
  • PATH
  • BOOTSTRAP
  • JRE extensionsディレクトリ中のjarファイルのリスト
  • CLASSPATH
  • JDBCのURL
  • デバッグフラグ情報(アプリケーションサーバ固有) 
334471.1 Understanding Transparent Application Failover (TAF) and Fast Connection Failover (FCF)
このドキュメントは、Transparent Application Failover(TAF)とFast Connection Failover(FCF)というRACの2個のコンセプトを説明するものです。
1641167.1 Understanding Inactive Sessions From JDBC Connection Pool
JDBC接続プール利用時に非アクティブ、ストールした接続があることに気付くでしょう。そうなった理由、識別方法、管理方法について説明します。

2016年5月16日

[Mobile, Cloud] Mobile Cloud Service 2.0 is Here!

原文はこちら。
https://blogs.oracle.com/mobile/entry/mobile_cloud_service_2_0

Oracle Mobile Cloud Serviceの2回目のメジャーリリースについてエントリを書くことができ、個人的に非常に興奮しています。モバイルに対する長年の経験を有する者が集まり、ゼロからクラウドベースのエンタープライズ・モバイル・プラットフォームであるOracle Mobile Cloud Service(MCS)の計画を策定したのは、それほど遠い昔ではありません。
Oracle Mobile Cloud Service
https://cloud.oracle.com/ja_JP/mobile
我々のゴールは、エンタープライズ・モビリティをシンプルにして、モバイル開発者がよりよいアプリケーションをより速く開発できるようにすることでした。これらのゴールを念頭において、MCSを2015年7月にリリースしました。そこから10ヶ月の間にMCSの成功とマーケットでの勢いを目の当たりにして興奮しています。オープンかつ、特定製品にとらわれずにオープンスタンダードに従って開発するという設計目標は、世界中の全業種、あらゆる規模のお客様によって受け入れられています。Oracle MCSを使って、組織は最新のエクスペリエンスを従業員に提供し、お客様に対し最新のエンゲージメントを促進します。基本原則の一つは、オープンでモバイルクライアント開発ツールに依存せずに、開発者が最適なツールで開発でき、開発者がエンタープライズデータやセキュリティポリシーの複雑性を理解しなくてもMobile APIカタログからエンタープライズ・サービスを選択できるようにすることでした。Apple、Google、Xamarin、Sencha、IonicをOracleのクライアント開発ツールであるMobile Application Framework(MAF)やJETとともに使って、様々なバックエンドシステムと統合されたエンゲージング・エクスペリエンスを構築するお客様がいらっしゃいます。

迅速かつ機動的なMCSのリリースで革新を続けてきましたが、本日、MCS Location Based Servicesを使うよりよいアプリケーションと、エンタープライズがMobile Application Accelerator(MAX)と呼ばれる、OracleのRapid Mobile Application Development(RMAD)機能を使ってより速くアプリケーションを開発できるようになったことをお伝えできることに非常に興奮しています。これらの機能はGartnerが"citizen developers"と言っているものをターゲットにしています。
Gartner Says Citizen Developers Will Build at Least 25 Percent of New Business Applications by 2014
http://www.gartner.com/newsroom/id/1744514
MAXについて説明する前に、まずはLocation Based Servicesで搭載した機能をご紹介します。

About Oracle MCS and Location Based Services

小売、イベント主催者、交通システム、金融サービス、接客、教育機関などの多くの企業が消費者と繋がっており、モバイルアプリケーションとオンラインの世界全体でシームレスなユーザー体験を可能にするよう、大幅な投資をしています。彼らは、複数のチャネルにわたってアプリのダウンロードに関連する洞察を得ることができます。あるケースでは複数チャネル間でのユーザーの行動に関連する洞察を得ることができます。しかしながら多くの場合、オンラインの世界では提供しない、消費者の物理的な場所をモバイルが提供するということが無視されてきました。USの小売の売上の93%が未だに店舗で発生 していることを考慮すると、エンタープライズは物理的な世界とオンラインの世界の間にある重要なつながりを失っています。
GPSの課題は、屋内空間では電話からのシグナルがブロックされ、正確な位置が得づらいということです。これはBeaconsが実行可能な解決策になるでしょう。Beaconsとは、壁やカウンターに配置できる小さく廉価なハードウェアで、バッテリー消費量も少なく、低エネルギーのBluetooth接続でモバイル端末に送信したり、指示したりできます。Estimoteのような企業が文脈的にリッチなモバイル体験を変革し、再発明する体勢を整えています。


“It’s a no-brainer. Beacons increase the granularity of information that Oracle MCS can use to help businesses provide a contextually rich experience to their customers”  Steve Cheney Co-Founder of Estimote.(「非常に簡単です。BeaconによってOracle MCSが利用可能な情報の精度が高まり、顧客に対して文脈的にリッチな体験を提供できるようにビジネスを支援することができます」)
店舗での小売やオフラインでの支払いはビーコンを使ったアプリケーションの第1波です。小売アウトレットはビーコンを使って顧客に対し商品情報やフラッシュセールスやお得な販売情報を提供し、非接触決済システムを使ってチェックアウトプロセスのスピードアップをしています。消費者は店舗内のショッピング体験を向上させる方法としてビーコンを受け入れているようです。USの大人の半数はすでにモバイル端末を店舗で利用しています。消費者はまたビーコンをホーム・オートメーションのために利用することもできます。例えば、スマートフォンを持つ人が入るとすぐにビーコンが照明をONにしたり、ドアや窓の日よけを開ける、といった具合です。

Mobileは、デジタル世界と物理世界の間の架け橋であり、文脈的に、関連付けて役立てることで、マーケティング担当者にとって最も有用なツールになりつつあります。位置情報サービスを利用するより良いアプリの構築を支援するため、文脈的な位置情報の360度ビューを提供することにより、アプリ開発者がモバイルアプリのより良い意思決定と関与を簡単に実現できるようにしています。MCS 2.0では、場所やビーコンのようなデバイス、第1級のエンティティのようなアセットのための簡単に使える管理UIと、これらのエンティティに関する興味深い情報やエンティティ間の関連性を、プラットフォームAPIを通じてモバイルアプリから照会する機能を備える、宣言的なフレームワークを提供します。

MCS 2.0 は次のようなB2C、B2Eのユースケースにもフィットします
  • 関心場所や関心事に関するコンテキスト情報の取得(して、モバイルアプリケーションのロジックを呼び出す)
    • 例えば、指定されたGPS園内の‘Parts_Warehouse’ ラベルを持つすべての場所を返し、Acmeウォッシャーの在庫部品がある最も近い倉庫へ案内する
    • 例えば、「LAX_Terminal1」と言うテキストをデバイス名や識別子に含む、すべてのアクティブなiBeaconデバイスを返す。自分のフライトにチェックインしたので、自分のアプリに戻されたBeaconのIDのレンジを設定する。
  • ジオフェンスやビーコンへの接近に基づく、パーソナライズされたモバイルユーザ・ターゲティング
    • 例えば、AnaがUvillage Mallの新規開店した店舗にチェックインしたら、アイスクリームの無料バウチャーを送る(GPSによってUvillage Mallが示されており、Uvillage Mallにはその中に「子」の場所を持っていて、位置情報と関連付けられたBeaconによってその店舗が識別される)
    • 例えば、航空会社のラウンジにプラチナメンバーが到着すると、NewCoのプロモーションを送る(Beaconで識別)
  • 価値の高いアセットのトラッキング
    • (Beaconで識別された)フォークリフトの直近の場所をNorth Yardにアップデートする
    • (Beaconで識別された)病院のベッドの直近の場所を入手する。病院の隔離領域にない場合、勤務中のフロア看護師にSMSアラートを送信する。

About Oracle MAX

モビリティソリューションへの投資は2016年を通じて成長し続けると予想されていますが、モバイルアプリ開発サービスの需要が、組織が提供可能なモバイルアプリを大きく上回るという増大する懸念ゆえに、モビリティ・ソリューションの投資増加が見込まれています。ガートナーによると、企業は、需要のおもむくままに迅速にモバイルアプリを開発、展開、維持することは課題であり、コストがかかると考えています。ガートナーは、rapid mobile app development (RMAD) を使ってアプリケーションを手早く開発し、エンタープライズにとってモバイルアプリに対する需要と共有の間のギャップを埋めることが重要だ、と言っています。重要な技術革新がこのマーケットを牽引し、ネイティブ開発ツールを使ったこれまでのコーディングアプローチから、より効率的なRMADツールを使った開発に置き換えていきます。MCS 2.0では、Mobile Application Accelerator(MAX)で、コードを書かずに迅速にモバイルアプリケーションを開発するという、rapid mobile app development (RMAD) の概念を導入しました。MAXは、プログラミングをしたことがないビジネスユーザーが迅速にモバイルアプリケーションを組み立て、継続的に繰り返しデザインできる仕組みを提供します。MAXは高度に視覚的なツールなので、百聞は一見に如かずです。以下の動画でOracle MAXの概要、Oracle MAXのデモをご覧ください。



Oracle MCS 2.0の詳細情報や試使用については、以下のリンクをご覧ください。
Oracle Mobile Cloud Service
https://cloud.oracle.com/ja_JP/mobile
https://cloud.oracle.com/mobile
まだ足りませんか?であれば、4月に開催されたSuhas UliyarとChris Matsh(451 Research)のWebcastのオンデマンド視聴をどうぞ。
New Imperatives for Enterprise Mobility Webcast
http://event.on24.com/eventRegistration/EventLobbyServlet?target=lobby.jsp&eventid=1160282&sessionid=1&partnerref=blog&key=D87797548FAA04880DD2F8BC4F741D2C&eventuserid=139783893 
あと、 @OracleMobile のフォローをお忘れなく。

2016年5月12日

[Database] MyNA (MySQL Nippon Association) Meeting Tokyo, Japan

原文はこちら。
https://blogs.oracle.com/MySQL/entry/myna_mysql_nippon_association_meeting

MyNA (日本MySQLユーザ会)主催のMySQLユーザーグループミーティングを2016年5月に開催します。詳細は以下の通りです。
  • 開催日: 2016年5月30日(月)
  • 時間: 19:30~21:30
  • 開場: オラクル青山センター13階セミナールーム 
  • ミーティングのトピック
    このミーティングでは、サンタクララで開催されたPercona Live 2016のレポートを中心にお送りします。スピーカーはこのイベントに参加したMySQL GBUから1名、MySQLユーザーグループから1名です。
    [予定]
    • "Days during joining in Percona Live" [ @mita2 さん(Yahoo Japan Corporation)
      Percona Live 2016にて参加したセッションをレポートします。
    • "What's new in Percona Live" [ @yyamasaki1 さん(Yoshiaki Yamasaki / MySQL GBU)]
      Transparent Data EncryptionとDocstoreについてレポートします。
開場でお会いできることを楽しみにしています。

[訳注]
参加したい方は、Attendから参加登録してください。
MyNA(日本MySQLユーザ会)会 2016年5月
https://atnd.org/events/77057

2016年5月11日

[Database] Launch Event: Oracle Database 12.2

2016年6月1日(水)13時(PDT)、日本時間では2016年6月2日(木)5時から、Oracle Database 12.2のLaunch Eventが開催されます。Webcastもあります。
Webcastの場合、2016年6月1日(水)13時~16時(PDT)、日本時間では2016年6月2日(木)5時~8時という時間枠での開催です。Webcastの視聴登録は以下からどうぞ。
Live Launch Webcast ― The #1 Database Is About to Get Even Better
https://eventreg.oracle.com/profile/web/index.cfm?PKWebId=0x3501716ef6
もちろん、現地のLaunch Event会場で参加することもできます。Webcastとは違い、12時開場、13時開始、14時30分終了というスケジュールなのでご注意ください。下図はLaunch Event会場での参加用ページへのリンクです。
ハッシュタグは #DB12c や #CloudFirst だそうです。
ちょっと早い時間ですが、日の出も早い時期なので、ちょっとだけ早起きして、是非視聴してみてください。

[misc.] リリースノートやWhat's Newのチェックをお忘れなく

新しいバージョンやリリースが出てきた場合、これまで利用できた機能が非推奨(Deprecated)になったり、削除(Removed)されたりすることがあります。機能の改廃はリリースノートや新機能をまとめたドキュメントに記載されています。
例えばOracle WebLogic Server 12.2.1(12cR2)の場合、以下のドキュメントが公開されています。
Oracle® Fusion Middleware What's New in Oracle WebLogic Server 12.2.1
Deprecated Functionality (WebLogic Server 12.2.1)
http://docs.oracle.com/middleware/1221/wls/NOTES/whatsnew.htm#NOTES155
Removed Functionality and Components
http://docs.oracle.com/middleware/1221/wls/NOTES/whatsnew.htm#NOTES588

Oracle® Fusion Middleware Oracle WebLogic Server 12.2.1の新機能 12c (12.2.1)
非推奨になった機能(WebLogic Server 12.2.1)
http://docs.oracle.com/cd/E72987_01/wls/NOTES/whatsnew.htm#BGGBGFFB
削除された機能とコンポーネント
http://docs.oracle.com/cd/E72987_01/wls/NOTES/whatsnew.htm#A1011792415
ご注意頂きたいのは、時々、日本語ドキュメントと英語ドキュメントで表現が異なる場合がある、ということです。例えば、weblogic.Adminは、 日本語版だと
「weblogic.AdminユーティリティはWebLogic Server 12.2.1で非推奨であり、将来のリリースでは削除される予定です。」
とありますが、英語版では、
"The weblogic.Admin utility has been removed from Oracle WebLogic Server 12.2.1."
とされています。こういう場合は原則英語版の記述を優先して取り扱ってください。実際、weblogic.Adminを呼び出してみると…

ということで、英語版の通り削除されています。
その他、WebLogic Server(厳密にはFusion Middleware Infrastructure) 上で動作するSOA SuiteやBPM Suite、Business Intelligence Enterprise Editionなど、それぞれの製品で機能の改廃がまとめられていますので、バージョンアップに伴う移行の前には、必ず目を通しておいてください。

2016年5月10日

[WLS, Database] Testing WLS and ONS Configuration

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

Introduction

Oracle Notification Service (ONS) はOracle Clusterwareのインストール時にインストール、構成されます。クラスタに参加するすべてのノードは、Oracle Clusterwareインストール中に自動的にONSに登録されます。構成ファイルは各ノードの $ORACLE_HOME/opmn/conf/ons.config にあります。詳細はドキュメントをご覧ください。このエントリではクライアント側に着目します。
Oracle RAC Fast Application Notification (FAN) イベントはOracle Database 11gR2からご利用いただけます。これはWebLogic Server Active GridLinkのデータベースに対する最小要件です。FANイベントはOracle RACを実行するクラスタが送信する通知であり、サブスクライバにクラスタ内の構成が変わったことを知らせることを目的としています。サポート対象のFANイベントはサービスの立ち上げ、サービスの停止、ノードの停止、ロードバランス・アドバイザリ(LBA)です。

fanWatcher Program

WebLogic Serverの実行とは関係なく、ONSの構成をテストすることができます。これはONSクライアントからONSサーバへの接続をテストするもので、RACサービスの構成をテストするものではありません。fanWatcherプログラムの入手、コンパイル、実行に関する詳細は、以下のエントリをご覧ください。
Monitoring FAN Events
https://blogs.oracle.com/WebLogicServer/entry/fanwatcher_sample_program
https://orablogs-jp.blogspot.jp/2016/02/monitoring-fan-events.html
前提として、WebLogic Server 10.3.6以後を使っており、クラスパスを適切に構成しているものとします。テストプログラムを以下のように実行します。
java fanWatcher "nodes=rac1:6200,rac2:6200" database/event/service
Oracle Database 12.1.0.2のクライアントjarファイルを使っている場合、複数のクラスタを用いたより複雑な構成を取り扱うことができます。例えばDataGuardを組み合わせている場合、以下のようなコマンドを使って実行します。
java fanWatcher "nodes.1=site1.rac1:6200,site1.rac2:6200 
nodes.2=site2.rac1:6200,site2.rac2:6200" database/event/service
注意いただきたいのは、新しい行を使って複数のノードリストを分けている、という点です。ONSサーバがSSL通信を使うように構成済みであれば、walletファイルとパスワードを使ってテストすることもできます。
このプログラムを実行すると、時々わずかにLBAの通知が表示されるでしょう。サービスを開始もしくは停止した場合、関連するイベントが表示されるはずです。

Auto ONS

ONSの情報を指定しなくても、自動ONS構成と呼ばれる機能を使って実行することができますが、以下の条件を満たす場合、自動ONS構成を使うことはできません。
  • 11gドライバもしくはOracle Database 11gを使う場合。自動ONS構成はドライバとデータベースサーバ間のプロトコルフローに依存します。この機能は12cで追加されました。
  • 12.1.3以前のWebLogic Serverを使う場合。自動ONS構成はWebLogic Server 12.1.3からサポートされています。
  • SSL通信でOracle walletを使っている場合。walletの構成にあたってはONS情報の構成も必要です。
  • 複雑なONSのトポロジーで実行する場合。一般に、自動ONS構成は必要とするものを理解してくれますが、時として正確に指定しなければならない場合があります。WebLogic Server 12.2.1では、ONS構成の拡張を使ってプロパティノードリストを使って正確なトポロジーを指定することができます。詳細は以下のリンクをご覧下さい。
    Oracle® Fusion Middleware Administering JDBC Data Sources for Oracle WebLogic Server 12c (12.2.1)
    Configure ONS Host and Port
    http://docs.oracle.com/middleware/1221/wls/JDBCA/gridlink_datasources.htm#BABGJBIC
    Oracle® Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの管理 12c (12.2.1)
    ONSホストおよびポートの構成
    http://docs.oracle.com/cd/E72987_01/wls/JDBCA/gridlink_datasources.htm#BABGJBIC
Oracle Database 11gのドライバやDatabaseを使う構成があって、Oracle Database 12cのドライバやDatabaseで実行する場合、自動ONS構成による簡素化を使うのではなく、常にONS構成のみ指定したいと思うかもしれません。上記のfanWatcherのリンクは自動ONS構成を使ってfanWatcherをテストする方法を示しています。

WLS ONS Configuration and Testing

次のステップは、エンドツーエンドのコンフィギュレーションを実行していることを確認します。イベントをAGLデータソースに対してイベントを生成するデータベース・サービスの確認を含みます。このデータソースは対応するサービスのためのイベントを処理します。
サーバ側では、データベース・サービスを実行時接続ロードバランシング(Runtime Connection Load Balancing、以下RCLB)を有効にして構成する必要があります。RCLBは、CLBの目標(GOAL)ではなく、サービスの目標がSERVICE_TIMEもしくはTHROUGHPUTに設定されている場合、当該サービスに対して有効です。サービス作成時にsrvctlを使ってこの設定を実施する方法の詳細はドキュメントをご覧ください。
WebLogic Server側で主要なポイントはURLとONSの構成です。
URLは指定されたこのサービス名を用いて、長い形式を使って構成します。URLはOracle Single Client Access Name (SCAN) アドレスを使うことができます。
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=scanname)(PORT=scanport))(CONNECT_DATA=(SERVICE_NAME=myservice)))
もしくは、LOAD_BALANCE=onを指定して複数の非SCANアドレスを使う場合の例は以下の通りです。
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=myservice)))
URLの定義は複雑なトピックなので、詳細はドキュメントをご覧ください。
上述の通り、ONSは自動ONSを使って暗黙のうちに、もしくは明示的に構成することができます。トレードオフと制限事項は上記の通りです。明示的なONS情報の形式は以下のドキュメントをご覧ください。
Oracle® Fusion Middleware Administering JDBC Data Sources for Oracle WebLogic Server 12c (12.2.1)
Using Active GridLink Data Sources
http://docs.oracle.com/middleware/1221/wls/JDBCA/gridlink_datasources.htm#BABGJBIC
Oracle® Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの管理 12c (12.2.1)
Active GridLinkデータ・ソースの使用方法
http://docs.oracle.com/cd/E72987_01/wls/JDBCA/gridlink_datasources.htm#JDBCA373
管理コンソールから明示的なONS構成を使ってデータソースを作成した場合、ONS構成のテストのためのボタンがあります。これを使って、ONSサーバとのシンプルなハンドシェイクのテストを実施します。
当然ながら、WebLogic ServerでのONS構成の実際のテストは、データソースのデプロイ時、つまりサーバ起動時、もしくはデータソースのターゲットを実行中のサーバに指定した場合に初めて実施します。
管理コンソールでは、AGLランタイムのONS監視ページで監視できます。特に自動ONS構成を使っている場合、ONSの構成を確認することができます。

インスタンスのページを見て、LBAイベントで更新対象のアフィニティフラグとインスタンスの重み属性を確認することができます。以下のコマンドなどを使ってサービスを停止した場合、このページで重みとキャパシティが0になっていく様子を見ることができます。
srvctl stop service -db beadev -i beadev2 -s otrade

サーバ・ログ(例えば、servers/myserver/logs/myserver.log)を見ると、次のような停止をトラックしているメッセージがあるはずです。
... <Info> <JDBC> ...  <Data source JDBC Data Source-0 for service otrade received a service down event for instance [beadev2].>
LBAイベントのようにより多くの情報を見たい場合には、以下の例のように、–Dweblogic.debug.DebugJDBCRAC=trueを指定して、JDBCRACデバッギングを有効化することができます。
... <JDBCRAC> ... lbaEventOccurred() event=service=otrade, database=beadev, event=VERSION=1.0 database=beadev service=otrade { {instance=beadev1 percent=50 flag=GOOD aff=FALSE}{instance=beadev2 percent=50 flag=UNKNOWN aff=FALSE} }
この設定により、数多くのデバッグ出力が出てきますので、本番環境での利用はお勧めしません。

[JavaScript, Database, Linux] Getting a C++11 compiler for Node 4, 5 and 6 on Oracle Linux 6

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

Node.js 4以後でnode-oracledbのようなadd-onを使う場合、Oracle Linux 6ではより新しいコンパイラが必要です。
node-oracledb
https://www.npmjs.com/package/oracledb
これは、Node.js 4以後のadd-onではC++11互換のコンパイラを使ってビルドする必要があるためです。
#if NODE_MODULE_VERSION >= IOJS_3_0_MODULE_VERSION && !NAN_HAS_CPLUSPLUS_11
https://github.com/nodejs/nan/blob/v2.2.1/nan.h#L40
Oracle Linux 6のデフォルトコンパイラではC++11互換をサポートしていません。Oracle Linux 7ではC++11互換をサポートしていますので、以下の手順はOracle Linux 7では実施する必要はありません。
Software Collection Library (SCL)から入手するのが最も簡単に新しいコンパイラを入手する一番簡単な方法です。
Software Collection Library (SCL)
http://yum.oracle.com/repo/OracleLinux/OL6/SoftwareCollections12/x86_64/index.html
Software Collectionをyumチャネルで有効化し、yum installを実行すると、コンパイラがすぐに利用可能になります。SCLの設定、手順などは以下のドキュメントに記載があります。
Software Collection Library 1.2 for Oracle® Linux Release Notes
Installing the Software Collection Library Utility from Oracle Public Yum
https://docs.oracle.com/cd/E37670_01/E59096/html/section_e3v_nbl_cr.html
以下は、node-oracledbをOracle Linux 6上で動作するNode.js 4以後にインストールする方法です。

Enabling the Software Collection Library

yum.oracle.com(以前はpublic-yum.oracle.comとしても知られていました)をお使いの場合、/etc/yum.repos.d/public-yum-ol6.repoを編集し、ol6_software_collectionsチャネルを有効化する必要があります。
Oracle Linux Yum Server
http://yum.oracle.com/
[ol6_software_collections]
  name=Software Collection Library release 1.2 packages for Oracle Linux 6 (x86_64)
  baseurl=http://yum.oracle.com/repo/OracleLinux/OL6/SoftwareCollections12/x86_64/
  gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
  gpgcheck=1
  enabled=1
必要であれば、http://yum.oracle.com/public-yum-ol6.repo から最新のチャネルリストを取得し、アップデートを既存の /etc/yum.repos.d/public-yum-ol6.repo ファイルにマージすることもできます。
その他の方法として、ULN(Unbreakable Linux Network)サポート・サブスクリプションをお持ちであれば、linux.oracle.comの「Manage Subscription 」ページにあるOracle Software Collections 1.2 for Oracle Linux 6 チャネルをサブスクライブすることができます。

Installing the Updated Compiler

チャネルを有効化したら、以下のコマンドでアップデートされたコンパイラをインストールします。
yum install scl-utils devtoolset-3
このコマンドにより、完全な、更新されたツールセットを構成する数多くのパッケージがインストールされます。

Installing node-oracledb

Node.js 4以後へのnode-oracledbのインストール手順は以下のインストール手順と変わりありませんが、新しいコンパイラを使う必要があります。
Installing node-oracledb
https://github.com/oracle/node-oracledb/blob/master/INSTALL.md
Oracle Linuxのドキュメントに開発ツールセットを有効化する様々な方法が記載されています。
Software Collection Library 1.2 for Oracle® Linux Release Notes
Using the Software Collection Version of a Command
https://docs.oracle.com/cd/E37670_01/E59096/html/section_ksc_t2f_dq.html
まとめると、Oracle Linux 6とNode.js 4以後の組合せでnode-oracledbをインストールするためには、まずInstant ClientのようなOracleクライアントをインストールする必要があります。
Instant Client Downloads for Linux x86-64
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
Instant Client RPMパッケージ以外のものがある場合、ライブラリやヘッダファイルの在処をインストーラに伝える必要があります。以下はその例です。
export OCI_LIB_DIR=$HOME/instantclient
export OCI_INC_DIR=$HOME/instantclient/sdk/include
ファイアウォールで守られている場合には、プロキシサーバの設定をしておきましょう。
export http_proxy=http://my.proxy.example.com:80/
筆者の開発環境では、クリーンアップを何度かするとよい感じです。
which npm && rm -rf $(npm root)/oracledb $(npm root)/nan $HOME/.node-gyp $HOME/.npm && npm cache clean
ようやく新しいコンパイラを使ってnode-oracledbをインストールすることができます。
scl enable devtoolset-3 -- npm install oracledb

Using Node

これで、Nodeを使うことができるようになります。
$ node version.js 
  node.js version: v4.4.3
  node-oracledb version: 10900
  node-oracledb text format: 1.9.0
  oracle client library version: 1201000200
  oracle client library text format: 12.1.0.2.0
  oracle database version: 1201000200
  oracle database text format: 12.1.0.2.0

  $ cat /etc/oracle-release 
  oracle linux server release 6.7

[Coherence, Java] CoherenceRx 1.0.0

リアクティブ・アプリケーションをCoherence上でよりシンプルに開発できるようにすることとともに、Coherence 12.2.1で導入されたCoherence Asynchronous APIの利用サンプルを提供することを目的として、Oracle Coherence Reactive Extensions (CoherenceRx) が作成され、利用できるようになりました。
これは、人気のあるRxJavaライブラリをベースにしたOracle Coherenceのためのreactive APIです。Coherence Asynchronous APIをラップしたものなので、動作にあたっては、Coherence 12.2.1以後が必要です。
Oracle Coherence Reactive Extensions (Rx)
https://github.com/coherence-community/coherence-rx
RxJava – Reactive Extensions for the JVM
https://github.com/ReactiveX/RxJava
利用方法(Mavenの依存関係、ビルド方法など)はCoherenceRxのGitHubのREADMEをご覧ください。
お試しいただき、不具合、機能改善などのフィードバックをお願いいたします。

2016年5月8日

[WLS, Database] Using SQLXML Data Type with Application Continuity

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

Oracle具象クラスのApplication Continuity(AC)で動作するためのインターフェースに変更されたことについての記事を初めて書いたとき、1個の型を除外していました。
Using Oracle JDBC Type Interfaces
https://blogs.oracle.com/WebLogicServer/entry/using_oracle_jdbc_type_interfaces
https://orablogs-jp.blogspot.jp/2013/07/using-oracle-jdbc-type-interfaces.html
oracle.sql.OPAQUEはoracle.jdbc.OracleOpaqueに置き換えられています。この不透明なデータ型でできることは多くはありません。元のクラスにはたくさんの変換メソッドがあったのに対し、この新しいOracleの型インターフェースには重要、もしくは標準JDBC APIでは利用できないと考えられるメソッドのみがあります。この新しいインターフェースにはObjectとしての値を取得するメソッドと、メタデータと型の名称を取得するための2個のメタ情報のメソッドしかありません。java.sql.Structを拡張したoracle.jdbc.OracleStructや、java.sql.Arrayを拡張したoracle.jdbc.OracleArrayといった、その他のOracleの型インターフェースとは異なり、oracle.jdbc.OracleOpaqueはJDBCインターフェースを拡張していません。
ACで動作するよう変更が必要な非常によくある、関連するユースケースがあります。SQLXMLの初期の用途は、以下のXDB APIの利用でした。
SQLXML sqlXml = oracle.xdb.XMLType.createXML( ( ( oracle.jdbc.OracleResultSet )resultSet ).getOPAQUE( "issue" ) );
oracle.xdb.XMLTypeはoracle.sql.OPAQUEを拡張しており、それの用途はACのリプレイを無効化するものです。これを標準的な以下のJDBC APIで置き換えなければなりません。
SQLXML sqlXml = resultSet.getSQLXML("issue");
replayデータソースを使っている場合に “new oracle.xdb.XMLType(connection, string)” を実行しようとすると、ClassCastExceptionが発生します。XMLTypeがreplayデータソースでは使えず、oracle.xdbパッケージがXMLTypeを広く使っているため、このパッケージはACのreplay機能で利用することはできません。
SQLXMLのAPIは以下のドキュメントをご覧下さい。
このjavadocによると、APIはDOM、SAX、StAX、XSLT、XPathで使えるとあります。
こちらにサンプルプログラムがあります。
このサンプルではStAXを使って情報を格納し、DOMを使って情報を取得しています。デフォルトでは、このサンプルはreplayデータソースを使っており、XDBを使っていません。
以下のように設定することで、replayデバッグを使って実行することができます。下記の内容を含む/tmp/config.txtというファイルを作成してください。
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
handlers = java.util.logging.FileHandler
java.util.logging.FileHandler.pattern = /tmp/replay.log
oracle.jdbc.internal.replay.level = FINEST
WebLogic ServerのCLASSPATH、もしくはOracle Databaseのclient.jarファイルをもつCLASSPATHを変更して、ojdbc7_g.jarをCLASSPATHの先頭に配置してojdbc7.jarを置き換えるように設定します。さらにカレント・ディレクトリをCLASSPATHに追加してください。
(拡張子を.txtから.javaに変更後)プログラムをコンパイルして、以下のコマンドを使って実行してください。
java -Djava.util.logging.config.file=/tmp/config.txt XmlSample
replayのログは/tmp/replay.logに出力されます。サンプルプログラムのデフォルトを使う場合、replayが無効化されていることがログからはわかりませんが、このプログラムを変更してuseXdbをtrueに設定すると、replayが無効化されていることがわかるでしょう。このログには以下の2個の文字列が現れます。
“DISABLE REPLAY in preForMethodWithConcreteClass(getOPAQUE)”
“Entering disableReplayInternal”
このサンプルを使って別のオペレーション・シーケンスをテストし、replayで安全かどうかを確認することができます。
代替策として、orachkを使ってクラスの静的分析を実行することができます。詳細は以下のエントリをご覧下さい。
Using Orachk to Clean Up Concrete Classes for Application Continuity
https://blogs.oracle.com/WebLogicServer/entry/using_orachk_to_clean_up
このサンプルプログラムに対してorachkを実行すると、以下のエラーが出るはずです。
FAILED - [XmlSample][[MethodCall] desc= (Ljava/lang/String;)Loracle/sql/OPAQUE; method name=getOPAQUE, lineno=105]

2016年5月7日

[Applications, Linux] Oracle Linux 7 Pre-Install RPM available for EBS 12.1 and 12.2

原文はこちら。
https://blogs.oracle.com/stevenChan/entry/linux_pre_install_rpm_available

Oracle Linux 7用Oracle E-Business Suite Release 12.1/12.2のPre-install RPMがご利用頂けるようになりました。
このRPMパッケージ(oracle-ebs-server-R12-preinstall)はOracle Unbreakable Linux Network (ULN、サポート契約が必要です)もしくはPublic Yumリポジトリのaddonsチャネルからダウンロードいただけます。
Oracle Unbreakable Linux Network
http://linux.oracle.com/Oracle public yum repository
http://public-yum.oracle.com/
Oracle E-Business Suite Release 12のインストール、実行に必要なパッケージのみをダウンロードするため、Oracle Linuxの'minimal' installationにこのx86_64用Pre-install RPMをインストールすることを推奨します。
Oracle DatabaseのPre-Install RPMと同様に、Linux x86-64 Installation and Upgrade Notesの記載にある要件に見合うよう特定のカーネルや他の値でシステムを構成しながら、このRPMはアプリケーション層とデータベース層の両方で必要な全てのE−Business Suiteパッケージを提供します。
このPre-Install RPMは以下のタスクを実行するため、E-Business Suite R12インスタンスのインストール、アップグレード、複製に先立つ準備時間を大幅に削減できることでしょう。
  • E-Business Suite R12 (12.1, 12.2) インストールに必要なソフトウェアパッケージのバージョンや依存関係のあるすべてのパッケージのダウンロードおよびインストール
  • シェルリソースのハードリミット、ソフトリミットを設定しながら、データベースやアプリケーション層でそれぞれオーナーとして使うユーザー(oracleとapplmgr)の作成
  • /etc/sysctl.confのカーネルパラメータを推奨値へ更新
  • /etc/resolv.confのDNSリゾルバパラメータを最小推奨値に設定
  • カーネル・コマンドラインでカーネルの'numa=off'を設定
  • 有効化されている場合には、'Transparent Huge Pages (THP)'を無効化 
詳細は、以下のドキュメントをご覧下さい(My Oracle Supportへアクセスするためにはサポート契約が必要です)

2016年5月5日

[WLS, Database] Migrating from Generic Data Source to Active GridLink

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

以前、RAC接続用のマルチ・データソースからActive GridLink for RAC(AGL)へ移行する方法についてエントリを書きました。両者ともOracle RACをサポートしている古いデータソース・テクノロジーからより新しいテクノロジーへ移行するために必要な内容ですが、現在この情報はドキュメントで公開されています。
Oracle® Fusion Middleware Administering JDBC Data Sources for Oracle WebLogic Server 12c (12.2.1)
Migrating from Multi Data Source to Active GridLink
http://docs.oracle.com/middleware/1221/wls/JDBCA/gridlink_datasources.htm#JDBCA690
Oracle® Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの管理 12c (12.2.1)
マルチ・データ・ソースからActive GridLinkへの移行
http://docs.oracle.com/cd/E72987_01/wls/JDBCA/gridlink_datasources.htm#BABHJBGJ
スタンドアロンのデータベースからOracle RACクラスタにデータベース環境が変わっているお客様もたくさんいらっしゃいます。この場合、GENERIC(汎用)データソースからAGLデータソースへの移行です。この移行は非常にシンプルです。
アプリケーションを変更する必要はないはずです。標準適なアプリケーションはデータソースをJODIから検索し、データソースを使って接続を取得するためです。JNDI名の変更はありません。
構成に対する唯一の必要な変更及び必要な情報は、一般的にデータベース管理者から提供されます。必要な情報は新しいURLです。RACクラスタのONS(Oracle Notification Service)の構成が必要になる場合があります。後者は以下の組み合わせで実行している場合にのみ必要です。
  • 11gドライバもしくはOracle Database 11gを使う場合。自動ONS構成はドライバとデータベースサーバ間のプロトコルフローに依存します。この機能は12cで追加されました。
  • 12.1.3以前のWebLogic Serverを使う場合。自動ONS構成はWebLogic Server 12.1.3からサポートされています。
  • SSL通信でOracle walletを使っている場合。walletの構成にあたってはONS情報の構成も必要です。
  • 複雑なONSのトポロジーで実行する場合。一般に、自動ONS構成は必要とするものを理解してくれますが、時として正確に指定しなければならない場合があります。WebLogic Server 12.2.1では、ONS構成の拡張を使ってプロパティノードリストを使って正確なトポロジーを指定することができます。詳細は以下のリンクをご覧下さい。
    Oracle® Fusion Middleware Administering JDBC Data Sources for Oracle WebLogic Server 12c (12.2.1)
    Configure ONS Host and Port
    http://docs.oracle.com/middleware/1221/wls/JDBCA/gridlink_datasources.htm#BABGJBIC
    Oracle® Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの管理 12c (12.2.1)
    ONSホストおよびポートの構成
    http://docs.oracle.com/cd/E72987_01/wls/JDBCA/gridlink_datasources.htm#BABGJBIC
URLとONSの属性は構成可能ですが、動的な構成には対応していませんので、変更後データソースのシャットダウンと再起動が必要です。これを実現する最も簡単な方法は、データソースのターゲットを外し、変更して、再度データソースのターゲットを設定することです。
GENERIC(汎用)データソースからAGLデータソースへの移行にあたっては、WLSTを利用することを推奨します。URLをJDBCDriverParamsオブジェクト内で変更しなければなりません。新しいJDBCOracleParamsオブジェクト(汎用データソースでは通常存在しません)では、FANを有効にして、必要に応じてONS情報を設定する必要があります。
以下はWLSTスクリプトのサンプルです。この例では新しい構成値をハードコーディングしていますが、パラメータ化すれば、複数のデータソースを取り扱うにあたって柔軟性を持たせることができるでしょう。ONS用にOracle walletを使っている場合、JDBCOracleParamsオブジェクトも追加する必要があります。
# java weblogic.WLST file.py
import sys, socket, os
hostname = socket.gethostname()
datasource="JDBC Data Source-0"
connect("weblogic","welcome1","t3://"+hostname+":7001")
edit()
startEdit()
cd("/JDBCSystemResources/" + datasource )
targets=get("Targets")
set("Targets",jarray.array([], ObjectName))
save()
activate()
startEdit()
cd("/JDBCSystemResources/" + datasource + "/JDBCResource/" +
datasource + "/JDBCDriverParams/" + datasource )
set("Url","jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(" +
"ADDRESS=(PROTOCOL=TCP)(HOST=dbhost)(PORT=1521)))" +
"(CONNECT_DATA=(SERVICE_NAME=otrade)))")
cd("/JDBCSystemResources/" + datasource + "/JDBCResource/" +
datasource + "/JDBCOracleParams/" + datasource )
set("FanEnabled","true")
set("OnsNodeList","dbhost:6200")
#cd("/JDBCSystemResources/" + datasource + "/JDBCResource/" +
# datasource )
#set("DatasourceType", "AGL")
save()
activate()
startEdit()
cd("/JDBCSystemResources/" + datasource )
set("Targets", targets)
save()
activate()
WebLogic Server12.2.1では、JDBCResourceレベルで明示的なデータソースタイプがあります。このデータソースタイプにGENERICを設定すると、set("DatasourceType", "AGL")を使って再設定しなければなりません。. 上記のサンプルでは、当該行をコメントアウトしています。
管理コンソールでは、データベース・タイプは読み取り専用であり、データベースタイプを変更することはできません。URLを設定し、FANの有効化チェックボックスをONにし、ONS情報を設定することで回避を試行することができますが、12.2.1では管理コンソールからDatasource Typeをリセットする方法はありません。この値は他の全てに優先します。

2016年5月4日

[Cloud, Security] Oracle IaaS/PaaSのセキュリティに関するホワイトペーパー

Oracle PaaS/IaaSの以下のサービスにおける、共有セキュリティ機能とサービス固有のセキュリティ機能を取り上げたホワイトペーパーが出ています。
Oracle Infrastructure and Platform Cloud Services Security
https://cloud.oracle.com/_downloads/WhitePaper_Compute_Security/Oracle_Cloud_Security_Whitepaper.pdf
  • Infrastructure (IaaS)
    • Oracle Compute Cloud Service
    • Oracle Storage Cloud Service
    • Oracle Network Cloud Service
  • Platform (PaaS)
    • Oracle Java Cloud Service
    • Oracle Database Cloud Service - Enterprise Edition
以前はOTNにUpされていましたが、少々追記が入って、2016年5月4日現在では、以下のComputeのホワイトペーパーのページにリンクがあります。なお、日本語版のページには出てこないようです。
Compute Service - Learn More (White Papers)
https://cloud.oracle.com/en_US/compute?lmResID=1385171309534&resolvetemplatefordevice=true&tabID=1383678920245

2016年5月3日

[Linux] FRIDAY SPOTLIGHT: Unbreakable Enterprise Kernel Release 4 Quarterly Update 1 is now available

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

Oracle Linux 6および7向けUnbreakable Enterprise Kernel Release 4 Quarterly Update 1 (UEKR4U1)をご利用頂けるようになったことを発表できうれしく思っています。これはUEK Release 4 (Version 4.1.12-37.2.1) のための第1四半期のアップデートリリースで、ドライバのアップデートとバグやセキュリティ上の問題に対する修正を集積したものを含みます。
このUEKR4U1には以下のようなものが含まれています。
  • LXCが1.0.7から1.1.5へアップデートされました。
  • btrfs-progs が4.2.2-3へアップデートされました。
  • DTraceに対する改善が含まれており、Statically Defined Tracing (SDT) プローブの複数回の呼び出しを正しくレポートするようになりました。
  • Xenの改善( pciback ドライバのアップデートを含みます)
  • パートナー各社から提供されたデバイスドライバのアップデート
    • Broadcom
    • Intel®
    • Microsoft
    • PMC-Sierra
    • VMware
このリリースに関する詳細情報は、リリースノートをご覧下さい。
Oracle® Linux Release Notes for Unbreakable Enterprise Kernel Release 4 Update 1
https://docs.oracle.com/cd/E52668_01/E73420/html/index.html
ソースコードは、Public Gitリポジトリからご利用いただけます。
Oracle Linux Git Repo for UEK R3 Releases
https://oss.oracle.com/git/?p=linux-uek.git;a=commit;h=7cc685f932113500ee80d90d5704379672ce749c

[Mobile] MAF 2.3.0.1 Released

原文はこちら。
https://blogs.oracle.com/mobile/entry/maf_2_3_0_1

MAF (Mobile Application Framework) 2.3.0.1は、アプリケーションのデプロイに関わるいくつかの致命的なバグ修正を含むマイナーアップデートです。これらのデプロイ時の問題はiOSを開発に使用しているお客様に影響していました。
このパッチで提供している不具合に対する修正は以下の通りです。
  1. シミュレータにアプリケーションをデプロイした場合に断続的な失敗。ログにはCopyStringsFileのエラーによってアプリケーションのデプロイに失敗した、と記録されている
  2. iOSシミュレータのターゲットがデプロイメント・プロファイルで変更された場合にデプロイに失敗する。
上記の不具合に対する修正を含む新しいextensionがJDeveloperのアップデート・センターからご利用いただけます。既存のMAF 2.3を使用しているアプリケーションであれば、このパッチを適用することによって移行を考慮する必要はありません。以前のMAFをお使いで直接このextensionを使う場合、MAF 2.3の移行ガイドに従った手順を踏む必要があります。
Oracle® Mobile Application Framework  Installing Oracle Mobile Application Framework  2.3.0
Migrating Your Application to MAF 2.3.0
http://docs.oracle.com/middleware/maf230/mobile/install/GUID-91DF0B93-265C-408B-8128-F0F3A1D91EC2.htm#MAFIG112 
他の重要なMAF 2.3で取り込まれた情報は以下のリンクからどうぞ。
Oracle Mobile Application Framework Documentation
http://www.oracle.com/technetwork/developer-tools/maf/documentation/index.html
このパッチの適用はシームレスに行われます。お客様はJDeveloperのアップデート・センターからextensionをアップデートできますので、JDeveloperを再起動してください。もちろん、extensionのインストール後は、全ての既存のアプリケーションに対してclean allを実行しておくことをお忘れなく。