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.