![]() ![]() ![]() ![]() ![]() |
インストールガイド 05/21/03 11:48:11 |
この章では、SilverMasterまたは配備データベースとしてNovell exteNd アプリケーションサーバで使用するOracleデータベースの設定方法について説明します。 この章の節は次のとおりです。
サポートされているデータベースバージョンの最新情報については、Novell exteNd アプリケーションサーバ
リリースノートを参照してください。
OracleデータベースにアクセスするためにNovell exteNd アプリケーションサーバでどのドライバを使用するかにかかわらず次のセットアップ手順を実行します。
SilverMasterで使用するOracleテーブルスペースを作成することによって最適なパフォーマンスを得ることができ、インストールも容易となります。 Oracleテーブルスペースを作成するには、SQL Plusを実行し、SystemまたはSYSDBAとしてOracleに接続します。
たとえば、このステートメントでは最初のサイズが30MBのテーブルスペースを作成します。
CREATE TABLESPACE SilverTablespace DATAFILE \x91 c:\databases\silvertablespace.dbf\x92 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を使って、次の手順に従ってアプリケーションユーザのクライアントをインストールします。
すでにクライアントがインストールされている場合は、(Windows NTプログラムフォルダのOracleから)Oracle Installerを実行してインストールされているSQL Netのバージョンを判別できます。
Oracleサーバに接続するためには、ターゲットのOracleサーバを参照する有効なOracle SQL Net Aliasが必要となります。
Windows NTプログラムグループのOracleからSQL Net Easy Configurationを実行します。
エイリアスの名前を入力します(アプリケーションサーバのインストール時にこの名前を指定します)。
このエイリアスの推奨される名前はSilverMasterORCLです。
新しいエイリアスを作成するには、[Yes]を選択します。 この時点で、SQL Net Easy Configurationユーティリティを終了できます。
SQL Plusを使用して新しく作成されたSQL Net AliasでOracleデータベースサーバに接続できるかどうかテストします。
これでアプリケーションサーバーからOracleデータベースにアクセスする準備が整いました。 これで、次の作業ができるようになります。
詳細については、『管理者ガイド』の
データソース設定に関する章を参照してください。
アプリケーションサーバにOracleデータベースを追加することは、Oracleユーザを追加することとなります。 データベースの追加は、次の2つのことを行います。
アプリケーションサーバのシステムテーブルを別々のデータベースアカウントに保存したい場合は、すでに説明されている方法で追加のデータベースユーザを作成します。Novell exteNd Oracleドライバを使用している場合は、新しい Oracle SQL Net Aliasを作成します。 システムテーブルは、アプリケーションサーバでサポートされている他の任意のデータベースに保存することもできます。
Oracleインスタンスで指定されているのと異なる文字セットを使用することを、Novell exteNd Oracle 8ドライバに通知することができます。 データの文字セットのエンコードがOracleインスタンスで指定されている文字セットと異なる場合にこれを行います。 このトピックに関するホワイトペーパーは、Novell exteNd アプリケーションサーバ製品サポートサイトで入手可能です。
アプリケーションサーバに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データベースを指します。
または、複数のSQLNet Aliaseを設定したくない場合は、
1つのSQLNet Aliasの使用を参照してください。
名前にピリオドが含まれているデータベースの使用 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 を削除する必要があります。
これは、OCIまたはNovell exteNd Oracleドライバを使用している場合に利用できるオプションの高度機能です。 デフォルトでは、Add Databaseプロセスでは、アプリケーションサーバ環境で使用している各Oracleデータベースユーザごとに別々のSQLNet Alias (TNS NAME)を指定してOracleデータベースを追加するものと想定しています。
これ以降の手順は、熟練ユーザ用となります。 単一のSQLNet Aliasを使用してインストールする方法について説明します。
アプリケーションサーバに新規のデータベースを追加するとき、[database name]ボックスにSQLNet Alias (TNS NAME)を入力してはなりません。それ以外の任意の名前を入力します。
ユーザ名とパスワードを入力し、データベースプラットフォームとして[Oracle 7]または[Oracle 8 ]を選択します。
これでJDBC接続文字列を入力できます。
jdbc:sssw:oracle:TNSNAME
TNSNAMEをtnsnames.oraファイルのTNS NAMEで置換します。
これで、同じ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ドライバ - NovellexteNd 同義語がサポートされているOracle 8ドライバ
同義語のタイプ 同義語はプライベートまたはパブリックのいずれでも可能です。 「パブリックの同義語」は、特別のユーザグループPUBLICによって所有されます。すなわち、データベースのすべてのユーザがアクセスできます。
「プライベートの同義語」は、他ユーザのアクセスを制御する、特定のユーザのスキーマの中にあります(Oracleの『Oracle 8 Concepts』マニュアルを参照してください)。 個々のユーザは、パブリックの同義語と自分自身のプライベートな同義語だけを見ることができます。
同義語サポートの有効化と無効化 ドライバで同義語をサポートするかどうかを指定するアプリケーションサーバのリソースディレクトリの中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.%」 このメッセージは、テーブル拡張の際に最大サイズを超過したときに出されます。 この問題を解決するため、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)に戻してリセットします。 この変更を適用するためアプリケーションサーバを再起動する必要があります。
詳細については、『管理者ガイド』の
パフォーマンスパラメータの設定に関する章を参照してください。
同じアプリケーションサーバでの異なるデータベースタイプの使用 非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ライブラリを使用することができます。
# cd $EXTENDAPPSERVERROOT/bin # cp libagora8_jni.so libagora8_jni.so.orig
# 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を使ってデータベースに接続できることを確認してください。
![]() ![]() ![]() ![]() ![]() |
インストールガイド 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.