2015年3月1日

[SOA/BPM] SOA/BPM 12cで利用できるドメイン構成

久々に、過去に頂いたSOA/BPM Suite 12cに関する質問をご紹介します。

Q) SOA/BPM 12cではドメイン構成がいくつかあるようだけど、その違いって何?
A) 以下の通り4種類の構成が可能です。MDSやWebLogic Serverの動作環境がそれぞれ異なります。

Oracle SOA/BPM Suiteで利用できるドメイン構成にはいろいろあります。詳細はドキュメントをご覧頂くとして、以下にまとめてみました。
Oracle® Fusion Middleware SOA SuiteおよびBusiness Process Management SuiteのQuick Start for Developersのインストール 12c (12.1.3)
ドメインの構成の理解
http://docs.oracle.com/cd/E57014_01/core/SOAQS/usecases.htm#SOAQS433
Oracle® Fusion Middleware Installing SOA Suite and Business Process Management Suite Quick Start for Developers
Understanding Domain Configurations
http://docs.oracle.com/middleware/1213/core/SOAQS/usecases.htm#CHDGGGHB
Oracle® Fusion Middleware Oracle SOA SuiteおよびBusiness Process Managementのインストールと構成 12c (12.1.3)
Oracle SOA Suiteドメインの構成
http://docs.oracle.com/cd/E57014_01/core/INSOA/configure_soa.htm#INSOA375
Oracle® Fusion Middleware Installing and Configuring Oracle SOA Suite and Business Process Management
Configuring the Oracle SOA Suite Domain
http://docs.oracle.com/middleware/1213/core/INSOA/configure_soa.htm#CDECHBDE
種類Default DomainStandalone DomainCompact DomainFull Domain
説明JDeveloperに統合済みのWebLogic Server管理サーバでSOA/BPMが動作(11gにおける開発者モードでのドメイン構成)管理サーバでSOA/BPMが動作(11gにおける開発者モードでのドメイン構成)管理サーバとSOA/OSB/BAMなどの管理対象サーバが分離した完全インストール版
インストール方法Quick Start インストーラQuick Start インストーラQuick Start インストーラFMW 12c Infrastructure + FMW 12c SOA/BPM Suite
用途ローカル開発、デバッグ、デモや評価目的ローカル開発、デバッグ用途。特に、JDeveloperではなくOSBコンソールを利用したい開発者向けJava DBで利用できないSOAコンポーネントを使ったローカル開発用途 (ESS, MFT, B2B, Heathcare, BAM, ACM API)開発全ステージ(共同開発)、統合、テスト、本番運用用途
リポジトリ事前構成済みJava DB事前構成済みJava DBOracle Database
ただし、MDSとOWSMリポジトリはファイルベース
Oracle Database

Compact Domainでは以下の点に注意が必要です。

  • Dehydration Store
    • Oracle Databaseを使用
  • MDS
    • ファイルベース(DBベースのMDSではありません)

ファイルベースMDSの場合、SOA Composerでの編集機能をサポートしておらず、Business RulesやDomain Value Maps(ドメイン値マップ)は実行時に変更できません。つまり、新規デプロイするタイミング以外で値を変更することができません。

なお、ファイルベースのMDSは通常、以下の場所に配置されます。
<Domain_Home>/store/gmds

[Java] Jersey, from Android to Mainframe

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

いつも通り、Jerseyチームは次々と新リリースを出しています。2月にはJersey 2.16とJersey 1.19をリリースしました。
Jersey 2.16
リリースノート:https://jersey.java.net/release-notes/2.16.html
変更履歴:https://github.com/jersey/jersey/releases/tag/2.16
Jersey 1.19
ブログ:http://blog.dejavu.sk/2015/02/13/jersey-1-19-is-released/
変更履歴:https://github.com/jersey/jersey-1.x/releases/tag/1.19

Jerseyには、大規模かつアクティブなコミュニティがあります。例えば、Jerseyにはz/OSで使用した際のバグがありました(誰がz/OSでJerseyを使わないって?)。コミュニティメンバーがこの特定の問題と修正案を提起し、この修正が2.16で統合されました。
[GRIZZLY-1726] When running grizzly http server on z/OS, incoming JAX-RS based REST request URIs are incorrectly converted from UTF-8 to EBCDIC default charset and thus lead to HTTP 404
https://java.net/jira/browse/GRIZZLY-1726
Jersey 2.16では、AndroidでJerseyクライアントスタックの実行に関連する問題も解決しています。Androidのサポートはメインプロジェクトではありませんが、Jersey 2.16では明確に初期の成功を示しています。
Jersey 2.x Client on Android
https://blogs.oracle.com/japod/entry/jersey_2_x_client_on

とはいえ、やらなくてはならないことがもっとあります。Jerseyチームが実際のユースケースに関する具体的なフィードバックと、コミュニティへの貢献を求めています。

そんなわけで、2.16を使うと、ついにAndroidのスマートフォンでJerseyクライアントを実行し、z/OS上で実行されているJerseyサーバに接続することができます!

Jerseyコミュニティがすでに大規模でアクティブだから参加できない、なんてことはありません。貢献はいつでも歓迎します。Jerseyに貢献する様々な方法はこちらを確認してください。
Jersey - Report Issues
https://jersey.java.net/contribute.html

2015年2月25日

[Database] Oracle In-Memory Advisor now available

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

Oracle In-Memoryはすばらしい機能ですが、よくぶち当たる問題は、こんなトリッキーな質問でしょう。
どの表、パーティションをIn-Memoryカラムストアを利用するようにマークすればいいの?
その答えは、My Oracle Supportからダウンロード可能なIn-Memory Advisorで簡単にわかります。
MOS Note:1965343.1 Oracle In-Memory Advisor
https://support.oracle.com/rs?type=doc&id=1965343.1
このAdvisorでは、In-Memoryに配置すると最大のメリットをもたらすオブジェクトを識別するレポートを、そうした推奨事項を実装するSQL*Plusスクリプトと共に作成します。 AdvisorはOracle Database 11.2.0.3以上で動作し、もちろん推奨事項を実装することができるのはOracle Database 12.1.0.2(およびそれ以後)です。
なお、このIn-Memory AdvisorはDatabase Tuning Packのライセンスの下で利用許諾されるものですので、お見知りおきください。
詳細情報はOTNのページからどうぞ。
Oracle Database In-Memory Advisor
http://www.oracle.com/technetwork/database/manageability/inmemory-advisor-2412222.html
[訳注]
Advisorを使う上でのベストプラクティスをまとめたホワイトペーパーも出ています。
Oracle Database In-Memory Advisor Best Practices
http://www.oracle.com/technetwork/database/manageability/info/twp-in-memory-advisor-bp-2430474.pdf
Advisorのプレリリース版を入手してらっしゃる場合は、破棄いただいて、製品版をご利用ください。

2015年2月24日

[Java, FMW] Sonatype Nexus 2.11.2 supports Oracle Maven Repository

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

SonatypeチームがNexus 2.11.2 repository managerのリリースを発表しました。このリリースでは、Oracle Maven Repositoryとの連係が可能になっています。
この新しいNexus 2.11.2リリースでは、Nexus OSSとNexus Proの両方でOracle Maven Repositoryの認証機構をサポートしています。これにより、Nexusで代理リポジトリを設定し、インデックスの閲覧や部品の検索を通じてコンポーネントを発見できるようになります。この設定はNexusとすべてのプロジェクトで一度実施するだけでOKです。開発者とCI(Continuous Integration)サーバがコンポーネントにアクセスし、手作業が必要なくなります。Nexus側からすると、新リリースへのアップグレードの一環で構成を簡単に変更できます。
ぜひSonatypeのブログエントリ"Using the Oracle Maven Repository with Nexus"をお読みください。
Using the Oracle Maven Repository with Nexus
http://www.sonatype.org/nexus/2015/02/19/using-the-oracle-maven-repository-with-nexus/

2015年2月20日

[Database] Oracle REST Data Services EA2 has just shipped!!!!!!

原文はこちら。
https://blogs.oracle.com/newgendbaccess/entry/oracle_rest_data_services_ea2

Oracle REST Data Services 3.0のEarly Adopted Release 2(早期評価版)がOTNからダウンロードできるようになっています。
[訳注]
Oracle REST Data Servicesは、以前Oracle APEX Listenerと呼ばれていました。
Oracle REST Data Services
http://www.oracle.com/technetwork/developer-tools/rest-data-services/overview/index.html
このREST Data Serviceは、将来計画されているより多くの新世代データアクセス機能のための基盤を提供する重要なリリースです。本リリースに含まれる機能を一部ご紹介しましょう。
  • JSON Collection APIをサポートしました。"schema-less"、"schema-later"の開発のための、Oracle Database 12cに格納されているJSONドキュメントのCRUD操作およびクエリ操作が可能です。
  • Oracle NoSQL Databaseをサポートしました。
  • CRUD操作、クエリーフィルタやソート、一貫性のあるページネーションなど、Oracle Databaseのリレーショナル表のためのJSON Collection APIが自動で有効化されています。
  • Oracle REST Data Serviceはシンプルで簡単にインストールできます。APEXのインストールは不要です。

2015年2月19日

[Database, JavaScript] node-oracledb 0.3.1 is on GitHub (Node.js driver for Oracle Database)

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

開発チームを代表して、node-oracledbに対する新機能追加と不具合の修正をマージし、node-oracledbをアップデートしたことをお知らせします。
Oracle Database driver for Node.js
https://github.com/oracle/node-oracledb
node-oracledb 0.3.1のアップデート
  • Windows版の設定を追加しました。詳細は以下をご覧ください。
    Installing node-oracledb
    Node-oracledb Installation on Windows
    https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#instwin
    pullリクエストしてくれたRinie Kervel(https://github.com/rinie)、コメント、テストして下さった皆様に感謝します。
  • データベース常駐接続プーリング (Database Resident Connection Pooling / DRCP) をサポートしました。詳細は以下をご覧ください。
    node-oracledb: API Documentation for the Oracle Database Node.js Driver
    Database Resident Connection Pooling
    https://github.com/oracle/node-oracledb/blob/master/doc/api.md#drcp
    "Database Resident Connection Pooling enables database resource sharing for applications that run in multiple client processes or run on multiple middle-tier application servers. DRCP reduces the overall number of connections that a database must handle. DRCP is distinct from node-oracledb's local connection pool. The two pools can be used separately, or together."(Database Resident Connection Pooling"
    (データベース常駐接続プーリング)は、複数のクライアントプロセスや、複数の中間層アプリケーション・サーバー上で動作するアプリケーションのために、データベース·リソースの共有を可能にします。DRCPを使うと、データベースが処理する必要のある接続の全体個数を減らすことができます。DRCPは、node-oracledbのローカル接続プールとは区別されます。2個のプールを別々に使用することも、一緒に利用することもできます。)
  • 暗黙の接続リリースの挙動と一致するよう、release()を使った明示的な接続のリリースでロールバックするようにしました。
  • Linuxにインストールした場合以下の順序でOracleライブラリを検索するようにしました。
    • インストール時の環境変数 $OCI_LIB_DIR と $OCI_INC_DIR の箇所
    • 最新版のInstant ClientのRPMがインストールされている箇所
    • $ORACLE_HOME
    • /opt/oracle/instantclient
  • LinuxでRPATH をサポートするようにしました。これにより、LD_LIBRARY_PATH に設定する必要はなくなります。詳細は以下をご覧ください。
  • Installing node-oracledb - Advanced installation on Linux
    https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#linuxadv
  • Instant Clientのディレクトリ探索で、インストーラがで最終的に試す上で利用するディレクトリ名は、 /opt/oracle/instantclient もしくは C:\oracle\instantclient に変わりました。OCI_DIR_LIBやOCI_INC_LIBが設定されておらず、インストーラがライブラリの存在場所を推測する必要がある場合、 このパスが使われる可能性があります。
  • "Oracle 11.2 or later client libraries are required for building"(Oracle 11.2以後のクライアントライブラリがビルドのために必要です)というコンパイルエラーメッセージが追加されました。これは古いOracleクライアントライブラリを使ってビルドしようとした場合に発生します。このタイプのビルドに関する問題を自己診断するために有用です。
  • isAutoCommit プロパティの設定を修正しました。
  • Windowsにおけるプールされた接続を使った場合にクラッシュする問題を修正しました。
  • オブジェクト型をクエリする際にクラッシュする問題を修正しました。
  • terminate()失敗後に接続をリリースするという問題を修正しました(プールはまだ利用できません。これは今後修正される予定です)
  • terminate()では接続をリリースしないということをドキュメントで明確にしました。リソースのリークを防ぎプールの利用を最大化するために、不要なプールされた接続を明示的にrelease()でリリースすることを推奨します。
  • バージョンが0.3.1にアップデートされました。

[SOA/BPM] EDNを流れるメッセージを確認する

EDN(Event Delivery Network)とは、Oracle SOA Suite 11gで導入されたメッセージ伝播のための機構です。11gのEDNのデータストアはデータベース表をデフォルトで利用しています(JMSも利用できます)が、12cからは、WebLogic JMSを使うようになりました。
11gを使っている場合には、EDN-DB Debug Logというアプリケーションを使うことで、EDNを流れるメッセージを確認することができました。
EDN-DB Debug Log
http://{host}:{port}/soa-infra/events/edn-db-log
でも、12cからはWebLogic JMSを使っているため、EDN-DB Debug Logを使うと以下のような表示が出るだけで、使えません。



12cでEDNを流れるメッセージを確認するには、以下のような設定でサーバー診断ログに出力させます。
  1. Enterprise Manager Fusion Middleware Controlに管理者としてログイン
  2. soa-infra > ログ > ログ構成を選択
  3. oracle.integration.platform.blocks.eventで検索し、所望のロギングレベルを設定(下図ではTRACE 32を指定しています)し、[適用]をクリック
この作業に伴うサーバー再起動は不要です。
EDNを流れるメッセージは、診断ログ(<Domain Home>/servers/(サーバー名)/logs/(サーバー名)-diagnostics.log)にずらずらと出力されます。