[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference clusta::acms

Title:ACMS comments and questions
Notice:This is not an official software support channel. Kits 5.*
Moderator:CLUSTA::HALLAN
Created:Mon Feb 17 1986
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:4179
Total number of notes:15091

4176.0. "10 second delay during image rundown with V4.2" by UTRTSC::WDEBAKKER (Feed your head) Mon Jun 02 1997 11:11

    Hello,
    
    A customer noticed something very peculiar after upgrading to
    OpenVMS Alpha V7.1 and ACMS V4.2 (from OpenVMS V6.2 / ACMS V4.1).
    It seems that imagerundown of a userwritten ACMS agent takes 
    about 10 seconds longer then it used to do. 
    I'll include an example program in .1
    It's a small testprogram that does just a ACMS$SIGN_IN,
    ACMS$INIT_EXCHANGE_IO, ACMS$TERM_EXCHANGE_IO and ACMS$SIGN_OUT.
    After completion of the program, the process waits about 
    10 seconds before the prompt is returned.
    Looking with SDA, it appears that the proces is doing an I/O to a
    mailbox ( termination mailbox presumably), but this MBA-device
    has a reference count of 1, so there is no 'other party' looking
    at this mailbox. I assume the I/O 's done with a timeout value
    of about 10 seconds, and after the timeout the image rundown
    is completed.
    What's even more strange, is that I cannot reproduce it on another
    system running OpenVMS V7.1 / ACMS V4.2, while on the first system
    this 10-seconds wait occurs always.
    Any ideas what could cause this? Who should read that mailbox.
    ACMS_SWL looks fine, events are logged normally.
    
    Cheers,
    Willem de Bakker
    
    
T.RTitleUserPersonal
Name
DateLines
4176.1example program for .0UTRTSC::WDEBAKKERFeed your headMon Jun 02 1997 11:14257
    
    IDENTIFICATION DIVISION.
    PROGRAM-ID.    tstacms.
    AUTHOR.        Peter Vermeulen.
    DATE-WRITTEN.  30-mei-1997.
    ********************************************************************************
    *
    *   Testprogramma met alleen ACMS$SIGN_IN en ACMS$SIGN_OUT.
    *
    ********************************************************************************
    ENVIRONMENT DIVISION.
    DATA DIVISION.
    WORKING-STORAGE SECTION.
    
    01  jpi$_username               PIC S9(04) COMP VALUE EXTERNAL
    jpi$_username.
    01  ss$_normal                  PIC S9(09) COMP VALUE EXTERNAL
    ss$_normal.
    
    ***
    *   Variabelen voor ACMS
    ***
    01  acms$_badagent              PIC S9(09) COMP VALUE EXTERNAL
    acms$_badagent.
    01  acms$_baduser               PIC S9(09) COMP VALUE EXTERNAL
    acms$_baduser.
    01  acms$_normal                PIC S9(09) COMP VALUE EXTERNAL
    acms$_normal.
    
    01  acms$_nosystem              PIC S9(09) COMP VALUE EXTERNAL
    acms$_nosystem.
    01  acms$_some_io_not_available PIC S9(09) COMP VALUE EXTERNAL
    acms$_some_io_no*
    01  acms$m_io_disable_tdms      PIC S9(09) COMP VALUE 4.
    01  acms$k_connect_id           PIC S9(04) COMP VALUE 3.
    01  acms$s_connect_id           PIC S9(04) COMP VALUE 8.
    01  acms$k_proc_procedure_id    PIC S9(09) COMP VALUE EXTERNAL
    acms$k_proc_proc*
    01  acms$k_proc_io_method       PIC S9(09) COMP VALUE EXTERNAL
    acms$k_proc_io_m*
    01  acms$k_proc_workspace_count PIC S9(09) COMP VALUE EXTERNAL
    acms$k_proc_work*
    01  acms$_invpackage            PIC S9(09) COMP VALUE EXTERNAL
    acms$_invpackage.
    01  acms$_nosuch_pkg            PIC S9(09) COMP VALUE EXTERNAL
    acms$_nosuch_pkg.
    01  acms$_nosuch_proc           PIC S9(09) COMP VALUE EXTERNAL
    acms$_nosuch_pro*
    01  acms$_invprocedure          PIC S9(09) COMP VALUE EXTERNAL
    acms$_invprocedu*
    01  acms$_ntsnin                PIC S9(09) COMP VALUE EXTERNAL
    acms$_ntsnin.
    01  acms$_opr_cancelled         PIC S9(09) COMP VALUE EXTERNAL
    acms$_opr_cancel*
    01  acms$_pending               PIC S9(09) COMP VALUE EXTERNAL
    acms$_pending.
    01  acms$_signin_noauth         PIC S9(09) COMP VALUE EXTERNAL
    acms$_signin_noa*
    01  acms$_srvdead               PIC S9(09) COMP VALUE EXTERNAL
    acms$_srvdead.
    01  acms$_srvnotfound           PIC S9(09) COMP VALUE EXTERNAL
    acms$_srvnotfoun*
    01  acms$_call_cancelled        PIC S9(09) COMP VALUE EXTERNAL
    acms$_call_cance*
    01  io_method                   PIC S9(09) COMP.
        88  acms$k_io_decforms                      VALUE EXTERNAL
    acms$k_io_decfor*
        88  acms$k_io_none                          VALUE EXTERNAL
    acms$k_io_none.
    
        88  acms$k_io_request                       VALUE EXTERNAL
    acms$k_io_reques*
        88  acms$k_io_terminal                      VALUE EXTERNAL
    acms$k_io_termin*
        88  acms$k_io_stream                        VALUE EXTERNAL
    acms$k_io_stream.
    
    01 acms_param.
        03 acms_id.
           05  call_id              PIC S9(18) COMP.
           05  connect_id           PIC S9(18) COMP.
           05  exchange_io_id       PIC S9(18) COMP.
           05  io_id                PIC S9(18) COMP.
           05  proc_id              PIC S9(18) COMP.
           05  submitter_id         PIC S9(18) COMP.
           05  comp_status.
               07 status1           PIC  9(09) COMP.
               07 status2           PIC  9(09) COMP.
    
    ***
    *   Velden voor vertalen logical SYS$ERROR tbv. bepalen terminal naam.
    ***
    01  trnlnm_item_list_sys_error.
        03  buffer_length           PIC S9(04) COMP VALUE 30.
        03  item_code               PIC S9(04) COMP VALUE 2.
    
        03  buffer_address          POINTER VALUE REFERENCE terminal_name.
        03  return_length_address   POINTER VALUE REFERENCE
    terminal_name_length.
        03  terminator              PIC S9(09) COMP VALUE 0.
    01  terminal_name               PIC X(30).
    01  terminal_name_descriptor.
        03  terminal_name_length    PIC S9(09) COMP.
        03  FILLER                  POINTER VALUE REFERENCE terminal_name.
    
    01  io_capabilities_flags       PIC S9(09) COMP.
    01  io_enable_flags             PIC S9(09) COMP.
    
    ***
    *   Itemlist bij aanroep van ACMS$INIT_EXCHANGE_IO voor bepalen
    CONNECT_ID
    ***
    01  init_exchange_io_item_list.
        03  buffer_length           PIC S9(04) COMP.
        03  item_code               PIC S9(04) COMP.
        03  buffer_address          POINTER.
        03  return_length_address   POINTER VALUE REFERENCE
    connect_id_length.
        03  terminator              PIC S9(09) COMP VALUE 0.
    01 connect_id_length            PIC S9(09) COMP.
    
    
    01  username                    PIC  X(12).
    01  ws_return_status            PIC S9(09) COMP.
    01  return_status               PIC S9(09) COMP.
    01  message_tekst               PIC X(256).
    01  message_lengte              PIC  9(04) COMP.
    01  display_status              PIC  9(09).
    01  sign_out_cancel_flag        PIC  9(09) COMP VALUE 1.
    
    01 iss0001l.
       03 iss_messg_sevrt           PIC X(01).
       03 iss_messg_tekst           PIC X(80).
    
    
    PROCEDURE DIVISION.
    hoofd SECTION.
    begin.
    
        DISPLAY "Start of Program".
    
        CALL "lib$getjpi" USING
            BY REFERENCE  jpi$_username
    
           OMITTED
            OMITTED
            OMITTED
            BY DESCRIPTOR username
            OMITTED
            GIVING        return_status.
        IF return_status IS FAILURE
        THEN
            CALL "lib$stop" USING
                BY VALUE return_status
        END-IF.
    
        CALL "sys$trnlnm" USING
            OMITTED
            BY DESCRIPTOR "LNM$PROCESS_TABLE"
            BY DESCRIPTOR "SYS$ERROR"
            OMITTED
            BY REFERENCE  trnlnm_item_list_sys_error
            GIVING        return_status.
        IF return_status IS FAILURE
        THEN
            CALL "lib$stop" USING
    
                BY VALUE return_status
        END-IF.
    
        CALL "acms$sign_in" USING
            BY REFERENCE  submitter_id IN acms_id
            BY DESCRIPTOR username
            BY DESCRIPTOR terminal_name
            OMITTED
            OMITTED
            GIVING        return_status.
        IF return_status NOT = acms$_normal
        THEN
            CALL "lib$stop" USING
                BY VALUE return_status
        END-IF.
    
        DISPLAY "ASCM$SIGN_IN success".
    
    ***
    *   Put adress of 'connect_id' in itemlist
    'init_exchange_io_item_list'.
    ***
        SET buffer_address IN init_exchange_io_item_list
    
                TO REFERENCE OF connect_id IN acms_id.
    ***
    *   Disable TDMS.
    ***
        MOVE acms$m_io_disable_tdms TO io_enable_flags.
    
    ***
    *   Setup Itemlist for getting CONNECT_ID
    ***
        MOVE acms$s_connect_id TO buffer_length OF
    init_exchange_io_item_list.
        MOVE acms$k_connect_id TO item_code     OF
    init_exchange_io_item_list.
    
    ***
    *   Use ACMS exchange IO.
    ***
        CALL "acms$init_exchange_io" USING
            BY REFERENCE submitter_id    IN acms_id
            BY REFERENCE exchange_io_id  IN acms_id
            BY REFERENCE io_enable_flags
            BY REFERENCE init_exchange_io_item_list
            BY REFERENCE io_capabilities_flags
            GIVING       return_status.
    
        IF return_status NOT = acms$_normal AND
           return_status NOT = acms$_some_io_not_available
        THEN
            CALL "lib$stop" USING
                BY VALUE return_status
        END-IF.
    
        DISPLAY "ACMS$INIT_EXCHANGE_IO success".
    
        CALL "acms$term_exchange_io" USING
            BY REFERENCE exchange_io_id IN acms_id
            GIVING       return_status.
        IF return_status NOT = acms$_normal
        THEN
            CALL "lib$stop" USING
                BY VALUE return_status
        END-IF.
    
        DISPLAY "ACMS$TERM_EXCHANGE_IO success".
    
        CALL "acms$sign_out" USING
            BY REFERENCE submitter_id IN acms_id
    
            BY REFERENCE sign_out_cancel_flag
            GIVING       return_status.
        IF return_status NOT = acms$_normal
        THEN
            CALL "lib$stop" USING
                BY VALUE return_status
        END-IF.
    
        DISPLAY "ACMS$SIGN_OUT success".
    
        DISPLAY "End of Program".
    
    eind.
        STOP RUN.
    
    END PROGRAM tstacms.
    
    
4176.2ACMS::HALLBill Hall - ACMS Engineering - ZKO2-2Mon Jun 02 1997 15:439
    
    	It has something to do with the deletion of the network object.
    	If you remove NODE_NAME from ACMSGEN, and run your test agent,
    	it will exit immediately.
    
    	We ran into the same problem with ACC shutting down.
    
    	Bill
    
4176.3Yes, NODE_NAME is the oneUTRTSC::WDEBAKKERFeed your headTue Jun 03 1997 04:3019
    
    Thanks, Bill
    We've been looking in all kind of places but the difference 
    is indeed with the NODE_NAME.
    I have some additional questions about this topic, because this
    'feature' was introduced with V4.2
    - Is this problem already being worked on, and/or is a solution
      at hand?
    - Are there other places within ACMS where this deletion of the
      network object could cause delays?
    - Does the workload have any effect, in the way that if many
      users are exiting they have to wait on each other, so that
      the delay may get longer than 10 seconds?
    The reason I ask is that the customer will have to decide next
    Thursday if they'll upgrade ACMS to V4.2, or if they'll have
    to postpone it.
    
    Thanks,
    Willem
4176.4OHMARY::HALLBill Hall - ACMS Engineering - ZKO2-2Tue Jun 03 1997 10:0425
    
    	Engineering has looked at this problem but we cannot figure
    	out why it behaves the way it does.  The information we
    	get out of DECnet is that 'nothing has changed' but as
    	you can see 'something HAS changed'.
    
    	For the other questions you have, we do not have answers.
    	We do know that system speed does not seem to affect
    	it, it takes 10 seconds on a DEC3000 workstation and
    	an 8200 Alphaserver.
    
    	The ACC problem has been known for a while but we didn't
    	think it to be a big thing.  The agent problem is probably
    	going to be something we have to look at.  We noticed
    	during our testing that the Ri agent (which is really
    	a single threaded agent) also exhibited the same 
    	behaviour and originally caused us some concern that
    	there was an overall performance problem.  It turned
    	out that this delay caused some problems in our
    	loadtests in that while a terminal ran this test,
    	it couldn't run others until the agent code returned.
    
    	We are looking further into the problem.
    
    	Bill
4176.5Would an IPMT help?UTRTSC::WDEBAKKERFeed your headWed Jun 04 1997 05:2512
    
    Bill,
    
    Do you want me to file an IPMT for this case?
    The customer does want to have this tracked down.
    Tomorrow they'll have to decide whether to go with ACMS V4.2 /
    VMS V7.1 or to stay where they are for the moment.
    I realize that's of course not possible to have a fix by then,
    but this delay will generate a lot of complaints from users, and
    they will want to have this solved as soon as possible.
    
    Willem
4176.6OHMARY::HALLBill Hall - ACMS Engineering - ZKO2-2Wed Jun 04 1997 09:5412
    
    	If it's a customer problem, then file an IPMT case, but at
    	priority 3.  We are already investigating the problem.  It
    	somewhere within VMS or some common interface between
    	VMS and DECnet since it behaves the same way with DECnet
    	Phase IV and DECnet/OSI.
    
    	The customer can go to ACMS V4.2 and stay with whatever version
    	of VMS they are currently on (probably VMS 6.2?).  The
    	problem only occurs on OpenVMS Alpha V7.1.
    
    	Bill
4176.7OK, will doUTRTSC::WDEBAKKERFeed your headWed Jun 04 1997 10:117
    
    OK, I'll file a level 3 case.
    Upgrading just ACMS is not an option here.
    By the way, does the problem not exist on the VAX platform?
    I have no opportunity to test it here.
    Thanks,
    Willem
4176.8OHMARY::HALLBill Hall - ACMS Engineering - ZKO2-2Wed Jun 04 1997 10:468
    
    The problem on occurs on OpenVMS Alpha V7.1.  It shows up in
    ACMS V4.2 since that's the only version that runs on that
    version of VMS.  I suspect that if we re-linked ACMS V4.1
    on that version of VMS we'd see the same problem.
    
    Bill