Search results are displayed in a convenient tree view to show precisely which parts of the event binding are affected and, when clicked, will open up the appropriate tab in the event binding editor or CICS Explorer. The search understands the filter operators in an event binding so if, for example, you’re changing file ABC12 and you have a filter for a WRITE FILE event where FILENAME “Does not start with” “C”, then EP search will know that the filter would evaluate true for file ABC12 and include it in the results.
In CICS TS V4.1, all events were processed asynchronously to the application thread from which they were captured. The benefit is that application response time isn’t affected by formatting or emission of the event. Also, if an event fails to format or emit for some reason (e.g., the event consumer is unresponsive), then the application will continue unaffected with its behavior unchanged. Asynchronous emission is desirable for non-invasive event capture since it doesn’t affect application behavior. Unfortunately, there’s the potential to “lose” events if a failure occurs.
Generally, this isn’t a problem. Failures aren’t likely to happen and a rare lost event isn’t disastrous when events are being used for monitoring or business intelligence. However, there could be a problem if events are being used to drive further business processes. For example, if an “order placed” event is sent to a warehouse to start the picking and packing processes for that order, the consequence of losing the event is that the order will never be processed.
CICS TS V4.2 introduces the option to use synchronous emission. When synchronous emission is used, event formatting and emission processing are performed on the application thread as part of the unit of work from which the event was captured. If the event fails to be formatted or emitted, then the application backs out at syncpoint. This effectively makes the success of the application dependent on the successful emission of the event. Event emission is assured since the event is either emitted or the action that caused the event is backed out. This behavior makes synchronous emission ideal for event-driven processes.
Synchronous emission, unlike asynchronous emission, will have a more noticeable impact on application response time and can affect application behavior if an event fails to be emitted. Also, there are more things that need to be considered during setup, such as ensuring the transport is recoverable when used with transactional EP adapters. For a full list of considerations, see the CICS Information Center. The greater performance impact combined with the extra setup considerations means synchronous emission should be used only if the event is a critical part of the capturing application. The emission mode is selected in the advanced options on the EP adapter tab of the event binding editor and, by default, is set to asynchronous emission.
System Capture Points
The original goal of EP was to provide a way to extract business events from CICS processing non-invasively. Since business logic resides in business applications, all event capture points CICS TS V4.1 supports were application capture points. Customers liked the way events could be captured, formatted, and routed to a destination of their choice without having to write code. In summer 2010, they suggested it would be useful to be able to use the EP infrastructure to capture events when certain system conditions were met. With less than a year until the release of CICS TS V4.2, the fact that system capture points were provided is a testament to the CICS development team’s ability to work closely and rapidly with beta customers.
The six system capture points that were provided are the ones deemed the most interesting by feedback from beta customers:
- FILE ENABLESTATUS change
- FILE OPENSTATUS change
- DB2 connection status change
- Unhandled transaction abends
- Current active tasks for a TRANCLASS go above or below a certain percentage of MAXACTIVE.
- Current active tasks in a region go above or below a certain percentage of MAXTASKs.
System capture points are configured via a capture specification in an event binding. They support the same kind of filtering as application capture points, letting you specify exactly when a situation of interest occurs. So, for example, it’s possible to capture an event every time a FILE starting with “ABC” moves to DISABLED state or when the number of active tasks for TRANCLASS “XYZ” goes above 80 percent of its MAXACTIVE. Any fields that can be filtered on can be captured and used to populate the event in the same ways as the event options on application capture points. Once an event is captured, it’s processed in the same way as any other event from CICS and can be formatted and emitted using any of the EP adapters (see Figure 5).
System capture points provide a way to generate real-time notifications about the state of a CICS region without the need to continuously poll for information. They can be used to provide a basic systems monitoring solution, augment existing solutions, or improve performance by removing the need to poll for certain state changes.
Event Driven Architecture (EDA) is a vibrant, evolving technology that can bring tremendous value to an enterprise. Many businesses are beginning to realize this value by using CICS EP. Besides the new features discussed here, the latest release brings a host of minor enhancements to improve capability and usability. Two examples are filter and capture support for floating point data types and improved copy/paste/undo capabilities in the event binding editor.
The CICS development team is dedicated to delivering what customers need to achieve their EP strategies. If you’re using EP and have enhancement suggestions, please raise a requirement via your local account representative. You might also consider participating in the CICS beta program.
With a growing number of customers using EP to do everything from easily extracting data from applications to fully event-enabling their enterprise, you can expect to see more innovation in future releases.
You can gain further information via these links:
- EP in CICS V4.1 demo: www.youtube.com/user/CICSfluff#p/u/2/KomUEHfCnoo or at IBM site: ftp://public.dhe.ibm.com/software/htp/cics/EP_Demo_FLV.flv
- EP in CICS V4.2 demo: www.youtube.com/user/CICSfluff#p/u/3/sPbF56BevG4 or at IBM site: ftp://public.dhe.ibm.com/software/htp/cics/cics_v42_EP_FLV.flv
- System capture point demo: www.youtube.com/user/CICSfluff#p/u/4/-tbV3R3x1YA or at IBM site: ftp://public.dhe.ibm.com/software/htp/cics/system_events_FLV.flv.