You are on page 1of 5

Introduction to jBASE

What is jBASE?

jBASE is a multivalue database system.


jBASE was released in 1991 by a small company in the UK, then named
James Anthony Consultants,(JAC), later to become jBASE Software Limited.
On December 1st 1999, jBASE Software Limited and its subsidiaries were
acquired 100% by the TEMENOS Group AG, a Swiss based Banking Software
House.
jBASE is unique in that it was designed from day one to allow the application
data to reside in any database not just its own.
jBASE compiles applications to native machine code form, rather than to an
intermediate byte code. It uses the C compiler to compile code.
jBASE is a suite of database management products and dev tools. jBASE
provides a multidimensional database, a dev environment including a dev
lang, and a middleware component allowing other mainstream and standardsbased products to communicate with the jBASE products.
The unique jEDI middleware enables access to other databases such as
Oracle, DB2 and SQL Server.
Windows/all major Unix/Linux platforms are supported.
The Basic language (jBC) is the traditional language for developing
applications in jBASE. jBC while loosely based on Dartmouth Basic, has been
greatly enhanced for the multidimensional database architecture.
It also includes interface products, which provide similar capabilities to jBC
but can be used from different dev environments, called jBASE ObjEX. jBASE
ObjEX provides an interface from Microsoft's COM and Java.
The COM based OBjEX allows access to the jBASE database and application
dev environment from such products as Visual Basic and Delphi as well as
products that support Visual Basic for Applications (VBA) including Microsoft
Office Suite. jBASE OBjEX provides a similar capability for Java based dev
tools, such as Visual Age for Java, Cold Fusion, etc Middleware - takes
software developed in an ADE, (not necessarily jBC), and provides the ability
to access a database, which may not necessarily be the jBASE database.
The most important part of the jBASE middleware component is the jEDI,
which is a layer of software that is used by all Input and Output operations
within the jBASE system. No matter what method an application uses to
access the jBASE I/O mechanism the code used is identical Database
Management System.
It is a Non First Normal Form database. This means tables can be embedded
within other tables. This removes the necessity of having to perform the
extremely resource hungry joins of the traditional Relational model. jBASE
provides very efficient support for multi-user applications and includes a
comprehensive locking mechanism.

jBASE Architecture:

T24

USER

jBASE

UNIX

Directory Structure:
jBASE has a similar directory structure to that of Unix.
bin
lib
config
tmp
jspooler

:
:
:
:
:

contains
contains
contains
contains
contains

all the executables


all the library files
jBASE configuration files
temporary data
jBASE spool files

Environment Variables:
Some environment variables can only be set before jBASE initialization. The jBASE
initialization process reads the environment entries looking for possible variables

required by jBASE. Variables are usually configured in the .profile of the user login
directory. Some environment variables can be changed by subsequent program
execution. The state of these variables is imported back into the local environment
after program execution.
Setting/Getting Environment Variables:
variable=value
export variable
( export variable = value)
echo $variable
Initial Environment Variables:
JBCRELEASEDIR : jBASE installation directory
JBCGLOBALDIR : path of the jBASE config directory
PATH : Unix variable. Path of the executable files of Unix and jBASE
LIBPATH : jBASE lib directory path in AIX machine. (For HP, SHLIB_PATH and
for others, LD_LIBRARY_PATH)
JBCBASETMP : jBASE tmp directory
HOME : Users home directory
JEDIFILEPATH : Directory Paths of application files location
JEDIFILENAME_MD : path of the VOC file
JEDIFILENAME_SYSTEM : SYSTEM entry path
Execution level Environment Variables :
JBCOBJECTLIST : Set to alternate path(s) for user subroutine libraries
Development level Environment Variables :
JBCDEV_BIN : Set to alternate path(s) for catalog executables (Program dir)
JBCDEV_LIB : Set to alternate path(s) for catalog libraries (Subroutine dir)
Miscellaneous Environment Variables:
JBCSPOOLERDIR : jBASE spooler directory
JBCLISTFILE : path of the &SAVEDLISTS& directory that is used to store
select lists

VOC :

Means Vocabulary
Known as Master dictionary

VOC Entry to logon to T24 from jsh Prompt:


JED VOC T
PA
EX
DATA TRAINEE053
DATA 654321
File Types :

Every jBASE file has 2 portions data portion and dict portion
Data portion : contains the records
Dict portion : contains the field names and definitions
jBASE supports 2 different types of files: Non-Hashed and Hashed
Non-Hashed files :
o Unix level directories
o Used to store programs
o Type = UD
Hashed files :
o Store and data randomly
o Improve performance
o Used for data and dict files
o Type = J3 or J4
o Have modulo, separation and secondary buffer
o Modulo number of frames, Separation size of a frame, Secondary
Buffer size of the secondary buffer (default size : 1 module size* 2)

Type J3 : Modulo 4 and Separation 4, Default size of 1 modulo = 1024 bytes


Type J4 : Modulo 4 and Separation 4, Default size of 1 modulo = 4096 bytes
** A frame is the basic I/O unit: 500 to 4,000 bytes depending on the
implementation on OS.
** Modulo = Number of frames associated with Primary file space
CREATE.FILE
CREATE.FILE <<filename>> TYPE=<<option>>
Where option = UD (non-hashed) , J3,J4 (Hashed)
CREATE.FILE TEST TYPE=J4 3,2 4,3,3
J4 type file named as TEST created with dict modulo = 3, dict separation=2,
buffer size = default, data modulo = 4, data separation = 3, buffer size = 3
Useful Commands:
jstat : used to determine the statistics of a hashed file
jrf : used to resize hashed files

jdiag : used to diagnose jBASE installation