search cancel

Message CAS9810E issued

book

Article ID: 252556

calendar_today

Updated On:

Products

COMMON SERVICES FOR Z/OS Top Secret ACF2 - DB2 Option

Issue/Introduction

We had some new DB2 AUTHIDs added to the system, and began receiving excessive messages like the following:

ACF04056 ACCESS TO RESOURCE DSNPHXP001.HXTRDMPTNRESV TYPE DTBL BY 
L2YP003 NOT AUTHORIZED                                            
ACF04056 ACCESS TO RESOURCE DSNPHXP001.HXTRDMPTNRESV TYPE DTBL BY 
L2YP003 NOT AUTHORIZED                                            

We then started receiving the following message:

CAS9810E - ENF/DB2 Thread table full for DSNP  

This caused some batch jobs to fail. By the time we issued the DB2STAT command the usage had dropped.

The DB2STAT command returned the following information:

F ENF,DB2STAT                                     
CAS9214I - CA-ENF Command: DB2STAT 483            
CAS9808I - DB2    TOTAL STRINGS    %     % HWM    
CAS9808I - SUBS   ALLOC    FREE  IN USE  IN USE   
CAS9809I - DSNP   2,100   1,436   31.61   98.38   
CAS9240I - DB2STAT  - Command complete        
  • How would we go about increasing the values involved here
  • What would get updated in the ENF PARMS
  • What would be the ramifications of increasing this value

Environment

Product: Common Services and Components for z/OS
Component: ENF/DB2
Release : 15.0

Cause

Based on the information it appears as though the situation was temporary and had resolved itself.

When ENF/DB2 initializes in a DB2 region, a thread table is built. The size of the thread table is based on the MAXTHRD value. If not defined in ENFPARMS, the default allows 2100 entries in the table.

If ENF/DB2 is unable to add an entry to the thread table because it is full, ENF/DB2 passes back a non-zero return code on the request.  This will result in the security request failing, as witnessed by the failed batch jobs.

An entry is placed in the thread table the first time a particular token is "seen"(at the first security call for the thread) and is cleaned up when the DB2 thread completes.

The most likely reason for the table filling up is that a volume of work is occurring at a high rate, and new threads are starting at a faster rate than they are completing.

The ENF/DB2 thread table entries consist of:

  • a DB2 thread token
  • the TCB address of the request
  • the address of the routine for processing
  • the address of a work area that is passed between routines

 

Resolution

It may be possible that no action is warranted if this is a one-off situation. However, if the CAS9810E message is seen regularly, it is recommended that the size of the thread table be increased.

You may increase the value up to a max 9999. While this value can be dynamically changed, you would have to recycle the DB2 region(s) to actually make a difference as the thread table is built during initialization.

The command to increase the size is - F ENF,DB2(MAXTHRD,nnnn)

Note: Remember to make the update in the ENFPARMS member so that the setting is picked up when ENF normally starts up.

Additional Information

Related Documentation: CAIENF/DB2 Control Options