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.


jBASE All Platforms


jBASE on Linux


jBASE for Windows


Other FAQs


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:

  1. 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.
  2. 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...

  1. Logout and back in to insure the new environment variable is set.
  2. 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?

What version of Linux should I use?

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.


Why do I get can't find linux/stat.h or some other header file?

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.


Why does the IJU command not work?

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. 


Why doesn't the backspace key work?

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?


Should I use the MINGW compiler for jBASE 4?

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.


What version of Visual C++ do I need?

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.


How do I setup users?

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.


How do I set Environment Variables?

  • Windows NT/XP/2K

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. 


Why does the BASIC command not work?

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.  

  1. 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.
     
  2. 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.
     
  3. 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.

Why does the BASIC command not work outside of jsh?

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.


Why does the CATALOG command not work?

Some users have found that after install, they can compile, but cannot CATALOG programs. Go through this checklist to solve this problem:

  1. Did you create a local directory for this user, using the profile option of the User Administrator when logged on as Administrator?
     
  2. Does the home directory for this user actually exist?
     
  3. 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?

  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?

  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?

   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!

 

 

 
 
 
 
Copyright ® 2008 jBASE International. All rights reserved.
Trademarks & Copyrights