Issue Details (XML | Word | Printable)

Key: OPENEJB-857
Type: Improvement Improvement
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: David Blevins
Reporter: David Blevins
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
OpenEJB

Client connection KeepAlive

Created: 12/Jul/08 09:05 PM   Updated: 29/Oct/08 09:13 PM
Return to search
Component/s: server
Affects Version/s: 3.0-beta-1, 3.0-beta-2, 3.0
Fix Version/s: 3.1

Time Tracking:
Not Specified

Resolution Date: 12/Jul/08 09:10 PM


 Description  « Hide
$ svn ci
Sending container/openejb-core/src/main/java/org/apache/openejb/util/LogCategory.java
Sending server/openejb-client/src/main/java/org/apache/openejb/client/SocketConnectionFactory.java
Sending server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbServer.java
Adding server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/KeepAliveServer.java
Sending server/openejb-ejbd/src/test/java/org/apache/openejb/server/ejbd/MultithreadTest.java
Sending server/openejb-server/src/main/java/org/apache/openejb/server/ServicePool.java
Transmitting file data ......
Committed revision 676240.



 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
David Blevins made changes - 12/Jul/08 09:10 PM
Field Original Value New Value
Resolution Fixed [ 1 ]
Status Open [ 1 ] Closed [ 6 ]
Repository Revision Date User Message
ASF #693321 Tue Sep 09 00:09:25 UTC 2008 dblevins OPENEJB-903: Multicast discovery and grouping
OPENEJB-911: Graceful shutdown of client/server connections
OPENEJB-857: Client connection KeepAlive (had to rewrite this for OPENEJB-911)
Added a ClusterMetaData which is similar to what the ServerMetaData was aiming to be. The issue with the ServerMetaData is that it's tracked on a per-ejb-proxy basis and any updates to the list of servers in the cluster are only reflected in the proxy immediately used. All other proxies will still hold onto the outdated list. Second, not all request types could be clustered and have failover, essentially only ejb requests could failover, jndi and authentication could not. Now the ClusterMetaData version associated with the ServerMetaData is sent to the server *before* the main request and then the server can send back a new list regardless of which type of request it is.
Additionally code has been added to guarantee that the ServerMetaData the client used to connet with the server or cluster is the used in an EJB proxies created via the IntraVM server when the are replaced for Remote Server proxies at serialization. Previously they were sent back with "foo://localhost:4201" as the server address which was not good.
Files Changed
ADD /openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/ClusterMetaData.java
MODIFY /openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EJBRequest.java
MODIFY /openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/ServerMetaData.java
DEL /openejb/trunk/openejb3/server/openejb-discovery/src/main/java/org/apache/openejb/server/discovery/DiscoveryAgent.java
ADD /openejb/trunk/openejb3/server/openejb-ejbd/src/test/java/org/apache/openejb/server/ejbd/FailoverTest.java
MODIFY /openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServicePool.java
MODIFY /openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java
ADD /openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/KeepAliveStyle.java
MODIFY /openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/ProtocolMetaData.java
MODIFY /openejb/trunk/openejb3/server/openejb-client/src/test/java/org/apache/openejb/client/StickyConnectionStrategyTest.java
ADD /openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/ClusterResponse.java
ADD /openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/DiscoveryAgent.java (from /openejb/trunk/openejb3/server/openejb-discovery/src/main/java/org/apache/openejb/server/discovery/DiscoveryAgent.java)
MODIFY /openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java
ADD /openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServerServiceFilter.java
MODIFY /openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/SocketConnectionFactory.java
ADD /openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/DiscoveryListener.java (from /openejb/trunk/openejb3/server/openejb-discovery/src/main/java/org/apache/openejb/server/discovery/DiscoveryListener.java)
ADD /openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/ClusterRequest.java
MODIFY /openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/CallContext.java
MODIFY /openejb/trunk/openejb3/server/openejb-discovery/src/test/java/org/apache/openejb/server/discovery/MulticastDiscoveryAgentTest.java
MODIFY /openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceDaemon.java
DEL /openejb/trunk/openejb3/server/openejb-discovery/src/main/java/org/apache/openejb/server/discovery/DiscoveryListener.java
MODIFY /openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/ConnectionStrategy.java
MODIFY /openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/KeepAliveServer.java
ADD /openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/VersionedSet.java
MODIFY /openejb/trunk/openejb3/server/openejb-ejbd/pom.xml
MODIFY /openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java
ADD /openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/DiscoveryRegistry.java
ADD /openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Exceptions.java
MODIFY /openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/ClientObjectFactory.java
MODIFY /openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbServer.java
MODIFY /openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/RequestMethodConstants.java
MODIFY /openejb/trunk/openejb3/server/openejb-discovery/src/main/java/org/apache/openejb/server/discovery/MulticastDiscoveryAgent.java
MODIFY /openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/StickyConnectionStrategy.java
ADD /openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/ClusterRequestHandler.java
MODIFY /openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/ConnectionManager.java

David Blevins added a comment - 09/Sep/08 12:10 AM
rewritten in:

$ svn ci
Adding container/openejb-core/src/main/java/org/apache/openejb/util/Exceptions.java
Adding container/openejb-core/src/main/java/org/apache/openejb/util/VersionedSet.java
Sending server/openejb-client/src/main/java/org/apache/openejb/client/Client.java
Adding server/openejb-client/src/main/java/org/apache/openejb/client/ClusterMetaData.java
Adding server/openejb-client/src/main/java/org/apache/openejb/client/ClusterRequest.java
Adding server/openejb-client/src/main/java/org/apache/openejb/client/ClusterResponse.java
Sending server/openejb-client/src/main/java/org/apache/openejb/client/ConnectionManager.java
Sending server/openejb-client/src/main/java/org/apache/openejb/client/ConnectionStrategy.java
Sending server/openejb-client/src/main/java/org/apache/openejb/client/EJBRequest.java
Adding server/openejb-client/src/main/java/org/apache/openejb/client/KeepAliveStyle.java
Sending server/openejb-client/src/main/java/org/apache/openejb/client/ProtocolMetaData.java
Sending server/openejb-client/src/main/java/org/apache/openejb/client/RequestMethodConstants.java
Sending server/openejb-client/src/main/java/org/apache/openejb/client/ServerMetaData.java
Sending server/openejb-client/src/main/java/org/apache/openejb/client/SocketConnectionFactory.java
Sending server/openejb-client/src/main/java/org/apache/openejb/client/StickyConnectionStrategy.java
Sending server/openejb-client/src/test/java/org/apache/openejb/client/StickyConnectionStrategyTest.java
Deleting server/openejb-discovery/src/main/java/org/apache/openejb/server/discovery/DiscoveryAgent.java
Deleting server/openejb-discovery/src/main/java/org/apache/openejb/server/discovery/DiscoveryListener.java
Sending server/openejb-discovery/src/main/java/org/apache/openejb/server/discovery/MulticastDiscoveryAgent.java
Sending server/openejb-discovery/src/test/java/org/apache/openejb/server/discovery/MulticastDiscoveryAgentTest.java
Sending server/openejb-ejbd/pom.xml
Sending server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/CallContext.java
Sending server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/ClientObjectFactory.java
Adding server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/ClusterRequestHandler.java
Sending server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java
Sending server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbServer.java
Sending server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/KeepAliveServer.java
Adding server/openejb-ejbd/src/test/java/org/apache/openejb/server/ejbd/FailoverTest.java
Adding server/openejb-server/src/main/java/org/apache/openejb/server/DiscoveryAgent.java
Adding server/openejb-server/src/main/java/org/apache/openejb/server/DiscoveryListener.java
Adding server/openejb-server/src/main/java/org/apache/openejb/server/DiscoveryRegistry.java
Adding server/openejb-server/src/main/java/org/apache/openejb/server/ServerServiceFilter.java
Sending server/openejb-server/src/main/java/org/apache/openejb/server/ServiceDaemon.java
Sending server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java
Sending server/openejb-server/src/main/java/org/apache/openejb/server/ServicePool.java
Transmitting file data .................................
Committed revision 693321.


David Blevins added a comment - 29/Oct/08 09:13 PM
Author: dblevins
Date: Wed Jul 23 15:57:26 2008
New Revision: 679220

URL: http://svn.apache.org/viewvc?rev=679220&view=rev
Log:
Only start killing connections when there are people waiting (i.e. the pool is used up). Then only kill enough connections to meet current demand.