[jboss-cvs] JBoss Messaging SVN: r7224 - in trunk: src/main/org/jboss/messaging/core/client/impl and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Jun 5 09:06:03 EDT 2009
Author: timfox
Date: 2009-06-05 09:06:03 -0400 (Fri, 05 Jun 2009)
New Revision: 7224
Modified:
trunk/build-messaging.xml
trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionFactoryImpl.java
trunk/src/main/org/jboss/messaging/core/client/impl/ConnectionManagerImpl.java
trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java
Log:
gc on factory
Modified: trunk/build-messaging.xml
===================================================================
--- trunk/build-messaging.xml 2009-06-05 12:38:17 UTC (rev 7223)
+++ trunk/build-messaging.xml 2009-06-05 13:06:03 UTC (rev 7224)
@@ -1092,7 +1092,7 @@
<target name="integration-tests" depends="jar, compile-unit-tests">
<antcall inheritall="true" inheritrefs="true" target="tests">
- <param name="tests.param" value="**/org/jboss/messaging/tests/integration/**/String64*.class"/>
+ <param name="tests.param" value="**/org/jboss/messaging/tests/integration/**/*${test-mask}.class"/>
</antcall>
</target>
Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionFactoryImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionFactoryImpl.java 2009-06-05 12:38:17 UTC (rev 7223)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionFactoryImpl.java 2009-06-05 13:06:03 UTC (rev 7224)
@@ -111,7 +111,7 @@
// Attributes
// -----------------------------------------------------------------------------------
-
+
private final Map<Pair<TransportConfiguration, TransportConfiguration>, ConnectionManager> connectionManagerMap = new LinkedHashMap<Pair<TransportConfiguration, TransportConfiguration>, ConnectionManager>();
private volatile boolean receivedBroadcast = false;
@@ -137,7 +137,7 @@
private int discoveryPort;
private long discoveryRefreshTimeout;
-
+
private long discoveryInitialWaitTimeout;
private long clientFailureCheckPeriod;
@@ -183,9 +183,9 @@
private double retryIntervalMultiplier;
private int reconnectAttempts;
-
+
private volatile boolean closed;
-
+
private boolean failoverOnServerShutdown;
private static ExecutorService globalThreadPool;
@@ -268,7 +268,8 @@
{
for (Pair<TransportConfiguration, TransportConfiguration> pair : staticConnectors)
{
- ConnectionManager cm = new ConnectionManagerImpl(pair.a,
+ ConnectionManager cm = new ConnectionManagerImpl(this,
+ pair.a,
pair.b,
failoverOnServerShutdown,
maxConnections,
@@ -710,25 +711,31 @@
preAcknowledge,
ackBatchSize);
}
-
+
public ClientSession createXASession() throws MessagingException
{
return createSessionInternal(null, null, true, false, false, preAcknowledge, this.ackBatchSize);
}
-
+
public ClientSession createTransactedSession() throws MessagingException
{
return createSessionInternal(null, null, false, false, false, preAcknowledge, this.ackBatchSize);
}
-
+
public ClientSession createSession() throws MessagingException
{
return createSessionInternal(null, null, false, true, true, preAcknowledge, this.ackBatchSize);
}
-
+
public ClientSession createSession(final boolean autoCommitSends, final boolean autoCommitAcks) throws MessagingException
{
- return createSessionInternal(null, null, false, autoCommitSends, autoCommitAcks, preAcknowledge, this.ackBatchSize);
+ return createSessionInternal(null,
+ null,
+ false,
+ autoCommitSends,
+ autoCommitAcks,
+ preAcknowledge,
+ this.ackBatchSize);
}
public ClientSession createSession(final boolean xa, final boolean autoCommitSends, final boolean autoCommitAcks) throws MessagingException
@@ -774,7 +781,7 @@
{
return;
}
-
+
if (discoveryGroup != null)
{
try
@@ -822,10 +829,10 @@
{
}
}
-
+
closed = true;
}
-
+
// DiscoveryListener implementation --------------------------------------------------------
public synchronized void connectorsChanged()
@@ -861,7 +868,8 @@
{
// Create a new ConnectionManager
- ConnectionManager connectionManager = new ConnectionManagerImpl(connectorPair.a,
+ ConnectionManager connectionManager = new ConnectionManagerImpl(this,
+ connectorPair.a,
connectorPair.b,
failoverOnServerShutdown,
maxConnections,
@@ -880,20 +888,20 @@
updateConnectionManagerArray();
}
-
+
public ConnectionManager[] getConnectionManagers()
{
return connectionManagerArray;
}
-
+
// Protected ------------------------------------------------------------------------------
@Override
protected void finalize() throws Throwable
{
- //In case user forgets to close it explicitly
+ // In case user forgets to close it explicitly
close();
-
+
super.finalize();
}
@@ -919,7 +927,7 @@
{
throw new IllegalStateException("Cannot create session, factory is closed (maybe it has been garbage collected)");
}
-
+
if (!readOnly)
{
try
@@ -951,22 +959,24 @@
ConnectionManager connectionManager = connectionManagerArray[pos];
- return connectionManager.createSession(username,
- password,
- xa,
- autoCommitSends,
- autoCommitAcks,
- preAcknowledge,
- ackBatchSize,
- minLargeMessageSize,
- blockOnAcknowledge,
- autoGroup,
- producerWindowSize,
- consumerWindowSize,
- producerMaxRate,
- consumerMaxRate,
- blockOnNonPersistentSend,
- blockOnPersistentSend);
+ ClientSession session = connectionManager.createSession(username,
+ password,
+ xa,
+ autoCommitSends,
+ autoCommitAcks,
+ preAcknowledge,
+ ackBatchSize,
+ minLargeMessageSize,
+ blockOnAcknowledge,
+ autoGroup,
+ producerWindowSize,
+ consumerWindowSize,
+ producerMaxRate,
+ consumerMaxRate,
+ blockOnNonPersistentSend,
+ blockOnPersistentSend);
+
+ return session;
}
}
Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ConnectionManagerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ConnectionManagerImpl.java 2009-06-05 12:38:17 UTC (rev 7223)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ConnectionManagerImpl.java 2009-06-05 13:06:03 UTC (rev 7224)
@@ -42,6 +42,7 @@
import java.util.concurrent.locks.Lock;
import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
import org.jboss.messaging.core.config.TransportConfiguration;
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.logging.Logger;
@@ -89,6 +90,9 @@
// Attributes
// -----------------------------------------------------------------------------------
+ //We need to keep the reference to prevent the factory getting gc'd before the sessions are finished being used
+ private final ClientSessionFactory factory;
+
private final TransportConfiguration connectorConfig;
private final TransportConfiguration backupConfig;
@@ -170,7 +174,8 @@
// Constructors
// ---------------------------------------------------------------------------------
- public ConnectionManagerImpl(final TransportConfiguration connectorConfig,
+ public ConnectionManagerImpl(final ClientSessionFactory factory,
+ final TransportConfiguration connectorConfig,
final TransportConfiguration backupConfig,
final boolean failoverOnServerShutdown,
final int maxConnections,
@@ -183,6 +188,8 @@
final ExecutorService threadPool,
final ScheduledExecutorService scheduledThreadPool)
{
+ this.factory = factory;
+
this.connectorConfig = connectorConfig;
this.backupConfig = backupConfig;
@@ -476,14 +483,14 @@
pinger.close();
}
-// @Override
-// protected void finalize() throws Throwable
-// {
-// //In case user forgets to close it explicitly
-// close();
-//
-// super.finalize();
-// }
+ @Override
+ protected void finalize() throws Throwable
+ {
+ //In case user forgets to close it explicitly
+ close();
+
+ super.finalize();
+ }
// Protected
// ------------------------------------------------------------------------------------
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java 2009-06-05 12:38:17 UTC (rev 7223)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java 2009-06-05 13:06:03 UTC (rev 7224)
@@ -334,7 +334,7 @@
replicatingConnection = null;
replicatingChannel = null;
-
+
replicatingConnectionManager.close();
}
@@ -353,6 +353,7 @@
threadPool.shutdown();
try
{
+ log.info("*** waiting for pool to terminate");
if (!threadPool.awaitTermination(30000, TimeUnit.MILLISECONDS))
{
log.warn("Timed out waiting for pool to terminate");
@@ -1042,7 +1043,8 @@
}
else
{
- replicatingConnectionManager = new ConnectionManagerImpl(backupConnector,
+ replicatingConnectionManager = new ConnectionManagerImpl(null,
+ backupConnector,
null,
false,
1,
@@ -1097,12 +1099,12 @@
{
log.warn("Backup server MUST be started before live server. Initialisation will proceed.");
- return false;
+ return false;
}
}
}
- return true;
+ return true;
}
private void loadJournal() throws Exception
More information about the jboss-cvs-commits
mailing list