exteNd Application Server 5.0
コアヘルプ

 

    First Previous Next Last インストールガイド  05/21/03 11:48:11 

第10章    Oracleデータベースの設定

この章では、SilverMasterまたは配備データベースとしてNovell exteNd アプリケーションサーバで使用するOracleデータベースの設定方法について説明します。 この章の節は次のとおりです。

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

 
Top of page

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

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

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

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

 
Top of section

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

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

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

  CREATE TABLESPACE SilverTablespace 
  DATAFILE \x91 c:\databases\silvertablespace.dbf\x92  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を使って、次の手順に従ってアプリケーションユーザのクライアントをインストールします。

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

Oracle SQL Net Aliasの作成

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

Procedure Oracle SQL Net Aliasを作成する

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

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

  2. [Add a New Database Alias]を選択します。

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

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

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

  5. OracleサーバのTCP/IP Host Nameを入力し、正しいインスタンス名を入力します。

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

  7. 新しいエイリアスを作成するには、[Yes]を選択します。 この時点で、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 アプリケーションサーバ製品サポートサイトで入手可能です。

データベースの追加

OCIまたはNovell exteNd Oracleドライバを使用している場合のデータベースの指定

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

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

For more information    または、複数のSQLNet Aliaseを設定したくない場合は、 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だけに接続していることを確認してください。アプリケーションサーバで必要なのはこれです。

たとえば、sqlplus login/password@myalias rather than sqlplus login/password@myalias. domain.comを使用して接続を試みてください。

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. アプリケーションサーバに新規のデータベースを追加するとき、[database name]ボックスにSQLNet Alias (TNS NAME)を入力してはなりません。それ以外の任意の名前を入力します。

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

  3. ドライバセットの[User-specified JDBC driver]を選択します。

  4. Next]をクリックします。

    これで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を使用すると、オブジェクトテーブル、オブジェクトビュー、およびストアドプロシージャを含む他の種類のオブジェクトの同義語も定義できます。 アプリケーションサーバでは、テーブルとビューの同義語だけをサポートします。

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

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

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

同義語サポートの有効化と無効化   ドライバで同義語をサポートするかどうかを指定するアプリケーションサーバのリソースディレクトリの中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.%」   このメッセージは、テーブル拡張の際に最大サイズを超過したときに出されます。 この問題を解決するため、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」   このメッセージは、指定されたテーブルスペースにエクステントを割り当てようとしたときその権限を持っていない場合に出されます。 この問題を解決するには、指定されたデータベースのユーザに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の場合、SilverMasterとしてOracle 8Iデータベースを使用していないが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インストールがアプリケーションサーバに対して十分でない場合は、SilverMaste rInitの際に次のエラーを受け取ります。

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

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

    First Previous Next Last インストールガイド  05/21/03 11:48:11 

Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC, a wholly owned subsidiary of Novell, Inc. All rights reserved.