TOC, 1, 2, 3, 4
2) THE PARADISE SERVER
2.1) I have a license for 20 Paradise clients,
yet I'm only able to run with 10. Why is that?
You must use set the maxlicense
resource in
paradise.config
or use the paradise -n
option. Either
add the line
*maxlicense: 20
to paradise.config, or use the command
example0aradise -n 20 &
when starting the Paradise server. The default value of maxlicense is 10;
the size of your license doesn't matter.
The license is intended to be shared across different Paradise servers
any way you want. If you have a license for 20 clients, you can run 10 servers
each with up to two clients, or one server with up to 20 clients.
2.2) I started a Paradise server allowing 10
clients, now I need to allow 20. Do I have to shut down the server to do
this?
You don't need to restart the server; you just need to reinitialize it.
Just edit the maxlicense
resource in your Paradise configuration
file (as described in the previous answer), and reinitialize the Paradise server
using padmin
or xpadmin
. The Paradise server will
allow the new number of clients if the license allows it. Clients that were
already connected will not be affected.
2.3) Why do I get the message:
"Paradise: cannot find tuplespace file"
when
running a Paradise application or XPadmin?
This message means that the Paradise server failed to find a file the
contains one of its tuple spaces. Either someone deleted a swap file (with a
name like Ls00000a), or perhaps multiple Paradise servers were started from the
same directory without changing the default setting of the swapdir resource in
the Paradise configuration file. In the latter case, if both Paradise servers
swap out some tuple spaces to disk, the second server to do so could clobber
some of the first servers swap files. Then, the first server to swap one of
those tuple spaces back into memory will delete the file, leaving the other
without a swap file for one or more of its tuple spaces.
Another scenario is that some strange sharing of the tuple space occurs
between the two servers. If the tmp tuple space is only occasionally used, for
example, both servers might swap it out, and then take turns swapping it in,
changing it, and swapping it out again. This could happen even if the servers
occasionally get "cannot find tuplespace file"
errors.
The moral is: don't start more than one Paradise server from the same
directory without changing the value of the swapdir resource. One way to solve
the problem is to set the swapdir
resource to
/tmp
:
Paradise.Node.swapdir: /tmp
This is might be a better default than ".
", because it is
usually local to each workstation, except that very often there isn't much space
in the partition containing /tmp
. Another solution is to set
swapdir
differently on different workstations:
Paradise.frank.swapdir: /usr/local/tmp
Paradise.joe.swapdir: /var/tmp
Paradise.Node.swapdir: /tmp
This sets the swap directory to /usr/local/tmp
on node
frank, to /var/tmp
on node joe, and to /tmp
everywhere
else.
2.4) I started a server with over a hundred
licenses, but clients start failing before I reach a hundred clients. What's
wrong?
Some workstations (for instance Suns) have a rather low default limit on
the number of file descriptors that can be used by a process. Shell commands
such as limit or ulimit can often be used to increase this limit up to some hard
limit.
On Suns, the default soft limit is commonly 64. This can be increased, up
to a maximum of 256, with the the C shell command:
0mit descriptors 256
or the Korn shell command:
0limit -n 256
On Alphas, the default soft limit is 4096, which is the hard limit,
also.
On HPs, the soft limit is commonly 60, and the hard limit is commonly
1024. SAM can be used to increase both of these limits. However, the standard
shells don't provide support for increasing the soft limit. Thus, the current
version of the Paradise server can only have about 56 simultaneous Paradise
clients, unless SAM is used to reconfigure the Unix kernel.
The following program, called setrlimit, can be used as a work around
until the next release. It acts as a wrapper for paradise, invoked as
follows:
etrlimit paradise
It could be incorporated into the paradise command, since paradise is
actually a shell script in the hp/bin
directory. In particular, the
lines:
exec ${LINDA_PATH}bin/paradise_server
and
exec ${LINDA_PATH}bin/paradise_server "$@"
could be changed to
exec ${LINDA_PATH}bin/setrlimit ${LINDA_PATH}bin/paradise_server
and
exec ${LINDA_PATH}bin/setrlimit ${LINDA_PATH}bin/paradise_server "$@"
after putting setrlimit into the hp/bin
directory.
The source code for setrlimit.c
is:
*************** Start of setrlimit.c ***************
#include <errno.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <stdlib.h>
#include <stdio.h>
int
main(argc, argv, envp)
int argc;
int *argv[];
int *envp[];
{
int status = 1;
struct rlimit rlp;
if (argc > 1) {
if (getrlimit(RLIMIT_NOFILE, &rlp) == 0) {
rlp.rlim_cur = rlp.rlim_max;
if (setrlimit(RLIMIT_NOFILE, &rlp) == 0) {
argv++;
execve(argv[0], argv, envp);
_exit(1);
}
else
perror("setrlimit");
}
else
perror("getrlimit");
}
return(status);
}
***************** End of setrlimit.c ***************
2.5) When I start the server, I get an error
saying it can't register the server. What's wrong?
Here is a representative error message:
PARADISE Fatal error(345) 10/05 13:50: unable to register
(LINDA_OTS,
LINDA_OTS_VERSION, tcp) main.c:81
This indicates that the local portmapper was unable to register the
paradise server service. This could have a number of causes, including that the
portmapper is messed up, or some other service is already registered.
You can look at the portmapper using the command rpcinfo -p
.
The paradise server currently registers with program number 536873369, version
1. If the service is registered, you will see something like:
536873369 1 tcp 2455
You can use rpcinfo -d
to forceably deregister a service (as
root).
2.6) When I start the server, I get an error
message saying it "cannot obtain needed licenses"
. What's
wrong?
PARADISE Fatal error (350) 11/06 09:54: cannot obtain needed
licenses
This error occurs when the license server does not have available enough
Paradise (PSV) licenses to satisfy the amount requested by a starting Paradise
server. By default Paradise requests 10 license tokens when it starts. If the
license server only has 8 tokens available the Paradise server will fail to
start. If this occurs you can start Paradise again explicitly specifying fewer
tokens:
0aradise -n 8
The lsmon command provided with a Paradise distribution is useful for
querying the license server to determine how many licenses it does have
available.
mon
lsmonitor for LicenseServ 3.2a Copyright (c) Viman Software Inc.
Feature Name: PSV(v0) (floating license) No expiration date.
Concurrent licenses: 220
Available unreserved : 150 In Use: 70
Available reserved : 0 In Use: 0
Number of subnets : 0
Site License info : *.*.*.*
Hold time: 0 minute(s)
Hostid based locking
TOC, 1, 2, 3, 4