Opening root file over network

Hello,

I’d like to be able to open a root file over the network. I am able on some machines to get this working using a rootd server and accessing TFile’s using statements such as:

On other machines, I encounter this kind of error:

root [0] TFile* ipf = TFile::Open("root://hostname:port/path/file.root") dlopen error: dlopen(/Users/jgennaro/root/lib/libNetx.so, 9): Library not loaded: /lib/libXrdClient.so Referenced from: /Users/jgennaro/root/lib/libNetx.so Reason: image not found Load Error: Failed to load Dynamic link library /Users/jgennaro/root/lib/libNetx.so Error in <TCint::AutoLoad>: failure loading library libNetx.so for class TXNetSystem Error in <TPluginHandler::SetupCallEnv>: class TXNetSystem not found in plugin Netx Error in <TPluginHandler::SetupCallEnv>: class TXNetFile not found in plugin Netx

The error arises because the libXrdClient library is not installed on this machine. This particular error is on the following machine:

So now I’m seeking some advice.

Should I try to get this setup working by somehow installing the libXrdClient library locally? (If so, how can I do this? I’ve been to http://xrootd.slac.stanford.edu/dload.html and downloaded the source, however I’m not familiar with cmake (the only configure method described in the documentation that I’ve found), and it doesn’t seem to come with OS X Lion. I’m guessing this server-level installation is more than would be required just to get a simple client-side library.

Alternatively, is there a way to get this working without having to use xrootd libraries on the client side? As I said I haven’t gotten xrootd running on my server (though I haven’t tried); starting the rootd daemon was fast and easy. I would like my colleagues to be able to use my software without having to install extra libraries as much as possible. If I reconfigure root using the option --disable-xrootd will I still be able to open TFile’s over the network from a rootd server?

How do you recommend I proceed? I’m not worried right now about high-performance or scalability - I just want to avoid needlessly duplicating ~100GB data files just to display events.

Thanks,

Joe

Hi Joe,

See root.cern.ch/drupal/content/installing-xrootd

Cheers,
Philippe.

Thanks Philippe. I just wanted to come back and say, if anyone has a similar question to what I had, yes the right answer is to install xrootd. It was easy to install (for server and client), and so far works on every client machine I’ve tried.

Joe