Online cataloging

5 views
Skip to first unread message

Rick Weiser

unread,
Dec 1, 2009, 5:36:27 PM12/1/09
to jBASE
Its been a while but I am having a problem with subroutines going live
on v4168 (win).

I am compiling from one account and running the subroutine from
another. Is there something special I need to do to get online
cataloging working?

Thanks,

Rick

Jim Idle

unread,
Dec 1, 2009, 6:56:06 PM12/1/09
to jb...@googlegroups.com
Is your environment set such that they are being CATALOGed to the same place and that the account name is not being included in the CATALOG?

Assuming that is so, then remember that a running program will not pick up a new version of a subroutine until the process stops and restarts, unless it has not yet loaded anything from the DLL in which your subroutine resides. By definition, if you have run that subroutine already and are now hoping to pick up a new version of it, then you will have laoded that DLL and the new version will not be picked up until you restart your program.

Strategies, in order of smartness:

1) Don't be stupid and don't CATALOG changes directly into a live system. Make a point release and change the login scripts to point to that so that as people log out and log back in, they pick up the new versions - then you can always go back in time by changing the environment variables back; You don't need to shutdown the app, just get people to log off and on when they need the new change and didn't do that. You can even be smarter than this and add a "LOGOFFflag" to your main loop. Then at a good point in menu navigation, you check the flag, issue a nice message to the user "Logging off to pick up new application changes", and then they just have to log in again - easy.
2) So, you don't want to tell users to do anything? Well, fair enough. In that case, go ahead and catalog into the live system you nutter. But, change your main menu/application selection/etc loop such that every say 20th time around the loop it just drops out and restarts the program instead of sitting there forever (this is actually a well proven strategy in computer design anyway, for other reasons). A few simple bits of programming and the users won't even know this has happened. However, next time you call the subroutine, it will pick up new ones automatically.
3) Err....
4) That's it

Jim
> --
> Please read the posting guidelines at:
> http://groups.google.com/group/jBASE/web/Posting%20Guidelines
>
> IMPORTANT: Type T24: at the start of the subject line for questions
> specific to Globus/T24
>
> To post, send email to jB...@googlegroups.com
> To unsubscribe, send email to jBASE-un...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/jBASE?hl=en



Rick Weiser

unread,
Dec 1, 2009, 8:49:52 PM12/1/09
to jBASE
Thanks, Jim.

I am not cataloging into a live system. I am porting our newest
version to jBASE 41 and I am tring to get all the issues taken care
of. But when I catalog the subroutines, I don't get the changes. I
am running from TCL so I should be good. Here is my setup:

Account where I compile and catalog the programs (subroutines):

JBCPORTNO : Not Set
JBCRELEASEDIR : 'C:\jbase4\4.1'
JBCGLOBALDIR : 'C:\jbase4\4.1'
JBCDATADIR : 'c:\designbais\ba\DBI'
HOME : 'c:\DesignBais\BA\DBI'
JEDIFILEPATH : 'C:\DESIGNBAIS\BA\DBI'
JEDIFILENAME_MD : 'C:\DESIGNBAIS\BA\DBI\MD]D'
JEDIFILENAME_SYSTEM : 'c:\jbasehome\SYSTEM'
RELEASE Information : Major 4.1 , Minor 6.8 , Patch 6116
(Change 79906)
Spooler dir (JBCSPOOLERDIR) : 'c:\designbais\ba\DBI\jspooler'
WARNING: Cannot access Spooler directory 'c:\designbais\ba\DBI
\jspooler', error 2
JBCEMULATE : Not Set
TEMP file path : 'C:\WINDOWS\TEMP\'
Object path (JBCOBJECTLIST) : 'C:\DESIGNBAIS\BA\DBI\LIB'
VC++ Registry : Version 7; Path C:\Program Files
\Microsoft Visual Studio .NET 2003\VC7
jBASE Compiler Run-time : 'C:\jbase4\4.1\config\system.properties'
Program dir (JBCDEV_BIN) : 'C:\DESIGNBAIS\BA\DBI\BIN'
Subroutine dir (JBCDEV_LIB) : 'C:\DESIGNBAIS\BA\DBI\LIB'

Account where I run the application:

JBCPORTNO : Not Set
JBCRELEASEDIR : 'C:\jbase4\4.1'
JBCGLOBALDIR : 'C:\jbase4\4.1'
JBCDATADIR : 'c:\designbais\data\DBI.DEMO'
HOME : 'c:\designbais\data\DBI.DEMO'
JEDIFILEPATH : '.;C:\JBASEHOME\MVNET'
JEDIFILENAME_MD : 'c:\designbais\data\DBI.DEMO\MD'
MD file is (DICT) : 'c:\designbais\data\DBI.DEMO\MD]D'
JEDIFILENAME_SYSTEM : 'c:\jbasehome\SYSTEM'
RELEASE Information : Major 4.1 , Minor 6.8 , Patch 6116
(Change 79906)
Spooler dir (JBCSPOOLERDIR) : 'c:\designbais\data\DBI.DEMO\jspooler'
WARNING: Cannot access Spooler directory 'c:\designbais\data\DBI.DEMO
\jspooler', error 2
JBCEMULATE : Not Set
TEMP file path : 'C:\WINDOWS\TEMP\'
Object path (JBCOBJECTLIST) : 'c:\designbais\data\DBI.DEMO\lib;c:
\designbais\ba\DBI\lib;C:\JBASEHOME\MVNET\LIB'
VC++ Registry : Version 7; Path C:\Program Files
\Microsoft Visual Studio .NET 2003\VC7
jBASE Compiler Run-time : 'C:\jbase4\4.1\config\system.properties'
Program dir (JBCDEV_BIN) : 'c:\designbais\data\DBI.DEMO\bin'
Subroutine dir (JBCDEV_LIB) : 'c:\designbais\data\DBI.DEMO\lib'


The bin and lib directories in the DBI.DEMO account have no entries.

Thanks for your help.

Rick

Rick Weiser

unread,
Dec 1, 2009, 8:53:07 PM12/1/09
to jBASE
Ok, I was able to logoff and log back on and saw the change. Is there
a way to force the reload of the DLL from TCL without logging off and
back on?

Jim Idle

unread,
Dec 1, 2009, 11:26:46 PM12/1/09
to jb...@googlegroups.com
Switch to sh mode will do it I think. Remember that jsh is a BASIC program in the main and so it is the same as having a main program running. In development it is easiest not to run from jsh, or at least keep a separate cmd window that you can just start up your program from if you like working with jsh. Personally I load cygwin and use bash.
Reply all
Reply to author
Forward
0 new messages