Considerations and Configuration for using a Daemon

A daemon is required for Adabas Fastpath and Adabas Transaction Manager and is optional for Adabas SAF Security. There are other reasons for using a daemon:

As you will see, the daemon is a critical component and a failure can have a serious effect on the whole system. You can prevent a daemon failure by configuring your daemon jobs to use continuous operation.


Single-seat current activity displays

You can define jobs to send activity pulses to their local daemon, enabling current activities to be displayed for any appropriately defined job.

Daemon configuration

Single-seat current activity displays are only possible if the daemon is defined to use shared memory:

Run-mode: Daemon (node 2650)                                                
Group: WORKSHOP   Daemon: ICFDCOR5   SVC: 254   Node: 2650    System: Multi 
  Recovery                                                                  
    Continuous Operation (Y/N).......: Y                                    
  Daemon latency/pulse services                                             
    Shared memory area size (k)......: 100000      Minimum (k): 0_______    
           Dataspace name (if used)..: #COR5DSP

Here we specify that a 100 megabyte dataspace is to be used. If no dataspace name is specified, the memory is taken from ECSA for z/OS, ESVA for z/VSE or the specified common memory pool for BS2000. When using ECSA or ESVA a minimum size may also be specified.

The shared memory area size required is dependent on a number of factors: the products you have installed, the work profile of your applications, the number of sessions. As a rule of thumb, start off at 2k per session and monitor shared memory usage with the DRES daemon operator command.

If a session is unable to allocate shared memory, it will operate as normal but you will not be able to view its current activities.

Client configuration

You must also specify that activity pulsing is required in the client runtime controls of each job:

Activity pulse every.....: 5000___ commands or 60___ seconds             
Group name...............: WORKSHOP   Daemon connection messages (Y/N): N

The above controls define how frequently sessions in the job should update their shared memory area (in this example every 5000 commands or 60 seconds) and also the group name of the local daemon to which activity pulses will be sent.

Single-system dynamic transaction routing

Adabas System Coordinator and its associated products need to maintain context information about client sessions. In some systems – UTM, IMS and CICS/MRO - client sessions can "jump" from one job to another and Adabas System Coordinator must ensure that the context information “jumps” with them. This is achieved by using daemon latency. This means that the daemon holds the context information for all sessions – either in daemon local memory, shared memory or on the COLAT disk file. For optimum performance and recoverability, Software AG recommends the use of shared memory and continuous operation.

Daemon configuration

The daemon should be defined to use continuous operation and shared memory:

Run-mode: Daemon (node 2650)                                                
Group: WORKSHOP   Daemon: ICFDCOR5   SVC: 254   Node: 2650    System: Multi 
  Recovery                                                                  
    Continuous Operation (Y/N).......: Y                                    
  Daemon latency/pulse services                                             
    Shared memory area size (k)......: 600000      Minimum (k): 0_______    
           Dataspace name (if used)..: #COR5DSP                             

Here we specify that a 600 megabyte dataspace is to be used. If no dataspace name is specified, the memory is taken from ECSA for z/OS, ESVA for z/VSE or the specified common memory pool for BS2000. When using ECSA or ESVA a minimum size may also be specified.

The shared memory area size required is dependent on a number of factors: the products you have installed, the work profile of your applications, the number of sessions. As a rule of thumb, start off at 50k per session and monitor shared memory usage with the DRES daemon operator command.

If a session is unable to allocate shared memory, the daemon will use its local memory. However, daemon local memory is not recoverable in the event of a daemon restart and so its use should be avoided if possible.

Client configuration

Define the job as one of the DTR types, which enforce Daemon latency:

Type: CICS (DTR)   Name: WKS-DTR_                                          
  Operation: Normal autodetect: X Enable without products: _ Disable all: _
  API runtime overrides....: N (Y/N)    Threadsafe operation...: N (Y/N)   
  Use additional exits.....: N (Y/N)                                       
  Maximum idle time (sec)..: 300_______ Non-terminal idle time.: __________
  Generate RSP009/79 (Y/N).: Y (until 0_________ seconds elapse)           
  Messages - Local.........: Console Y and/or DDMSG file _                 
        Or - Daemon routing: _                                             
  Latency - Local (Y/N)....: N                                             
                                                                           
  Latency - Daemon (Y/N)...: Y                                             
            to disk........: N                                             
  Activity pulse every.....: _______ commands or _____ seconds             
  Group name...............: WORKSHOP   Daemon connection messages (Y/N): N

and specify the group name of the daemon.

Multi-system dynamic transaction routing

Adabas System Coordinator and its associated products need to maintain context information about client sessions. In some systems – CICSPlex for example - client sessions can “jump” from one system image to another and Adabas System Coordinator must ensure that the context information "jumps" with them. This is achieved by using a daemon in every system image together with a common daemon latency file.

The latency file must be formatted using job CORI040 and should use Adabas device type 8390. The required file size depends on the products you have installed, the work profile of your applications and the number of sessions. As a rule of thumb, allocate 1 cylinder for every 10 sessions. This latency file must be allocated (as COLAT) to each daemon in the group.

Daemon configuration

The daemon group should be defined to use a disk file:

17:23:35                   Modify                    2015-02-06 
                  System Coordinator Group           C11230M1   
                                                                
           Group Name: WORKSHOP      SVC ID: 254__              
                                                                
  System Type: _  Standard single-system image...               
   (Mark one)     There is only one daemon in the group.        
               X  Standard multi-system images - XCF...         
                  This enables multiple XCF group daemons.      
               _  Standard multi-system images - Net-Work...    
                  This enables multiple Net-Work group daemons. 
                                                                
  Group wide latency service:                                   
    Full crash recovery disk file (Y/N): Y                      
                                                                
                                                                
                                                                
                                                                
                                                                
Command ==>                                                     
    PF1 Help         PF3 Exit       PF5 Upd        PF9 More     

The daemon should be defined to use continuous operation. Shared memory is not required for daemon latency, however you may still define it to allow activity pulsing:

Run-mode: Daemon (node 2650)                                                
Group: WORKSHOP   Daemon: ICFDCOR5   SVC: 254   Node: 2650    System: Multi 
  Recovery                                                                  
    Continuous Operation (Y/N).......: Y                                    
  Daemon latency/pulse services                                             
    Shared memory area size (k)......: 100000      Minimum (k): 0_______    
           Dataspace name (if used)..: #COR5DSP                             

Client configuration

Define the job as one of the DTR types, which enforce Daemon latency:

Type: CICS (DTR)   Name: WKS-DTR_                                          
  Operation: Normal autodetect: X Enable without products: _ Disable all: _
  API runtime overrides....: N (Y/N)    Threadsafe operation...: N (Y/N)   
  Use additional exits.....: N (Y/N)                                       
  Maximum idle time (sec)..: 300_______ Non-terminal idle time.: __________
  Generate RSP009/79 (Y/N).: Y (until 0_________ seconds elapse)           
  Messages - Local.........: Console Y and/or DDMSG file _                 
        Or - Daemon routing: _                                             
  Latency - Local (Y/N)....: N                                             
                                                                           
  Latency - Daemon (Y/N)...: Y                                             
            to disk........: Y                                             
  Activity pulse every.....: _______ commands or _____ seconds             
  Group name...............: WORKSHOP   Daemon connection messages (Y/N): N

and specify Y for "to disk" and the group name of the daemons.