Frequently
Asked Questions
In an endeavor to curtail the email traffic
to jBASE support, we present this FAQ to help you get
your common questions answered. Please send email for jBASE related
incidents that are not covered here to
devsup@jBASE.com.
FAQ: jBASE All platforms

These are general jBASE questions that are not dependent upon any specific
operating system platform. jBASE has many options for those in the
MultiValue arena.
Most questions in the All platforms FAQ are regarding how jBASE can emulate the
MultiValue
database that you convert from.
Why does the printer ignore the
TERM statement?
How can the SYSTEM file and MD/VOC be optional?
How do I setup an MD/VOC file and System/Q-pointers?
How does jBASE emulate other
MultiValue databases?
What are environment variables?
Why does the printer ignore the TERM
statement?
The jBASE spooler uses a "formtype" for each
printer. By default the formtype is defined in the item $JBCRELEASEDIR/config/jsp_deflt
and it defines the printer WIDTH to 132 and DEPTH of 64. If these two
lines are removed then the TERM statement will affect the printer WIDTH and
DEPTH. The item is self-documented and allows for many other options.
Multiple "formtype"s can be created. The structure of the spooler is
explained
here and the SP-TYPE command is defined
here
in the knowledgebase.
How can the SYSTEM
file and MD/VOC be optional?
The jBASE database can be setup with a
traditional MultiValue MD and SYSTEM file, but it also works with the native
PATHing available in the Windows and *nix environments. In the MultiValue
environment all "accounts" must exist in the SYSTEM file to allow access to
files and all "verbs" must exist in the MD/VOC. jBASE can accommodate
this, but through environment variables this is not
necessary. With
a little planning you can easily eliminate the need for Q-Points and "verbs" can
be made common through default PATHs or executed directly by including the
complete PATH. Examples of this are available in
our R83 to jBASE document under
migrations tips.
How do I setup an
MD/VOC file and System/Qpointers?
You will only require an MD/VOC file if you wish to import PROC commands from
your legacy system or wish to use Q pointers. An MD file is not needed to create
files or to use jBASE commands. An MD file can be used to deny use of certain
commands though, should you require this. To set up an MD file, do the
following:
- Either ACCOUNT-RESTORE into a directory (which will import your old
MD as an ordinary file called, remarkably, MD). Or in your Account directory
use the command: CREATE-FILE DICT MD 7. You can of course make this
file bigger if required (see the jstat and jrf commands). In
Linux/Unix make a
symbolic link from the MD]D file that is created to MD
or just rename the MD]D file as MD.
- Create the environment variable JEDIFILENAME_MD (for Windows see
instructions
below) and set it to the absolute path name of the file you just
imported or created.
Then...
- Logout and back in to insure the new environment variable is set.
- Type in the command:
UpdateMD
You should now find that you have an MD file that behaves like the MD/VOC on
your old system. You can file PROCS and Q pointers directly in it. Note that
the file does not have to actually be called MD. It can be called anything (e.g. VOC) as long
as the it is pointed to by
JEDIFILENAME_MD. You will also see that there are
entries for the usual LIST, SELECT etc and that if you remove one of these
entries, you will disable that command. You can also set Q pointers in this
directory.
To set up Q pointers and allow LOGTO you must tell jBASE what
your 'account' structure looks like. The easiest way to do this, is to create a
SYSTEM file in the HOME directory (where the jBASE telnet process is originally
directed).
You follow the same procedure to
inform jBASE of this location as you did to define the MD file. This time
however, you set the environment variable
JEDIFILENAME_SYSTEM
to point at your system file.
Now that you have a system file, you can use JED or ED
to edit new records in it that correspond to your old account names. These
records look like this:
OldAccountName
001 D
002 x:\users\directoryname
Where attribute 2 actually contains the full path to the base directory of the OldAccountName. So, if you have an
account called PAYROLL and its full path directory is E:\jbase_data\PAYROLL
then your SYSTEM entry
is:
JED SYSTEM PAYROLL
001 D
002 E:\jbase_data\PAYROLL
Then any Q pointers that reference this account name will take attribute 2
from the SYSTEM entry and combine it with the name of the file in the Q pointer
to get the actual location of the data file.
How does jBASE emulate other
MultiValue databases?
VERY WELL ACTUALLY. There is a file in
the $JBCRELEASEDIR/config directory called Config_EMULATE and an environment
variable called JBCEMULATE. A complete explanation is included in the
knowledgebase
here.
The file contains numerous options to control how jBASE functions. These
options are headed with an emulation label that groups behavior, (and that label
is assigned to JBCEMULATE). There are several pre-defined groups including
ap, universe, ros, etc. or you can define you own and pick the functionality you
want for your own custom JBCEMULATE setting. This one simple variable
setting will then be used throughout your jBASE sessions. Further
customization of your environment can be achieved through environment variables
as explained next.
What are environment
variables?
Simply put they are variables that are set in
an environment that can then be referred to by other processes. The
simplest way to understand them is to see how they are set and viewed and then
you can see how jBASE and other processes use them.
| Process |
Windows |
*nix |
| Set it |
Set TEMP=C:\TEMP |
TEMP=/tmp ; export TEMP |
| Show the value |
echo %TEMP% |
echo $TEMP |
| See all variables/values |
set |
env |
Explanation of environment variables used in
jBASE are available
here in our
knowledgebase.
Back to Top
FAQ: jBASE on Linux
Here
are the most frequently asked questions about jBASE for Linux and UNIX.
jBASE is available for evaluation on Linux on our
download page.
Please read the Installation Notes here to get you
started.
What version of Linux should I use?
Why do I get can't find linux/stat.h or some
other header file?
Why does the IJU command not work?
Why doesn't the backspace key work?
On version 3.4, jBASE International supports Red Hat 7.2
& 8.0. On Release 4.1, jBASE International supports Red Hat 8.0
and Red Hat ES. 3.0.
You are welcome to try loading jBASE on
any other version of Linux, however, we cannot guarantee that it will work.
The complete list of jBASE platforms is available for
3.4 and
4.1. You can install Red Hat via FTP from the web, look to www.redhat.com for details.
You have not installed the Linux Kernel Source
from the Linux installation CD-ROM (or downloaded this from internet). Any Linux
installation requires the kernel source code (and therefore header files) be
loaded on the system before the C compiler will work correctly. The Linux kernel
source code files are a standard Linux package and should be loaded via the
standard method for your version of Linux. Please consult your Linux
documentation for more details on this.
You did not have correct permissions on the
directory /usr/bin when you did the install. This command is copied to usr/bin
on install, but if there are no write permissions on this directory, this cannot
be performed. You may well have missed out the umask 0 step of the install.
The Linux console sends a <DEL> key or ^? for backspace if erase (Linux
backspace) is not re-assigned via the stty command. Most terminal
emulations send a CHAR(8) or ^h and therefore the backspace will not work.
This can be changed with the command "stty erase ^h". This command can be
typed in or permanently added to the .profile and/or added to the iju process by
adding the stty erase ^h to the $JBCRELEASEDIR/src/profile.ksh script.
Back to Top
FAQ: jBASE on Windows
Here
are the most frequently asked questions about jBASE for Windows. jBASE is
available for evaluation on Windows on our
download page.
Please read the Installation Notes here to get you
started.
Should I use the MINGW compiler for jBASE 4?
What version of Visual C++ do I need?
How do I setup users?
How do I set environment variables?
Why does the BASIC command not work?
Why does the BASIC command not work outside of jsh?
Why does the CATALOG command not work?
DO NOT USE THE MINGW compiler. If you do not have a C++ compiler then
download the free .NET SDK as detail here.
The MINGW compiler will allow jBASE to operate, but has many problems directly
related to bugs in the compiler itself. The .NET SDK cannot be distributed
with jBASE, therefore the MINGW compiler is included for
simple testing and evaluation purposes only.
When you compile a Basic program with jBASE, it is converted to C. The C
code is then compiled to machine code. For this, we use the Microsoft .NET compiler.
The Visual C++ packages Visual Studio 6 and newer can be used. You can purchase Visual
Studio .NET or you can download the free .NET
SDK.
If you are only using the C
compiler for jBASE BASIC then you can download the free .NET SDK (Software
Development Kit) and Framework Redistributable from the msdn.microsoft.com web
site. The link to this site changes often and therefore you should simply run a
web search for "Microsoft .net sdk" to find the current link. Be sure to
download the Redistributable Package as well as the SDK. They are usually
dotnetfx.exe and setup.exe respectively and should be run (installed) in that
order.
There are no such thing as jBASE users, jBASE uses the windows level user and
password setup. These vary slightly from the NT, 2K and XP versions. All
versions have an Advanced User Management module usually available by
right-clicking on My Computer then going to manage or via the control panel
under Users and Passwords. This facility allows you to add the user and
password. After the user and password are added you need to maintain the
users properties and set their "Local Path" or HOME directory to be where you
want the jBASE telnet session to originally be directed.
In the Windows server environment there are two ways to login as a user.
They are the CONSOLE jsh.exe application (rarely used for anyone other than the
administrator) and telnet which is used by most jBASE users. The CONSOLE
setup is usually only done for setting the System environment variables and the
one Administrator logon user's environment variables (used by the jsh.exe
console program).
- Console user (Single user / Server Administrator)
You need to set Environment variables for the general System and console user(s)
accessed by right-clicking on My Computer then Properties. When you run this application you will see a
dialog box containing two lists: Environment variables for the System, and
Environment Variables for the console user.
-
jBASE telnet users (Normal users on the jBASE server)
The only Environment variable that needs to be set for normal
jBASE telnet users from the console is the HOME variable or Local Path as it is
refered to in XP/2K. This environment variable is used to determine where
the jBASE telnet process will originally direct the user. This directory
can be shared by all users or be unique for each or a combination of both.
It is defined during the add user process.
The directory should contain a Remote.cmd item which works very
similar to the autoexec.bat in the Windows 9X environment. The Remote.cmd
can be initially created using the IJU command and then be altered with any
standard editor.
You have installed everything correctly as far as you can see but when you
try the BASIC command, nothing seems to work. It
is almost certain that your Visual C++ installation is not correct for this user,
in that the environment variables are not correctly installed for this user.
- Try the verbose option of the BASIC command [ BASIC BP Program (V ]
and see if it is failing when it tries to issue the cl command. If
it does, then your PATH is not set to include the Visual C++ bin
directory.
- To verify your PATH is not correctly configured, type the cl
command directly from the shell prompt. If the response when type the cl
comand is "'cl' is not recognized..." , then you know that your PATH is not set up
correctly.
- Reinstall Visual C++.
It will do you no harm to install Visual C++ again and see if
your problem goes away as the VC++ install will not recopy any programs that
exist but will set up the users environment variables if they are wrong.
BASIC works from the jshell (jsh), but does not work from the command line (C:>). This is usually a problem
with the environment. Specifically the PATH, LIB and INCLUDE variables. First check these values in jshell (jsh) by typing the following
three statements, then do the same at the command line (c:>). To check these values type in the following commands:
echo %PATH%
If you use the SDK then this will include anywhere within it "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\bin;C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE"
echo %LIB%
If you use the SDK then this will include anywhere within it "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\lib"
echo %INCLUDE%
If you use the SDK then this will include anywhere within it "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\include"
If any of these are not the same then use Settings >> Control Panel >> System >> Advanced >> Environment Variables and set them as shown.
Some users have found that after install, they can compile, but cannot
CATALOG programs. Go through this checklist to solve this problem:
- Did you create a local directory for this user, using the profile option
of the User Administrator when logged on as Administrator?
- Does the home directory for this user actually exist?
- Do you have write permissions on the home directory for this user?
Back to Top
FAQ:
jBASE
International
Q How long has jBASE been around?
A jBASE first saw the light of day in 1989.
Q How big is jBASE?
A We have an installed base of over 8,000 sites
and well over 175,000 users spread over all five continents. These numbers are
growing every day and we have had an average annual growth of about 30% for the
past 3 or 4 years.
Q How many people work for jBASE International and
where are they located?
A There are about 30 people who work for jBASE
spread throughout North America and the UK. In addition to this there are
distributors that cover the rest of the world including Australia and New
Zealand, France, and South Africa (for a full list click
here)
Q Where are your headquarters?
A jBASE International is a very spread out
organization as befits our high tech roots. We have a world wide IT
infrastructure that links our North American HQ and
and our primary support center in Oregon,
our European,
Middle East and African (EMEA) HQ in Hemel Hempstead, UK (just North of London), as well as satellite offices
elsewhere.
Q What is your primary sales model?
A Without doubt, we primarily sell through Value
Added Resellers (or ISVs) and distributors. These partners span the globe both
geographically and marketwise, with partners in Manufacturing, Healthcare,
Finance, Distribution, Automotive to name but a few.
Q What services does jBASE International provide?
A In addition to selling and supporting the jBASE
product set, we also offer a wide range of professional services, designed to
complement our partners offering. We provide training in all aspects of the
jBASE product set. We also provide consultancy services which include
application audits, technology consulting and project management
Q How can I learn more about jBASE International?
A Well you‘ve found one way - the
website is full of information both commercial and
technical. Any of the jBASE
offices will be delighted to talk to you about any and every aspect of jBASE
International. Alternatively, you can email
info@jbase.com!
FAQ:
General and Miscellaneous Questions
Q What is MultiValue?
A
jBASE is a MultiValue database. MultiValue is a designation and a symbol
given to the world's most widely used and experienced business software
solutions. No matter how specialized your computing needs are, there is a
MultiValue software solution that exactly matches your computing requirements.
At nearly $3 billion annually, MultiValue is one of today's fastest growing
segments of the business software solution market.
Read More
Q Is there any software which is incompatible with
jBASE?
A Yes. So far we have identified 3 applications. These
products can interfere with jBASE services, and can potentially be harmful to
your database.
1) MS Exchange Server
2) ArcServer backup software
3) IBM Director Suite
Q When do I use jEDI versus jBCDC?
A These are two different problems that we are
trying to solve with these two products which correspond to the two reasons that
people want to interoperate with a SQL database.
1) They want to run their existing MV Basic application on a new SQL
database. This means that they already have an application with a data access
strategy in place and it is the MV paradigm. The jEDI is a way of accessing the
SQL database that is native to the MV application i.e. using the MV paradigm.
The important thing is that in this case, they do not want to change their
application, so they stay with the thing that maintains the paradigm - the jEDI.
This allows us to say that their jBASE Basic application runs on SQL Server,
Oracle, etc. with no changes.
2) They have an existing SQL database that they want to communicate
with. For example, there might be a local authority that runs a jBASE
application and they want to interface with (not run on) a Geographical
Information System that uses SQL Server. So they have a non MV
application/database that they want to access. Because that SQL database uses
the SQL paradigm, this time they would use jBCDC – but remember that will
require changes to their Basic application.
So - the jEDI allows people to access SQL databases with NO CHANGES to their
database access paradigm (they will continue to use MV access methods); whereas
the jBCDC method necessitates the user changing their database access paradigm
and therefore will require new development within the application.
Now of course, there are times when it will not be so black and white. For
example, they have converted their application (as in 1 above) and they want to
do some new stuff with it and think that the SQL way of doing it is more in line
with their requirements- so jBCDC would be the way to go.
Do you have a FAQ not covered here?
Email webmaster@jbase.com!