[OSB] Running Multiple WebLogic and OSB Domains

ある時に作成した多くのOSBドメインがあります。例えば、様々なバージョンのOSBやSOA Suiteの様々なドメインがある場合です。また、様々な目的のために異なるドメインを持つ場合があります。例えばdemoドメインやブログに載せているプロジェクトのためのドメインなどです。
開発機に複数のドメインを作成したい場合、OSB 11gとApache Derbyサーバを起動すると小さな”落とし穴”があります。OSB11gの新しいドメインを作成した場合、すべてのデータベースの同じデータベース情報をすべてのデータベースで使うため、2個目のドメインで管理サーバを立ち上げるとエラーが発生します(最初のドメインではこのエラーが発生しません)。サーバコンソールに上がっているエラーメッセージの一例を以下に掲載します。
####<Mar 8, 2011 2:58:48 PM PST> <Critical> <JTA> <jeff-laptop> <AdminServer> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1299625128464> <BEA-110482> <A logging last resource failed during initialization. The server cannot boot unless all configured logging last resources (LLRs) initialize. Failing reason: weblogic.transaction.loggingresource.LoggingResourceException: java.sql.SQLException: JDBC LLR, table verify failed for table 'WL_LLR_ADMINSERVER', row 'JDBC LLR Domain//Server' record had unexpected value 'osb11gR1PS3//AdminServer' expected 'OSBCIM//AdminServer'*** ONLY the original domain and server that creates an LLR table may access it ***
解決策は、各ドメインにそれぞれデータベースインスタンスを作成する、という非常にシンプルなものです。ドメイン構成ウィザードを使ってドメインを作成したあと、以下の手順を実行します。

  • <Domain_Home>/config/jdbc/wlsbjmsrpDataSource-jdbc.xmlを開く
  • wlsbjmsrpDataSource-jdbc.xmlに含まれる以下のエントリを見つける
    <url>jdbc:derby://localhost:1527/osbexamples;create=true;ServerName=localhost;databaseName=osbexamples</url>
  • データベース名を一意の名前に変更する。以下の例ではmydomainというデータベース名に変更する。
    <url>jdbc:derby://localhost:1527/mydomain;create=true;ServerName=localhost;databaseName=mydomain</url>
  • 管理サーバを再起動する。再起動によりmydomainというデータベースインスタンスが作成される。
これらの手順を各ドメインで実施すると、問題なく起動できます。
ドメイン構成ウィザードを使ってドメインを作成している場合には、この手順がずっと簡単です。構成ウィザードの「JDBCコンポーネント・スキーマの構成」ページで単にデータベースを命名すればよいのです。手順は以下の通りです。

  • OSB JMS レポーティングプロバイダを選択
  • [DBMS/サービス]フィールドにデータベース名を指定


これで終了です。たくさんのドメインを好きなだけご自身のPCや開発機に作成できますね。それぞれのドメインが衝突する心配もなくなります。


原文はこちら。
http://blogs.oracle.com/jeffdavies/2011/03/running_multiple_weblogic_and.html

0 件のコメント:

コメントを投稿