この章では、Oracle COM Automationのインストールおよびインストール後の構成タスクの概要を説明します。
この章の項目は次のとおりです。
Oracle COM Automation機能パッケージは、Oracleのインストール時に一緒にインストールできます。このパッケージには、COM Automation本体に加えて、この製品を使用して実際の問題を解決する方法を例示するためのデモが含まれています。
COM Automationパッケージには、次のPL/SQLコンポーネントおよびJavaコンポーネントが含まれています。
Oracle COM Automation用のPL/SQLコンポーネントは、次のとおりです。
Oracle COM Automationデモ・プログラム
メッセージ・ファイル(comus.msbなど)
Oracle COM Automation PL/SQLのorawpcomVER.dllは、ORACLE_BASE\ORACLE_HOME\binディレクトリにあります。
他のすべてのコンポーネントは、ORACLE_BASE\ORACLE_HOME\comディレクトリにあります。
Oracle COM Automationでは、次の要件を必要とします。
Windows XP、Windows 2000またはWindows Server 2003
インストール実行前のコンピュータ上で機能しているデータベース
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リリース1からOracle Database 11gリリース1にアップグレードするには、次のようにします。
Oracle9iに付与されていた、PUBLICに含めたorawcom.dllを実行する権限は、このリリースでは取り消す必要があります。
Oracle COM AutomationをOracle9iからOracle Database 10gにアップグレードするには、次のようにします。
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
問題: リスナーが起動されていない。
処置: コントロール パネルまたはコマンド・プロンプトから、OracleHOME_NAMETNSListenerサービスを開始する必要があります。
コントロール パネルからOracleサービスを開始するには、次のようにします。
「スタート」→「設定」→「コントロール パネル」を選択します。
「コントロール パネル」ウィンドウが表示されます。
「サービス」をダブルクリックします。
「サービス」ダイアログ・ボックスが表示されます。
リストのOracleHOME_NAMETNSListenerに移動し、その状態が「開始」になっていることを確認します。開始になっていない場合、選択して「開始」をクリックします。
コマンド・プロンプトからOracleサービスを開始するには、次のようにします。
次のコマンドを入力します。
C:\> net start service
前述のコマンドで、serviceの部分には、OracleHOME_NAMETNSListenerのような特定のサービス名を指定します。
問題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で選択します。
この手順は2回実行する必要があります。リスナーを設定するために1回実行し、データベース・サービスを設定するために1回実行します。順序は重要ではありません。
サービスをドメイン・ユーザーに設定するには、次のようにします。
「スタート」→「設定」→「コントロール パネル」を選択します。「コントロール パネル」ウィンドウが表示されます。
「サービス」をダブルクリックします。「サービス」ダイアログ・ボックスが表示されます。
サービスを選択し、「スタートアップ」をクリックします。このサービスは、OracleHOME_NAMETNSListenerまたはデータベース・サービスである必要があります。
「アカウント」オプションを選択します。
ドメイン・ユーザーの名前を入力するか、「...」をクリックしてユーザーを指定します。
選択したドメイン・ユーザーのパスワードを入力し、確認のために再度入力します。
「OK」をクリックして、変更を保存します。
リモート・オブジェクトを含むコンピュータの構成では、Microsoft社が提供しているdcomcnfg.exeツールを使用して、コンピュータのDCOMセキュリティ設定を構成する必要があります。
このツールを使用して、特定のCOMオブジェクト、またはコンピュータ上のすべてのCOMオブジェクトに対するアクセス権限、起動権限および構成権限を設定できます。
dcomcnfg.exeツールを使用し、次のように設定します。
DCOMセキュリティ権限を設定して、ドメイン・ユーザーとして使用する適切なサービス(PL/SQLの場合はリスナー、Javaの場合はデータベース・サービス)が、リモートのCOMオブジェクトをインスタンス化して操作できるようにします。
リモートのCOMオブジェクトを、サービスと同じ権限で実行されるように設定します。
COMオブジェクトが権限のないアクションを実行しようとすると、DCOMはその処理を拒否し、Oracle COM Automationにセキュリティ違反が返されます。必ずDCOMセキュリティを正しく構成し、必要な権限をOracleデータベースに指定する必要があります。
|
関連項目: 次の項目の詳細は、Microsoft社のドキュメントを参照してください。
|