この章では、Oracle COM Automation機能のインストールおよびインストール後の構成タスクの概要を説明します。
この章の項目は次のとおりです。
Oracle COM Automation機能パッケージは、Oracleのインストール時に一緒にインストールできます。これには、この製品を使用して実際の問題を解決する方法を例示する機能およびデモが含まれています。
COM Automationパッケージには、次のPL/SQLコンポーネントおよびJavaコンポーネントが含まれています。
Oracle COM Automation機能用のPL/SQLコンポーネントは、次のとおりです。
Oracle COM Automationデモ・プログラム
メッセージ・ファイル(comus.msb
など)
Oracle COM AutomationのPL/SQL機能orawpcom
VER
.dll
は、ORACLE_BASE\ORACLE_HOME
\bin
ディレクトリにあります。
他のすべてのコンポーネントは、ORACLE_BASE\ORACLE_HOME
\com
ディレクトリにあります。
Oracle COM Automation機能では、次の要件を必要とします。
Windows XP、Windows Server 2003、Windows Server 2003 R2、Windows Vista、Windows 7、Windows Server 2008、Windows Server 2008 R2
機能しているデータベース
関連項目: システム要件の詳細は、Microsoft Windows用の『Oracle Databaseインストレーション・ガイド』を参照してください。 |
Oracle COM Automation機能を使用するには、システムにCOM Automation機能サーバーが必要です。たとえば、COM Automation機能デモの場合、デモ・プログラムで使用されるアプリケーションを最初にインストールする必要があります。
Microsoft Word、ExcelおよびPowerPointデモには、Microsoft Office 2000以上が必要です。
Messaging Application Programming Interface(MAPI)デモには、Microsoft Outlook 2000以上が必要です。
デモとインストールについては、「Oracle COM Automation機能 PL/SQLデモの概要」および「Oracle COM Automation機能 Javaデモの概要」で説明します。
Oracle COM Automation機能をOracle Database 10gリリース2またはOracle Database 11gリリース1からOracle Database 11gリリース2にアップグレードするには、次のようにします。
PL/SQLとJavaで異なる構成手順は、次の各項で説明しています。
PL/SQL用のOracle COM Automation機能を構成するには、次のようにします。
SQL*Plusを起動します。
データベースにSYSTEM
として接続します。
SQL> CONNECT SYSTEM@net_service_name Enter password: password
Oracle COM Automation機能を使用するデータベース・ユーザーにCREATE LIBRARY
権限を付与します。入力例は次のとおりです。
SQL> GRANT CREATE LIBRARY TO hr;
Oracle COM Automation機能を使用するユーザーに接続し、次のように、SQL*Plusプロンプトでcomwrap.sql
スクリプトを実行します。
SQL> CONNECT hr; Enter password: password SQL> @ORACLE_BASE\ORACLE_HOME\com\comwrap.sql
前述のコマンドで、ORACLE_BASE\ORACLE_HOME
は、Oracle COM Automation機能のインストール先のOracleホーム・ディレクトリを表しています。
このスクリプトを初めて実行するときに、「ORA-04043:
オブジェクト
XXXX
は
存在しません。」
というメッセージが数回表示されます。これらは正常なメッセージです。
Java用のOracle COM Automation機能を構成するには、次のようにします。
SQL*Plusを使用して、データベースにSYSTEM
として接続します。入力例は次のとおりです。
SQL> CONNECT SYSTEM@net_service_name Enter password: password
Oracle COM Automation機能を使用するユーザーの名前で、grant.sql
スクリプトを実行します。ユーザー名をすべて大文字にする必要がある場合もあります。入力例は次のとおりです。
SQL> @ORACLE_BASE\ORACLE_HOME\com\java\grant.sql HR
コマンド・プロンプトで、次のようにloadjava
ツールを実行します。
loadjava -force -resolve -user hr
ORACLE_BASE\ORACLE_HOME\com\java\orawcom.jar
Password: password
前述のコマンドで、hr
は、Oracle COM Automation機能を使用するユーザーです。
関連項目: loadjava ツールの詳細は、『Oracle Database Java開発者ガイド』を参照してください。 |
この項では、PL/SQL用のOracle COM Automation機能で使用する場合の、listener.oraファイルおよびtnsnames.oraファイルの特定の構成について説明します。
PL/SQL用のOracle COM Automation機能はリスナーのコールアウトに依存しているため、Oracle COM Automation機能を正しく動作させるには、リスナーおよびOracle Netのリモート・プロシージャ・コール(RPC)のメカニズムを構成する必要があります。
次に、外部ストアド・プロシージャをコールするためにプロセス間通信(IPC)で使用できるlistener.oraファイルおよびtnsnames.oraファイルの例を示します。
関連項目: 外部プロシージャ用のlistener.ora およびtnsnames.ora ファイルの構成の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。 |
listener.ora構成ファイル
LISTENER = (ADDRESS_LIST = (ADDRESS= (PROTOCOL= IPC) (KEY= EXTPROC0) ) ) STARTUP_WAIT_TIME_LISTENER = 0 CONNECT_TIMEOUT_LISTENER = 10 TRACE_LEVEL_LISTENER = off SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = ORCL) ) (SID_DESC = (SID_NAME = plsextproc) (PROGRAM=extproc) ) ) PASSWORDS_LISTENER = (oracle)
tnsnames.ora構成ファイル
EXTPROC_CONNECTION_DATA= (DESCRIPTION= (ADDRESS= (PROTOCOL=IPC) (KEY=EXTPROC0) ) (CONNECT_DATA=(SID=plsextproc)) ) )
「ORA-28575: 外部プロシージャ・エージェントへのRPC接続をオープンできません。」というエラー・メッセージの原因として、2つのリスナーの問題のいずれかが考えられます。
問題1
問題: リスナーが起動されていない。
処置: コントロール パネルまたはコマンド・プロンプトから、Oracle
HOME_NAMETNS
Listener
サービスを開始する必要があります。
コントロール パネルからOracleサービスを開始するには、次のようにします。
「スタート」→「設定」→「コントロール パネル」を選択します。
「コントロール パネル」ウィンドウが表示されます。
「サービス」をダブルクリックします。
「サービス」ダイアログ・ボックスが表示されます。
リストのOracle
HOME_NAMETNS
Listener
に移動し、その状態が「開始」になっていることを確認します。開始になっていない場合、選択して「開始」をクリックします。
コマンド・プロンプトからOracleサービスを開始するには、次のようにします。
次のコマンドを入力します。
C:\> net start service
前述のコマンドで、serviceの部分には、Oracle
HOME_NAMETNS
Listener
のような特定のサービス名を指定します。
問題2
問題: リスナーが正しく構成されていない。
処置: listener.ora
ファイルおよびtnsnames.ora
ファイルを変更する必要があります。
Oracle COM Automation機能は、Distributed Component Object Model(DCOM)を利用したリモートのComponent Object Model(COM)オブジェクトへのネットワーク経由のアクセスをサポートします。
クライアントがリモート・コンピュータへのアクセス権を持つことを認証するために、DCOMは適切なセキュリティ資格証明をリモート・コンピュータに渡します。リモート・コンピュータはセキュリティ資格証明を検証し、DCOMに続行を許可します。
これらのセキュリティ資格証明は、クライアントのリスナー・サービスまたはデータベース・サービスに関連付けられているドメイン・ユーザーの権限に基づきます。表2-1は、PL/SQLおよびJava用のCOM Automationの、決定するサービスを示したものです。
DCOMを使用するには、次のコンピュータに関するセキュリティ設定を構成する必要があります。
データベース・インスタンスを実行しているコンピュータ
リモートのCOMオブジェクトを含むコンピュータ
データベース・インスタンスを実行しているコンピュータの構成では、リスナーとデータベース・サービスを同じドメイン・ユーザーに設定する必要があります。
設定するサービスは、サービスをドメイン・ユーザーに設定するこの手順の3で選択します。
listenerの設定およびデータベースの設定のために、この手順を2回実行する必要があります。順序は重要ではありません。
サービスをドメイン・ユーザーに設定するには、次のようにします。
「スタート」→「設定」→「コントロール パネル」を選択します。「コントロール パネル」ウィンドウが表示されます。
「サービス」をダブルクリックします。「サービス」ダイアログ・ボックスが表示されます。
サービスを選択し、「スタートアップ」をクリックします。このサービスは、Oracle
HOME_NAMETNS
Listener
またはデータベース・サービスである必要があります。
「アカウント」オプションを選択します。
ドメイン・ユーザーの名前を入力するか、「...」をクリックしてユーザーを指定します。
選択したドメイン・ユーザーのパスワードを入力し、確認のために再度入力します。
「OK」をクリックして、変更を保存します。
リモート・オブジェクトを含むコンピュータの構成では、Microsoft社が提供しているdcomcnfg.exe
ツールを使用して、コンピュータのDCOMセキュリティ設定を構成する必要があります。
このツールを使用して、特定のCOMオブジェクト、またはコンピュータ上のすべてのCOMオブジェクトに対するアクセス権限、起動権限および構成権限を設定できます。
dcomcnfg.exe
ツールを使用し、次のように設定します。
DCOMセキュリティ権限を設定して、ドメイン・ユーザーとして使用する適切なサービス(PL/SQLの場合はリスナー、Javaの場合はデータベース・サービス)が、リモートのCOMオブジェクトをインスタンス化して操作できるようにします。
リモートのCOMオブジェクトを、サービスと同じ権限で実行されるように設定します。
COMオブジェクトが権限のないアクションを実行しようとすると、DCOMはその処理を拒否し、Oracle COM Automation機能にセキュリティ違反が返されます。必ずDCOMセキュリティを正しく構成し、必要な権限をOracle Databaseに指定する必要があります。
関連項目: 次の項目の詳細は、Microsoft社のドキュメントを参照してください。
|