Skip to content
KrzysztofCiba edited this page Sep 24, 2012 · 7 revisions

Setting request

Only one RequestManagerHandler (central service) and several RequestProxyHandlers (i.e. at T1s). When RequestManagerHandler is unreachable, proxy will store xml-serialised request into its cache (local fs under runit/RequestManager/RequestProxy/cache directory, where files are named after md5 checksum computed from xml string). A separate thread running in the bkg (RequestProxyHandler.sweeper) retries every 2 minutes to put the oldest 10 requests to the central RequestManager service).

Request proxies

To see cache size, execute RPC RequestProxyHandler.getStatus, should return S_OK( cacheSize ), where cacheSize == number of files in the cache.

Q: What if request has to be executed locally (i.e. transfer.putAndRegister needs to access local fs?). Those are not 'forwadable', RequestProxy service will refuse to set them at central RequestManager. Fortunately those are well separated (i.e. only at the pit for LHCb, don't know other VOs).

DIRAC components update

  • DMS various agents and tasks - done
  • RMS/Client/RequestClient - done
  • RMS/Agent/DISETForwardingAgent - done
  • RMS/Agent/ZuziaAgent obsolete
  • TS/Client/TaskManager.py - done

Need to check LHCbDIRAC part.

CS option change

Systems { 
  RequestManagement {
    Services {
      ## add RequestProxyHandler
      RequestProxy {
        Port = 9161
         Authorization {
           Default = authenticated
         }
      }
    }
    URLs {
      ## the only one URL to RequestManagerHandler
      RequestManager = dips://host:9143/RequestManagement/RequestManager
      ## comma separated list to all RequestProxyHandlers
      RequestProxyURLs = dips://hostA:9161/RequestManagement/RequestProxy, dips://hostB:9161/RequestManagement/RequestProxy
    }
    Agents {
     ## comment out ZuziaAgent
   }
  }
}