Expected events not captured
Work out why expected events have not been received by an event consumer.
Here are some possible reasons why expected events are not
captured:
- Check that Event Processing (EP) is started with the CEMT
INQUIRE EVENTPROCESS command. When the status is not ‘started'
then set it to ‘started' and try to capture the events
again.
You can also use CICS Explorer® or the CICSPlex® SM Web User Interface to check that EP is started.
- Using the event binding editor, find the names of the EVENTBINDING and CAPTURESPEC that are intended to capture the events. Also note the capture points used.
- Check that the event binding is active with the CEMT
INQUIRE EVENTBINDING command. When the EVENTBINDING is not
installed, it might be that the installation failed. Check the CICS® message log for message DFHEC1003,
which is present for each event binding that fails to install. The DFHEC1003 message
is typically preceded by another message describing the cause of the
failure. In that case, correct the EVENTBINDING, redeploy the bundle
containing it and try to capture the events again.
You can also use tCICS Explorer or the CICSPlex SM Web User Interface to check event bindings.
- Obtain the CAPTURESPEC statistics. Check the count of events for the CAPTURESPEC concerned. When the count shows that the required number of events are being captured, see Captured events missing.
- Obtain a level 1 and 2 trace for EC, and search it for the capture
points where events are required. The best way to search depends on
the situation. One approach is to search the trace for
ECEC ENTRYtrace records for the required capture point, for exampleCMD-POST(PUT_CONTAINER)that are followed byECEC EXITtrace records withEVENTS(0). - When the required capture point has no
ECEC ENTRYtrace records, obtain a dump formatted forECto check that the required CAPTURESPEC entryECCS:is present. If theECCS:entry is not present, the capture specification is missing from the event binding. Edit the event binding to add it, redeploy the bundle containing it, and try to capture the events again. When the required CAPTURESPEC entry is present the application program is probably not reaching the expected capture points and you must review the program and redesign your event bindings appropriately. You can check this situation by using level 2 trace for the EI component, the CICS execution diagnostic facility (CEDF), or both. - When
ECEC ENTRYtrace records for the required capture point are present, work through theECEC EVENTtrace records to find the record withPREDICATE_FALSE. The record withPREDICATE_FALSEexplains why no event was captured at this capture point. All predicates must be true for an event to be captured. - When system events are missing, check the CICS message log for messages DFHEC1023 and DFHEC1024. Transactional and synchronous event emission is not supported for system events.
- When unhandled transaction abend system events are missing, check that the abend is not getting handled for you by CICS. For example, any commands issued from CECI are caught by the EXEC CICS HANDLE ABEND issued by the CECI transaction at the start of the session. Similarly, abends in CICS initialization and shutdown PLT programs are caught by the CICS code that processes the PLT. For a CICS web support transaction, any abends are caught by the EXEC CICS HANDLE ABEND issued by the CICS web support alias program DHWBA. For more information about CECI, see How CECI runs.