Salesforce

DBI from PAS MSAgent keeps growing

« Go Back

Information

 
TitleDBI from PAS MSAgent keeps growing
URL Namedbi-from-pas-agent-keeps-growing
Article Number000195073
EnvironmentProduct: OpenEdge
Version: 11.7x, 12.x
OS: All supported platforms
Other: PASOE MSA AS-ADMIN
Question/Problem Description
PASOE agent DBI file is continuously growing causing disk space problems.
DBI from PAS MSAgent keeps growing beyond GB in size causing additional delays when terminating the MSA
The process using these files is the PAS Agent not to the PAS Agent Sessions. 
DBI files continue to grow when the load on the PAS appserver is low (only 1 or 2 calls per second) 
When there are no open transactions on the database the DBI file continues to grow around 5 minute intervals
What is causing the large DBI files from the MSA ?
Steps to ReproduceSend a PING request in a loop: http://hostname\:port/web/ping

Send simple call in a loop:

/* client.p */
DEFINE VARIABLE sh AS HANDLE NO-UNDO.
CREATE SERVER sh.
sh:CONNECT("-URL https://localhost:8811/apsv -sessionModel Session-free -nohostverify").
RUN VALUE("server.p") ON SERVER sh.

/* Server.p */
BLOCK-LEVEL ON ERROR UNDO, THROW.
MESSAGE "Called the Server".
Clarifying Information
Every transaction is finished within a few hundred milliseconds. 
There is nothing scheduled what every 5 minutes calls the appserver, it seems to be an internal pasoe process causing DBI growth
Agent startup parameters: -T /temp -t -Bt 20000 -tmpbsize 8 

When the MSAgent is stopped logs with logentrytype temp-tables:3 or -tttablerangesize / -ttindexrangesize with ttStats enabled shows the AS-ADMIN process deleting Temp-Tables and the DBI file is eventually removed:
AS-Admin TEMP-TABLE Deleted TEMP-TABLE _AgentStatHist (ID:1 DYNAMIC) stopAgent OpenEdge.ApplicationServer.AgentManager 
AS-Admin TEMP-TABLE Deleted TEMP-TABLE _AgentThread (ID:2 DYNAMIC) stopAgent OpenEdge.ApplicationServer.AgentManager 
AS-Admin TEMP-TABLE Deleted TEMP-TABLE _AgentSession (ID:3 DYNAMIC) stopAgent OpenEdge.ApplicationServer.AgentManager 
AS-Admin TEMP-TABLE Deleted TEMP-TABLE _AgentConnection (ID:4 DYNAMIC) stopAgent OpenEdge.ApplicationServer.AgentManager 
AS-Admin TEMP-TABLE Deleted TEMP-TABLE _AgentRequest (ID:5 DYNAMIC) stopAgent OpenEdge.ApplicationServer.AgentManager

 
If on Unix like platform with -t enabled, the DBI files are visible. Without enabling 4GLTrace, the DBI files owner process can be determined by the file name. (Note: this format is a convention OpenEdge uses for now(as of version 12.8), it might be changed in the future.) The file name should be like:
DBIthreadid_sessionNumXXXXXX
Where:
           threadid is some number,
           sessionNumber is the ABL Session number (e.g., 4 for AS-4, 7 for AS-7). You can identify the AS-Admin temp-table db file name because its sessionNumber will always be 3. And,
XXXXXX gets replaced by the OS with something random when the file name is created (trying to guarantee a unique name).
Error Message
Defect Number
Enhancement Number
Cause
This is functioning as currently designed and will require a feature enhancement otherwise.

The DBI file is the Admin Session's temp-table (it owns the _AgentRequest table)
Request metrics are stored in a temp-table and as the number of requests increases, so will the DBI file for the AS-Admin session.
There's no way to delete the _AgentRequest temp-table.
Resolution
This is the Admin Session's temp-table (it owns the _AgentRequest table). 

1.  Trim the PASOE MSAgent 2.  Periodically flush records from the Admin Session's temp-table by clearing the collected metrics (since 11.7.5)
  • The JMX query will not reduce the current size of the DBI file, but it will prevent it from growing further until the space becomes filled again with request records. 
a. Put the query into a file: agentStatData.qry and fill in the with the pid of the agent process:
{"O":"PASOE:type=OEManager,name=AgentManager","M":["clearAgentStatData","AGENT_PID"]} 
 
b. bin/oejmx.sh -Q agentStatData.qry -O .\agentStatData.out

c. TEST -- run millions of requests and watch the DBI file grow, then apply the jmx and watch it stop growing as millions more requests are run.

Alternatively use the REST API via OEMANAGER using a DELETE HTTP request against the OEMANAGER URL endpoint :
DELETE /oemanager/applications/{appName}/agents/{agentID}/agentStatData
Workaround
Notes
Keyword Phrase
Last Modified Date4/10/2024 8:14 PM

Powered by