Banyan Vines Session Terminates Early

From OS2World.Com Wiki
Jump to navigation Jump to search

Return to The Warp Pharmacy:Software

Last update: 10th February, 1996

Symptoms

After logging into the Banyan Vines Server, the session is terminated without reading profile.

Hardware

This so far has occurred on Dell's IBM and some Clones.

Problem

While trying to login to a Banyan Vines Server an Error occurs COM:104 Which means...

COM104 - OUT OF HEAP SPACE.

  The tasking system within the service could not obtain
  sufficient memory to perform the request.  If this error
  occurs consistently, there may be a problem with the service.

Procedure

Instead of using the command ban.exe command to run the login program. Do the following:

Create an OS/2 Session icon and put the program name C:\VINES\BAN.EXE /NL Assuming your Vines directory is c:\vines.

This will load the Banyan Drivers and activate the z:\ drive.

Then Create another OS/2 icon and call it LOGON.CMD. In this file put the following program in it.

/* This program will clear the environment vars from a OS/2 Session */
/* Then it will check to see if you have the already executed the ban.exe */
/* program, if so it will reset the environment and run login.exe otherwise */
/* it will run ban.exe with the parameter of /NL for no login then it will */ 
/* run the same code as above                                             */

call RxFuncAdd 'Sysloadfuncs', 'RexxUtil', 'Sysloadfuncs'
call sysloadfuncs
Call SysCls 

say "Enter your Login ID:" 

pull logid

map=sysdrivemap('Z:',REMOTE)
if map <>'Z:' THEN 
  do
    "C:\VINES\BAN.EXE /NL"
     map=sysdrivemap('Z:',REMOTE)
  end
IF MAP='Z:' THEN
  DO
    SAY "Verifying that LOGIN.EXE exists on the Z:\ drive"
  rc=sysfiletree("Z:\LOGIN.EXE",STUFF.0,F,,)
  SELECT
    WHEN rc=0 THEN 
      DO
        env='OS2ENVIRONMENT'
        RCV= VALUE('PROMPT','',ENV)
        RCV= VALUE('PATH','',ENV)
        RCV= VALUE('DPATH','C:\OS2\SYSTEM',ENV)
        RCV= VALUE('HELP','',ENV)
        RCV= VALUE('AUTOSTART','',ENV)
        RCV= VALUE('BOOKSHELF','',ENV)
        RCV= VALUE('SOMIR','',ENV)
        "Z:\LOGIN.EXE" logid
        "exit"
      end
  WHEN RC=1 THEN 
     DO
      SAY "HEY DUMMY YOU'RE ALREADY LOGGED IN TO THE NETWORK"
      CALL SysSLEEP 15
      "EXIT"
     end
    Otherwise
     DO
      SAY "NOT ENOUGH MEMORY"
      CALL SysSLEEP 15
      "EXIT"
     END
  end /* end select */
END /* end if */

Notes

What the problem is, is the LOGIN.EXE program is calling the routines necessary to login and validate you on the system. While doing this, it copies the current environment to the LOCAL HEAP. BAD idea, Anyhow, What this program does and wipe out the environment vars for that OS/2 Session and then RUNs the z:\login.exe program.

It works Great!!!!!!

Any questions ??? Send a note to jafrank@ibm.net or jfranklin@fdic.gov

By John Franklin

Return to The Warp Pharmacy:Software