Forms Heartbeat

From: bmw <bwoods_at_starvision.com>
Date: Fri, 22 Oct 1999 11:12:25 -0700
Message-ID: <3810A909.DD1A9422_at_starvision.com>



Hi,

I have a Forms45 client running on WinNT through the jinitiator web interface, and talking to a Solaris server. Our system only allows a user to have one session. The client code does this:

  • find out how many times I am logged in SELECT COUNT(USERNAME) INTO v_Count FROM V$SESSION WHERE USERNAME = v_login AND STATUS <> 'KILLED';

If the PC is crashed, reboots and tries to reconnect, the code detects that (s)he is still logged in from the previous session and disallows the login. It takes Forms anywhere from 15 min to 1/2 hour before it realizes the previous session is gone, and the client can establish a new session. If you go into Oracle directly and update the status to 'KILLED', the client can reconnect right away.

I consulted the Oracle FAQ and support site and found out about the Forms Hearbeat event. I set the FORMS45_TIMEOUT variable to "03" (the minimum value) and reran the server. However, it still takes forms at least 15 minutes to clean up.

Does anyone have any experience with this - is the hearbeat the way to go or is there something else to try?

S91dbform contains:

[snip]

FORMS45_TIMEOUT=03   if [ ! -f $ORA_HOME/bin/f45ctl -o ! -d $ORA_HOME ] then

        echo "Oracle Form startup: cannot start"
        exit

fi
case "$1" in
        'start')
                # Start the Oracle Form server:
                su - $ORA_OWNER -c "(setenv ORACLE_HOME $ORA_HOME; \
                                setenv LD_LIBRARY_PATH $LD_LIBRARY_PATH;
\
                                setenv ORA_NLS33 $ORA_NLS33; \
                                setenv DISPLAY 0:0; \
                                setenv FORMS45_PATH $FORMS45_PATH; \
                                setenv FORMS45_TIMEOUT $FORMS45_TIMEOUT;
\
                                $ORA_HOME/bin/f45ctl start &)"
                ;;

[snip]

Thanks much for any advice! Received on Fri Oct 22 1999 - 20:12:25 CEST

Original text of this message