開発機に複数のドメインを作成したい場合、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/サービス]フィールドにデータベース名を指定
原文はこちら。
http://blogs.oracle.com/jeffdavies/2011/03/running_multiple_weblogic_and.html
0 件のコメント:
コメントを投稿