### Networking

- TMessage now has schema evolution and TRef (i.e. ProcessID) support. To enable schema evolution for all messages call TMessage::EnableSchemaEvolutionForAll(kTRUE). To enable it only for a specific message call mess->EnableSchemaEvolution(kTRUE). The default for schema evolution is off. The streamer and process id information are send only once per socket (and is supported for all types of sockets, TSocket, TPSocket and TXSocket). If you communicate between two ROOT based applications, check the version numbers on both sides. If they are not the same enable the schema evolution support (in case ROOT objects are transferred).

### XROOTD

- New version 20080621-0000 containing several improvements and fixes
- Server:

- New daemon 'cmsd' supposed to replace 'olbd' with improved performances
- Improved polling strategy
- Fix problem with handling writev creating unjustified disconnections
- Fix problem with setrlimit on MacOsX Leopard

- Client:
  - Fix a nasty memory leak in XrdClientCacheRead affecting processing via TChain
  - Optimized file closing recipe
  - Fix potential cache thrashing problem with big blocks requests.
- Fixes / improvements in the GSI plug-in:
  - support for large (> 32 bits) certificate serial numbers in CRL handling
  - support for an external function for DN-to-username mapping function; provide example for an LDAP based search
  - fixed a few problem with return code checking.

#### netx

- TXNetFile:
  - Enable dynamic cache size synchronization
  - Enable per-instance control of the cache parameters also for RAW files; by default cache is OFF for these files, but there maybe cases in which the cache can improve performances.
  - Remove call to XrdClient::Sync in SysStat
  - Correctly honor the create/recreate options coming from TFile::Open()
  - Allow the size of the (written) file to be retrieved after the Close (solves several reported file size mismatches).
- TXNetSystem:
  - Fix problem with GetDirEntry: the entry object was going out-of-scope so that the returned string was meaningless.
  - Reset the list if dir entries in FreeDirectory.
  - Fix problem affecting repeated calls.
- The implementation of TFile throughput and info sending was just sending 'regular' samples about the activity of the single TFile instance that happened to trigger an activity in the right moment.
- Now TMonaLisaWriter keeps internally track of every activity and regularly sends summaries valid for all the files which had activity in the last time interval.
- Additionally, it's now finalized the infrastructure able to measure and keep track of the file Open latency. A packet is sent for each successful Open, sending the measures of the latencies for the various phases of the open. Currently exploited fully by TAlienFile and TXNetFile. Easy to report from other TFiles too.
- Now, the hook for the Close() func triggers sending of a packet containing various information about the performance related to that file only.
- Added support also for performance monitoring when writing

### RGLITE: A ROOT GRID interface

RGLite plug-in - a ROOT plug-in module, which implements the ROOT Grid interface and offers to ROOT users possibilities to perform a number of operations using gLite middleware from within ROOT.
Supported features:

- Workload Management System operations:
  - job submission – normal, DAG and parametric jobs (gLite WMProxy API),
  - smart look-up algorithm for WMP-Endpoints,
  - job status querying (gLite LB API),
  - job output retrieving (Globus GridFTP).
- File Catalog operations (gLite/LCG LFC API):
  - smart session manager,
  - set/query the current working catalog directory,
  - list files, directories and their stats,
  - add/remove files in a catalog namespace,
  - add/remove directories,
  - add/remove replicas from a given file.
- An executive logging.
- Support of an external XML configuration file with according XML schema.

Usage examples:
Job operations
// loading RGLite plug-in
TGrid::Connect("glite");
// submitting Grid job
TGridJob *job = gGrid->Submit("JDLs/simple.jdl");
// getting status object
TGridJobStatus *status = job->GetJobStatus();
// getting status of the job.
TGridJobStatus::EGridJobStatus st( status->GetStatus() );
// when the st is TGridJobStatus::kDONE you can retrieve job's output
job->GetOutputSandbox("/tmp");
File Catalog operations
// loading RGLite plug-in
TGrid::Connect("glite");
// changing the current directory to "/grid/dech"
gGrid->Cd("/grid/dech");
// using Mkdir to create a new directory
Bool_t b = gGrid->Mkdir("root_test2");
// listing the current directory
TGridResult* result = gGrid->Ls();
// full file information
result->Print("all");
// removing the directory
b = gGrid->Rmdir("root_test2");
Documentation:
http://www-linux.gsi.de/%7Emanafov/D-Grid/docz/RGLite/html/
and
http://www-linux.gsi.de/~manafov/D-Grid/docz/