Author: shawkins
Date: 2009-10-01 20:36:59 -0400 (Thu, 01 Oct 2009)
New Revision: 1518
Modified:
trunk/engine/src/main/java/com/metamatrix/platform/security/api/service/SessionServiceInterface.java
trunk/runtime/src/main/java/com/metamatrix/platform/security/session/service/SessionServiceImpl.java
trunk/runtime/src/main/java/org/teiid/transport/LocalServerConnection.java
Log:
TEIID-867 local clients now by-pass ping altogether
Modified:
trunk/engine/src/main/java/com/metamatrix/platform/security/api/service/SessionServiceInterface.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/platform/security/api/service/SessionServiceInterface.java 2009-10-01
21:23:46 UTC (rev 1517)
+++
trunk/engine/src/main/java/com/metamatrix/platform/security/api/service/SessionServiceInterface.java 2009-10-02
00:36:59 UTC (rev 1518)
@@ -156,4 +156,6 @@
*/
public void register(SessionListener listener);
+ public void setLocalSession(MetaMatrixSessionID sessionID);
+
}
Modified:
trunk/runtime/src/main/java/com/metamatrix/platform/security/session/service/SessionServiceImpl.java
===================================================================
---
trunk/runtime/src/main/java/com/metamatrix/platform/security/session/service/SessionServiceImpl.java 2009-10-01
21:23:46 UTC (rev 1517)
+++
trunk/runtime/src/main/java/com/metamatrix/platform/security/session/service/SessionServiceImpl.java 2009-10-02
00:36:59 UTC (rev 1518)
@@ -345,4 +345,12 @@
this.sessionListener = listener;
}
+ @Override
+ public void setLocalSession(MetaMatrixSessionID sessionID) {
+ MetaMatrixSessionInfo info = this.sessionCache.get(sessionID);
+ if (info != null) {
+ info.setLastPingTime(Long.MAX_VALUE);
+ }
+ }
+
}
Modified: trunk/runtime/src/main/java/org/teiid/transport/LocalServerConnection.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/transport/LocalServerConnection.java 2009-10-01
21:23:46 UTC (rev 1517)
+++ trunk/runtime/src/main/java/org/teiid/transport/LocalServerConnection.java 2009-10-02
00:36:59 UTC (rev 1518)
@@ -27,8 +27,6 @@
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.Properties;
-import java.util.Timer;
-import java.util.TimerTask;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
@@ -56,57 +54,25 @@
private boolean shutdown;
private DQPWorkContext workContext;
private ClassLoader classLoader;
- ClientServiceRegistry clientServices;
- SessionServiceInterface sessionService;
- private Timer pingTimer;
+ private ClientServiceRegistry clientServices;
+ private SessionServiceInterface sessionService;
private ILogon logon;
-
-
public LocalServerConnection(Properties connectionProperties, ClientServiceRegistry
clientServices, SessionServiceInterface sessionService) throws CommunicationException,
ConnectionException{
-
this.clientServices = clientServices;
-
+ this.sessionService = sessionService;
//Initialize the workContext
workContext = new DQPWorkContext();
DQPWorkContext.setWorkContext(workContext);
-
- this.result = authenticate(connectionProperties);
-
this.classLoader = Thread.currentThread().getContextClassLoader();
-
- this.sessionService = sessionService;
-
this.logon = this.getService(ILogon.class);
- this.pingTimer = new Timer("LocalPing", true); //$NON-NLS-1$
-
- schedulePing();
+ this.result = authenticate(connectionProperties);
}
- private void schedulePing() {
- if (this.pingTimer != null) {
- this.pingTimer.schedule(new TimerTask() {
- @Override
- public void run() {
- try {
- if (isOpen()) {
- logon.ping();
- return;
- }
- } catch (InvalidSessionException e) {
- shutdown(false);
- } catch (MetaMatrixComponentException e) {
- shutdown();
- }
- this.cancel();
- }
- }, PING_INTERVAL, PING_INTERVAL);
- }
- }
-
public synchronized LogonResult authenticate(Properties connProps) throws
ConnectionException, CommunicationException {
try {
LogonResult logonResult = this.logon.logon(connProps);
+ this.sessionService.setLocalSession(logonResult.getSessionID());
return logonResult;
} catch (LogonException e) {
// Propagate the original message as it contains the message we want
Show replies by date