監視および復旧データベースとして Oracle を使用している場合は、Oracle の Type 2 ドライバである OCI (Oracle Call Interface) ドライバを使用できます。これには、追加の手順がいくつか必要になります。BPM は通常、DataDirect® ドライバを使用して、データベース接続を確立したり、データベースサーバーと通信したりします。ここでは、OCI ドライバ用に BPM を有効にして設定するための要件および手順について説明します。
OCI ドライバは、監視および復旧データベースとの組み合わせでのみ機能します。ワークリストマネージャーは、DataDirect ドライバのみを使用します。
Oracle OCI ドライバは、データベースとの通信のために使用されている広範囲のネイティブコードのために、シックドライバとも呼ばれます。OCI は C で記述されており、その Java 呼び出しはすべて、JNI を使用して呼び出しを C レイヤーに転送します。この C レイヤーがデータベースと通信して、結果を Java レイヤーに返します。
Java 呼び出しを C 呼び出しにマップするためのライブラリは、Oracle クライアントのインストールとともにインストールされます。OCI を使用して監視および復旧の持続性を有効にするには、Oracle クライアントソフトウェアをインストールする必要があります。
OCI ドライバを設定する前に、次の確認を行う必要があります。
Oracle データベースが実行されており、SQL Plus クライアントを使用してそのデータベースにアクセスできること。また、BPM エンジンが Oracle データベースサーバーに接続できることも確認してください。DataDirect ドライバを使用してエンジンの持続性を設定することによって接続をテストし、監視および復旧データベーステーブルに正常にデータが生成されていることを確認します。
Oracle クライアントがインストールされており、tnsnames.ora に Oracle データベースに接続するためのエントリが存在すること。Oracle クライアントをインストールすると、OCI ドライバでのデータベースとの対話および接続に必要なすべてのライブラリがインストールされます。
バージョン 9.2 より前の Oracle データベースサーバーに接続している場合は、下位互換のために Oracle クライアントを更新するためのパッチを DBA から入手してください。適切な下位互換のパッチを適用しないと、Oracle クライアントが古いデータベースサーバーと正常に通信できずに、予測しない動作が実行されることがあります。
OCI ドライバを使用して Oracle データベースへの接続を作成するには、OCI クライアントのバージョンと JDBC ドライバのバージョンが一致している必要があります。バージョンが一致しない場合は、接続のテストまたはオープンが失敗します。OCI クライアントのバージョンによっては、次のいずれかのエラーが発生する可能性があります。
Character Set Not Supported !!: DBConversion oracle.jdbc.oci8.OCIEnv.envCharSetId java.lang.NoSuchFieldError: oracle.jdbc.oci8.OCIEnv.envCharSetId |
OCI ドライバを実装するには、次のタスクを実行する必要があります。
BPM で OCI ドライバを使用するには、ライブラリファイルが論理ホストのライブラリディレクトリに存在する必要があります。
論理ホストが存在するシステムに Oracle クライアントをインストールします。
tnsnames.ora で監視および復旧データベースを定義します。
ojdbc14.jar (JDK 1.4 以降の場合) または classes12.jar (JDK 1.2 および 1.3 の場合) を、Oracle クライアントインストール内の /jdbc/lib サブディレクトリから、論理ホストのドメイン固有のディレクトリ内の /lib サブディレクトリにコピーします。次に例を示します。
oracle_home\jdbc\lib から
logical_host\is\domains\domain1\lib にコピー
|
Oracle インストールのファイルの場所は、使用する Oracle のバージョンにもよりますし、クライアントまたはサーバーのいずれでインストールされているかによっても異なります。
ドライバクラスをロードするために、論理ホストのインスタンスを再起動します。
BPM エンジンで OCI ドライバを有効にするには、次の環境変数を設定します。
oracle_home は、Oracle クライアントまたはデータベースがインストールされているディレクトリを指します。例:C:\oracle\ora92、または /home/oracle/orahome 。このフォルダには、bin、network、jdbc、jlib、lib などのサブフォルダが含まれています。
Windows オペレーティングシステムの場合:
oracle_home 環境変数を設定します。
システム PATH に oracle_home\lib を追加します。
システム PATH に oracle_home\bin を追加します。
Linux および Unix オペレーティングシステムの場合 (HPUX と AIX を除く):
oracle_home 環境変数を設定します。
LD_LIBRARY_PATH 環境変数に oracle_home/lib を追加します。
PATH 環境変数に oracle_home/bin を追加します。
HP-UX の場合:
oracle_home 環境変数を設定します。
SHLIB_PATH 環境変数に oracle_home/lib を追加します。
PATH 環境変数に oracle_home/bin を追加します。
AIX の場合:
oracle_home 環境変数を設定します。
LIBPATH 環境変数に oracle_home/lib を追加します。
PATH 環境変数に oracle_home/bin を追加します。
デフォルトのシンドライバの代わりに OCI ドライバを使用するように BPM エンジンを設定する必要があります。これは、環境エクスプローラにあるインテグレーションサーバーのプロパティーシートで設定されます。
環境エクスプローラで、インテグレーションサーバーまたはアプリケーションサーバーを右クリックし、「プロパティー」をクリックします。
「BPM エンジンの設定」をクリックします。
「プロパティー」ダイアログボックスで、「Oracle Net Service 名」フィールドにサービス名を入力します。
入力する値は、tnsnames.ora ファイル (<oracle_home>/network/admin にある) で設定されている TNS 名です。次の例は、Oracle Net Service 名が ORCL.STC.COM である、標準的な TNS 名の設定を示しています。
ORCL.STC.COM = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = MyHost)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) |
プロパティーを入力します。
「了解」をクリックします。
次の表は、「BPM エンジンの設定」プロパティーで設定する必要のあるフィールドを示しています。
説明 |
|
---|---|
持続性が有効になっているかどうかのインジケータ。BPM で持続性を有効にするには、いずれかの「データベースの持続性」オプションを選択します。 |
|
使用されているデータベースプラットフォーム。OCI 機能を有効にするには、Oracle の正しいバージョンを選択します。 |
|
Oracle データベースが存在するコンピューターの名前。 |
|
Oracle データベースが待機するポート。デフォルトは 1521 です。 |
|
データベースの TNS 名 (tnsnames.ora より)。このプロパティーが設定されている場合、BPM エンジンは OCI ドライバを使用します。それ以外の場合、BPM エンジンはデフォルトの DataDirect ドライバを使用します。 |
|
データベースの名前。 |
|
監視および復旧テーブルにアクセスするためのユーザー名。 |
|
監視および復旧テーブルにアクセスするためのパスワード。 |
Oracle RAC は、クラスタテクノロジを使用して共有データベースにアクセスする 2 つ以上のインスタンスを持つ Oracle データベースです。クラスタとは、同じタスクを実行するために連携して動作するマシン (またはノード) のグループのことです。このアーキテクチャーをサポートするために、データベースインスタンスをホストする 2 台以上のマシンが高速インターコネクトでリンクされて、クラスタが形成されます。インターコネクトは、クラスタの各ノード間の通信手段として使用される物理ネットワークです。
Oracle RAC をインストールしたあと、もっとも高いレベルの可用性を保証するために、透過的アプリケーションフェイルオーバー (TAF) 機能を設定することができます。TAF によって、すべてのレベルの可用性階層が補完されます。アプリケーションとユーザーは自動的かつ透過的に別のシステムに再接続され、アプリケーションとクエリーは中断なく続行され、さらにログインコンテキストは保持されます。Oracle Net Service を設定して、障害が発生した場合に RAC の各データベースインスタンス上のリスナーをフェイルオーバーできます。
TAF 機能をテストするための Oracle RAC/OPS システムの設定は、このマニュアルの範囲を超えています。tnsnames.ora および listener.ora ファイル内の設定を使用して Oracle RAC/OPS サーバーを設定する方法については、DBA に問い合わせてください。
OCI ドライバは、BPM エンジンとの組み合わせでのみ機能します。ワークリストマネージャーは、DataDirect ドライバのみを使用します。
同じデータストレージを共有する複数のホストまたはインスタンスを使用して Oracle RAC サーバーを設定します。
OCI ドライバを使用している場合に、TAF 機能を有効にするように tnsnames.ora を設定する方法については、「開始する前に」を参照してください。
論理ホストを実行しているマシン上に Oracle クライアントがインストールされていない場合は、インストールします。
OCI が機能するためには、Oracle クライアントをインストールする必要があります。OCI ドライバはネイティブな C 呼び出しに基づいてデータベースへの接続を確立するため、BPM にパッケージされているものと同じバージョンの Oracle クライアントをインストールする必要があります。OCI のバージョンが競合すると、BPM での OCI ドライバの設定で問題が発生することがあります。
TAF 用に tnsnames.ora ファイルを設定します。
透過的アプリケーションフェイルオーバー (TAF) 用に設定された tnsnames.ora ファイルの例を次に示します。
オプション 1: 接続時間フェイルオーバーおよび TAF
MY_CLUSTER = (DESCRIPTION = (FAILOVER = ON) (LOAD_BALANCE = OFF) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = Node1)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = Node2)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = my_cluster.my_company.com) (FAILOVER_MODE = (TYPE = SELECT) (METHOD = PRECONNECT) (BACKUP=Node2) ) ) ) |
オプション 2: TAF 設定
MY_CLUSTER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = Node1)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = my_cluster.my_company.com) (FAILOVER_MODE = (TYPE = SELECT) (METHOD = PRECONNECT) (BACKUP = Node2) ) ) ) |
この設定では、MY_CLUSTER が、クラスタとして機能するように設定された 2 つのノードを認識しています。このクラスタを、RAC/OPS で同じディスクを共有するように設定してください。
オプション 1 では、FAILOVER が ON に、LOADBALANCE が OFF に設定されています。これは、接続時間フェイルオーバー用の設定です。接続時間フェイルオーバーでは、OCI ドライバが Node1 に接続を試みてそのノードがダウンしていると判断すると、アドレスリスト内のほかのホスト (Node2) に接続します。オプション 2 は、単に、OCI クライアントでの TAF 機能のみの設定を示すために掲載されています。BPM では、接続時間フェイルオーバーと TAF 設定の両方が必要です。
TAF オプションを設定するには、tnsnames.ora ファイルに Oracle Net パラメータを追加するとともに、参加しているいずれかのノードに障害が発生した場合のフェイルオーバープロセス内の次のステップを確認するためにパラメータ値を使用する必要があります。TAF オプションを起動するパラメータは、接続記述子の CONNECT_DATA セクションの下にある FAILOVER_MODE です。次のパラメータを 1 つ以上使用することによって、TAF のフル機能を実現できます。
トラブルシューティングに役立つ一般的なエラーメッセージと解決方法を次に示します。
表 3 Windows システムのトラブルシューティング表 4 Linux/Unix システムのトラブルシューティング