第6章

Oracleデータベースの設定

この章では、SilverMasterまたは展開データベースとしてNovell exteNd Application Serverで使用するOracleデータベースの設定方法について説明します。この章の節は次のとおりです。

For more information    サポートされているデータベースバージョンの最新情報については、Novell exteNd Application Serverのリリースノートを参照してください。

 
Top of page

Oracleデータベースの基本的なセットアップ

OracleデータベースにアクセスするためにNovell exteNd Application Serverでどのドライバを使用するかにかかわらず、次のセットアップ手順を実行します。

  1. SilverMasterで使用するOracleテーブルスペースを作成します。

  2. アプリケーションサーバのOracleユーザを作成します。

 
Top of section

SilverMasterで使用するOracleテーブルスペースの作成

SilverMasterで使用するOracleテーブルスペースを作成することによって最適なパフォーマンスを得ることができ、インストールも容易になります。Oracleテーブルスペースを作成するには、SQL Plusを実行し、SystemまたはSYSDBAとしてOracleに接続します。

たとえば、次のステートメントでは初期サイズが30MBのテーブルスペースを作成します。

  CREATE TABLESPACE SilverTablespace 
  DATAFILE \qc:\databases\silvertablespace.dbf\q SIZE 30M; 

このステートメントをSQL Plusプロンプトから発行できます。既存のテーブルスペースを使用するよう選択した場合は、十分なスペースが使用可能であることを確認してください。

 
Top of section

アプリケーションサーバ用Oracleユーザの作成

アプリケーションサーバをOracleに接続するには、アプリケーションサーバが排他的に使用する新規のOracleユーザを作成します。このユーザがSilverMasterテーブルの所有者になります。

SQL Plusユーティリティを使用して次のステートメントを発行します。これらのステートメントによってユーザが作成され、ユーザの権限が設定されます。

  CREATE USER smuser IDENTIFIED BY password 
  DEFAULT TABLESPACE SilverTablespace 
  QUOTA UNLIMITED ON SilverTablespace; 
  GRANT CONNECT, RESOURCE to smuser; 
  REVOKE UNLIMITED TABLESPACE from smuser; 

 
Top of page

Oracleドライバの設定

アプリケーションサーバは、次のいずれかのドライバを使用してOracleデータベースに接続します。

For more information    各ドライバで使用可能なOracleデータベースのバージョンについては、アプリケーションサーバのリリースノートを参照してください。

 
Top of section

Oracle Thin JDBC Driverの使用

アプリケーションサーバは、Oracleから提供されているJDBCドライバを使用してOracleデータベースに接続できます。

ドライバのインストール

アプリケーションサーバが置かれるシステム上にOracle Thin JDBCドライバをインストールする必要があります。JDBCドライバから宛先のOracleデータベースに接続できる必要があります。

AGCLASSPATHにドライバパスを追加

Oracle Thin JDBC Driverの場所(たとえば、DriverPath/ojdbc14.jarおよびDriverPath/nls_charset12.zip)はAGCLASSPATH変数で指定する必要があります。Windowsの場合、AGCLASSPATHはシステム環境変数です。UNIXの場合は、agprofileファイルの中にあります。NetWareの場合は、setenvコマンドを使用してAGCLASSPATHを設定する必要があります(setenv AGCLASSPATH=path1;path2;path3;...)。

For more information    詳細については、『管理者用ガイド』のデータソース設定に関する章を参照してください。

 
Top of section

Oracle OCI Driverの使用

アプリケーションサーバは、Oracleから提供されているOCIドライバを使用してOracle 9i データベースに接続できます。

ドライバのインストール

アプリケーションサーバが置かれるシステム上にOracle OCI Driverをインストールする必要があります。JDBCドライバから宛先のOracleデータベースに接続できる必要があります。

AGCLASSPATHにドライバパスを追加

Oracle OCI Driverの場所(たとえば、DriverPath/ojdbc14.jarおよびDriverPath/nls_charset12.zip)はAGCLASSPATH変数で指定する必要があります。Windowsの場合、AGCLASSPATHはシステム環境変数です。UNIXの場合は、agprofileファイルの中にあります。

For more information    詳細については、『管理者用ガイド』のデータソース設定に関する章を参照してください。

 
Top of section

Novell exteNd Oracleドライバの使用

アプリケーションサーバは、Novellが提供するType 2 JDBCドライバを使用してOracleデータベースに接続できます。セットアップには次の手順が含まれます。

  1. Oracle SQL Netクライアントを、アプリケーションサーバが常駐するシステム上にインストールします。

  2. アプリケーションサーバで使用するSQL Net Aliasを作成します。

Oracle SQL Net Clientのインストール

アプリケーションサーバシステムにOracle SQL Net Clientのバージョン2.3.4.0.0がインストールされていない場合は、手順を続行する前に今すぐインストールします。SQL Netのこのバージョンがない場合は、Oracle株式会社から入手してください。Oracle CDを使って、次の手順に従ってアプリケーションユーザのクライアントをインストールします。

すでにクライアントがインストールされている場合は、Oracle for Windows NTのプログラムフォルダからOracle Installerを実行して、インストールされているSQL Netのバージョンを判別できます。

Oracle SQL Net Aliasの作成

Oracleサーバに接続するためには、ターゲットのOracleサーバを参照する有効なOracle SQL Net Aliasが必要になります。

Procedure Oracle SQL Net Aliasを作成する

  1. Oracle for Windows NTプログラムグループからSQL Net Easy Configurationを実行します。

    注記:   UNIXの場合は、$ORACLE_HOME/bin/ directoryからnet8wiz.shを実行します。

  2. [データベース別名追加]を選択します。

  3. エイリアスの名前を入力します(この名前はアプリケーションサーバのインストール時に指定します)。

    このエイリアスの推奨される名前はSilverMasterORCLです。

  4. プロトコルとして[TCP/IP]を選択し、[OK]を選択して続行します。

  5. [TCP/IPのホスト名]にOracleサーバのホスト名を入力し、正しいインスタンス名を入力します。

  6. 続行するには[OK]を選択します。

  7. 新しいエイリアスを作成するには、[はい]を選択します。この時点で、SQL Net Easy Configurationユーティリティを終了できます。

  8. SQL Plusを使用して、新しく作成されたSQL Net AliasでOracleデータベースサーバに接続できるかどうかテストします。

 
Top of page

アプリケーションサーバでデータベースを使用

これでアプリケーションサーバーからOracleデータベースにアクセスする準備が整いました。これで、次の作業を実行できるようになります。

For more information    詳細については、『管理者用ガイド』のデータソース設定に関する章を参照してください。

 
Top of section

Oracle上に展開データベースを作成

アプリケーションサーバにOracleデータベースを追加することは、Oracleユーザを追加することと同じです。データベースの追加では、次の2つの作業を行います。

Oracleデータベースを追加する前に

システムテーブルを別々に保存   アプリケーションサーバのシステムテーブルを別々のデータベースアカウントに保存したい場合は、すでに説明されている方法で追加のデータベースユーザを作成します。Novell exteNd Oracleドライバを使用している場合は、新しいOracle SQL Net Aliasを作成します。システムテーブルは、アプリケーションサーバでサポートされている他の任意のデータベースに保存することもできます。

異なる文字セットの使用   Oracleインスタンスで指定されている文字セットと異なる文字セットを使用するようにNovell exteNd Oracle 8ドライバに通知することができます。これは、データの文字セットのエンコードがOracleインスタンスで指定されている文字セットと異なる場合に行います。このトピックに関するホワイトペーパーは、Novell exteNd Application Server製品サポートサイトで入手可能です。

データベースの追加

OCIまたはNovell exteNd Oracleドライバを使用している場合のデータベースの指定   アプリケーションサーバにOracleデータベースを追加するとき、データベース名を入力するよう求められます。OCIまたはNovell exteNd Oracleドライバを使用している場合、データベース名はOracle SQLNet Aliasまたはtnsnames.oraエントリを参照します。SQLNet Aliasは、特定のサーバ上にある特定のOracleデータベースインスタンスを指します。通常は、1つのOracleデータベースにつき「1つ」です。

アプリケーションサーバには、固有のデータベース名が必要です。つまり、追加する各Oracleデータベースユーザに対して固有のSQLNet Aliasを作成する必要があります。したがって、SilverMaster、アプリケーションテーブル、およびアプリケーションサーバのシステムテーブルが3つの異なるOracleデータベースユーザに保存されている場合は、各ユーザに1つずつ、3つの固有なSQLNet Aliasesが必要です。各SQLNet Aliasは同じOracleデータベースを指します。

For more information    または、複数のSQLNet Aliasを設定したくない場合は、1つのSQLNet Aliasの使用を参照してください。

Oracle 8iの注意点    次の点に注意してください。

トピック

説明

名前にピリオドが含まれているデータベースの使用

Oracle 8iを使用する場合、ピリオドが含まれているデータベース名を使用することはできません。名前にピリオドが含まれている場合でも正しくデータベースを追加できますが、後でアプリケーションサーバとデータベース間で対話する際にNullPointer Exceptionエラーおよびその他の不具合が発生します。

Novell exteNd Oracleドライバを使用している場合、tnsnames.oraエントリはフォームmyalias.domain.comになります。Windowsの場合は、アプリケーションサーバにデータベースを追加するときにデータベース名のmyalias を指定するだけで、データベースに正しく接続できます。ただし、ほとんどのUNIXプラットフォームでは、この省略された指定だけではtnsnames.oraのエントリと正しく一致しません。データベースをアプリケーションサーバに追加するとき、「TNS名のエントリが見つからない」ことを示すエラーが発生します。

接続の確認

アプリケーションサーバのデータベース接続の動作は、SQLPlusの動作と同じです。Oracle 8iへの接続をトラブルシューティングする最適な方法は、まずSQLPlusを介して接続を確認することです。アプリケーションサーバに必要なのはmyaliasなので、myaliasのみに接続してください。

たとえば、sqlplus login/password@myalias.domain.comではなく、sqlplus login/password@myaliasを使用して接続してみます。

SQLPlusを使用してmyaliasに接続できない場合は、tnsnames.oraエントリを編集して、エントリからdomain.comを削除する必要があります。

1つのSQLNet Aliasの使用

これは、OCIまたはNovell exteNd Oracleドライバを使用している場合に利用できる高度なオプション機能です。デフォルトでは、Add Databaseプロセスは、アプリケーションサーバ環境で使用している各Oracleデータベースユーザごとに別々のSQLNet Alias (TNS NAME)を指定してOracleデータベースを追加することを想定します。

これ以降の手順は経験豊富なユーザが対象で、単一のSQLNet Aliasを使用してインストールする方法について説明しています。

Procedure 単一のSQLNet Aliasを使用してインストールする

  1. アプリケーションサーバに新規のデータベースを追加するときに、[データベース名]ボックスにSQLNet Alias (TNS NAME)を入力しないでください。それ以外の任意の名前を入力します。

  2. ユーザ名とパスワードを入力し、データベースプラットフォームとして[Oracle 7]または[Oracle 8]を選択します。

  3. ドライバセットには、[ユーザ指定のJDBCドライバ]を選択します。

  4. [次へ]をクリックします。

    これでJDBC接続文字列を入力できます。

  5. JDBC URLの場合は、次のように入力します。

      jdbc:sssw:oracle:TNSNAME
    

    TNSNAMEは、tnsnames.oraファイルのTNS NAMEに置き換えます。

これで、同じTNS NAMEを使用して必要な数のデータベースに接続できます。システムテーブルは別に保存されていることを確認してください。

回避すべき事項   次の規則を守ることによって、問題の発生頻度を少なくすることができます。

用語の違い   DBMSが異なると、使用される用語も異なります。アプリケーションサーバでは「データベース」という用語を使用しますが、Oracleではこれは「Oracleデータベースユーザ」に相当します。次の表は、その他の相違点について説明しています。

アプリケーションサーバ用語

Oracle用語

SilverMasterデータベース

SilverMasterテーブルを所有するOracleデータベースユーザ

データベースの追加

Oracleデータベースへの特定ユーザの追加

 
Top of page

同義語の使用

アプリケーションサーバでは、Oracle 8以降のテーブルおよびビューの同義語のサポートが提供されています。

注記:   Oracleを使用すると、オブジェクトテーブル、オブジェクトビュー、およびストアドプロシージャを含む他の種類のオブジェクトの同義語も定義できます。アプリケーションサーバでは、テーブルとビューの同義語のみをサポートします。

 
Top of section

ドライバの指定

同義語サポートを有効にするには、Oracleデータベースをアプリケーションサーバに追加するときに、次のドライバのいずれかを指定する必要があります。

 
Top of section

同義語のタイプ

同義語は、プライベートかパブリックのどちらかになります。「パブリックの同義語」は、特別のユーザグループPUBLICによって所有され、データベースのすべてのユーザがアクセスできます。

「プライベートの同義語」は、他ユーザのアクセスを制御する、特定のユーザのスキーマの中にあります(Oracleの『Oracle 8 Concepts』マニュアルを参照してください)。個々のユーザは、パブリックの同義語と自分自身のプライベートな同義語のみを参照できます。

 
Top of section

同義語サポートの有効化と無効化

アプリケーションサーバのResourcesディレクトリにあるplatforms.dblファイルに、ドライバで同義語をサポートするかどうかを指定するincludeSynonymsと呼ばれるプロパティがあります。このプロパティはドライバのPROPERTIESセクションにあります。

  DRIVER
  /Name ...
  /JdbcDriver ...
  /DriverSet ...
  ...
  
  PROPERTIES
  /includeSynonyms       "true"

これらのドライバのいずれか1つを使用しつつ、同義語サポートは無効にする場合は、includeSynonymsのプロパティをfalseに設定します。同様に、独自のOracleドライバを作成済みで、同義語サポートを実装している場合、必要なサポートを有効にするには、ドライバのPROPERTIESセクションでincludeSynonymsプロパティをtrueに設定します。

 
Top of page

トラブルシューティング

この節では、一般的なエラーと回避策について説明します。

ORA-01019 "unable to allocate memory in the user side"   Net8 Oracle Clientで実行中にこのメッセージを受け取った場合は、アプリケーションサーバがインストールされているシステムのメモリを解放して、使用可能なメモリを確保します。

ORA-01460 "unimplemented or unreasonable conversion requested"   SilverMasterInitでOracle SilverMasterを作成しているとき、またはアプリケーションサーバにOracleデータベースを追加しようとしているときにこのメッセージを受け取った場合は、Oracleクライアントソフトウェアのバージョンをバージョン8.0.4以上にアップグレードする必要があります。この問題はバージョン8.0.4より古いバージョンで発生します。

ORA-01631, 00000, "max # extents (%s) reached in table %s.%s"   このメッセージは、テーブル拡張の際に最大サイズを超過したときに表示されます。この問題を解決するには、SilverMasterユーザのDEFAULT TABLESPACEのINITIAL、NEXT、およびPCTINCREASEパラメータをチェックします。この値を増やすには、DBA権限を取得する必要があります。例は次のとおりです。

  SELECT DEFAULT_TABLESPACE 
  FROM dba_users 
  WHERE username = \qMYUSER\q; 
  SELECT * 
  FROM dba_tablespaces 
  WHERE tablespace_name = \qMYTABLESPACE\q; 
  ALTER TABLESPACE MYTABLESPACE 
  DEFAULT STORAGE (INITIAL 10K, NEXT 10K, PCTINCREASE 50); 

ORA-01950, 00000, "no privileges on tablespace \q%s\q"   このメッセージは、ユーザが指定されたテーブルスペースにエクステントを割り当てる権限を持っていない場合に表示されます。この問題を解決するには、指定されたデータベースのユーザにQUOTA権限を許可します。例は次のとおりです。

  ALTER USER MYUSER 
  QUOTA UNLIMITED ON MYTABLESPACE; 

TNS-12154 "TNS:could not resolve service name"   このメッセージを受け取った場合は、Oracle SQL Net Aliasの作成で説明されているとおりに正しくSQL Net Aliasを作成したことを確認する必要があります。

Oracleデータベースのテーブルスペース   インストールでは、SilverMasterデータベース用に指定されているユーザ名/パスワードのデフォルトテーブルスペースを使用します。通常は、次のSQLステートメントを使用してデフォルトテーブルスペースを設定できます。

  ALTER USER username DEFAULT TABLESPACE mytablespace ;

多数のテーブルの追加   アプリケーションサーバを大規模なOracleテーブルスペースに接続する場合は、SMC (Server Management Console)を開いて、サーバ要求のタイムアウト値を30,000秒に変更します。

大規模なOracleアプリケーションを追加する前にこの値を変更しておく必要があります。アプリケーションが正しく追加されたら、値をデフォルト値(3,000)にリセットします。この変更を適用するため、アプリケーションサーバを再起動する必要があります。

For more information    詳細については、『管理者用ガイド』のパフォーマンスパラメータの設定に関する章を参照してください。

同じアプリケーションサーバでの異なるデータベースタイプの使用   Oracle以外のSilverMasterとともにインストールした場合に、Oracleデータベースを追加するときは、SHLIB_PATH (HP-UXの場合)、LD_LIBRARY_PATH (SolarisおよびLinuxの場合)、またはLIBPATH (AIXの場合)に、$ORACLE_HOMEおよび$ORACLE_HOME/libを設定する必要があります。

Solaris上でOracle 8iデータベースを追加   Solarisの場合、Oracle 8iデータベースをSilverMasterとして使用していないものの、Oracle 8iクライアントソフトウェアを使用していて、サーバにOracle 8iデータベースを追加したい場合は、ライブラリファイルを$EXTENDAPPSERVERROOT/binディレクトリにコピーする必要があります。デフォルトでは、インストールされているOracleドライバライブラリファイルはOracle 8用です。

次の手順に従って、代わりにOracle 8iライブラリを使用することができます。

  1. libagora8_jni.soファイルをバックアップします。

      # cd $EXTENDAPPSERVERROOT/bin
      # cp libagora8_jni.so libagora8_jni.so.orig
    
  2. Oracle 8iドライバライブラリファイルをコピーします。

      # cp libagora8_jni.so.8i libagora8_jni.so
    

HP-UXまたはAIXからOracleに接続   Novell exteNd Oracleドライバを使用している場合、HP-UXまたはAIXドライバからOracleデータベースに接続するには、HP-UXまたはAIXコンピュータに少なくとも次のOracleコンポーネントがインストールされている必要があります。

さらに、Oracleインストールプロセス中に、Oracle製品実行可能ファイルを再リンクするかどうかを尋ねられます。ここで[yes]と応答する必要があります。デフォルトでは、再リンクされません。

Oracleインストールがアプリケーションサーバに対して十分でない場合は、SilverMasterInitの実行時に次のエラーが表示されます。

  /usr/lib/dld.sl:Unresolved symbol: opinit (code) from /home/username/exteNdAppServer/bin/libagora_jni.sl

このエラーまたは他のタイプの接続エラーが発生した場合は、リストされているOracleコンポーネントがインストールされていること、およびSQL*Plusを使用してデータベースに接続できることを確認してください。



Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved.  more ...