db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bergquist, Brett" <BBergqu...@canoga.com>
Subject RE: SYSCS_DIAG.LOCK_TABLE keeps coming up enpty
Date Mon, 04 Feb 2013 21:00:26 GMT
If this is using JPA, matbe you are not seeing any locking because the entity manager is flushing
is requests to the database engine only when the entity bean methods is returned from and
the transaction manager kicks in to persist the changes.   

Try adding a "em.flush()"  call on the entity manger which will force the database changes
to occur and then maybe you might see the lock table populated.

Just a thought.

Brett


________________________________________
From: Mark Stephen Krueger [mark@the-kruegers.name]
Sent: Sunday, February 03, 2013 11:21 AM
To: derby-user@db.apache.org
Subject: SYSCS_DIAG.LOCK_TABLE keeps coming up enpty

I'm trying to debug an issue with a deadlock with an EJB app running under
Glassfish 3.1.2.1.  The app uses entity beans and the entity manager.  I
want to view the lock table at various points so I wrote the following code.
The problem is everywhere I place a call to it, the lock table is always
coming back as empty (no rows). What am I missing?

    @Resource(mappedName="jdbc/myderbyjndi")
    private DataSource dataSource;

    ..

    private void dumpLockTable()
    {
        try ( Connection connection = dataSource.getConnection() )
        {
            PreparedStatement ps = connection.prepareStatement( "SELECT *
FROM SYSCS_DIAG.LOCK_TABLE" );
            ResultSet rs = ps.executeQuery();
            ResultSetMetaData rsmd = rs.getMetaData();
            int columns = rsmd.getColumnCount();
            StringBuilder sb = new StringBuilder();
            sb.append( "Lock Table\n" );
            while( rs.next() )
            {
                for ( int col = 1; col <= columns; col++ )
                {
                    sb.append( rs.getString( col ) );
                    sb.append( "\t|" );
                }
                sb.append( "\n" );
            }
            logger.info( sb.toString() );
        }

        catch ( SQLException sqle )
        {
            logger.throwing( LOG_CLASS_NAME, "dumpLockTable", sqle );
        }
    }


I believe this is Derby 10.8.





Mime
View raw message