jRFS Quick Start
Server configuration
Client configuration
Directory access
Remote file configuration
Select configuration
Unix access
As Administrator
1. Create directory to contain jRFS configuration files.
mkdir C:\JNETCONFIG
2. Copy template files from jBASE release directory to configuration directory.
JCOPY C:\JBASE30\config jnet_config jrfs_config jnet_map jnet_env
TO: ( C:\JNETCONFIG
3. Create directory to contain jRFS security file.
mkdir C:\JNETACCESS
4. Copy template file from jBASE release directory to security directory.
JCOPY C:\JBASE30\config jnet_access
TO: ( C:\JNETACCESS
5. Add environment variables to SYSTEM environment.
JBCNETDIR | set to | C:\JNETCONFIG |
JBCNETACCESS | set to | C:\JNETACCESS |
PATH | add | C:\JBASE30\bin |
6. Add jRFS service name to services file.
ED/JED %SYSTEMROOT%\SYSTEM32\DRIVERS\ETC services
Add entry jRFS 5001/tcp
7. Configure jRFS security file.
JED/ED C:\JNETACCESS jnet_access
e.g. To enable client user ‘greg’ on machine ‘large’ to access files on this machine, ‘slim’, as user ‘jim’ then add the following entry to the jnet_access file.
large greg jim jRFS Password
Where Password is the clear text password for local user ‘jim’. If machine ‘large’ is part of a network domain then you may need to add the domain extension as well. This depends on how the local machine resolves the IP address, i.e. via a domain name server or local /etc/host file.
large.jac.co.uk greg jim jRFS Password
If the connect request information does not EXACTLY match the jnet_access information then connection will not be allowed. The C:\JNETACCESS directory should be made read only for service/administrator processes.
8. Add jRFS to available services.
JRFSINSTALL jRFS "jBASE Remote File Service" C:\JBASE30\bin\jRFS.exe
Note: To uninstall use jRFSREMOVE jRFS
9. Enable jRFS service.
From Control Panel choose Services, select jRFS entry, select startup, tick automatic then ok then close. To enable service proper need to reboot system so that system environment variables are picked up by service. The jRFS service should be started automatically.
Note: Before commencing and upgrade of jBASE, the the jRFS service must be stopped.
1. Add jRFS service name to services file.
NT | ED/JED %SYSTEMROOT%\SYSTEM32\DRIVERS\ETC services |
WIN95 | ED/JED C:\WINDOWS services |
Add entry jRFS 5001/tcp
2. Configure Client map file.
Client user names can be mapped to network/server names using the jnet_map configuration file used by the client system. For example, to map user name ‘greg’ on client machine ‘large’ to use user name ‘jim’ on machine ‘slim’, add the following entries to the jnet_map file.
LOCAL: slim jRFS greg greg
REMOTE:slim.jac.co.uk jRFS jim
This entry maps machine name ‘slim’ to use the full domain name ‘slim.jac.co.uk’, for example purposes only, leaves the required service name as ‘jRFS’ and maps the local client name ‘greg’ to invoke a network/server local user name of ‘jim’. Thus client user ‘greg’ will use network/server name ‘jim’ to read/update files on target server. The client system can be configured to use the JBCNETDIR environment variable with a UNC name which points to the server configuration directory, which must be shared. Thus all configuration can be done on Server if required.
Client environment variable JBCNETDIR set to \\slim.jac.co.uk\JNETCONFIG
When the server gets a connection it will attempt to change to the specified network/server name, and also change current directory as specified for the user. To allow this user access to files in other directories you may need to set the JEDIFILEPATH. This can be done in the jnet_env file in the %JBCNETDIR% directory.
jnet_env
ENV: jRFS jim greg
JEDIFILEPATH=C:\users\greg;C:\users\appfiles;C:\users\jim;.
Remote Files can be configured by creating a JEDIFILENAME_SYSTEM file, with Rpointer entries. e.g.
JEDIFILENAME_SYSTEM=\\slim\GLOBALSYSTEM
SLIM
001 R
002
003
004 slim - Machine name or IP address
And invoked via JEDIFILENAME_MD Qpointers. e.g.
JEDIFILENAME_MD=\\slim\GLOBALMD
REMOTEFILE
001 Q
002 SLIM
003 FILEX
Or alternatively use REMOTE File Pointers direct, e.g.
REMOTEFILE
001 JBC__SOB JediInitREMOTE FILEX slim
or
001 JBC__SOB JediInitREMOTE \\slim\ShareName\FILEX slim
Note: Release 3.1 should allow ED \\slim\ShareName\FILEX via the jRFS mechanism.
Use RSELECT to execute select statement remotely. This will be determined automatically by Queries in Release 3.1, tunable via an environment variable.
RSELECT will check for both Dict and Data file being type REMOTE before invoking the select statement on the server otherwise the RSELECT will defer to normal SELECT action. Therefore if using direct Remote File Pointers ( i.e. JBC__SOB types) then you must define both DICT and DATA Remote File Pointers, e.g. REMOTEFILE and REMOTEFILE]D. For remote Q pointers this should be resolved automatically unless the DICT or DATA section is not remote.
When using RSELECT, by default it will use the internal Select command. This can be overridden if required by setting JBCNOINTERNAL to 1 as a system environment variable.
It appears that environment variables are only picked up by service processes after rebooting, so any change targeted for the jRFS service will require a reboot.
Access to NT via jRFS from Unix can be achieved by using same sort of ShareName format, although it uses forward slashes rather than backslashes.
e.g. REMOTEFILE ( File Pointer on UNIX)
001 JBC__SOB JediInitREMOTE //slim/ShareName/FILEX slim
Access to Unix via jRFS from Windows also allows access using the Samba demon configuration file if configured, e.g.
REMOTEFILE (File Pointer on Windows)
001 JBC__SOB JediInitREMOTE \\JACBOY1\SambaShareName\FILEX
To enable, set sambapath to samba configuration path in UNIX jrfs_config file, e.g.
sambapath=/usr/local/samba/lib/smb.conf