この章では、Oracle Service Busに関連する開発環境の設定に関する内容(デフォルトのDerbyデータベースの使用やデフォルトのJMSレポート・プロバイダの無効化など)について説明します。
この章では、次の内容について説明します。
この項では、Oracle Service Busに付属するApache Derbyデータベースの1つ以上のインスタンスで複数の開発ドメインを正常に実行する方法について説明します。
この項の内容は、『Oracle Fusion Middleware Oracle Service Busインストレーション・ガイド』のOracle Service Busの構成に関する項に記載されている、ドメインの作成に関する詳細なドキュメントと組み合せて使用してください。
注意: Derbyは、開発環境およびテスト環境専用として設計されており、本番環境では使用できません。 |
Oracle Fusion Middleware構成ウィザードで開発者用のOracle Service Busドメインを作成すると、ウィザードによってデフォルトで次の場所にDerbyデータベースが作成されます。
WL_HOME/common/derby/demo/databases/
ウィザードのJDBC構成ウィンドウで「ベンダー」としてDerbyを選択すると、「DBMS/サービス」フィールドに指定した名前により、作成されるDerbyデータベースの名前が決定されます。
図22-1で、「DBMS/サービス」フィールドにはデフォルトのデータベース名であるosbexamplesが移入され、対応する/osbexamplesディレクトリが作成されています。
ベスト・プラクティスとして、サーバーの起動に関する問題を避けるには、作成したドメインごとに常に一意のDBMS/サービス名を指定します。デフォルトのDBMS/サービス名を変更しない場合、osbexamples-DOMAIN_NAMEという名前が自動的に作成されます。
また、ドメイン作成プロセス中にデフォルトのOracle Service Bus JMSレポート・プロバイダを無効にすることで、Derbyの競合を避けることができます。レポート・プロバイダはデータベースにデータを保持するOracle Service Busのモジュールのみです。通常のサーバー起動でDerbyデータベースも起動されますが、データベースに表が作成されないため、データベースの競合は発生しません。
レポート・プロバイダを無効にすると、次のコマンドを使用してドメインを起動した場合にDerbyの起動を安全に抑制できます。
startWebLogic.cmd(.sh) noderby
詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のドメイン作成前にデフォルトのJMSレポート・プロバイダを割当て解除する方法に関する項(http://www.oracle.com/pls/as1111/lookup?id=OSBAG786
)を参照してください。
開発環境でのDerbyのより高度な使用方法については、次の項を参照してください。
開発環境では、複数のドメインを構成して単一のDerbyデータベース・インスタンスを共有できます。データベース・インスタンスを共有すると、ドメインごとに1つのデータベースではなく、ただ1つのデータベース・インスタンスが稼働するため、開発環境のパフォーマンスが向上します。
インスタンスとは、単一のポート(デフォルト・ポートは1527)を使用するDerbyの実行時インスタンスを意味します。ただし、各ドメインでも、そのインスタンスで稼働する独自のデータベースが作成されます。
単一のDerbyデータベース・インスタンスを共有する複数のドメインを構成して実行するには、次の手順を実行します。
Oracle Fusion Middleware構成ウィザードで、次のJDBC構成を使用して最初のドメインを作成します。
スキーマ所有者: DEV_SOAINFRA (または別の一意の名前)
スキーマ・パスワード: パスワードを入力
DBMS/サービス: devdomain1 (または別の一意の名前)
ホスト名: localhost
ポート: 1527
「次へ」をクリックすると、接続テストに失敗します(Derbyが実行されていない場合)。これは予期された動作です。接続テストはスキップします。サーバーの起動時に、Oracle Service BusによってDerbyに自動的にレポート表が作成されます。
2番目のドメインを作成します。
次のJDBC構成を使用します。
スキーマ所有者: DEV_SOAINFRA (または別の一意の名前)
スキーマ・パスワード: パスワードを入力
DBMS/サービス: devdomain2 (または別の一意の名前)
ホスト名: localhost (またはDerbyインスタンスが稼働するリモート・ドメインのコンピュータ名またはIPアドレス)
ポート: 1527
次のウィンドウで「管理サーバー」を選択し、「次へ」をクリックして、ポート番号が一意になるようにします。
ドメインを作成したら、DOMAIN_HOME/bin/setDomainEnv.cmd(.sh)
で次の作業を実行します。
ALSB_DEBUG_PORTを8883 (または別の一意の値)に変更します。
DEBUG_PORTを8853 (または別の一意の値)に変更します。
DERBY_FLAGをfalseに変更します。(オプション。これにより、サーバーの停止によって実行中のDerbyインスタンスが停止することを回避できます。)
最初のドメインを通常どおり起動します。
次のコマンドを使用して2番目のドメインを起動します。
DOMAIN_HOME/startWebLogic.cmd(.sh) noderby noexit
同じDerbyインスタンスを共有する追加ドメインを作成する場合、一意のDBMS/サービス名(データベース名)を持つドメインを作成します。同時実行ドメインの場合、前の手順の説明に従って、管理サーバー・ポートとデバッグ・ポートが一意であることも確認してください。
リモートDerbyインスタンスへの接続時に単一の開発ドメインを実行中の場合、ドメインの管理サーバーまたはデバッグ・ポートを変更する必要はありません。DBMS/サービスのみが一意である必要があります。
単一のDerbyインスタンスを共有するのではなく、個々の開発サーバーでDerbyの独自のインスタンスを使用する場合、次の手順に従ってドメインを構成し、独自のDerbyインスタンスのポートを変更します。この構成によって、複数のドメインと複数のDerbyインスタンスを同時に実行できます。
Oracle Fusion Middleware構成ウィザードで、次のJDBC構成を使用してドメインを作成します。
スキーマ所有者: DEV_SOAINFRA (または別の一意の名前)
スキーマ・パスワード: パスワードを入力
DBMS/サービス: devdomain (または別の一意の名前)
ホスト名: localhost
ポート: 1627 (または別の一意のポート)
「次へ」をクリックすると、接続テストに失敗します(Derbyが実行されていない場合)。これは予期された動作です。接続テストはスキップします。サーバーの起動時に、Oracle Service BusによってDerbyに自動的にレポート表が作成されます。
同時実行ドメインの場合、複数のサーバーを同時実行するのであれば、ドメインの管理サーバーのポート番号が一意であることを確認してください。
サーバーの作成を終了します。
同時実行ドメインの場合、ドメインのDOMAIN_HOME/bin/setDomainEnv.cmd(.sh)で次の作業を実行します。
ALSB_DEBUG_PORTを8883 (または別の一意の値)に変更します。
DEBUG_PORTを8853 (または別の一意の値)に変更します。
DOMAIN_HOME/bin/startWebLogic.cmd(.sh)で、次の要素を見つけます。
"%WL_HOME%\common\derby\bin\startNetworkServer.cmd >"
これに次のポート引数を追加します。
"%WL_HOME%\common\derby\bin\startNetworkServer.cmd -p 1627 >" (ドメイン構成で使用したDerbyのポート番号)
サーバーを起動すると、指定したポートで独自のDerbyインスタンスが起動します。
注意: すでにサーバーを作成しており、Derbyの起動ポートを変更する場合、Oracle WebLogic Server管理コンソールのドメイン→「サービス」→「データ・ソース」→「wlsbjmsrpDataSource」→「構成」→「接続プール」で変更できます。 |
デフォルトでは、Oracle Service Bus JMSレポート・プロバイダは、Oracle Service Busドメインにデプロイされます。レポート・プロバイダは、データベースを使用してレポート・データを永続化します。開発ドメインでJMSレポート・プロバイダを使用しない場合、ドメイン作成プロセス中にJMSレポート・プロバイダを無効化するか割当て解除できます。
詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のJMSレポート・プロバイダを割当て解除する方法に関する項(http://www.oracle.com/pls/as1111/lookup?id=OSBAG573
)を参照してください。
レポート・プロバイダを無効にすると、サーバーの起動時にJMSレポート・プロバイダの無害なエラーを抑制できます。
レポート・プロバイダは、データベースにデータを永続化する唯一のOracle Service Bus機能です。レポート・プロバイダを無効にすると、次のコマンドでサーバーを起動したときに、Derbyの実行を抑制できます。
startWebLogic.cmd(.sh) noderby