Showing posts with label llr. Show all posts
Showing posts with label llr. Show all posts

Monday, March 20, 2017

LoggingLastResource

If you use a LoggingLastResource Datasource, you must specify a table with the tag jdbcllr-table-name in config.xml.

We did that and we got

"javax.transaction.SystemException: Failed to call registerLoggingResourceTransactions() weblogic.transaction.loggingresource.LoggingResourceException: weblogic.transaction.loggingresource.LoggingResourceException: java.sql.SQLException: JDBC LLR, table verify failed for table 'WL_LLR_PIPPO_7436', failed to create table"

I have enabled the flags

-Dweblogic.debug.DebugJDBCSQL=true -Dweblogic.log.StdoutSeverity=Debug -Dweblogic.StdoutDebugEnabled=true

and discovered this

[weblogic.jdbc.wrapper.Statement_oracle_jdbc_driver_OracleStatementWrapper@4] 
executeUpdate(CREATE TABLE WL_LLR_PIPPO_7436 (XIDSTR VARCHAR(40) NOT NULL PRIMARY KEY, POOLNAMESTR VARCHAR(64), RECORDSTR VARCHAR(1000))) 
throws java.sql.SQLSyntaxErrorException: ORA-01031: insufficient privileges

        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)
        at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059)
        at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522)
        at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257)
        at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587)
        at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:210)
        at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:30)
        at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:931)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1150)
        at oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1707)
        at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1670)
        at oracle.jdbc.driver.OracleStatementWrapper.executeUpdate(OracleStatementWrapper.java:310)
        at weblogic.jdbc.wrapper.Statement.executeUpdate(Statement.java:535)
        at weblogic.jdbc.wrapper.JTSLoggableResourceTable.createTable(JTSLoggableResourceTable.java:234)
        at weblogic.jdbc.wrapper.JTSLoggableResourceTable.findOrCreateTable(JTSLoggableResourceTable.java:287)
        at weblogic.jdbc.wrapper.JTSLoggableResourceImpl.findOrCreateBackingTable(JTSLoggableResourceImpl.java:530)




so you can simply ask the DBA to create the table, or grant you CREATE TABLE privileges.

Sunday, October 9, 2011

weblogic.transaction.loggingresource.LoggingResourceException: java.sql.SQLException: JDBC LLR, table verify...

this man deserves a monument:

http://blogs.oracle.com/jeffdavies/entry/running_multiple_weblogic_and

either you use a different URL for the DB, or you use a different AdminServer name in each domain...

see also here

Tuesday, June 8, 2010

OSB, WebLogic and Derby Database Console with NetBeans

After installation of OSB11, we get by default a DataSource connecting to this database:

jdbc:derby://localhost:1527/osbexamples;create=true;ServerName=localhost;databaseName=osbexamples

with driver
org.apache.derby.jdbc.ClientDriver

user=DEV_SOAINFRA

To connect a Console with NetBeans 6.8 do this:

Window/Services

open the Databases tab

there should be already a jdbc:derby .../samples

you can edit it (or create a new one) with these properties:

URL: jdbc:derby://localhost:1527/osbexamples
Driver: org.apache.derby.jdbc.ClientDriver
Schema: APP
User: DEV_SOAINFRA

in the schema DEV_SOAINFRA
you can open the table

WL_LLR_ADMINSERVER which contains:

XIDSTR    POOLNAMESTR    RECORDSTR
JDBC LLR Domain//Server    JDBC LLR Domain//Server    osbdomain//AdminServer
JDBC LLR Version    JDBC LLR Version    1.0

where osbdomain is your domain name, and AdminServer your admin server name.

So if you have multiple Weblogic Domains on the same machine, but only one instance of Derby running, you can create a new schema for a new user, and make sure that the second domain uses as a JDBC Pool user this new user, and update the "JDBC LLR Domain//Server" record with the name of your domain/adminserver.

This shold fix the infamous exception:


java.sql.SQLException: JDBC LLR, table verify failed for table 'WL_LLR_ADMINSERVER', row 
'JDBC LLR Domain//Server' record had unexpected value 'my_domain2//AdminServer' expected 
'my_domain//AdminServer'
 
 
An easier solution is to change (Wl Console : AdminServer/General/advanced options/JDBC LLR Table Name) the table name to use in LLR: the default is 
WL_LLR_ADMINSERVER but you can change it to something else)