You are on page 1of 10

Installing jBASE 4.

1
On Red Hat Linux

Revision 3.7
14 November 2009

Copyright Opportunity International

Not for Distribution

1 OVERVIEW........................................................................................................ 3
2 ASSUMPTIONS AND DEFINITIONS............................................................................. 3
3 PRE-REQUISITES................................................................................................. 3
4 INSTALLATION PROCEDURE FOR JBASE 4.1.5............................................................. 3
4.1 CREATE FOLDER

AND

UNPACK FILES............................................................................3

4.2 CREATE SYMBOLIC LINK.......................................................................................... 3


4.3 CREATE USER.................................................................................................... 4
4.4 CHECK PERMISSIONS............................................................................................. 4
4.5 RUNNING JBASE PROGRAMS

FROM

OUTSIDE

OF JSHELL........................................................4

5 INSTALL LICENSE................................................................................................ 5
5.1 INSTALL LICENSE KEY............................................................................................ 5
6 SET UP THE JBASE SPOOLER.................................................................................. 6
6.1 CREATE USER.................................................................................................... 6
6.2 ASSIGN PASSWORD...............................................................................................6
6.3 INSTALL .PROFILE FILE...........................................................................................6
6.4 INITIAL CONFIGURATION.........................................................................................7
6.5 WHERE

TO

GO FROM HERE......................................................................................8

7 FIX CODE COMPILATION........................................................................................ 9


8 DOCUMENT HISTORY.......................................................................................... 10

231825755.doc

Page 2 of 10

1 Overview
This document details the steps required to install jBASE 4.1.5 on Linux. While jBASE is supposed
to work on almost any Linux distribution, at the time of writing this document Temenos was only
certifying Red Hat Enterprise Linux AS3 to 5 as supported Linux distributions. If this changes in the
future, the instructions below should be okay to follow since they do not contain anything specific
to either aforementioned Red Hat release.

2 Assumptions and Definitions


It is assumed that the reader has basic Linux/UNIX knowledge. Requirements are to retrieve the
jBASE installation kit (e.g. from a CD-ROM, FTP server, web site etc.), issue simple shell
commands, and overall understand what is going on during this process.
It is also assumed that the server has been installed properly, and that the operator has
administrator (root) access to the machine. All the steps below are to be carried on from an
administrative session (i.e. you must be logged in as root).
The shell screenshots below outline user input in bold blue, while computer output is in dark
blue, regular font. Comments are in bold, italic red.

3 Pre-requisites
For security reasons, it is recommended that jBASE database and spooler files are owned by a
special group, only meant for eMerge use (and not for any regular users that might exist on the
server).
To create such a group, e.g. called emerge, use the following command:
[root@dscrht24023 root]# groupadd emerge

4 Installation Procedure for jBASE 4.1.5


jBASE 4.1.5 is delivered as a zip file, with no installation program. Therefore, instead of running
the setup program as outlined in the previous chapter, jBASE 4.1.5 is installed by simply unpacking
the zip archive into the appropriate directory, and setting up the correct permissions.

4.1 Create Folder and Unpack Files


[root@dscrht24023 root]# mkdir /usr/jBASE_4.1.5.18
[root@dscrht24023 root]# cd /usr/jBASE_4.1.5.18
[root@dscrht24023 root]# tar xvfz
/root/32bit_jbase4_4.1.5.18_rhlinux_as4.tar.gz

4.2 Create Symbolic Link


Link the installation folder to /usr/jbc:
[root@dscrht24023 root]# cd /usr
[root@dscrht24023 /usr]# ln s jBASE_4.1.5.18 jbc
[root@dscrht24023 /usr]# ls ld /usr/jbc
lrwxr-xr-x
1 root root 4 Apr 3 20:00 /usr/jbc -> /usr/jBASE_4.1.5.18

231825755.doc

Page 3 of 10

4.3 Create User


Run the following command to create a user just for jBASE files ownership.
[root@dscrht24023 root]# useradd -u 498 -d /usr/jbc -s /bin/ksh -c "jBASE
Administrator" -M jbaseadm

4.4 Check Permissions


Make sure the following folders within /usr/jbc have write access for regular users:
- dev
- proc
- src
- tmp
To globally fix this, issue the command:
[root@dscrht24023 root]# chmod -R a+rw /usr/jbc/dev /usr/jbc/proc
/usr/jbc/src /usr/jbc/tmp

4.5 Running jBASE Programs from Outside of jShell


Usually, jBASE commands will be run from within a jBASE session (i.e. while logged on as a user set
up for jBASE, and running the jBASE shell - jsh). But this is not always the case. There are some
exceptions, e.g. when installing the override code (jInstallKey) setting up transaction journaling
(jlogadmin).
jBASE commands require certain jBASE-specific variables to be set in the environment (this is
achieved through the login initialization file .profile for jBASE users). For running jBASE
commands outside of jshell, the environment has to be set manually.
jBASE provides a small shell script, jbase_env.sh (located in the main jBASE directory, e.g.
/usr/jbc) that does exactly this. Before using it though, there are a few changes to make:
specifying the jBASE installation path and fixing the name of the variable that points to the shared
jBASE libraries path.
Edit this file and make sure JBCRELEASEDIR is pointing to the correct folder, and replace all
occurrences of LIBPATH (incorrect name, used on IBM AIX) with LD_LIBRARY_PATH (correct for
Linux):
# Script to set environment variables for jBASE 4.1
JBCRELEASEDIR=/usr/jbc
export JBCRELEASEDIR
JBCGLOBALDIR=$JBCRELEASEDIR
export JBCGLOBALDIR
JREDIR=$JBCRELEASEDIR/jdk/jre
export JREDIR
JRELD_LIBRARY_=$JBCRELEASEDIR/jdk/jrelib:$JBCRELEASEDIR/jdk/jvmlib
export JRELD_LIBRARY_

231825755.doc

Page 4 of 10

PATH=$JBCRELEASEDIR/bin:$JBCRELEASEDIR/config:$PATH
export PATH
LD_LIBRARY_PATH=$JBCRELEASEDIR/lib:$JRELIB:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
PATH=$JBCRELEASEDIR/bin:$JBCRELEASEDIR/jdk/jre/bin:$PATH
export PATH
NAVROOT=$JBCRELEASEDIR/jDP
export NAVROOT
LD_LIBRARY_PATH=$JBCRELEASEDIR/jDP/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

5 Install License
5.1 Install License Key
jBASE 4.1, as opposed to version 4.0, has a licensing mechanism that actually works. A license key
is required to operate jBASE. The key is tied to the computer name (hostname) where jBASE runs,
hence a key cannot be used on two systems connected to the same network.
The license key is issued by Temenos. In order to obtain it, Temenos will require the server
hostname. To get this, simply run the hostname command in a shell prompt:
[root@dscrht24023 root]# hostname
dscrht24023
At the time of writing this document, Temenos was issuing a special license key named override
code. This code is to be installed with the jInstallKey tool.
jBASE 4.1 also comes with a license manager service called SLIM (jBASE System LIcense Manager).
This service is managed by the jSlimServer tool, which also manages SLIM licenses. SLIM licenses
have a different format than the override codes, and also they have expiration dates which is not
the case with override codes, which do not expire. Unless instructed differently, do not try to use
the jSlimServer tool to install the license that you were provided, since it will not work. These
notes were provided here only for reference, just in case the licensing procedure will be changed
at some point in the future.
As mentioned above, use jInstallKey to install the license code:
[root@dscrht24023 root]# source /usr/jbc/jbase_env.sh
[root@dscrht24023 root]# jInstallKey
Please ensure that JBCRELEASEDIR is correctly set!
Enter Licence Code: sN+qyPlCd2US+TLfbQPmRTsZhRBExo21

231825755.doc

Page 5 of 10

Saving /usr/jbc/config/system.properties to
/usr/jbc/config/system.properties.old
Licence Code installed successfully.
Alternatively, the key can also be installed directly into the /usr/jbc/config/system.properties file
(by adding a line jruntime.<hostname> = <license> at the end of the file). This is exactly what
jInstallKey does anyway. Here is an example:
[]
#jcompile.optimise=-O2
#jcompile.obj.extension=.o
#
#################################################################
jruntime.license = qP2XhdjqbdbiqzvfDBgPisP3ITiDfhyT
jruntime.dscrht24023 = sN+qyPlCd2US+TLfbQPmRTsZhRBExo21

6 Set up the jBASE Spooler


6.1 Create User
Run the following command to create a user just for the jBASE spooler.
[root@dscrht24023 root]# useradd -u 499 -d /usr/jspooler -s /bin/ksh -c
"jBASE Spooler" -M jspooler

6.2 Assign Password


To set the password for the jspooler user, run:
[root@dscrht24023 root]# passwd jspooler
Changing password for user jspooler.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@dscrht24023 root]#

6.3 Install .profile File


Create the .profile file (login initialisation script) as follows (you can copy-paste the text below
and transfer the resulting file to the Linux server unless you already have the jspooler files from
another installation, or you really enjoy typing!).
[root@dscrht24023 root]# cd ~jspooler
[root@dscrht24023 root]# vi .profile
#!/bin/ksh
stty quit ^- susp ^- erase ^h
umask 002
export TERM=vt100

231825755.doc

Page 6 of 10

export HOME=$PWD
export JBCRELEASEDIR=/usr/jbc
export JBCGLOBALDIR=$JBCRELEASEDIR
export JBCOBJECTLIST=$HOME/lib
export JREDIR=$JBCRELEASEDIR/jdk/jre
export JRELIB=$JBCRELEASEDIR/jdk/jre/lib:
$JBCRELEASEDIR/jdk/jre/lib/platform
export LD_LIBRARY_PATH=$JBCRELEASEDIR/lib:$JRELIB
export JEDIFILEPATH=$HOME
export JBCLISTFILE=$HOME/\&SAVEDLISTS\&
export JBCSPOOLERDIR=/usr/jspooler
export JEDIFILENAME_MD=$HOME/VOC
export JEDIFILENAME_SYSTEM=$JBCRELEASEDIR/src/SYSTEM
export PATH=$JBCRELEASEDIR/bin:$JBCRELEASEDIR/config:$PATH:.:$HOME/bin
export MANPATH=$JBCRELEASEDIR/man
export JBCDEV_BIN=$HOME/bin
export JBCDEV_LIB=$HOME/lib
export JBCBASETMP=$HOME/tmp
export LANG=en_US
export JBCEMULATE=prime
export JBASE_WARNLEVEL=30
export JBASE_INHIBIT_ZERO_USED=1
export JEDIENABLEQ2Q=1
export JBC_UNLOCK_LASTCLOSE=1
exec $JBCRELEASEDIR/bin/jsh Fix ownership and permissions:
[root@dscrht24023 jspooler]# chown jspooler:emerge .profile
[root@dscrht24023 jspooler]# chmod 660 .profile

6.4 Initial Configuration


Log on as jspooler and initialise the printer queue. Set security to NONE so that all database
users can print.
jsh jspooler ~ -->SP-NEWTAB
This operation deletes ALL print jobs and print queues, and
re-creates a new spooler with the following criteria:
1) Spooler directory
= /usr/jspooler
2) Default security of form queues = NONE
3) Default security of print jobs = NONE
4) Other owners of spooler
=
Enter options 1) to 4) to modify, C to continue or Q to quit : C
[ 417 ] File /usr/jspooler/jobs]D created , type = UD
[ 417 ] File /usr/jspooler/jobs created , type = UD
[ 417 ] File /usr/jspooler/jspool_log]D created , type = J4
[ 417 ] File /usr/jspooler/jspool_log created , type = J4

231825755.doc

Page 7 of 10

Spooler RESTART completed


<Reset the STANDARD printer queue to not do anything>
jsh jspooler ~ -->SP-DEVICE STANDARD PROG sh c ""
<Set to zero the number of blank pages output before each print job>
jsh jspooler ~ -->SP-SKIP STANDARD 0

6.5 Where to Go from Here


The above configuration will simply initialise a printer queue that does nothing (anything that is
sent to the default printer, called STANDARD in jBASE, will simply be ignored).
In order to set up a real printer for eMerge, the following steps are to be followed:
- Configure the printer in CUPS. Usually, the printer is either:
o Connected directly to the Linux server (parallel port or USB) quite unlikely
o

Connected directly to the network (IP printer, with its own address) - probable

Installed and shared on a Windows computer, and available through SMB (as a
network share) most likely
Guidance for setting this in CUPS is provided separately (post-installation configuration
docs).
o

Create a form queue in the jBASE spooler, either from the SP-STATUS screen or directly
using SP-CREATE. Using SP-CREATE is really easy for example, for a printer already
installed in CUPS under the name BR1HEADTT the syntax would be:

jsh jspooler ~ -->SP-CREATE BR1HEADTT PROG lp d BR1HEADTT


-

Tune any other parameters (please refer to the jBASE spooler documentation http://www.jbase.com/support/41docs/jBASE%20spooler.pdf - for more details). It is
suggested to at least set the page skip value to 0 (so that no blank pages are being printed
before print jobs):

jsh jspooler ~ -->SP-SKIP BR1HEADTT 0


-

Create a new printer in eMerge, in the PRINTER.ID table, referencing the newly created
jBASE form queue (field PRIME.PRINTER.ID), e.g.:

PRINTER.NAME...... BR1HEADTT
------------------------------------------------------------------------1 PRIME.PRINTER.ID.. BR1HEADTT
2 DESCRIPTION....... Head Teller printer Branch 1
It is also to be noted that, while printer daemons (background processes that manage print jobs)
are started automatically for each newly created printer queue (1 daemon per queue), these
daemons are to be started manually if the Red Hat server is restarted. To do this, simply log on as
the jspooler user, and issue REST-SPOOLER:
jsh jspooler ~ -->REST-SPOOLER
Restarting spooler for form queue STANDARD

231825755.doc

Page 8 of 10

Restarting spooler for form queue BR1HEADTELLER


In order to manually shut down the printer daemons, use the SP-SHUTDOWN command with the
-R parameter (required for running SP-SHUTDOWN as a regular user):
jsh jspooler ~ -->SP-SHUTDOWN -R
1534 - STANDARD
1538 - BR1HEADTELLER
Do you wish to stop the above daemons? (y/N): y
Waiting for 30 Seconds to allow daemons to shut down.
All spooler daemons have now shut down.

7 Fix Code Compilation


Changes made to the default settings in the C compiler used in newer versions of Red Hat
Enterprise Linux (4 and 5) can cause compilation issues. When compiling jBASE programs you might
see errors like this:
jsh live ~ -->EB.COMPILE LOC.BP OAL.ADDRESS.DISTRICTS
Source directory : LOC.BP Single item : OAL.ADDRESS.DISTRICTS
Score Checks Compile Catalog
Score Compile Catalog
Current settings of bin & lib unchanged:
/emerge/database/live/bnk/bnk.run/localbin & lib
Warning: '__i686.get_pc_thunk.bx' is a duplicated symbol
Warning: '__i686.get_pc_thunk.bx' is a duplicated symbol
Warning: '__i686.get_pc_thunk.bx' is a duplicated symbol
Warning: '__i686.get_pc_thunk.bx' is a duplicated symbol
Warning: '__i686.get_pc_thunk.bx' is a duplicated symbol
Warning: '__i686.get_pc_thunk.bx' is a duplicated symbol
OAL.ADDRESS.DISTRICTS
Source file OAL.ADDRESS.DISTRICTS compiled successfully
And then the program wouldnt actually get catalogued:
jsh live ~ -->jshow -c OAL.ADDRESS.DISTRICTS
jsh live ~ -->
In order to address this, we need to change these settings in the jBASE configuration file,
/usr/jbc/src/system.properties. Edit this file and add the following lines:
[]
#jcompile.optimise=-O2
#jcompile.obj.extension=.o
#

231825755.doc

Page 9 of 10

#################################################################
jcompile.ccjbc.options=-w -fexceptions -m32
jcompile.output.file=-m32 -o
jruntime.license = qP2XhdjqbdbiqzvfDBgPisP3ItiDfhyT
jruntime.dscrht24023 = sN+qyPlCd2US+TLfbQPmRTsZhRBExo21

8 Document History
Date

Author

Modifications

21 Aug 06

Lucian Fratila

Created

8 Nov 06

Lucian Fratila

Differentiate between versions 4.1.4 and 4.1.5

4 Apr 07

Lucian Fratila

Rewrote jBASE installation folder naming


Added spooler setup

8 Jun 07

Lucian Fratila

Added jbase_env.sh, ldconfig and jspooler password sections

15 Aug 07

Lucian Fratila

Better approach with jbase_env.sh script


Changed spooler security settings

6 Jan 09

Lucian Fratila

Removed notes on 4.1.4 (obsolete)

30 May 09

Lucian Fratila

Updated jspooler section (numeric id for user) and added


latest OI header

26 Aug 09

Lucian Fratila

Added jBASE user and fixed jbc link command

24 Sep 09

Lucian Fratila

Fixed typos in jBASE permissions fix command


Leave the OS to create groups for jbaseadm and jspooler
Do not automatically create home directories for jbaseadm
and jspooler

14 Nov 09

Lucian Fratila

Fixed two typos in the useradd commands

14 Nov 09

Lucian Fratila

Added code compilation section

231825755.doc

Page 10 of 10

You might also like