Edit Rename Upload Download Back to Top

GemStone Production

This page focuses on the GemStone production environment. For details of how to get GemStone going as a developer, see the GemStone development page.

Stating from a basic Debian Sarge GNU/Linux system, this is how to get the application server up and running, hosting the SkillsBase application. In the examples, the name of the target host is hhhh and the user account will be xxxx (obviously, you will replace xxxx with the real administrators account names as appropriate).

Directories & Groups

Create a gemstone and a skillsbase group on hhhh. These groups will be for the gemstone and skillsbase system administrators. Add the xxxx account to them:

addgroup gemstone
addgroup skillsbase
adduser xxxx gemstone
adduser xxxx skillsbase

Create the directories that will contain the GemStone system files, and the database files used at runtime (db files, logs and journals). If you already have one machine set up, you can copy over an existing set of libraries using rsync -rpogtzv {username}@{sourcehost}:/opt/gemstone /opt/, and the same again for the skillsbase directory. If you don't have a host to copy from ...

# mkdir /opt/gemstone/      
# mkdir /opt/gemstone/locks
# mkdir /opt/gemstone/x.x
# mkdir /opt/skillsbase
# mkdir /opt/skillsbase/data
# mkdir /opt/skillsbase/logs
# mkdir /opt/skillsbase/scripts
# mkdir /opt/skillsbase/code

Note that "x.x" should be replaced with a GemStone version number, e.g. "6.1".

Change the group of /opt/gemstone to gemstone, and change the group of /opt/skillsbase to skillsbase:

# chgrp -R gemstone /opt/gemstone/
# chgrp -R skillsbase /opt/skillsbase/

Give the groups write permissions to their respective directories (so they now have read, write and execute):

# chmod -R g+w /opt/gemstone/
# chmod -R g+w /opt/skillsbase/


We want to move as few files as possible to the deployment environment. Use the scp command to copy over what's needed.

GemStone system files (from the clean as-distributed x.x GemStone tree rooted at $GEMSTONE). Also the current gemstone.key file :

scp -r $GEMSTONE/bin xxxx@hhhh:/opt/gemstone/x.x
scp -r $GEMSTONE/lib xxxx@hhhh:/opt/gemstone/x.x
scp -r $GEMSTONE/sys xxxx@hhhh:/opt/gemstone/x.x
scp -r gemstone.key xxxx@hhhh:/opt/gemstone/x.x/sys/

While logged into hhhh:

cp /opt/gemstone/x.x/bin/extent0.dbf /opt/skillsbase/data/

Scripts (from the development $DBHOME):

scp -r $DBHOME/scripts xxxx@hhhh:/opt/skillsbase/
scp -r $DBHOME/system.conf xxxx@hhhh:/opt/skillsbase/

Edit the system.conf file so the settings at the end look like this:

DBF_EXTENT_NAMES        =  /opt/skillsbase/data/extent0.dbf;
STN_TRAN_LOG_DIRECTORIES = /opt/skillsbase/data/,
STN_TRAN_LOG_SIZES      =  10, 10;


Fix up the scripts to use the correct directory and account names.

The 00-Environment script should look like this:

export DBHOME=/opt/skillsbase
export GEMSTONE=/opt/gemstone/6.1

The 11-NetLdiStart script should look like this:

. ./00-Environment
startnetldi -g -a xxxx -l $DBHOME/logs/netldi.log

The other scripts should work fine unaltered.

Start GemStone

Make sure that the GemStone service will now start.

First run the 05-GSList script to make sure GemStone is not already running, then run the 11-NetLdiStart script followed by the 21-StoneStart script. Run 05-GSList again to confirst that GemStone is running.

Establish GemStone accounts

Log into GemStone as DataCurator and create the account under which the system will run. Give this account "Session Access" privilege so that it can be used to monitor other gems from within a gem. This is important for the admin service.

Edit Rename Upload Download Back to Top