From: Adrian B. <ej...@us...> - 2004-07-15 20:32:39
|
User: ejort Date: 04/07/15 13:32:24 Modified: src/main/org/jboss/mq/pm/jdbc2 Tag: Branch_3_2 PersistenceManager.java Log: Add an index to support JMS Transactions. This is frequently used by the MDB. Revision Changes Path No revision No revision 1.6.2.17 +43 -8 jbossmq/src/main/org/jboss/mq/pm/jdbc2/PersistenceManager.java Index: PersistenceManager.java =================================================================== RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/pm/jdbc2/PersistenceManager.java,v retrieving revision 1.6.2.16 retrieving revision 1.6.2.17 diff -u -r1.6.2.16 -r1.6.2.17 --- PersistenceManager.java 8 May 2004 23:46:10 -0000 1.6.2.16 +++ PersistenceManager.java 15 Jul 2004 20:32:24 -0000 1.6.2.17 @@ -49,7 +49,7 @@ * @author Jayesh Parayali (jay...@ya...) * @author Hiram Chirino (coj...@ho...) * - * @version $Revision: 1.6.2.16 $ + * @version $Revision: 1.6.2.17 $ */ public class PersistenceManager extends ServiceMBeanSupport @@ -92,6 +92,7 @@ "CREATE TABLE JMS_MESSAGES ( MESSAGEID INTEGER NOT NULL, " + "DESTINATION VARCHAR(32) NOT NULL, TXID INTEGER, TXOP CHAR(1)," + "MESSAGEBLOB OBJECT, PRIMARY KEY (MESSAGEID, DESTINATION) )"; + String CREATE_MESSAGE_IDX_TXOP_TXID = "CREATE INDEX JMS_MESSAGES_TXOP_TXID ON JMS_MESSAGES (TXOP, TXID)"; String CREATE_TX_TABLE = "CREATE TABLE JMS_TRANSACTIONS ( TXID INTEGER )"; static final int OBJECT_BLOB = 0; @@ -215,14 +216,16 @@ { c = this.getConnection(); + boolean createdMessageTable = false; try { stmt = c.prepareStatement(CREATE_MESSAGE_TABLE); stmt.executeUpdate(); + createdMessageTable = true; } catch (SQLException e) { - log.debug("Could not create table with SQL: " + CREATE_MESSAGE_TABLE + ", got : " + e); + log.debug("Could not create table with SQL: " + CREATE_MESSAGE_TABLE, e); } finally { @@ -238,6 +241,32 @@ stmt = null; } + if (createdMessageTable) + { + try + { + stmt = c.prepareStatement(CREATE_MESSAGE_IDX_TXOP_TXID); + stmt.executeUpdate(); + } + catch (SQLException e) + { + log.debug("Could not create index with SQL: " + CREATE_MESSAGE_IDX_TXOP_TXID, e); + } + finally + { + try + { + if (stmt != null) + stmt.close(); + } + catch (Throwable ignored) + { + log.trace("Ignored: " + ignored); + } + stmt = null; + } + } + try { stmt = c.prepareStatement(CREATE_TX_TABLE); @@ -245,7 +274,7 @@ } catch (SQLException e) { - log.debug("Could not create table with SQL: " + CREATE_TX_TABLE + ", got : " + e); + log.debug("Could not create table with SQL: " + CREATE_TX_TABLE, e); } finally { @@ -271,7 +300,8 @@ { try { - stmt.close(); + if (stmt != null) + stmt.close(); } catch (Throwable ignore) { @@ -279,7 +309,8 @@ stmt = null; try { - c.close(); + if (c != null) + c.close(); } catch (Throwable ignore) { @@ -342,21 +373,24 @@ { try { - rs.close(); + if (rs != null) + rs.close(); } catch (Throwable ignore) { } try { - stmt.close(); + if (stmt != null) + stmt.close(); } catch (Throwable ignore) { } try { - c.close(); + if (c != null) + c.close(); } catch (Throwable ignore) { @@ -1325,6 +1359,7 @@ DELETE_MESSAGE = sqlProperties.getProperty("DELETE_MESSAGE", DELETE_MESSAGE); UPDATE_MESSAGE = sqlProperties.getProperty("UPDATE_MESSAGE", UPDATE_MESSAGE); CREATE_MESSAGE_TABLE = sqlProperties.getProperty("CREATE_MESSAGE_TABLE", CREATE_MESSAGE_TABLE); + CREATE_MESSAGE_IDX_TXOP_TXID = sqlProperties.getProperty("CREATE_MESSAGE_IDX_TXOP_TXID", CREATE_MESSAGE_IDX_TXOP_TXID); CREATE_TX_TABLE = sqlProperties.getProperty("CREATE_TX_TABLE", CREATE_TX_TABLE); createTables = sqlProperties.getProperty("CREATE_TABLES_ON_STARTUP", "true").equalsIgnoreCase("true"); String s = sqlProperties.getProperty("BLOB_TYPE", "OBJECT_BLOB"); |