-
Notifications
You must be signed in to change notification settings - Fork 348
Changes
Martin Grotzke edited this page Feb 9, 2016
·
3 revisions
Deprecated, continued at releases
- #208 Add async support for tomcat8
- 6873277a: Update library versions, specifically spymemcached to 2.11.1 and couchbase-client to 1.4.0 (PR #41 by Hans-Joachim Kliemeck)
-
#173: Support multiple contexts sharing the same session id (includes tomcats parallel deployment) - add
storageKeyPrefix
configuration attribute (see SetupAndConfiguration for usage) -
87c19da: Rename kryo system property names
*.buffersize.*
to*.bufferSize.*
-
f1f9f0a: Create kryo default serializer via a factory method, configurable via the system property
msm.kryo.defaultSerializerFactory
(PR #37 by Marcus Thiesen), see documentation - 83d9289: Delete Sessions which cause deserialization errors (PR #36 by Marcus Thiesen)
- #137: Fixed "Found no validity info for session" warnings after invalidating session
- e160499: Add samples that can be run with tomcat maven plugin, see msm sample apps
- #193: Support Hibernate 4 in addition to Hibernate 3 in Kryo HibernateCollectionsSerializerFactory (PR #34 by Cyrille Le Clerc)
- #192: After tomcat failover a session may be stored in a failoverNode while other nodes are available
- #190: updateExpirationInMemcached prints negative memcachedExpirationTime
- #168: Add tomcat8 support, thanx at Hans-Joachim Kliemeck and Cyrille Le Clerc for their initial contributions (PR #28, PR #30)
- #185: Locale is not serialized properly with jdk7
- #104: Sessions expired in memcached with very high webapp session timeout (e.g. 1 year)
- 8de1011a: Make memcached client maxReconnectDelay configurable via sys prop "msm.maxReconnectDelay"
- 73763b49: Make NodeAvailabilityCache TTL configurable (sys prop "msm.nodeAvailabilityCacheTTL"), increase default from 50 to 1000 millis
- #75: Tomcat7: check/implement support of async/comet requests
- #177: msm requires couchbase jars even when not using couchbase
- 17c357df: Update spymemcached to 2.10.2 and couchbase-client to 1.2.2
- #145: Add customConverter for Spring Security User class.
- #174: sessions lost on Tomcat 7 reload
- #167: Node failure handling fails due to spymemcached 2.7.3 to 2.8.12 update - use FailureMode.Redistribute for Couchbase (PR #27 by Hans-Joachim Kliemeck)
- #153: Name Threads in BackupSessionService
- #159: Support context configured with cookies="false"
- f6492d10 Updated tomcat versions to 6.0.37 and 7.0.40. (PR #26 by Hans-Joachim Kliemeck)
- d65ea3ff Support multiple couchbase configuration nodes (PR #25 by Hans-Joachim Kliemeck)
- 891106d7 Support msm in parallel to context without msm: Additional check of requested context on host level (PR #24 by Hans-Joachim Kliemeck)
- 86a215c4 Support redeploys: Remove valve on shutdown, otherwise it will remain on the main container (PR #24 by Hans-Joachim Kliemeck)
- Improved logging for issue #166 "Could not find session in local session map"
- #126: Switch to new CouchbaseClient API (by Hans-Joachim Kliemeck)
- 095b6fe7 Fixed problem with detecting session ID if response contains multiple Set-Cookie headers. This patch works with both Tomcat6 and 7. (by Andrew McNair)
- #152: Using msm tc6/7 in maven plugins like tomcat7-maven-plugin tomcat deps are pulled in (by Maciej Hryniszak)
- 5bbb5ab5 Upgrade to kryo-serializers 0.10 with new DateSerializer (also the SubListSerializer was improved/fixed to work with java7)
- #148: "java.io.IOException: Could not serialize object" - javolution serialization failed on windows7 (due to debug output)
- 2d9eb930 When non-sticky session lock is released wait until the lock is removed in memcached
- #144: When a non-sticky, locked session is expire()'ed the lock should be released
- #142: Form based authentication/login not working with non-sticky sessions
- #141: Non-sticky session should be loaded for ignored resources with container managed auth
- #140: Improve lockingStrategy "auto": add HTTP method to url identification
- #138: Fix support for ServletRequestListeners and tomcat 7.0.22+
- #129: Non-sticky sessions: locking fails if operation timeout is high and long locks
- #124: SASL not working with multiple memcached servers (thanx to Angelo Obreja)
- #122: It is not necessay to loadFromMemcached in createSession
- #120: Non-expiring, non-sticky sessions are always invalid when loaded from backup node
- 77182d42 Use requestURI + queryString to check if uriIgnorePattern matches.
- #119: Support locking with single node (without node-id) configuration
- #118: Add configurable memcached operation timeout (contributed by Erik Swenson)
- #116: Non-sticky sessions: Calling session.invalidate() causes "Found no validity info for session..." logging
- #115: Support membase buckets (membase bucket uris) and SASL (initial contribution by Pradeep Gummi)
- #114: msm-kyro-serializer 1.5.1 pom in maven central includes invalid dependencies
- #113: Backup of a session should take place on the next available node when the next logical node is unavailable.
- #112: No validity info stored for non-sticky sessions and memcachedNodes config without node-part (e.g. memcachedNodes="localhost:11211")
- #111: Concurrent requests for a non-sticky session on the same tomcat may interfere
- #109: Add flexjson serializer strategy (contribution by Sandeep More)
- #107: Add custom kryo serializer for GrailsFlashScope
- #106: Session not updated in memcached when only a session attribute was removed
- #105: Make memcached node optional for single-node setup, so that the sessionId is left unchanged in this case (e.g. memcachedNodes="localhost:11211"). If instead memcachedNodes="n1:localhost:11211" is used the nodeId is still appended to the sessionId.
- #101: Form based authentication does not work with non-sticky sessions
-
#99: Add attribute filter to control which session attributes are serialized to memcached (new configuration attribute
sessionAttributeFilter
accepting a regular expression, e.g.sessionAttributeFilter="^(userName|sessionHistory)$"
). (thanx at Rainer Jung for this contribution!) - #98: Non-sticky sessions: Session meta data stored asynchronously with sessionBackupAsync="false"
-
#97: Add support for jsf2/mojarra kryo serialization (added custom serializer for mojarras LRUMap, this can be added as customConverter:
de.javakaffee.web.msm.serializer.kryo.FacesLRUMapRegistration
) -
#67: Make msm available in maven repository (available in maven central now under groupId "de.javakaffee.msm"). So that both tomcat6 and tomcat7 versions can be pushed in one step to maven central there was a restructuring needed, so that now there's a core module (not specific to a tomcat version) and the tomcat6 and tomcat7 modules. Therefore for installation two msm jars have to be put in
$CATALINA_HOME/lib
:memcached-session-manager-${version}.jar
andmemcached-session-manager-tc7-${version}.jar
(ormemcached-session-manager-tc6-${version}.jar
.
- #96: Tests fail occasionally on windows (only changes to unit-test libs)
- #95: Secondary session backup is tried to be removed with non-sticky sessions and only a single memcached
- #94: Don't remove unserializable attributes from active sessions (with default/java serialization)
- #93: Redundant retrieval of session from memcached after TC failover (with jvmRoute + securityConstraint/Valve)
- #92: Incomplete change of session ID after Tomcat failover (with jvmRoute + securityConstraint/Valve)
- #91: Windows only: memcached failover can break memcached client / connection
- #90: When the jvmRoute contains a dash (-) sessions are not saved in memcached (tomcat7 only)
- #89: NPE in SessionTrackerValve using log level DEBUG
- #88: Support session-timeout of 0 or less (no session expiration)
- #87: Tomcat doesn't start in TestUtils on Windows - backslash escape needed
- #86: Don't load a non-sticky session from memcached when not accessed from request
- #85: Don't perform additional tasks for non-sticky sessions with invalid sessionId
- #84: Improve debug logging for non-sticky sessions and memcached failover
- #83: Memcached node failover does not work for non-sticky sessions
- #76: Nonsticky-session support: Check/implement listener notification on swapOut of sessions at the end of the request
- #82: tomcat7: Manager not properly reinitialized on context reload
- #80: Webapp context reload causes ClassCastException with sticky sessions
- #78: Add JMX performance stats for non-sticky session operations
- #81: Background expiration update for session that was loaded from memcached fails
- #79: In non-sticky sessions mode with only a single memcached the backup is done in the primary node
Announcement of release 1.4.0-RC1
- #77: Make memcached-session-manager work with Tomcat 7.x (thanx at Jorge Carabias for initial contribution)
- #70: Improve support for nonsticky sessions
- #71: Session locking for non-sticky sessions: all, auto detection of readonly requests, uri-pattern based
- #72: Add storage of non-sticky sessions in another/secondary memcached node, handle memcached failover for non-sticky sessions
- #74: Touching unmodified/not-updated sessions must be solved differently
- #68: Change of sessionId on login with BASIC auth must be handled correctly
- #66: Make SessionTrackerValve.setNewSessionCookie more robust (handle different possible cases)
- #65: Session cookie name is hardcoded to JSESSIONID
- #62: Support jvmRoutes containing dashes (-) (thanx at Paul G. Weiss for patches)
- #60: Add possibility to disable msm at runtime via JMX (thanx at Paul G. Weiss for patches)
- Added new serialization strategy based on kryo with a really good performance: SerializationStrategyBenchmark (usage and configuration described in SetupAndConfiguration).
- A new
DummyMemcachedBackupSessionManager
for permanent failover simulation during development, to see that session deserialization is working (more is described on SetupAndConfiguration with theclassName
attribute). - Removed msm-javolution-serializer-cglib and msm-javolution-serializer-jodatime, both custom converters are now included in the msm-javolution-serializer jar.
- Added custom converter for serialization/deserialization of hibernate persistent collections (for javolution and kryo), details on SetupAndConfiguration.
Change:
- #53: By default, perform session backup asynchronously (change default for sessionBackupAsync from false to true).
Improvements:
- #50: Allow configuration of memcached protocol to use
- #51: Session serialization should be done asynchronously when sessionBackupAsync=true
- #52: Add backupThreadCount attribute to specify number of threads to use for async session backup
- #54: Support session cookie 'HttpOnly' flag when changing session id due to memcached failover (for tomcat >= 6.0.19 only)
- #56: javolution-serializer: support public Collections/Maps providing only a constructor taking an int (size)
- #57: javolution-serializer: Provide more efficient serialization for StringBuffer and StringBuilder
- #59: Add support for serialization/deserialization of cglib proxies to javolution-serializer
Fixes:
- #38: Notify HttpSessionListeners and HttpSessionActivationListeners when loading a session from memcached
- #55: Wicket's MiniMap cannot be deserialized with javolution serializer
- #58: Change jvmRoute on tomcat failover (when a session is served by another tomcat)
Improvements:
- There's a new configuration attribute "customConverter" that provides the possibility to specify custom converter. This is only supported by the javoluation serializer (not possible for java and xstream serialization)
- #32: msm-javolution-serializer should provide more efficient serialization of joda DateTime (this is available as msm-javolution-serializer-jodatime, required the "customConverter" feature)
- #36: Store modified sessions only
- #42: createSession might take a possibly provided sessionId into account
- #43: Calculate statistics for serialization time / backup time / load time / skips etc (see 2 for more)
- #44: Support comma-separated list of nodes
- #46: Support reconfiguration of memcached nodes at runtime via jmx
Fixes:
- #33: msm-javolution-serializer: ReflectionBinding does not honor XMLSerializable interface
- #34: msm-javolution-serializer: java.util.Currency gets deserialized with ReflectionFormat
- #35: Use same logging system as Tomcat
- #40: webapp sets cookie for every page if memcached process is missing
- #41: createSession should take maxActiveSessions into account
- #47: Cookie set on memcached failure doesn't honor request's secure property
- #48: Memcached failover / session relocation not supported when cookies are disabled
- #49: Sessions not associated with a memcached node don't get associated as soon as a memcached is available
This refers to the maintenance release 1.1.1 for the msm-javolution-serializer with the following fixed bugs:
- #27: Serialization of AtomicInteger fails for msm-javolution-serializer
- #28: msm-javolution-serializer should support serialization of java.util.Collections$EmptyList
- #30: msm-javolution-serializer should support serialization of java.util.Collections$UnmodifiableMap
- #31: msm-javolution-serializer should be able to load classes from webapp context
- Added pluggable session serialization strategies (see SerializationStrategies), configurable via the configuration attribute transcoderFactoryClass (described on SetupAndConfiguration
- Added XStream based serialization strategy (see SerializationStrategies)
- Added Javolution based serialization strategy (see SerializationStrategies)
- Added configuration attribute copyCollectionsForSerialization (see SetupAndConfiguration and SerializationStrategies#Concurrent_modifications_of_collections)
- Initial release of msm