Wednesday, December 26, 2012

BEA-110482 error when extending an existing SOA Domain to include OSB

Issue:
When you extend an existing soa_domain to include OSB servers and use the same SOAINFRA schema for   wlsbjmsrpDataSource then you might see the below errors


<Critical> <JTA> <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_OSB_SERVER1', row 'JDBC LLR Domain//Server' record had unexpected value 'osb_domain//osb_server1' expected 'soa_domain//osb_server1'*** ONLY the original domain and server that creates an LLR table may access it ***

weblogic.transaction.loggingresource.LoggingResourceException: java.sql.SQLException: JDBC LLR, table verify failed for table 'WL_LLR_OSB_SERVER1', row 'JDBC LLR Domain//Server' record had unexpected value 'osb_domain//osb_server1' expected 'soa_domain//osb_server1'*** ONLY the original domain and server that creates an LLR table may access it ***
        at weblogic.jdbc.wrapper.JTSLoggableResourceImpl.recoverXARecords(JTSLoggableResourceImpl.java:248)
        at weblogic.transaction.internal.ServerTransactionManagerImpl.registerLoggingResourceTransactions(ServerTransactionManagerImpl.java:747)
        at weblogic.jdbc.common.internal.RmiDataSource.recoverLoggingResourceTransactions(RmiDataSource.java:302)
        at weblogic.jdbc.common.internal.DataSourceManager.createAndStartDataSource(DataSourceManager.java:148)
        at weblogic.jdbc.common.internal.DataSourceManager.createAndStartDataSource(DataSourceManager.java:98)
        Truncated. see log file for complete stacktrace
Caused By: java.sql.SQLException: JDBC LLR, table verify failed for table 'WL_LLR_OSB_SERVER1', row 'JDBC LLR Domain//Server' record had unexpected value 'osb_domain//osb_server1' expected 'soa_domain//osb_server1'*** ONLY the original domain and server that creates an LLR table may access it ***
        at weblogic.jdbc.wrapper.JTSLoggableResourceTable.newVerifyException(JTSLoggableResourceTable.java:244)
        at weblogic.jdbc.wrapper.JTSLoggableResourceTable.findOrCreateTable(JTSLoggableResourceTable.java:327)
        at weblogic.jdbc.wrapper.JTSLoggableResourceImpl.findOrCreateBackingTable(JTSLoggableResourceImpl.java:528)
        at weblogic.jdbc.wrapper.JTSLoggableResourceImpl.recoverXARecords(JTSLoggableResourceImpl.java:241)
        at weblogic.transaction.internal.ServerTransactionManag


Resolution:

This exception is a result of a wrong domain name in WL_LLR_ADMINSERVER table and WL_LLR_OSB_SERVER1 tables. You can fix it by running the below queries 


update WL_LLR_OSB_SERVER1
set RECORDSTR = 'soa_domain//osb_server1'
where XIDSTR = 'JDBC LLR Domain//Server';


update WL_LLR_ADMINSERVER
set RECORDSTR = 'soa_domain//Adminserver'
where XIDSTR = 'JDBC LLR Domain//Server';

In my example, my domain name is soa_domain and I have a separate Admin Server (Adminserver is the name of the admin) and osb_server1 (OSB Managed server)