![]() ![]() ![]() ![]() ![]() ![]() | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
第6章
この章では、SilverMasterまたは展開データベースとしてNovell exteNd Application Serverで使用するOracleデータベースの設定方法について説明します。この章の節は次のとおりです。
サポートされているデータベースバージョンの最新情報については、Novell exteNd Application Serverのリリースノートを参照してください。
OracleデータベースにアクセスするためにNovell exteNd Application Serverでどのドライバを使用するかにかかわらず、次のセットアップ手順を実行します。
SilverMasterで使用するOracleテーブルスペースを作成することによって最適なパフォーマンスを得ることができ、インストールも容易になります。Oracleテーブルスペースを作成するには、SQL Plusを実行し、SystemまたはSYSDBAとしてOracleに接続します。
たとえば、次のステートメントでは初期サイズが30MBのテーブルスペースを作成します。
CREATE TABLESPACE SilverTablespace DATAFILE \qc:\databases\silvertablespace.dbf\q SIZE 30M;
このステートメントをSQL Plusプロンプトから発行できます。既存のテーブルスペースを使用するよう選択した場合は、十分なスペースが使用可能であることを確認してください。
アプリケーションサーバを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;
アプリケーションサーバは、次のいずれかのドライバを使用してOracleデータベースに接続します。
各ドライバで使用可能なOracleデータベースのバージョンについては、アプリケーションサーバのリリースノートを参照してください。
アプリケーションサーバは、Oracleから提供されているJDBCドライバを使用してOracleデータベースに接続できます。
アプリケーションサーバが置かれるシステム上にOracle Thin JDBCドライバをインストールする必要があります。JDBCドライバから宛先のOracleデータベースに接続できる必要があります。
Oracle Thin JDBC Driverの場所(たとえば、DriverPath/ojdbc14.jarおよびDriverPath/nls_charset12.zip)はAGCLASSPATH変数で指定する必要があります。Windowsの場合、AGCLASSPATHはシステム環境変数です。UNIXの場合は、agprofileファイルの中にあります。NetWareの場合は、setenvコマンドを使用してAGCLASSPATHを設定する必要があります(setenv AGCLASSPATH=
path1
;
path2
;
path3
;...
)。
詳細については、『管理者用ガイド』のデータソース設定に関する章を参照してください。
アプリケーションサーバは、Oracleから提供されているOCIドライバを使用してOracle 9i データベースに接続できます。
アプリケーションサーバが置かれるシステム上にOracle OCI Driverをインストールする必要があります。JDBCドライバから宛先のOracleデータベースに接続できる必要があります。
Oracle OCI Driverの場所(たとえば、DriverPath/ojdbc14.jarおよびDriverPath/nls_charset12.zip)はAGCLASSPATH変数で指定する必要があります。Windowsの場合、AGCLASSPATHはシステム環境変数です。UNIXの場合は、agprofileファイルの中にあります。
詳細については、『管理者用ガイド』のデータソース設定に関する章を参照してください。
アプリケーションサーバは、Novellが提供するType 2 JDBCドライバを使用してOracleデータベースに接続できます。セットアップには次の手順が含まれます。
アプリケーションサーバシステムにOracle SQL Net Clientのバージョン2.3.4.0.0がインストールされていない場合は、手順を続行する前に今すぐインストールします。SQL Netのこのバージョンがない場合は、Oracle株式会社から入手してください。Oracle CDを使って、次の手順に従ってアプリケーションユーザのクライアントをインストールします。
すでにクライアントがインストールされている場合は、Oracle for Windows NTのプログラムフォルダからOracle Installerを実行して、インストールされているSQL Netのバージョンを判別できます。
Oracleサーバに接続するためには、ターゲットのOracleサーバを参照する有効なOracle SQL Net Aliasが必要になります。
Oracle for Windows NTプログラムグループからSQL Net Easy Configurationを実行します。
注記: UNIXの場合は、$ORACLE_HOME/bin/ directoryからnet8wiz.shを実行します。
新しいエイリアスを作成するには、[はい]を選択します。この時点で、SQL Net Easy Configurationユーティリティを終了できます。
SQL Plusを使用して、新しく作成されたSQL Net AliasでOracleデータベースサーバに接続できるかどうかテストします。
これでアプリケーションサーバーからOracleデータベースにアクセスする準備が整いました。これで、次の作業を実行できるようになります。
アプリケーションサーバをインストールし、SilverMasterとしてそのデータベースを指す(「Novell exteNdのインストール」を参照)
詳細については、『管理者用ガイド』のデータソース設定に関する章を参照してください。
アプリケーションサーバにOracleデータベースを追加することは、Oracleユーザを追加することと同じです。データベースの追加では、次の2つの作業を行います。
システムテーブルを別々に保存 アプリケーションサーバのシステムテーブルを別々のデータベースアカウントに保存したい場合は、すでに説明されている方法で追加のデータベースユーザを作成します。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データベースを指します。
または、複数のSQLNet Aliasを設定したくない場合は、1つのSQLNet Aliasの使用を参照してください。
これは、OCIまたはNovell exteNd Oracleドライバを使用している場合に利用できる高度なオプション機能です。デフォルトでは、Add Databaseプロセスは、アプリケーションサーバ環境で使用している各Oracleデータベースユーザごとに別々のSQLNet Alias (TNS NAME)を指定してOracleデータベースを追加することを想定します。
これ以降の手順は経験豊富なユーザが対象で、単一のSQLNet Aliasを使用してインストールする方法について説明しています。
アプリケーションサーバに新規のデータベースを追加するときに、[データベース名]ボックスにSQLNet Alias (TNS NAME)を入力しないでください。それ以外の任意の名前を入力します。
ユーザ名とパスワードを入力し、データベースプラットフォームとして[Oracle 7]または[Oracle 8]を選択します。
jdbc:sssw:oracle:TNSNAME
これで、同じTNS NAMEを使用して必要な数のデータベースに接続できます。システムテーブルは別に保存されていることを確認してください。
回避すべき事項 次の規則を守ることによって、問題の発生頻度を少なくすることができます。
同じOracleデータベースユーザに複数のシステムテーブルを配置しない。配置した場合、これらのテーブルは相互に競合します。アプリケーションサーバに複数のデータベースを追加する場合は、システムテーブルを別々に保存しておく必要があります。
用語の違い DBMSが異なると、使用される用語も異なります。アプリケーションサーバでは「データベース」という用語を使用しますが、Oracleではこれは「Oracleデータベースユーザ」に相当します。次の表は、その他の相違点について説明しています。
アプリケーションサーバ用語 |
Oracle用語 |
---|---|
SilverMasterデータベース |
SilverMasterテーブルを所有するOracleデータベースユーザ |
データベースの追加 |
Oracleデータベースへの特定ユーザの追加 |
アプリケーションサーバでは、Oracle 8以降のテーブルおよびビューの同義語のサポートが提供されています。
注記: Oracleを使用すると、オブジェクトテーブル、オブジェクトビュー、およびストアドプロシージャを含む他の種類のオブジェクトの同義語も定義できます。アプリケーションサーバでは、テーブルとビューの同義語のみをサポートします。
同義語サポートを有効にするには、Oracleデータベースをアプリケーションサーバに追加するときに、次のドライバのいずれかを指定する必要があります。
同義語/大文字と小文字の組み合せのサポートがあるThin Oracle JDBCドライバ - 同義語サポートのあるOracleのThin JDBCドライバ
同義語/大文字と小文字の組み合せのサポートがあるOCI Oracle JDBCドライバ - 同義語サポートのあるOracleのOCIドライバ
同義語/大文字と小文字の組み合わせのサポートがあるNovell exteNd JDBCドライバ - 同義語がサポートされているNovell exteNd Oracle 8ドライバ
同義語は、プライベートかパブリックのどちらかになります。「パブリックの同義語」は、特別のユーザグループPUBLICによって所有され、データベースのすべてのユーザがアクセスできます。
「プライベートの同義語」は、他ユーザのアクセスを制御する、特定のユーザのスキーマの中にあります(Oracleの『Oracle 8 Concepts』マニュアルを参照してください)。個々のユーザは、パブリックの同義語と自分自身のプライベートな同義語のみを参照できます。
アプリケーションサーバのResourcesディレクトリにあるplatforms.dblファイルに、ドライバで同義語をサポートするかどうかを指定するincludeSynonymsと呼ばれるプロパティがあります。このプロパティはドライバのPROPERTIESセクションにあります。
DRIVER /Name ... /JdbcDriver ... /DriverSet ... ... PROPERTIES /includeSynonyms "true"
これらのドライバのいずれか1つを使用しつつ、同義語サポートは無効にする場合は、includeSynonymsのプロパティをfalseに設定します。同様に、独自のOracleドライバを作成済みで、同義語サポートを実装している場合、必要なサポートを有効にするには、ドライバのPROPERTIESセクションでincludeSynonymsプロパティをtrueに設定します。
この節では、一般的なエラーと回避策について説明します。
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)にリセットします。この変更を適用するため、アプリケーションサーバを再起動する必要があります。
詳細については、『管理者用ガイド』のパフォーマンスパラメータの設定に関する章を参照してください。
同じアプリケーションサーバでの異なるデータベースタイプの使用 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ライブラリを使用することができます。
libagora8_jni.soファイルをバックアップします。
# cd $EXTENDAPPSERVERROOT/bin # cp libagora8_jni.so libagora8_jni.so.orig
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 ...