2015年1月26日

[SOA/BPM, ADF] 11gから12cへアップグレードしたADF Formをビルドするとエラーが発生する

BPMに関する質問&回答その5ですが、ADFにも関連する内容です。

Q) BPM 11gで作成したプロセスとADF Formを12cに移行したのだけど、ADF Formのビルドでエラーになってしまう。エラーメッセージが曖昧でよくわからないんだけど・・・
A) 以下のエラーが出ている場合は、ここで説明する設定変更で解決する可能性があります。

この問合せで頂いた、具体的なエラーメッセージは以下のようなものです。
Error: <J2EE> <BEA-160187> <weblogic.appc failed to compile the application. Recompile with the -verbose option for more details about the issue.> 
これだけだと何ともわかりづらいのですが、このエラーがアップグレードしたADF Formから出ている場合、weblogic.xmlを修正すると、エラーが解消されることがあります。

まず、エラーが発生するweblogic.xml(とあるBPMのタスクフォームの例)です。
<?xml version = '1.0' encoding = 'UTF-8'?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app">
    <ejb-reference-description>
        <ejb-ref-name>ejb/bpel/services/workflow/TaskServiceBean</ejb-ref-name>
        <jndi-name>ejb/bpel/services/workflow/TaskServiceBean</jndi-name>
    </ejb-reference-description>
    <ejb-reference-description>
        <ejb-ref-name>ejb/bpel/services/workflow/TaskMetadataServiceBean</ejb-ref-name>
        <jndi-name>ejb/bpel/services/workflow/TaskMetadataServiceBean</jndi-name>
    </ejb-reference-description>
    <ejb-reference-description>
        <ejb-ref-name>TaskReportServiceBean</ejb-ref-name>
        <jndi-name>TaskReportServiceBean</jndi-name>
    </ejb-reference-description>
    <ejb-reference-description>
        <ejb-ref-name>TaskEvidenceServiceBean</ejb-ref-name>
        <jndi-name>TaskEvidenceServiceBean</jndi-name>
    </ejb-reference-description>
    <ejb-reference-description>
        <ejb-ref-name>TaskQueryService</ejb-ref-name>
        <jndi-name>TaskQueryService</jndi-name>
    </ejb-reference-description>
    <ejb-reference-description>
        <ejb-ref-name>RuntimeConfigService</ejb-ref-name>
        <jndi-name>RuntimeConfigService</jndi-name>
    </ejb-reference-description>
    <ejb-reference-description>
        <ejb-ref-name>UserMetadataService</ejb-ref-name>
        <jndi-name>UserMetadataService</jndi-name>
    </ejb-reference-description>
    <session-descriptor>
        <persistent-store-type>replicated_if_clustered</persistent-store-type>
    </session-descriptor>
    <library-ref>
        <library-name>oracle.soa.worklist.webapp</library-name>
        <specification-version>11.1.1</specification-version>
    </library-ref>
</weblogic-web-app>

12cからは、名前空間として、http://www.bea.com/ns/weblogic/weblogic-web-appではなく、http://xmlns.oracle.com/weblogic/weblogic-web-appを使うように変わりました。
つまり、上記weblogic.xmlの2行目を書き換える必要があります。
<?xml version = '1.0' encoding = 'UTF-8'?>
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app">
    .... 以下省略 ....
</weblogic-web-app>
アップグレード時にADFの参照ライブラリなどは書き換えてくれるのですが、weblogic.xmlの名前空間の変更はやってくれないようですね。もしADF Formのアップグレードで嵌まっている方は、もしかするとこの修正でビルドエラーが解消するかもしれません。

[Mobile, Applications] New Version of Mobile App for Oracle E-Business Suite

原文はこちら。
https://blogs.oracle.com/fusionmiddleware/entry/new_version_approvals_for_ebs


What's New?

EBSの承認用スマートフォン向けアプリケーションの新バージョン(1.1.0)がApple AppStoreからご利用いただけるようになっています。この新バージョンでは以下のアップデートを提供します。
  • ログインや設定フローの改善
  • サーバーURLの変更が可能(URL変更のためのアプリケーション再インストールは不要)
  • 診断機能の改善(*)
  • ver 1.1.0へアップデートした後、アプリケーションを再構成し、このバージョンに含まれている構成の実装とログインの改善を確認する必要があります。
[注意]最新のアプリケーションのバージョンでは、最新のアプリのバージョンは、以前のサーバーサイドのパッチを適用することで動作します。しかし、最新のサーバーサイドのパッチを適用し、(アスタリスク*で示した)最新パッチが提供する新しい機能や修正を利用できるようにする必要があります。

これらのアップデートに関する詳細は、My Oracle Support(以下、MOS)の以下のドキュメントをごらんください。
Oracle E-Business Suite Mobile Apps, Release 12.1 and 12.2 Documentation (Doc ID 1641772.1)
https://support.oracle.com/rs?type=doc&id=1641772.1

Support for Demilitarized Zone (DMZ)

モバイルユーザーがOracle E-Business Suiteモバイルアプリケーションを(VPNなどを使わずに)インターネット経由で利用する必要がある場合、以下のMOSドキュメントに従い、貴社のOracle E-Business Suite環境をDMZ構成にセットアップする必要があります。
さらに、MOSドキュメントID 1642431.1の2.2.1項に記載があるように、モバイルアプリケーション用の設定ファイルをする場合には、サービスエンドポイント(もしくはRelease 2.1以前の場合、サーバのホストURL Oracle E-Business Suite Mobile Foundationリリース) が外部Webのエントリポイントに設定されていることを確認してください。
Oracle E-Business Suite Mobile Apps Administrator's Guide for Release 12.1 and Release 12.2 (Doc ID 1642431.1)
https://support.oracle.com/rs?type=doc&id=1642431.1

[Applications, UX] Responsive Web Design

原文はこちら。
https://blogs.oracle.com/SiebelOpenUI/entry/responsive_web_design

Siebel CRM YouTubeチャネルにアップロードされた新しい動画では、SiebelアプリケーションのレスポンシブWebデザイン機能をご紹介しています。

このフレームワークは、Siebel Innovation Pack 2014で導入されました。このフレームワークを使うと、1回のアプリケーションへの変更で任意のデバイスにデプロイできるUIを作成できます。もう様々なデバイスやフォームファクタにあわせて別のアプリケーションをコーディングする必要はありません。その結果、開発が著しく簡単に、しかも時間やコストの節約になります。

動画はこちらからどうぞ。

2015年1月23日

[Database, Support] Non-CDB architecture of Oracle databases is DEPRECATED since Oracle Database 12.1.0.2

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

Oracle Database 12.1.0.2から、CDB以外のアーキテクチャは非推奨になりました。
Oracle® Database Upgrade Guide 12c Release 1 (12.1)
Deprecated and Desupported Features for Oracle Database 12c
https://docs.oracle.com/database/121/UPGRD/deprecated.htm#BABDBCJI

(訳注)
日本語版ドキュメントにはまだ反映されていません。

どういうこと?

まず、非推奨とは「サポートの終了」ではなく、今回の場合、以前のリリースからご存知のアーキテクチャである、スタンドアロン構成のOracleデータベースをもちろん利用できるだけでなく、シングルテナント構成での展開(CDB1個にPDB1個の構成。Multitenantオプションライセンスは不要です)や、マルチテナントデータベース構成(CDB1個にPDB最大252個、Multitenantオプションライセンスが必要です)も利用できます。
しかし将来、Oracleがシングルテナントデータベースやマルチテナントデータベースのみをリリースする可能性があります。 現時点ではいつそうなるかといった情報はありません。

現時点でサポートされていない機能は?

  • Database Change Notification
  • Continuous Query Notification (CQN)
  • Client Side Cache
  • Heat Map
  • Automatic Data Optimization
  • Oracle Streams
  • Oracle Fail Safe
  • Flashback Pluggable Database
    • Flashback Databaseは動作しますが、全てのPDBを含むCDB$ROOTをフラッシュバックする予定です。
  • DBVERIFY
  • Data Recovery Advisor (DRA)

2015年1月22日

[Java] Java Updates: SE 8 update 31, SE 7 and SE Embedded

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

OracleはJava SE 8 Update 31とJava SE 7 Update 75/76をリリースしました。新しいJava SE Embeddedのアップデートもご利用頂けます。開発者の方はJava SEとJava SE EmbeddedのJDKとJREをOTNからダウンロードできます。
Java SE
http://www.oracle.com/technetwork/java/javase/downloads/index.htmlJava SE Embedded
http://www.oracle.com/technetwork/java/embedded/embedded-se/downloads/index.htmlOracle Technology Network
http://www.oracle.com/technetwork/java/index.htmlhttp://www.oracle.com/technetwork/jp/java/index.html

Java SE 8 Update 31

Oracle JDK、JREでSSL v3.0が無効化されました
SSLv3は廃止され、もう利用すべきではありません。
Information about SSL “Poodle” vulnerability CVE-2014-3566
https://blogs.oracle.com/security/entry/information_about_ssl_poodle_vulnerability
JDK 8u31からは、SSL v3プロトコル(Secure Socket Layer)を無効化しており、デフォルトで利用できなくなっています。詳しくはリリースノートをご覧下さい。
Java™ SE Development Kit 8, Update 31 Release Notes
http://www.oracle.com/technetwork/java/javase/8u31-relnotes-2389094.html
Security Fixes
このリリースには、重要なセキュリティフィックスが含まれています。全てのJava SE 8ユーザーがこのリリースにアップグレードすることを、Oracleは強く推奨します。このリリースに含まれている修正されたバグのリストは以下のページからどうぞ。
Java™ SE Development Kit 8 Update 31 Bug Fixes
http://www.oracle.com/technetwork/java/javase/2col/8u31-bugfixes-2389095.html

Java SE 7 Update 75/76

これらのリリースには、重要なセキュリティフィックスが含まれています。全てのJava SE 7ユーザーがこのリリースにアップグレードすることを、Oracleは強く推奨します。このリリースでは、自動アップデート機能を有効にしているユーザーはOracle JRE 7からOracle JRE 8へ移行されます。
注意: 2015年4月のCPUリリースがOracle JDK 7の最後のパブリックアップデートになる予定です。詳細情報や、OracleのJDK7の長期サポートを受けるための詳しいことは、Oracle Java SEサポートロードマップをご覧下さい。
Oracle Java SE Support Roadmap
http://www.oracle.com/technetwork/java/javase/eol-135779.html
Java CPUリリースとPSUリリースの違い
Java SE Critical Patch Updates (CPU)にはセキュリティ脆弱性の修正や重要なバグ修正が含まれており、全てのJava SE 7ユーザーが最新のCPUリリースにアップグレードすることを、Oracleは強く推奨します。ほとんどのユーザーはこのリリースを選択すべきです。
Java SE Patch Set Updates (PSU) には、そのバージョンまでにリリースされたCPUの全てのセキュリティ修正だけでなく、追加の修正も含まれています。Java PSUリリースは、当該バージョンで追加されたバグ修正が必要な方だけが使うべきです。以下のリンクもご覧下さい。
Java CPU and PSU Releases Explained
http://www.oracle.com/technetwork/java/javase/cpu-psu-explained-2331472.html

Java Embedded Updates 

Java SE Embedded 8 Update 33 

Java SE Embedded 8を使うと、開発者がJRECreateツールを使ってカスタマイズしたJREを作成できます。Java SE Embedded 8では、組み込みプラットフォーム向けの個々のJREダウンロードを提供していません。まずターゲットとするプラットフォームに適したeJDKバンドルをダウンロードし、手順に従い、アプリケーションの要件に適うJREを作成します。この変更はJava SE Embedded 7 UpdateリリースのJREダウンロードとは関係ありません。

JDK 8u33 for ARM 

このJDKには、Javaプログラミング言語で記述され、Javaプラットフォーム上で実行するプログラムの開発やテストに役立つツールが含まれています。JDK 8 for ARMはLinuxを実行する32bit ARM v6もしくはARM v7ベースのシステム上での動作をサポートしています。このJDKには、ARMプラットフォーム用のJava runtime environment (JRE) と、アプリケーション開発に必要なコンパイラやデバッガといったツールが含まれています。

Java SE Embedded 7u75 

Java SE Embedded 7u75 Runtime EnvironmentはJava Runtime Environment 7 Update 75 (JRE 7u75)ベースで、特定の機能や組み込みシステムのサポートを提供しています。
全てのJavaユーザーがこれらのリリースにアップグレードすることを、Oracleは強く推奨します。

2015年1月21日

[Database, JavaScript] Introducing node-oracledb - a Node.js driver for Oracle Database

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

Oracle Database用のNode.jsドライバを開発中であると、Oracle OpenWorldの多くの熱狂的な参加者に対して発表しましたが、ようやく、node-oracledbをGitHubにプッシュしたことをご紹介できるようになりました。
Oracle Database driver for Node.js
https://github.com/oracle/node-oracledb
Node.jsは、サーバーサイドのネットワークアプリケーションをJavaScriptで作成するための、オープンソースで提供されているクロスプラットフォーム実行環境です。

What is node-oracledb?

node-oracledbドライバは、Node.jsアプリケーションを高速かつ機能的にするために、Oracle Databaseに接続します。node-oracledb 0.2ドライバのプレビューリリースでは、既に以下の機能をサポートしています。
Node-oracledbはOracleがメンテナンスするオープンソースプロジェクトで、Apache 2.0ライセンスの下でご利用いただけます。The Oracle Contributor Agreementに従ってコントリビュートいただけます。
The Oracle Contributor Agreement
http://www.oracle.com/technetwork/community/oca-486395.html

Where can I get node-oracledb?

To install node-oracledbをインストールするためには、リポジトリを複製し、無償のOracle Instant Clientをインストールします。(もしくは、Oracle Database Express EditionのようなOracle Databaseを利用します)。その後、npmを使って複製したディレクトリからインストールします。
Oracle Database driver for Node.js
https://github.com/oracle/node-oracledb/
Instant Client Downloads
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
Oracle Database Express Edition
http://www.oracle.com/technetwork/database/database-technologies/express-edition/overview/index.html
手順書には、ローカルのNode.jsインスタンスの作成方法やその他の詳細情報が記載されています。ドライバは現在GitHub上にのみあります。
Installing node-oracledb
https://github.com/oracle/node-oracledb/blob/master/INSTALL.md
ドライバはOracle Databaseのクライアントライブラリを使用しています。他のCベースのスクリプティング言語用のOracle Databaseドライバと同様です。つまり、そうしたライブラリに対してこれまで投資してきた重要な機能セット、開発、テストを利用できる、ということです。また、Node.jsアプリケーションが、Oracleの標準クライアントーサーバ間のバージョン互換性に従い、複数の異なるOracle Databaseのバージョンと会話できるのです。
node-oracledbドライバはOracle Linux、OS X、Solarisでビルドします。現在Oracle Linux 6上でのテストに注力しています。Windowsのサポートは難しくないはずですが、まだ対応していません。

How do I use node-oracledb?

簡単なクエリの例をご紹介しましょう。
var oracledb = require('oracledb');

oracledb.getConnection(
  {
    user          : "hr",
    password      : "welcome",
    connectString : "localhost/XE"
  },
  function(err, connection)
  {
    if (err) { console.error(err); return; }
    connection.execute(
      "SELECT department_id, department_name "
    + "FROM departments "
    + "WHERE department_id < 70 "
    + "ORDER BY department_id",
      function(err, result)
      {
        if (err) { console.error(err); return; }
        console.log(result.rows);
      });
  });
Oracle DatabaseのHRスキーマを使った出力結果は以下の通りです。
$ node select.js
[ [ 10, 'Administration' ],
  [ 20, 'Marketing' ],
  [ 30, 'Purchasing' ],
  [ 40, 'Human Resources' ],
  [ 50, 'Shipping' ],
  [ 60, 'IT' ] ]
examplesディレクトリやAPI Documentationにはたくさんのサンプルがあります。
examples
https://github.com/oracle/node-oracledb/tree/master/examples
node-oracledb: API Documentation for the Oracle Database Node.js Driver
https://github.com/oracle/node-oracledb/blob/master/doc/api.md

What is the future for node-oracledb?

Windowsプラットフォームのサポート、LOBのサポート、大規模な問い合わせ結果セットのバッチフェッチンングやストリーミングのサポート、DRCPのサポートを含め、node-oracledbへの機能追加を積極的に実施しています。
データベース常駐接続プール(Database Resident Connection Pool / DRCP)
(英語)
http://docs.oracle.com/database/121/ADFNS/adfns_perf_scale.htm#ADFNS228
(日本語)
http://docs.oracle.com/cd/E57425_01/121/ADFNS/adfns_perf_scale.htm#ADFNS228
また、標準のnpmインストールコンポーネントとしてnpmjs.comで利用できるよう、またテストスィートを公開できるように現在作業中です。
みなさまからの建設的なフィードバックをお待ちしています。Release 1.0にすべての修正と、「必須アイテム」を組み込むことができるようにしたいと考えています。
ドライバの開発が進むにつれ、詳細をお伝えできると思っています。同僚のDan McGhanも、jsao.ioでJavaScriptとOracle Databaseについて情報提供していきますのでお楽しみに。
JavaScript and Oracle
https://jsao.io/

node-oracledb Links

2015年1月20日

[Java] Reactive Jersey Client

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

一般的に、同期アプリケーションには効率的にリソースを使わない、という問題があります。同期アプリケーションでは、例えばスレッドが何かが起こることを待つためにブロックされていることが多々あり、明らかに非効率です。一方、非同期アプリケーションを使うと、スレッドをより効率良く利用できますが、その引き替えとして、(複雑な)非同期アプリケーションを作成することが容易ではありません。非同期アプリケーションの作成にあたっては、ネストされたコールバック、つまり有名な「コールバック地獄(callback hell)」に対処する必要があります。ネストされたコールバックのレベルが深すぎる場合、適切にアプリケーションなどでエラーを処理する上で細心の注意が必要です。

リアクティブプログラミングとは、より簡単に非同期アプリケーションを開発するために使われる一般的なパラダイムで、データフローや変更の伝播に基づいています。このリアクティブアプローチを使うと、コードが書きやすく、理解しやすくため、メンテナンス性も向上します。

JerseyチームのMichal Gajdosが、Reactive Jersey Client APIの概要を説明する一連のエントリを書きました。この新たな汎用APを使うと、エンドユーザーがJerseyクライアントを使って、人気のあるリアクティブプログラミングモデルを利用できます。