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

4gl Brokers

#1
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:
 

Attachments

Rob Fitzpatrick

ProgressTalk.com Sponsor
#2
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.
 
#3
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
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
#4
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:
define variable v-user-count   as integer no-undo.
define variable v-server-count as integer no-undo.

for each dictdb._servers no-lock where _servers._server-type <> "Login"
                                   and _servers._server-type <> "Inactive":
  assign
    v-server-count = v-server-count + 1
    v-user-count   = v-user-count + _servers._server-currusers
  .
end.

display
  "Current servers: " v-server-count skip
  "Current users  : " v-user-count
 with no-labels no-box.