[teiid-commits] teiid SVN: r2781 - in branches/7.1.x: engine/src/main/java/org/teiid/dqp/internal/process and 3 other directories.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Wed Dec 15 11:43:08 EST 2010
Author: rareddy
Date: 2010-12-15 11:43:07 -0500 (Wed, 15 Dec 2010)
New Revision: 2781
Modified:
branches/7.1.x/client/src/main/java/org/teiid/net/socket/SocketServerConnectionFactory.java
branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java
branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java
branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/TransactionServerImpl.java
branches/7.1.x/engine/src/main/java/org/teiid/dqp/service/TransactionService.java
branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java
branches/7.1.x/runtime/src/main/java/org/teiid/services/SessionServiceImpl.java
Log:
TEIID-1392: Two leaks found, one with client state in the DQPCore and second with TransactionContext in NONE case not being cleared. Also added the debug statements for ping calls.
Modified: branches/7.1.x/client/src/main/java/org/teiid/net/socket/SocketServerConnectionFactory.java
===================================================================
--- branches/7.1.x/client/src/main/java/org/teiid/net/socket/SocketServerConnectionFactory.java 2010-12-14 21:40:44 UTC (rev 2780)
+++ branches/7.1.x/client/src/main/java/org/teiid/net/socket/SocketServerConnectionFactory.java 2010-12-15 16:43:07 UTC (rev 2781)
@@ -210,6 +210,7 @@
try {
logon.assertIdentity(session);
logon.ping();
+ log.log(Level.FINER, "issueing ping for session:", session); //$NON-NLS-1$
} catch (InvalidSessionException e) {
}
}
@@ -219,6 +220,7 @@
sessionStrings.add(session.getSessionID());
}
logon.ping(sessionStrings);
+ log.log(Level.FINER, "issueing ping for sessions:", sessionStrings); //$NON-NLS-1$
}
} catch (Exception e) {
log.log(Level.WARNING, "Error performing keep-alive ping", e); //$NON-NLS-1$
Modified: branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java 2010-12-14 21:40:44 UTC (rev 2780)
+++ branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java 2010-12-15 16:43:07 UTC (rev 2781)
@@ -488,6 +488,7 @@
LogManager.logWarning(LogConstants.CTX_DQP, err, "Failed to cancel " + reqId); //$NON-NLS-1$
}
}
+ this.clientState.remove(sessionId);
}
try {
Modified: branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java 2010-12-14 21:40:44 UTC (rev 2780)
+++ branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java 2010-12-15 16:43:07 UTC (rev 2781)
@@ -269,6 +269,9 @@
suspend();
}
}
+ else if (this.transactionState == TransactionState.NONE && this.transactionContext != null) {
+ this.transactionService.closeTransactionContext(this.transactionContext);
+ }
sendResultsIfNeeded(null);
} else {
moreWork(false); // If the timeslice expired, then the processor can probably produce more batches.
Modified: branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/TransactionServerImpl.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/TransactionServerImpl.java 2010-12-14 21:40:44 UTC (rev 2780)
+++ branches/7.1.x/engine/src/main/java/org/teiid/dqp/internal/process/TransactionServerImpl.java 2010-12-15 16:43:07 UTC (rev 2781)
@@ -459,6 +459,10 @@
return transactions.getOrCreateTransactionContext(threadId);
}
+ public void closeTransactionContext(TransactionContext tc) {
+ transactions.removeTransactionContext(tc);
+ }
+
/**
* Request level transaction
*/
Modified: branches/7.1.x/engine/src/main/java/org/teiid/dqp/service/TransactionService.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/dqp/service/TransactionService.java 2010-12-14 21:40:44 UTC (rev 2780)
+++ branches/7.1.x/engine/src/main/java/org/teiid/dqp/service/TransactionService.java 2010-12-15 16:43:07 UTC (rev 2781)
@@ -47,6 +47,8 @@
TransactionContext getOrCreateTransactionContext(String threadId);
+ void closeTransactionContext(TransactionContext tc);
+
void suspend(TransactionContext context) throws XATransactionException;
void resume(TransactionContext context) throws XATransactionException;
Modified: branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java
===================================================================
--- branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java 2010-12-14 21:40:44 UTC (rev 2780)
+++ branches/7.1.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java 2010-12-15 16:43:07 UTC (rev 2781)
@@ -204,7 +204,10 @@
}
Future<ResultsMessage> message = core.executeRequest(reqMsg.getExecutionId(), reqMsg);
+ assertNotNull(core.getClientState(String.valueOf(sessionid), false));
ResultsMessage results = message.get(5000, TimeUnit.MILLISECONDS);
+ core.terminateSession(String.valueOf(sessionid));
+ assertNull(core.getClientState(String.valueOf(sessionid), false));
if (results.getException() != null) {
throw results.getException();
}
Modified: branches/7.1.x/runtime/src/main/java/org/teiid/services/SessionServiceImpl.java
===================================================================
--- branches/7.1.x/runtime/src/main/java/org/teiid/services/SessionServiceImpl.java 2010-12-14 21:40:44 UTC (rev 2780)
+++ branches/7.1.x/runtime/src/main/java/org/teiid/services/SessionServiceImpl.java 2010-12-15 16:43:07 UTC (rev 2781)
@@ -279,6 +279,7 @@
SessionMetadata info = getSessionInfo(sessionID);
info.setLastPingTime(System.currentTimeMillis());
this.sessionCache.put(sessionID, info);
+ LogManager.logDetail(LogConstants.CTX_SECURITY, "Keep-alive ping received for session:"+sessionID); //$NON-NLS-1$
}
@Override
More information about the teiid-commits
mailing list