I have written a small Java client which does some calculations on an Rserver. For this purpose, there are functions.r
- and libraries.r
files on the server side, which have to be sourced, before the actual calculation can be done.
Currently I load the files on every new connection:
import org.rosuda.REngine.Rserve.RConnection;
public class RserveTester {
public void doOnRserve() {
RConnection c = new RConnection( "rserve.domain.local" );
c.login( "foo", "user" );
c.eval("source(\"/home/rserve/lib/libraries.r\")");
c.eval("source(\"/home/rserve/lib/functions.r\")");
c.eval( "someCalculation()" )
c.close();
}
}
where doOnRserve()
is called due to some events on the client side couple of times in a minute.
My Question is: Is it possibility to source the libraries only once, such that they are available during all new RSessions without individual sourcing?
I tried on the client side something like:
c.serverSource("/home/rserve/lib/libraries.r" )
c.serverSource("/home/rserve/lib/functions.r" )
Which gives me te following exception (no idea why this does not work wile eval
does):
org.rosuda.REngine.Rserve.RserveException: serverSource failed, request status: access denied (local to the server)
Can I start the Rserve with a specific .Rprofile
?
EDIT:
Basically, there seam to be three possible methods:
new RConnection()
EDIT2:
Rserve version v0.6-8 (338)
R version 2.15.2 for x86_64-pc-linux-gnu.
This is trivially done by adding source
lines to your configuration file, i.e., putting
source "/foo/bar.R"
in /etc/Rserv.conf
will source /foo/bar.R
on startup. If you want to use another config file, use --RS-conf
command line argument to specify it. Finally, Rserve 1.x supports --RS-source
option on the command line as well.
Without the quotations in the filepath, it may give File Not Found Error.
BTW: you mentioned serverSource()
access denied - that means you did not enable control commands in Rserve (control enable
in the configuration or --RS-enable-control
on the command line).
PS: Please use stats-rosuda-devel mailing list for Rserve questions.