That was it!   Now before each dump of the lock table I do a em.flush and I
am getting good output.  I should be able to debug my deadlock issue now.
Thanks!

> -----Original Message-----
> From: Bergquist, Brett [mailto:bbergqu...@canoga.com]
> Sent: Monday, February 04, 2013 15:00
> To: Derby Discussion; m...@the-kruegers.name
> Subject: RE: SYSCS_DIAG.LOCK_TABLE keeps coming up enpty
> 
> 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 [m...@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.
> 
> 


Reply via email to