The dCap
protocol allows to check whether a dataset is on
tape only or has a copy on a dCache disk. The dCap
library
API call is int dc_check(const char *path, const char
*location)
and the dccp options are -t -1
-P
. For a full list of dCap library API calls and
dccp options, please refer to to
http://www.dcache.org/manuals/libdcap.shtml
and http://www.dcache.org/manuals/dccp.shtml
respectively. Using a standard dCache installation those
calls will return a guess on the file location only. It is
neither checked whether the file is really on that pool or if
the pool is up. To get a strict checking a
has to
be started with a special (-check=strict) option.
dCap
door
# # dCap D o o r # create dmg.cells.services.login.LoginManager DCap-strict \ "${specialDCapPort} \ diskCacheV111.doors.DCapDoor \ -check=strict \ -export \ -prot=telnet -localOk \ -maxLogin=1500 \ -brokerUpdateTime=120 \ -protocolFamily=dcap \ -loginBroker=LoginBroker"
This door will do a precise checking (-check=strict). To get the
dCap lib and dccp to use this door only, the
DCACHE_DOOR
environment variable has to be
set to doorHost:specialDCapPort
in the shell,
dccp is going to be used. In the following example we assume
that the specialDCapPort
has been set to
23126
:
[user] $
export DCACHE_DOOR=dcachedoorhost:23126
[user] $
dccp -P -t -1 /pnfs/domain.tv/data/cms/users/waste.txt
If dccp returns File is not cached
and
this dCache instance is connected to an HSM, the file is no
longer on one of the dCache pools but is assumed to have a
copy within the HSM. If the dccp returns this message
and no HSM is attached, the file is either on a pool which is
currently down or the file is lost.