In cases where dccp/dcap requests a file which is still on
tertiary storage, the user resp. the administrator might what to
limit the time, dccp/dCap waits in the open call until the file
has been fetched from backend storage. This, so called
openTimeout
, can be specified on the server
or on the client. In all cases the -keepAlive
must be specified with an appropriate number of seconds on the
cell create command in the door batch files. The following
mechanisms are available to specify open timeouts :
Table 25.1. Open Timeout mechanisms
Precedence | Mechanism | Key Name | Example |
---|---|---|---|
Lowest | context | dCap-openTimeout | set context dCap-openTimeout 200 |
... | context | openTimeout | set context openTimeout 200 |
... | cell create command line | openTimeout | -openTimeout=200 |
Highest | dccp command line | -o | dccp -o200 SOURCE DESTINATION |
# # dCap D o o r (create command line example) # create dmg.cells.services.login.LoginManager DCap-2 \ "${specialDCapPort} \ diskCacheV111.doors.DCapDoor \ -export \ *** \ -keepAlive=60 \ -openTimeout=300 \ *** \ -loginBroker=LoginBroker"
# # dCap D o o r (context example) # set context dCap-openTimeout 200 # create dmg.cells.services.login.LoginManager DCap-2 \ "${specialDCapPort} \ diskCacheV111.doors.DCapDoor \ -export \ *** \ -keepAlive=60 \ *** \ -loginBroker=LoginBroker"
[user] $
dccp -o200 /pnfs/desy.de/data/dteam/private/myfile /dev/null
If the openTimeout expires while a read transfer is already active, this transfer will be interrupted, but it will automatically resume because the client can’t destinguish between a network failure and a timeout. So the timeout disturbes the read but it will finally succeed. This is different for write. If a write is interrupted by a timeout in the middle of a transfer, dccp will stuck. (This is not a feature and needs further investigation).