OracleのID管理系製品群を整理してみた

Oracle社のID管理製品について学ぶ必要が出てきたのですが、似たような名前で複数の製品が出ているので、それぞれの役割の違いを整理してみました。

ここに上げた以外にも多くの製品があるようですが、代表的と思われるものに絞ったつもりです。

  • OUD

  • OAM

    • Oracle Access Manager
    • 認証、認可周りの一連の機能を提供する
      →HP IceWallとかと同じカテゴリの製品かな?
    • SSO、認証/認可、ポリシー管理、セッション管理、etc...
  • OIF

    • Oracle Identity Federation
    • パートナー間のフェデレーション機能を提供
    • Oracle Access Managementプラットフォームの共有サービス
      Oracleのサイトより。よく意味が分からないが、OAMと連携してSAMLの構成をつくるのが、やり易いということっぽい
  • Webgate

    • OAMを使ってエージェント型のSSOを構成するときに使用する、SSOエージェント

以上。

Oracle Stream Explorer サーバーのインストール手順

Oracle Stream Explorerは、Oracle社が提供しているCEP(Complex Event Processing)製品です。
今回は、Windows 環境に、Stream Explorer サーバーをインストールする手順を紹介します。

インストール手順

0. JDKをインストールする

JDKをおなじみの手順でインストールしますが、インストール先のディレクトリのパスにスペースが含まれると、パッチ適用でエラーになってしまいます^^;
標準のインストール先ですと"Program Files"フォルダにスペースが入ってしまうので、インストール先を変更して、入れておく必要があります。

本記事では、JDKのインストール先を"%JAVA_HOME%"と記述します。

1. インストーラとパッチをダウンロードする

ダウンロードサイトはこちら

  • Stream Explorer 12.1.3 Runtime(本体)
    • ofm_sx_generic_12.1.3.0.1_disk1_1of2.zip
  • Stream Explorer 12.1.3 User Experience(パッチ)
    • ofm_sx_generic_12.1.3.0.1_disk1_2of2.zip

ダウンロードしたzipファイルは解凍しておきます。以下、本体、パッチのzipを解凍してできたフォルダのパスを、それぞれ"%INSTALLER_HOME%"、"%PTACH_HOME%"と記します。

2. 本体をインストールする

2-1. 管理者権限でコマンドプロンプトを起動する

[スタート] > [アクセサリ] の順に選択し、[コマンド プロンプト] を右クリックします。展開したコンテキストメニューで、[管理者として実行] を選択してください。

2-2. インストールを実行する

2-1. で起動したコマンドプロンプトで、以下のコマンドを実行します。

> %JAVA_HOME%\bin\java.exe -jar %INSTALLER_HOME%\fmw_12.1.3.0.0_oep.jar

あとは、インストールウィザートにしたがって、インストールを進めてください。

途中、ORACLE_HOME(インストール先となるフォルダ)のパスを聞かれますが、以降このパスを "%ORACLE_HOME%"と記述します。

3. パッチを適用する

3-1. 管理者権限でコマンドプロンプトを起動する

2-1. と手順は同じです。

3-2. インストールを実行する

3-1. で起動したコマンドプロンプトで、以下のコマンドを順次実行します。

> cd %PATCH_HOME%\ofm_sx_generic_12.1.3.0.1_disk1_2of2\20636710
> %ORACLE_HOME%\OPatch\opatch.bat apply -jre %JAVA_HOME%\jre

以下のようなメッセージが表示されるので、"y"をタイプしてリターン

ローカル・システムにパッチを適用する準備ができましたか。[y|n]

最後に"OPatch succeeded."と表示されれば、パッチ適用は完了です。


Oracle Stream Explorer サーバーのインストール手順は以上です。

ロジクールのマウスM510のチルトボタンに、ウィンドウスナップを割り当てる

ロジクールのマウスは、SetPointというアプリケーションにより、各ボタンの機能をカスタマイズすることができます*1

しかし、中にはSerPointでも割り当てられない機能があって、例えばウィンドウを画面の右/左半分に寄せる、ウィンドウスナップが該当します。
本記事では、SetPoint拡張メモ:拡張手順の概略を参考にさせていただきながら、ウィンドウスナップをマウスのボタンに割り当てられるようにSetPointをカスタマイズする手順を紹介します。

マウスからウィンドウスナップをできるようにしておくと、アプリケーションを起動してウィンドウを配置を調整する一連の操作がシームレスにできるので、とても便利ですよ。

手順

筆者は、M510というチルト機能のあるマウスを使っています。M510の左右チルトに、左右のウィンドウスナップを割り当ててみます。

1. M510のデバイスファイルを特定する

SetPoint拡張メモ:拡張手順の概略の、1. 及び2. の手順にしたがってデバイスファイルのファイルパスを特定します。
M510の場合、デバイスファイルの絶対パスは"C:\ProgramData\Logishrd\SetPointP\Devices\PointingDevice\10000A9\10000A9.xml"となります。

2. デバイスファイルを編集する

デバイスファイルでは、マウスの各ボタンで割り当て可能な機能のセット(HandlerSetとHandlerSetGroup)が指定されています。 この記述により、SetPointの画面でマウスのボタンを選んだときに表示される選択肢が決まります。
ここをうまく編集して、SetPointで左右チルトを選んだときに、ウィンドウスナップが指定できるようにすればよいわけです。

デバイスファイルを開いたら、Button Number="7"、Button Number="8"となっているタグを見つけてください。それぞれ左チルトボタン、右チルトボタンに対応しています。このタグの配下の、TriggerState Nameタグの属性を以下のように変更します。

ボタン 属性 変更前 変更後
左チルト HandlerSet HorzScrollLeftSet SnapLeft
HandlerSetGroup ScrollLeftFloresGroup SmrkndSnapLeft
右チルト HandlerSet HorzScrollRightSet SnapRight
HandlerSetGroup ScrollRightFloresGroup SmrkndSnapRight

変更後のデバイスファイル(抜粋)は、以下の様な感じです。

    <!--
    <Button Number="7" Name="6"> 
        <Trigger Class="ButtonPress">
            <PARAM Button="7" Type="Tilt" /> 
            <TriggerState Name="ButtonDownUp" HandlerSet="HorzScrollLeftSet" HandlerSetGroup="ScrollLeftFloresGroup"/>
        </Trigger>
    </Button>
    -->
    <Button Number="7" Name="6"> 
        <Trigger Class="ButtonPress">
            <PARAM Button="7" Type="Tilt" /> 
            <TriggerState Name="ButtonDownUp" HandlerSet="SnapLeft" HandlerSetGroup="SmrkndSnapLeft"/>
        </Trigger>
    </Button>
    <!--
    <Button Number="8" Name="7"> 
        <Trigger Class="ButtonPress">
            <PARAM Button="8" Type="Tilt" /> 
            <TriggerState Name="ButtonDownUp" HandlerSet="HorzScrollRightSet" HandlerSetGroup="ScrollRightFloresGroup"/>
        </Trigger>
    </Button>
    -->
    <Button Number="8" Name="7"> 
        <Trigger Class="ButtonPress">
            <PARAM Button="8" Type="Tilt" /> 
            <TriggerState Name="ButtonDownUp" HandlerSet="SnapRight" HandlerSetGroup="SmrkndSnapRight"/>
        </Trigger>
    </Button>

3. SetPointで、ウィンドウスナップを割り当てる

デバイスファイルの編集ができたら、SetPointを再起動してください。
タスクトレイに常駐しているSetPointのアイコンをクリックすると、「終了」を選択することができます。その後、スタートメニューから「マウスおよびキーボードの設定」を探して起動します。

正しくカスタマイズされていると、以下の様な画面となります。左右チルトに、ウィンドウスナップが割り当てられるようになっています。

f:id:charlier_shoe:20150813115631p:plain

上の画像を見るとお気づきになるかと思いますが、本記事の方法では、ウィンドウスナップ以外の機能を選択することはできなくなります。他の機能を含めて選択できるようにするには、SetPoint拡張メモ:拡張手順の概略と、他一連の記事を参照し、SetPointの各種設定ファイルを使いこなしてください!

最後に、改めて、元記事を作成してくださった@did2memo様に感謝いたします。

ウィンドウスナップをM510のチルトボタンに割り当てる手順は、以上です。

*1:最近リリースされたいくつかのマウスは、Logicool Optionsという新しいアプリケーションに変わっているため、本記事で紹介する手順は利用できません

動的PDBスイッチングのメリット

Oracle WebLogic Server 12cとOracle Database 12cの組み合わせで、「動的PDBスイッチング」という機能を利用できます。 Oracle公式のホワイトペーパーでは、動的PDBスイッチングを利用しない構成を「Single data source per PDB」、利用する構成を「Single data source to pool connections to multiple Multitenant database」と言っています。

これらの違いと、動的PDBスイッチングを利用するメリットがピンと来なかったので、調べてみました。

■Single data source per PDB

  • 単一のデータソースが、ひとつのPDBの接続のために利用される
  • アプリケーションは、自分専用のデータソースを利用して、目的のPDBにアクセスする
  • メリット
    • データベースレベルでのスケーラビリティと柔軟性を確保
    • 旧バージョンのアプリケーションサーバーからもDBに接続できる

■Single data source to pool connections to multiple Multitenant database(動的PDBスイッチング)

  • 単一のデータソースから、複数PDBに接続できる
  • アプリケーションは、共有コネクションプールの利用時に自分が接続したいPDBを指定して、目的のPDBにアクセスする
  • メリット
    • コネクションプーリングと同様のメリットを、複数のアプリケーションにまたがって享受できる
    • コネクションプーリングのメリットは以下
      • コネクション生成のオーバーヘッドの削減
      • アイドル状態のコネクションの削減

参考リソース

JCSとJCS-SXの違い

Oracle社が提供しいてるJavaのPaaSサービスには、JCS(Java Cloud Service)とJCS-SX(Java Cloud Service SaaS Extention)があります。
これらをどう使い分けたら良いかで迷ったので、調べて記事にしようと思ったのですが、既にOracleのサイトにまとめられておりました。

JCSはスクラッチで組み上げたアプリケーションを動かすことを想定しているようです。
リソースのコンフィギュレーションの自由度が比較的高く、インフラ層(下層マシン)へのアクセスの制限も少なくなっています。
また、最新バージョンのWebLogic Serverが利用できたり、エディション(SE、EE、Suite)が選べるのもこちらです。

一方JCSーSXは、OracleSaaSアプリケーションと連携する拡張機能を作成することを想定しているようです。
リソース構成の選択肢がシンプルになっていたり、SaaSアプリケーションとのSSOがあらかじめ構成されていたりと、少ない労力で拡張機能を構築できることが重視されています。
一方で、インフラ層へのアクセスには制限が多かったり、WebLogic Serverのバージョンやエディションにも制約があったりと、フルチューニングのアプリを一から構築するのには向かないようです。

詳細は上記サイトを参照ください。

Oracle VirtualBox上にOracle Linux 7.1をインストールするときにはまったこと

Oracle VirtualBox 上に Oracle Linux 7.1 のゲストOSを構成したとき、Guest Additionsのインストールにはまったので、対応方法をメモしておきます。

問題の症状

Oracle VirtualBox Guest Additions は、通常以下の手順でインストールします(ゲストOSのインストールは完了している前提)。

  1. Guest Additions のディスクイメージをマウントする
    • ツールバーの [デバイス] > [Guest Additions CD イメージの挿入]
  2. ゲストOS上で、マウントされたディスクのアイコンをダブルクリック
    1. で開いたウィンドウで[ソフトウェアの実行]をクリック

上記の手順で、3.までをおこなうと、以下のようなエラーが発生します。

Verifying archive integrity... All good.
…
Installing additional modules ...
Removing existing VirtualBox non-DKMS kernel modules[  OK  ]
Building the VirtualBox Guest Additions kernel modules
The headers for the current running kernel were not found. If the following
module compilation fails then this could be the reason.
The missing package can be probably installed with
yum install kernel-uek-devel-3.8.13-55.1.6.el7uek.x86_64

Building the main Guest Additions module[失敗]
(Look at /var/log/vboxadd-install.log to find out what went wrong)
…
Installing graphics libraries and desktop services components[  OK  ]
Press Return to close this window...

また、エラーログを確認すると、以下のように出力されています。

/tmp/vbox.0/Makefile.include.header:97: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again.  中止.
Creating user for the Guest Additions.
Creating udev rule for the Guest Additions kernel module.

これはGuestAdditionがkernelのソースコードを必要としているのに、システムにソースコードがインストールされていないために発生するらしいです。*1

対策

ここで慌てずに、エラーメッセージをよく見ると、以下のような記述があるはずです。

module compilation fails then this could be the reason.
The missing package can be probably installed with
yum install kernel-uek-devel-3.8.13-55.1.6.el7uek.x86_64

上記メッセージにしたがって、以下のコマンドを実行します。 このコマンドは、rootでログインして実行する必要があります。

$ yum install kernel-uek-devel-3.8.13-55.1.6.el7uek.x86_64

その後、ゲストOSをリブートし、Guest Additions のインストールを再度おこなえば、正常にインストールできると思います。

Oracle RAC周りの用語の整理

Oracle RAC周りの技術について学ぶ必要が出てきたため、周辺の用語を整理してみました。

  • RAC

  • FCF

    • Fast Connection Failover(高速接続フェイルオーバー)
    • Oracle RACに、GridLinkデータソースまたはUCPで接続すると利用できる
    • RACから送信される死活情報を元に、障害時に、接続プール側で接続先の切 り替え(フェイルオーバー)をおこなう
  • UCP

    • Universal Connection Pool
    • データベース接続オブジェクトのキャッシュ
    • 以下のような利点がある
      • 新しい接続オブジェクトが作成される回数を減らす
      • 接続オブジェクトを手動で管理するために必要な労力を削減する
      • etc...
  • Active GridLink for RAC

    • Oracle WebLogic Suite専用の機能
    • GridLinkデータソースを用いてOracle DBのRACに接続
    • GridLinkデータソースは、UCPを内部で利用(→FCFを利用可能)
    • 以下のような機能がある*1
      • SCAN
        • Single Client Access Name
        • RACのサービスにアクセスする単一アドレスを提供
      • FCF
      • RCLB
        • Runtime Connection Load Balancing(実行時接続ロードバランシング)
        • Oracle DB 11.2からは非推奨(UCPに移行)
      • Webセッション・アフィニティ
        • 同じデータにアクセスする可能性の高い同一HTTPセッションからの接続要求に対しては、できるだけ同一RACインスタンスから確保した接続を返す
      • XAトランザクション・アフィニティ
        • グローバル・トランザクションに参加しているサーバー・インスタンスが、関連するリクエストを他のメンバー・サーバーにロード・バランシングしないで処理できるようにする
    • 参考: Active GridLink for RAC 入門

その他の分からない言葉

  • Oracle XA
    • X/Open Distributed Transaction Processing(DTP)

*1:UCPを使っていれば利用可能な機能も含まれる