TAFC or JBASE Config
TAFC or JBASE Config
\\10.93.5.18\Localhost\MODEL_BANK_TAFC\R15.000\jBase
\\10.93.5.18\Localhost\TAFC_RUNTIME\R15\TAFC_R15_SP3
Installed TAFC Application in my local and changing the value of environmental variable in the
remote.cmd script file.
PFB You have to add license of jBASE in the system.properties file (C:\TAFC\R15\config)
Note: First line is default license and 2nd line is added by us (TAFC R15 SP3 - Internal override code (Non
Expiring) is taken from \\10.93.5.18\Localhost\TAFC_RUNTIME\R15\TAFC_R15_SP3)
It’s created under (inside these two folders, .jbase_header file has been created)
JEDIFILENAME_MD
This variable should be used if you require the use of the MD/VOC file to hold Q pointers, jCL
programs, paragraphs or entries for the jQL language.
F pointers and Q pointers in an MD / VOC take precedence over paths in the JEDIFILEPATH.
No default value
Valid file path; while it is not required, it is strongly advised that this value be set to the complete
path of the MD and not a relative path (as an example, “/home/bob/MD]D” should be used
instead of “./MD]D”).
As per normal environment variable, so it can be set at any time by the commands:
SET JEDIFILENAME_MD=D:\GLOBAL\VOC
After setting the variable SET JEDIFILENAME_MD=%HOME%\VOC in remote.cmd script and ran the
same cmd in jsh.
Ex.1
By using below commands, Enter your program name by using JED editor
Coding:
Press Escape and then type FI, it will move your cursor to command and save your source file.
Compilation
Because V C++ Compiler was not installed. For that we have installed the compiler and configured the
environmental variables (INCLUDE, LIB and PATH) in remote.cmd
When I tried, Execution of CIF thrown “Unable to Execute” Error. With the help of Ojasvi we changed the
value of the JBCDEV_BIN and JBCDEV_LIB variables in remote.cmd
CATALOG (C:\TAFC\bnk\bnk.run\bin)
Jshow –c will help you know executable location, Data & time details.
Ex. 2
Program A
Subroutine
We noticed above error and found incorrect value for the JBCOBJECTLIST and corrected the same in
remote.cmd script.
Subroutine has compiled successfully
Note: In this above example, I have made some changes (‘input customer name’ changed into ‘input
phone no’) in subroutine. After that, I have compiled and cataloged the subroutine otherwise those
changes won’t reflect while running your program.
Note: LD_LIBRARY_PATH, will be used instead of PATH if UNIX OS. SHLIB_PATH, will be used if
JBCDEV_BIN, Defines the directory where user executables will be built when programs are
CATALOGed.
JBCDEV_LIB, Defines the directory where user shared object libraries will be built when
subroutines are CATALOGed.
JBCSPOOLERDIR, Spooler location (where data needs to be fetch/print) of the data.
INCLUDE, Specify the header files of the program (that will help us to include library files).
LIB, contains the system libraries (those library files are required to execute the programs)
LANG, Language type (UNIX only)
LC_ALL, will override a specified list of locale settings (UNIX only)
TZ, Timezone (Unix only)
TERM, Specifies terminal type as per terminfo database
TERMINFO, Specifies directory for terminal settings
JBCPORTNO, Forced Port number for use by user. (Usually allocated)
JBCLOGNAME, User name to use in-place of login id.
JBCEMULATE, When importing legacy applications, this variable tells jBASE what system it
originally ran on. Note that programs and subroutines imported from different systems may be
freely mixed.
Note: The default is jbase, which will suit most imported applications.
Note: These JBASE_CODEPAGE, JBASE_TIMEZONE and BASE_LOCALE will have no effect unless
internationalization is switched on using JBASEI18N.
Development
JBCDEV_BIN, Defines the directory where user executables will be built when programs are
CATALOGed.
JBCDEV_LIB, Defines the directory where user shared object libraries will be built when
subroutines are CATALOGed.
JBCTTYNAME, This variable defines your UNIX tty name.It will greatly improve execution start-
up times.
JBCERRFILE, Sets the location of the jBASE error message file (DEFAULT
JBCRELEASEDIR/jbcmessages)
JBCSPOOLERDIR, defines the directory where the jBASE spooler entries are located.
Default in Unix: /usr/jspooler (UNIX)
Windows: We need to set it up before the jSHELL is invoked.
JBC_DESPOOLSLEEP, default the jBASE despooler processes on Windows check for queued jobs
every 30 seconds. This environment variable can be used to decrease or increase that interval.
The environment variable is not required on UNIX because the despooler processes are sent a
signal when a new job has been generated.
Windows: it should be set before form queues are started.
SET JBC_DESPOOLSLEEP=12
JBC_CRREQ, Controls whether line feeds and form feeds are followed by a carriage return when
printing to the spooler(Default 0 value, range 0-3)
JBCLISTFILE, specifies the file where stored lists are kept(Any valid path to a directory or hashed
file)
Note: If not set, jBASE will attempt to store lists in POINTER-FILE.
JBCSCREEN_WIDTH, Specifies the page width for paged terminal output, and overrides the value
specified by the TERM type(default no value set it up)
JBCPRINTER_DEPTH, specifies the page depth for paged spooler output, and overrides the value
specified by the TERM type(default no value set it up)
JBCPRINTER_WIDTH, Specifies the page width for paged spooler output, and overrides the value
specified by the TERM type(default no value set it up)
Note: JBCSCREEN_WIDTH, JBCPRINTER_DEPTH, JBCPRINTER_WIDTH value should be decimal
numbers.
JBCNETACCESS, Defines the location of the jRFS security access file jnet_access
DEFAULT: /usr/jbc/config (UNIX) %JBCRELEASEDIR%\config (Windows)
JBCNETDIR, Defines the location of the jRFS configuration files
DEFAULT: /usr/jbc/config (UNIX) %JBCRELEASEDIR%\config (Windows)
JRFS_REMOTE_JQL, Specifies that the jQL command will run on the remote server and send the
data back rather than querying line by line over the network(default no value set it up)
UNIX: JRFS_REMOTE_JQL=1 Windows: SET JRFS_REMOTE_JQL=1
export JRFS_REMOTE_JQL
JRFS_LOCALPATH_JQL, Specifies that the jRFS Server process will use the file name as 'opened'
on the remote system rather than using the file name specified in the original select statement.
(default no value set it up)
UNIX: JRFS_LOCALPATH_JQL=1 Windows: SET JRFS_LOCALPATH_JQL=1
export JRFS_LOCALPATH_JQL
JRFS_SERVERNAME, Allows the jRFS client to override the service port(default no value set it
up)
UNIX: JRFS_SERVERNAME=1 Windows: SET JRFS_SERVERNAME=1
export JRFS_SERVERNAME
JBASE_GROUP_LOCK, Allows the POSIX semaphore locking to override the default locking in
UNIX. This setting is to handle the jBASE scalability problem in UNIX based systems (default no
value set it up)
UNIX: JBASE_GROUP_LOCK=1 Windows: Not Available
export JBASE_GROUP_LOCK
VOC
VOC file helping to fetch the details quickly from the database
It has a file pointer that will decide where to go data/dict based on your JED cmd.
Here F is a File Pointer
Ex1. Below command is going to fectch the data from FBNK.CUSTOMER record, pointer has to move to
bnk.data.
Ex2. Below command also going to count the data in the record so in this case file pointer will move into
bnk.data.
When you change the dictionary/structure/definition of the table then pointer will move to bnk.dict.
Ex1.
Ex2:
Note: See the difference between LIST FBNK.CUSTOMER and LIST DICT FBNK.CUSTOMER
jBASE License
In jBASE, we have license model. If user have the license then only they can access jBASE
database. We are following the below things:
o License maintenance (Expiry, upgrade, or change in the type of license)
o Expand the licensing requirements (for new permission/access to the features)
The jBASE License are calculated on the number of jBASE foreground sessions.
EX. Starting a 'jshell' prompt OR starting the 'EX' and 'tSS' application from the 'remote.cmd'. (‘tSS’
application is used for OFS)
Starting 'PHANTOM' (background) processes and / or 'jspprint' (Printer) sessions are NOT
included in the jBASE user count and do NOT take a jBASE license.
To find out the total number of free licenses by using "jInstallKey -v" cmd.
If the total free license is 0 all licenses are currently in use.
PFB We have given override key in my environment so that it’s showing ‘0’
Previous release jlicensinginfo cmd is used to identify the above license information’s.
Note: The foreground process like jsh, EX, tSS, tSM consume one license per process.
This cmd will show your all the previous foreground processes and live process
Port No. 1
Port No. 7
Note: You can see here, Date & time of when port is connected, Port No, Host Name, Status of the
process session, User, How much memory is used and what are all the threads are running, etc.
Once your port no is exceed the range 0-499, then it will throw “No ports free in the specified range”. In
this case we have to clear the port no’s in proc directory (JBCRELEASEDIR/proc)
Note: Sometimes zombie processes and hang up processes consumes licenses, in your case many
processes were became zombie or hang up processes. These processes contains entry in proc
directory(JBCRELEASEDIR/proc). So you need to clear the proc directory once.
Important point*: While clearing the proc directory make sure no users are online also make sure there
are not T24 and TAFC processes are running.
4) mw42
To come out from above session press q and then up arrow, it will take you into last cmd.
T24 License:
T24 License are used by the number of actual users logged into the system.
This will include number of Users signed on to access application and the number of Phantoms
running as each phantom will have to sign on into the system in order to access T24
applications.
Meaning is, both foreground and background process are using the T24 license.
Ports:
T24 users, Phantom processes and 'jspprint' processes will take a 'Port number', simply for the
purposes of displaying a 'Port number' in the 'WHERE' output and providing 'Pick' (MultiValue)
compatibility.
The Port numbers in use have NO relation to the jBASE (or T24) licensing.
Also to effectively to reuse the license it is recommended to use loginproc.
Note: Sometimes zombie processes and hang up processes consumes licenses, in your case many
processes were became zombie or hang up processes. These processes contains entry in proc directory
(JBCRELEASEDIR/proc). So we need to clear the proc directory once.
Important point*: While clearing the proc directory make sure no users are online also make sure there
are not T24 and TAFC processes are running.
Also we can enable autologout cmd to terminate idle process that consuming jbase licenses.
To terminate idle ports you can use the AUTOLOGOUT functionality.
Exactly after 1 minute, the session will be disconnected. If you have mw42 running in parallel
session, it should no longer show you the port where AUTOLOGOUT is running.
Note: AUTOLOGOUT functionality is used for automatically terminating a session if it has been idle for a
certain point of time.
Ex: 'AUTOLOGOUT 1' sets a timeout period of 1 minute, 'AUTOLOGOUT 2' sets it for 2 minutes etc.
To set this in loginproc do as follows: We can choose a timeout period and implement it in the
loginproc para as below -
Create a Loginproc:
%JBCRELEASEDIR%/bin/jpqn %JEDIFILENAME_MD%\loginproc
Once we added and started our script, OSTART GLOBUS We have to give based on Y/N. If Y then
it has went to EBS.TERMINAL.SELECT otherwise go to JSH application.
Note: The AUTOLOGOUT functionality minimizes the leftover process in the machine.
The setting of timeout functions improves in retrieval of licenses from idle process/ports.[The
license consuming processes are EX/jsh/jpqn/tSS]