Please Note: Unless otherwise stated, any output from these
properties is sent to System.err.
Properties that can be set on rmid
java.rmi.activation.port (1.2 and later)
The value of this property represents the TCP port on
which the activation system daemon, rmid, will
listen for incoming remote calls. The default value is
1098.
Properties that are useful to set on JVMs* that export remote objects
java.rmi.dgc.leaseValue (1.1 and later)
The value of this property represents the lease duration
(in milliseconds) granted to other JVMs that hold remote
references to objects which have been exported by this JVM.
Clients usually renew a lease when it is 50% expired, so a very
short value will increase network traffic and risk late
renewals in exchange for reduced latency in calls to
Unreferenced.unreferenced. The default value of
this property is 600000 milliseconds (10 minutes).
java.rmi.server.codebase (1.1 and later)
This property specifies the locations from which classes
that are published by this JVM (for example: stub classes,
custom classes that implement the declared return type of a
remote method call, or interfaces used by a proxy or stub
class) may be downloaded. The value of this property is a
string in URL format (or a space-separated list of URLs in 1.2
and later) that will be the codebase annotation for all classes
loaded from the CLASSPATH of (and subsequently marshalled by)
this JVM.
Note:This property must be set correctly in order to
dynamically download classes and interfaces using RMI. If this
property is not set correctly, you will likely encounter
exceptions when attempting to run your server or client. For
more information on this property, see Dynamic code downloading using RMI (Using
the java.rmi.server.codebase Property).
java.rmi.server.hostname (1.1 and later)
The value of this property represents the host name string
that should be associated with remote stubs for locally created
remote objects, in order to allow clients to invoke methods on
the remote object. In 1.1.7 and later, the default value of
this property is the IP address of the local host, in
"dotted-quad" format.
java.rmi.server.logCalls (1.1 and later)
If this value is true, incoming calls and
exceptions thrown from incoming calls will be logged to
System.err. Setting this property to
true will greatly assist you in debugging your
RMI programs. See also sun.rmi.server.exceptionTrace.
java.rmi.server.randomIDs (1.1.8 and later)
If this value is true, object identifiers
for remote objects exported by this JVM will be generated by
using a cryptographically secure random number generator. The
default value is false.
java.rmi.server.useCodebaseOnly (1.1 and later)
If this value is true, automatic loading of
classes is prohibited except from the local CLASSPATH
and from the java.rmi.server.codebase property set
on this JVM. Use of this property prevents client JVMs from
dynamically downloading bytecodes from other codebases. This
property is ignored in the implementations of 1.2 and 1.2.1 because
of a bug.
java.rmi.server.useLocalHostName (1.1.7 and
later)
RMI now uses an IP address to identify the local host when
the java.rmi.server.hostname property is not
specified and a fully qualified domain name for the localhost
cannot be obtained. In order to force RMI to use the fully
qualified domain name by default, you need to set the this
property to true.
Properties that are useful to set on JVMs that make remote method
calls
java.rmi.server.codebase (1.1 and later)
This property specifies the locations from which classes
that are published by this JVM (for example, custom classes
that implement an interface that is the declared parameter type
of a remote method call) may be downloaded. The value of this
property is a string in URL format (or a space-separated list
of URLs in 1.2 and later) that will be the codebase annotation
for all classes loaded from the CLASSPATH of (and subsequently
marshalled by) this JVM.
If this value is true, HTTP tunneling is
disabled, even when http.proxyHost is set. The
default value is false. If you know that your
program will never need to use HTTP tunneling, then by
disabling HTTP tunneling, you should see shorter timeouts for
failed connections.
java.rmi.server.useCodebaseOnly (1.1 and later)
If this value is true, automatic loading of
classes is prohibited except from the local CLASSPATH
and from the java.rmi.server.codebase property set
on this JVM. Use of this property prevents client JVMs from
dynamically downloading bytecodes from other codebases. This
property is ignored in the implementations of 1.2 and 1.2.1
because of a bug.
We are very interested in knowing whether this information is useful.
Please send any comments or suggestions to: rmi-comments@java.sun.com,
with a subject of "java.rmi properties FAQ".
*As used on this web site, the terms "Java(TM) virtual machine" or "JVM"
mean a virtual machine for the Java platform.