ヘッダーをスキップ
Oracle® COM Automation機能開発者ガイド
11g リリース2 (11.2)
B58875-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

2 Oracle COM Automation機能のインストールおよび構成

この章では、Oracle COM Automation機能のインストールおよびインストール後の構成タスクの概要を説明します。

この章の項目は次のとおりです。

Oracle COM Automation機能のコンポーネント

Oracle COM Automation機能パッケージは、Oracleのインストール時に一緒にインストールできます。これには、この製品を使用して実際の問題を解決する方法を例示する機能およびデモが含まれています。


関連項目:

インストール手順については、Microsoft Windows用の『Oracle Databaseインストレーション・ガイド』 を参照してください。

COM Automationパッケージには、次のPL/SQLコンポーネントおよびJavaコンポーネントが含まれています。

PL/SQLコンポーネント

Oracle COM Automation機能用のPL/SQLコンポーネントは、次のとおりです。

  • Oracle COM Automation機能 PL/SQL(orawpcomVER.dll)

  • PL/SQLインストールおよび定義スクリプト(comwrap.sql)

  • Oracle COM Automationデモ・プログラム

  • メッセージ・ファイル(comus.msbなど)

Oracle COM AutomationのPL/SQL機能orawpcomVER.dllは、ORACLE_BASE\ORACLE_HOME\binディレクトリにあります。

他のすべてのコンポーネントは、ORACLE_BASE\ORACLE_HOME\comディレクトリにあります。

Javaコンポーネント

Oracle COM Automation機能用のJavaコンポーネントは、次のとおりです。

  • JARファイルorawcom.jar

  • Oracle COM Automation機能 Java(orawcomVER.dll)

  • Oracle COM Automationデモ・プログラム

  • grant.sqlスクリプト・ファイル

Oracle COM AutomationのJava機能orawcomVER.dllは、ORACLE_BASE\ORACLE_HOME\binディレクトリにあります。他のすべてのコンポーネントは、ORACLE_BASE\ORACLE_HOME\com\javaディレクトリにあります。

システム要件

Oracle COM Automation機能では、次の要件を必要とします。


関連項目:

システム要件の詳細は、Microsoft Windows用の『Oracle Databaseインストレーション・ガイド』を参照してください。

Oracle COM Automation機能を使用するには、システムにCOM Automation機能サーバーが必要です。たとえば、COM Automation機能デモの場合、デモ・プログラムで使用されるアプリケーションを最初にインストールする必要があります。

デモとインストールについては、「Oracle COM Automation機能 PL/SQLデモの概要」および「Oracle COM Automation機能 Javaデモの概要」で説明します。

Oracle Database 10gリリース2またはOracle Database 11gリリース1からOracle Database 11gリリース2へのアップグレード

Oracle COM Automation機能をOracle Database 10gリリース2またはOracle Database 11gリリース1からOracle Database 11gリリース2にアップグレードするには、次のようにします。

  1. comwrap.sqlスクリプトを再実行します。

  2. grant.sqlスクリプトを実行します。

  3. Javaクラスを再インストールします。

  4. コンパニオンCDからデモを再インストールします。

Oracle COM Automation機能の構成

PL/SQLとJavaで異なる構成手順は、次の各項で説明しています。

PL/SQL用のOracle COM Automation機能の構成

PL/SQL用のOracle COM Automation機能を構成するには、次のようにします。

  1. SQL*Plusを起動します。

  2. データベースにSYSTEMとして接続します。

    SQL> CONNECT SYSTEM@net_service_name
    Enter password: password
    
  3. Oracle COM Automation機能を使用するデータベース・ユーザーにCREATE LIBRARY権限を付与します。入力例は次のとおりです。

    SQL> GRANT CREATE LIBRARY TO hr;
    
  4. 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機能の構成

Java用のOracle COM Automation機能を構成するには、次のようにします。

  1. SQL*Plusを使用して、データベースにSYSTEMとして接続します。入力例は次のとおりです。

    SQL> CONNECT SYSTEM@net_service_name
    Enter password: password
    
  2. Oracle COM Automation機能を使用するユーザーの名前で、grant.sqlスクリプトを実行します。ユーザー名をすべて大文字にする必要がある場合もあります。入力例は次のとおりです。

    SQL> @ORACLE_BASE\ORACLE_HOME\com\java\grant.sql HR
    
  3. コマンド・プロンプトで、次のように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のリスナーの構成

この項では、PL/SQL用のOracle COM Automation機能で使用する場合の、listener.oraファイルおよびtnsnames.oraファイルの特定の構成について説明します。


注意:

Java用の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サービスを開始するには、次のようにします。

  1. 「スタート」「設定」「コントロール パネル」を選択します。

    「コントロール パネル」ウィンドウが表示されます。

  2. 「サービス」をダブルクリックします。

    「サービス」ダイアログ・ボックスが表示されます。

  3. リストのOracleHOME_NAMETNSListenerに移動し、その状態が「開始」になっていることを確認します。開始になっていない場合、選択して「開始」をクリックします。

コマンド・プロンプトからOracleサービスを開始するには、次のようにします。

次のコマンドを入力します。

C:\> net start service

前述のコマンドで、serviceの部分には、OracleHOME_NAMETNSListenerのような特定のサービス名を指定します。

問題2

問題: リスナーが正しく構成されていない。

処置: listener.oraファイルおよびtnsnames.oraファイルを変更する必要があります。


関連項目:

これらのファイルの構成方法の詳細は、「PL/SQLのリスナーの構成」を参照してください。

DCOMのサポート

Oracle COM Automation機能は、Distributed Component Object Model(DCOM)を利用したリモートのComponent Object Model(COM)オブジェクトへのネットワーク経由のアクセスをサポートします。

クライアントがリモート・コンピュータへのアクセス権を持つことを認証するために、DCOMは適切なセキュリティ資格証明をリモート・コンピュータに渡します。リモート・コンピュータはセキュリティ資格証明を検証し、DCOMに続行を許可します。

これらのセキュリティ資格証明は、クライアントのリスナー・サービスまたはデータベース・サービスに関連付けられているドメイン・ユーザーの権限に基づきます。表2-1は、PL/SQLおよびJava用のCOM Automationの、決定するサービスを示したものです。

表2-1 セキュリティ資格証明を決定するサービス

COM Automation機能 資格証明を決定するサービス

PL/SQL

リスナー

Java

Oracle Databaseサービス


DCOM用のコンピュータの構成

DCOMを使用するには、次のコンピュータに関するセキュリティ設定を構成する必要があります。

データベース・インスタンスを実行しているコンピュータの構成

データベース・インスタンスを実行しているコンピュータの構成では、リスナーとデータベース・サービスを同じドメイン・ユーザーに設定する必要があります。

ドメイン・ユーザーへのサービスの設定

設定するサービスは、サービスをドメイン・ユーザーに設定するこの手順の3で選択します。

listenerの設定およびデータベースの設定のために、この手順を2回実行する必要があります。順序は重要ではありません。

サービスをドメイン・ユーザーに設定するには、次のようにします。

  1. 「スタート」「設定」「コントロール パネル」を選択します。「コントロール パネル」ウィンドウが表示されます。

  2. 「サービス」をダブルクリックします。「サービス」ダイアログ・ボックスが表示されます。

  3. サービスを選択し、「スタートアップ」をクリックします。このサービスは、OracleHOME_NAMETNSListenerまたはデータベース・サービスである必要があります。

  4. 「アカウント」オプションを選択します。

  5. ドメイン・ユーザーの名前を入力するか、「...」をクリックしてユーザーを指定します。

  6. 選択したドメイン・ユーザーのパスワードを入力し、確認のために再度入力します。

  7. 「OK」をクリックして、変更を保存します。

リモート・オブジェクトを含むコンピュータの構成

リモート・オブジェクトを含むコンピュータの構成では、Microsoft社が提供しているdcomcnfg.exeツールを使用して、コンピュータのDCOMセキュリティ設定を構成する必要があります。

このツールを使用して、特定のCOMオブジェクト、またはコンピュータ上のすべてのCOMオブジェクトに対するアクセス権限、起動権限および構成権限を設定できます。

dcomcnfg.exeツールを使用し、次のように設定します。

  1. DCOMセキュリティ権限を設定して、ドメイン・ユーザーとして使用する適切なサービス(PL/SQLの場合はリスナー、Javaの場合はデータベース・サービス)が、リモートのCOMオブジェクトをインスタンス化して操作できるようにします。

  2. リモートのCOMオブジェクトを、サービスと同じ権限で実行されるように設定します。

COMオブジェクトが権限のないアクションを実行しようとすると、DCOMはその処理を拒否し、Oracle COM Automation機能にセキュリティ違反が返されます。必ずDCOMセキュリティを正しく構成し、必要な権限をOracle Databaseに指定する必要があります。


関連項目:

次の項目の詳細は、Microsoft社のドキュメントを参照してください。
  • dcomcnfg.exeツールの使用および関連する権限の意味

  • DCOMを使用するクライアントおよびサーバー・コンピュータの設定