⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 to-do.txt

📁 精通tomcat书籍原代码,希望大家共同学习
💻 TXT
📖 第 1 页 / 共 2 页
字号:
- Extend StandardSession if possible
- Implement context attribute replication (?)
	pero:
		Also send Start/Stop messages from Context to complete cluster!
        With 5.5.10 you can wrote a Cluster Lifecycle Manager that do this.
            Register for AFTER_MANAGERREGISTER_EVENT and AFTER_MANAGERUNREGISTER_EVENT
            and also to the context ServletContextAttributeEvent Listener
            Access the Context
            	((Manager)event.getData()).getContainer()                     	
- Fix farm deployment for 5.5
   pero:
     Every start all application are deployed only to all running cluster nodes
     	New registered nodes don't get the applications!
     	Deploy must send a GET_ALL_APP to all other Deployers.
        FH: Correction, you should not send GET_ALL_APP to all deployers, only
to the main one. Which could be another property of the Member object, it
would not make sense to transfer the same webapp over and over again.
     		Only watchEnabled Deployer send this member all deployed application.
		pero:
		   Yes very true, but currently we distribute also all wars from watch node at begining.
		   Waiting to start other nodes is only change to not got these war's!
		   I have made some experiments to register war deployment at new memberAdded to cluster.	   
     Add JMX Support
     	Resend Deployed Applications to all or one cluster node.
     	Show all watch Resource
     	Processing Time
     	Change fileMessage Buffersize.
     	Start/Stop Cluster wide application
     Deployer and Watcher sync with engine background thread! 
     	Fixed!		
     Last FileMessage fragment need longe ackTimeout	
    	<Cluster ..> <Sender ... ackTimeout="60000"/> </Cluster> 	
- Change the cluster protocol that developer can add there own data serialzable/deserialzable format (high risk)
  Note from Filip: Lets not do this, last attempt caused a broken clustering piece for 4 versions. 
   Currently 
   	header 		    6 bytes (FLT2002)
    compressflag    4 byte
   	data.length     4 bytes
   	data, 
   	end header      6 bytes (TLF2003)
   	
   Optimized to 
      header 		2 bytes (TC)
      type   		1 byte
      compressflag  1 byte
      data.length 	4 bytes, 
      data | <real uncompressed data.length (4 bytes)> data
      
      "type" means user defined type and receiver extract bytes and type and sende it to callback
      	s. ObjectReader or SocketObjectReader
                       
       compress     1
       first data 4 data bytes are the real uncompressed data length. ( Is for better memory management atr recevier side, S. XByteBuffer)
       
   change at DataSender.writeData and XByteBuffer and add flexible handling to ClusterSender and ClusterReceiver
   
- Add single sign on support

==============================   
COMPLETED
==============================
5.5.16 (fhanik)
- Extensive logging when a member crashes
  When a member crashes and you use pooled socket mode then 
  the logs are spewing out info.
  Instead, now we only report one IOException if it happens, and 
  mark the member as suspect.

5.5.16 (fhanik)
- Average message size
  For my test application, the average message size has increased from
  526 bytes per message to over 750 bytes per message from version 5.0.28 to 5.5.15.
  Need to investigate why this is the case and where the 200+ extra bytes are coming from.
  Fix: The default compress value had changed. The new default is that no compression is used.
  To re-enable compression, <Sender compress="true" in the sender element.

5.5.15 (pero)
- Optimized getMembers access from McastMembership
    Member list was copied at every access. (Used inside ReplicationValve.invoke)
    SimpleTcpCluster need a alive time sorted array

5.5.11 (pero)
- MemoryUser principal from UserDatabaseRealm not handled to replicated 
	- look inside DeltaRequest.setPrincipal(Principal,boolean)
		 detected by Dirk de Kok (tomdev 16.8.2005)
	- only GenericPrincipal from all other realms are handled well.
    - change JAASRealm and UserDatabaseRealm that also used GenericPrincipal
5.5.10 (pero)
- Cluster config at engine level (user request 06/05)
	 Register a cluster infrastructur for many vhosts
	 configure backup systems!
	 Add Cluster Element to digister		
- add mapping sender mapping properties file (IDataSenderFactory)
	- let advanced people eaiser implemented there own sender mode
- We register different application with same name from different host?
	SimpleTcpManager register manager with app name + hostname when Cluster is configured as Engine element.
- Configured DeltaManager inside context
	- SimpleTcpCluster setProperty and transferproperty reflect changes only to defaultMode managers
    - Look inside SimpleTcpCluster.addManager and DeltaManager.start?
- Session serialization eat memory but now we can send session messages with blocks...
	When all sessions serialze after GET_ALL_SESSION is received following works
	- find all sessions
	- serialize a block or all sessions as byte array
	- serialize the complete SessionMessageImpl to transfer message
- WaitForAck mode and resend probleme
   - Now message creator can configure resend and compress mode!
- Add a default simple cluster config with good defaults and only
  one cluster element inside server.xml. Setup with fastasyncmode.
  Service Elements
  	ReplicationTransmitter,
  	SocketReplicationListener,
  	McastService,
  	ClusterSessionListener
  	ReplicationValve
  You can change property setting with SimpleTcpCluster prefix "sender.XXX, receiver.XXX, valve.XXX, listener.XXX, service.XXX"	
- Fix resend GET_ALL_SESSIONS when wait ACK failed at receiver side
- Fix that ClusterValve not remove when cluster stops 
- Set timestamp only at first time inside SessionMessageImpl
- Set timestamp from findsessions when handling GET_ALL_SESSION
    - Set this timestamp to all SEND_SESSION_DATA and TRANSFER Complete messages
    - Drop all received message inside GET_ALL_SESSION message queue (DeltaManager)    

- Mcast Service as JMX MBean (change cluster domain at runtime)    
- send cluster domain with mcast ping
    - With sendClusterDomainOnly=true only session message from same domain are received
    - Session only replicated to members from same domain, with sendClusterDomainOnly=false
      at Sender (ReplicationTransmitter) session messages send to all members.
    - GET ALL Session send to first member inside same cluster domain
- better restart szenario at DeltaManager after failure restart (java service wrapper).
   queue all other session events
   as STATE Transfer Complete is received, dequeue all received sessions messages.   
- restructure methods at DeltaManager
- extract handleXXS methods for better DeltaManager subclassing.
- split big get all sessions from one server into blocks of sessions and separate STATE Transfer message!
- no complete sync sessions when GET ALL Sessions event is received.
- add JMX API for ClusteRreceiver
- ClusterReceiver is now Callback when message is received
- SimpleTcpCluster only receive ClusterMessage (API change)
       Redesign SimpleTcpCluster message receiving to ClusterReceiverBase:
          - optimized data uncompressed
          - better extendablity
          - XByteBuffer only buffer bytes and don't uncompress.
          - Add receiver JMX stats with new attribute 'Receiver.doReceivedProcessingStats'   
          - optimized createManager and addManager that also can configured normal StandardManager 
            to use cluster message transfer without replication.
- add support to dynamic property transfer from SimpleTcpCluster to the Manager
    like ReplicationTransmitter
        All manager attributes can be configured:
          - expireSessionsOnShutdown (false)
          - notifySessionListenersOnReplication (true)
          - notifyListenersOnReplication (true)
          - maxActiveSessions (-1)
          - timeoutAllSession (60 sec)
          - sessionIdLength (16)
          - processExpiresFrequency (6 - exipre all six engine background periodic event (60 sec))
          - algorithm (MD5)
          - entropy
          - randomFile
          - randomClass
- Setup the cluster without SessionReplication Manager
         Only a message bus.
         Configure the bus with you ClusterListener and valves and a StandardManager         
- reduce cpu and memory consume (Receiver)
    - set new compress sender flag at default=false ( < CPU usage)
    - Make compact algo 
        currently message receive data is split at XbyteBuffer#extractPackage and
        SimpleTcpCluster#messageDataReceived     
- reduce memory and cpu consume (send message)
    - set new compress sender flag at default=false ( < CPU usage)
    - don't copy the buffer to add message header
        transfer this from SimpleTcpCluster to DataSender pushMessage
        successfull refactored
    - make it possible that a subclass crypt the transfered messages
       sub class ReplicationTransmitter and override createMessageData
    - don't copy START and END Header for every message, instead send dirctly and DataSender.writeData.   
- Add a flag for replicated attribute events, to enable or disable them 
     Now can configued with notifyListenersOnReplication=false at SimpleTCPCluster
     Also can drop HttpSessionLsitener events
         can configued with notifySessionListenersOnReplication=false at SimpleTCPCluster
- Refactoring DeltaManager
- Transfer attributes from Cluster config to DeltaManager
- Fix at 5.5.9 cluster hang bug! 
- Add more Valve to direct cluster config
- Add Lifecycle Listener support to direct cluster config
- Add ClusterListener support to direct cluster config
- Add new SocketReplicationListener
- Add Stats to DeltaManager

5.5.9  (pero)
- JMX friendly
    pero:  Add some MBeanSupport to SimpleTCPCluster, ReplicationTransmitter and Senders
- Add Keep Alive and WaitForAck at async mode implementation.
       Make this feature configurable to Sender element at server.xml
       Is include with 5.5.8
- Add support to new Async Mode from Rainer Jung
       Integrated with 5.5.9
       fastasyncqueue mode
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -