ヘッダーをスキップ
Oracle COM Automation機能開発者ガイド
11gリリース1(11.1)
E05796-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

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

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

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

Oracle COM Automationのコンポーネント

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


関連項目:

インストール手順は、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(orawpcomVER.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では、次の要件を必要とします。

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

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

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

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

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

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

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

  4. デモを再インストールします。

Oracle9iからOracle Database 10gへのアップグレード

Oracle9iに付与されていた、PUBLICに含めたorawcom.dllを実行する権限は、このリリースでは取り消す必要があります。


注意:

Oracle Database 10gでは、orawcom.dllの名前はorawcomVER.dllに変更されました。ここで、VERはリリース番号です。

Oracle COM AutomationをOracle9iからOracle Database 10gにアップグレードするには、次のようにします。

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

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

  3. PUBLICからorawcom.dllを実行する権限を取り消します。

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

  5. デモを再インストールします。


    関連項目:

    comwrap.sqlスクリプトの再実行の詳細は、「PL/SQL用のOracle COM Automationの構成」を参照してください。

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データベース・サービス


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

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

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

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

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

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

この手順は2回実行する必要があります。リスナーを設定するために1回実行し、データベース・サービスを設定するために1回実行します。順序は重要ではありません。

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

  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データベースに指定する必要があります。


関連項目:

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

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