1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

4gl Brokers

Discussion in 'Database Admin' started by Jack@dba, Nov 14, 2017.

  1. Jack@dba

    Jack@dba Member

    HI,

    I would like to know how may 4Gl servers are connected to database.
    Please find attached screen shot for number of users and server process list.

    To avoid 748 error we are planning to monitor 4gl connection count from promon or using vst.
    Please let me know how to find this count.

    Version : 9.1e
    OS : AIX 5.3

    prdphx.pf

    *p-10030*:/prd/dba/etc/pf: more db_prdphx.pf
    #-------------------------------------------------------
    # OVERRIDE database broker parms for PRDPHX
    #-------------------------------------------------------
    # MAX USERS = Ma*Mn
    #-------------------------------------------------------

    -B 70000 # Number of Blocks in database buffer
    -bibufs 200 # Number of before-image buffers
    -aibufs 300 # Number of after-image buffers
    -Ma 13 # Max number of REMOTE clients per db server
    -Mn 50 # Max number of REMOTE client servers
    -Mpb 30 # Maximum Servers per Broker
    -n 1000 # Number of users
    -Mxs 32768 # Shared memory overflow size (override)
    -spin 4000 # Number of spin lock retries
    -L 1024000 # Lock Table entries



    Shared Resources:
    Busy After Image Extent: /progdata/prd/phxai/prdphx.a1
    Number of database buffers (-B): 70000
    Number of before image buffers (-bibufs): 200
    Number of after image buffers (-aibufs): 300
    Before-image file name (-g): -
    Before-image truncate interval (-G): 60
    No crash protection (-i): Not enabled
    Maximum private buffers per user (-Bpmax): 64
    Current size of locking table (-L): 1024000
    Locking table entries in use: 8
    Locking table high water mark: 10
    Maximum number of clients per server (-Ma): 13
    Delay of before-image flush (-Mf): 3
    Maximum number of servers (-Mn): 50
    Maximum number of users (-n): 1051
    Before-image file I/O (-r -R): Raw
    Shared memory version number: 9136
    Number of semaphores used: 1282

    RETURN - show remaining, U - continue uninterrupted, Q - quit:
    Broker status: Executing
    BI Writer status: Executing
    AI Writer status: Executing
    Watchdog status: Executing
    Number of page writers: 5
    Number of self-service users: 3
    Number of remote users: 1
    Number of servers: 2
    Number of shut-downs: 0
    Number of monitors: 1

    RETURN - repeat, U - continue uninterrupted, Q - quit:
     

    Attached Files:

  2.  
  3. Rob Fitzpatrick

    Rob Fitzpatrick ProgressTalk.com Sponsor

    For starters, you seems to be looking at two different databases, at least. Your promon screenshots show 2 brokers and 34 servers. The servers show a total of 191 remote users and the servers are configured for 15 clients per server (-Ma 15).

    Your text output from promon, shown above, shows -Ma 13, not 15. It shows 1 remote user, not 191. It shows 2 servers, not 34.

    As for your parameter list (is it prdphx.pf or db_prdphx.pf?), it shows -n 1000, whereas the promon text appears to indicate your database was started with -n 1050.

    It is important to know exactly which database you are looking at before examining promon or VST data.
     
  4. Jack@dba

    Jack@dba Member

    Sorry Rob wrongly attached other database.please find below

    Activity - Sampled at 11/14/17 11:13 for 9:14:24.

    Event Total Per Sec Event Total Per Sec
    Commits 363 0.0 Undos 0 0.0
    Record Updates 44 0.0 Record Reads 887938 26.6
    Record Creates 18 0.0 Record Deletes 8 0.0
    DB Writes 76 0.0 DB Reads 4522 0.1
    BI Writes 46 0.0 BI Reads 23 0.0
    AI Writes 44 0.0
    Record Locks 4538 0.1 Record Waits 1 0.0
    Checkpoints 0 0.0 Buffers Flushed 0 0.0

    Rec Lock Waits 0 % BI Buf Waits 0 % AI Buf Waits 0 %
    Writes by APW 94 % Writes by BIW 4 % Writes by AIW 6 %
    Buffer Hits 99 %
    DB Size 89 GB BI Size 4095 MB AI Size 64 K
    FR chain 1217 blocks RM chain 6923 blocks
    Shared Memory 648032 K Segments 5

    3 Servers, 8 Users (3 Local, 5 Remote, 3 Batch),5 Apws



    Locking table high water mark: 19
    Maximum number of clients per server (-Ma): 13
    Delay of before-image flush (-Mf): 3
    Maximum number of servers (-Mn): 50
    Maximum number of users (-n): 1051
    Before-image file I/O (-r -R): Raw
    Shared memory version number: 9136
    Number of semaphores used: 1282

    RETURN - show remaining, U - continue uninterrupted, Q - quit:
    Broker status: Executing
    BI Writer status: Executing
    AI Writer status: Executing
    Watchdog status: Executing
    Number of page writers: 5
    Number of self-service users: 3
    Number of remote users: 5
    Number of servers: 3
    Number of shut-downs: 0
    Number of monitors: 1

    RETURN - repeat, U - continue uninterrupted, Q - quit:


    11/14/17 Status: Servers
    11:14:45

    Sv Pend. Cur. Max. Port
    No Pid Type Protocol Logins Users Users Users Num

    0 638028 Login tcp 155 0 0 13 13064
    1 609344 Login TCP 0 0 0 5 -10533
    2 417664 Auto tcp 147 0 5 13 13131
    3 489134 Auto tcp 8 0 0 13 13431
    4 0 Inactive 0 0 0 0 0
     
  5. Rob Fitzpatrick

    Rob Fitzpatrick ProgressTalk.com Sponsor

    The promon Status: Servers screen (R&D | 1 | 3) shows information from the _Servers VST. It contains one record for each login broker and for each *possible* remote server, whether those servers have been spawned yet or not. Login brokers have a value of "Login" for _servers._server-type. The placeholder records for servers that are not yet running have a value of "Inactive".

    You could count servers and their remote users like this:
    Code (progress):
    1. define variable v-user-count   as integer no-undo.
    2. define variable v-server-count as integer no-undo.
    3.  
    4. for each dictdb._servers no-lock where _servers._server-type <> "Login"
    5.                                    and _servers._server-type <> "Inactive":
    6.   assign
    7.     v-server-count = v-server-count + 1
    8.     v-user-count   = v-user-count + _servers._server-currusers
    9.   .
    10. end.
    11.  
    12. display
    13.   "Current servers: " v-server-count skip
    14.   "Current users  : " v-user-count
    15.  with no-labels no-box.
    16.  
     

Share This Page