[jboss-cvs] JBoss Messaging SVN: r8537 - branches/Branch_1_4/src/main/org/jboss/messaging/core/impl.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed May 23 07:36:03 EDT 2012
Author: gaohoward
Date: 2012-05-23 07:36:02 -0400 (Wed, 23 May 2012)
New Revision: 8537
Modified:
branches/Branch_1_4/src/main/org/jboss/messaging/core/impl/JDBCPersistenceManager.java
Log:
JBMESSAGING-1826
Modified: branches/Branch_1_4/src/main/org/jboss/messaging/core/impl/JDBCPersistenceManager.java
===================================================================
--- branches/Branch_1_4/src/main/org/jboss/messaging/core/impl/JDBCPersistenceManager.java 2012-05-09 10:41:23 UTC (rev 8536)
+++ branches/Branch_1_4/src/main/org/jboss/messaging/core/impl/JDBCPersistenceManager.java 2012-05-23 11:36:02 UTC (rev 8537)
@@ -822,6 +822,8 @@
}
}
+
+ deleteMessagesNonTx(references, conn);
return null;
}
@@ -833,8 +835,6 @@
}
new RemoveDepagedReferencesRunner().executeWithRetry();
-
- deleteMessages(references);
}
// After loading paged refs this is used to update P messages to non paged
@@ -1848,6 +1848,8 @@
log.trace("Deleted " + rows + " references");
}
+ deleteMessageNonTx(ref.getMessage().getMessageID(), conn);
+
return null;
}
finally
@@ -1870,8 +1872,6 @@
// No tx so we remove the reference directly from the db
new RemoveReferenceRunner().executeWithRetry();
-
- deleteMessage(ref.getMessage().getMessageID());
}
}
@@ -2166,6 +2166,8 @@
}
+ deleteMessagesNonTx(refsToRemove, conn);
+
return null;
}
catch (SQLException e)
@@ -2207,8 +2209,6 @@
}
new HandleBeforeCommit1PCRunner().executeWithRetry();
-
- this.deleteMessages(refsToRemove);
}
protected void handleBeforeCommit2PC(final List refsToRemove,
@@ -2260,6 +2260,8 @@
removeTXRecord(conn, tx);
+ deleteMessagesNonTx(refsToRemove, conn);
+
return null;
}
finally
@@ -2270,8 +2272,6 @@
}
new HandleBeforeCommit2PCRunner().executeWithRetry();
-
- this.deleteMessages(refsToRemove);
}
protected void handleBeforePrepare(final List refsToAdd,
@@ -2469,6 +2469,8 @@
removeTXRecord(conn, tx);
+ deleteMessagesNonTx(refsToAdd, conn);
+
return null;
}
finally
@@ -2479,8 +2481,6 @@
}
new HandleBeforeRollbackRunner().executeWithRetry();
-
- this.deleteMessages(refsToAdd);
}
protected void addTXRecord(Connection conn, Transaction tx) throws Exception
@@ -3118,97 +3118,72 @@
// Private -------------------------------------------------------
- private void deleteMessages(final List references) throws Exception
+ private void deleteMessagesNonTx(final List references, Connection conn) throws Exception
{
- class DeleteMessagesRunner extends JDBCTxRunner2
+ // Order to avoid deadlock
+ orderReferences(references);
+
+ PreparedStatement psMessage = null;
+ try
{
- public Object doTransaction() throws Exception
- {
+ psMessage = conn
+ .prepareStatement(getSQLStatement("DELETE_MESSAGE"));
- PreparedStatement psMessage = null;
+ Iterator iter = references.iterator();
- try
+ while (iter.hasNext())
+ {
+ Object obj = iter.next();
+
+ MessageReference ref;
+ if (obj instanceof MessageReference)
{
- psMessage = conn
- .prepareStatement(getSQLStatement("DELETE_MESSAGE"));
+ ref = (MessageReference) obj;
+ }
+ else
+ {
+ ref = ((ChannelRefPair) obj).ref;
+ }
- Iterator iter = references.iterator();
+ psMessage.setLong(1, ref.getMessage().getMessageID());
+ psMessage.setLong(2, ref.getMessage().getMessageID());
- while (iter.hasNext())
- {
- Object obj = iter.next();
+ int rows = psMessage.executeUpdate();
- MessageReference ref;
- if (obj instanceof MessageReference)
- {
- ref = (MessageReference) obj;
- }
- else
- {
- ref = ((ChannelRefPair) obj).ref;
- }
-
- psMessage.setLong(1, ref.getMessage().getMessageID());
- psMessage.setLong(2, ref.getMessage().getMessageID());
-
- int rows = psMessage.executeUpdate();
-
- if (trace)
- {
- log.trace("Deleted " + rows + " messages");
- }
-
- }
-
- return null;
- }
- finally
+ if (trace)
{
- closeStatement(psMessage);
+ log.trace("Deleted " + rows + " messages");
}
}
}
-
- // Order to avoid deadlock
- orderReferences(references);
-
- new DeleteMessagesRunner().executeWithRetry();
+ finally
+ {
+ closeStatement(psMessage);
+ }
}
- private void deleteMessage(final long messageID) throws Exception
+ private void deleteMessageNonTx(final long messageID, Connection conn) throws Exception
{
- class DeleteMessageRunner extends JDBCTxRunner2
+ PreparedStatement psMessage = null;
+ try
{
- public Object doTransaction() throws Exception
- {
+ psMessage = conn
+ .prepareStatement(getSQLStatement("DELETE_MESSAGE"));
- PreparedStatement psMessage = null;
+ psMessage.setLong(1, messageID);
+ psMessage.setLong(2, messageID);
- try
- {
- psMessage = conn
- .prepareStatement(getSQLStatement("DELETE_MESSAGE"));
+ int rows = psMessage.executeUpdate();
- psMessage.setLong(1, messageID);
- psMessage.setLong(2, messageID);
-
- int rows = psMessage.executeUpdate();
-
- if (trace)
- {
- log.trace("Deleted " + rows + " messages");
- }
-
- return null;
- }
- finally
- {
- closeStatement(psMessage);
- }
+ if (trace)
+ {
+ log.trace("Deleted " + rows + " messages");
}
}
-
- new DeleteMessageRunner().executeWithRetry();
+ finally
+ {
+ closeStatement(psMessage);
+ }
}
private List getMessageChannelPair(String sqlQuery, long transactionId)
More information about the jboss-cvs-commits
mailing list