Comment 2 for bug 1528812

Revision history for this message
Ralph Lange (ralph-lange) wrote :

The event mechanism is part of the EPICS Database, its sources are located in .../src/db.

While being obviously closely related to Channel Access, it is clearly outside of CA's scope. There are other implementations of Channel Access servers (e.g. the Gateway, pcaspy, ...) where this does not apply.
Thus I don't see the immanent need for this behavior to be documented in the CA Reference Manual.

The Application Developers Guide (being the main documentation for the IOC and the proper place) mentions it in the last paragraph of its chapter "Channel Access Monitors" (15.6).

This behavior is widely known, and indeed: I don't know any user that particularly likes it.

However, "fixing" it is a strictly non-trivial task. Buffering arrays (think GB-size images) can introduce serious resource issues on legacy, small or embedded systems. Even for an IOC on a recent system, a network hickup on a fast connection could blow up the server in seconds if it buffered the image streams.

Such drastic changes in a very central part of the code (used many times a second on every existing EPICS IOC) will definitely not happen on the "stable" 3.14 release series.

EPICS 3.15 adds the "server side plugin" framework that allows user code plugins to be pulled into the event stream between the DB and Channel Access. This framework is especially designed to allow adding such features, without changing the behavior for all existing uses.

I'd be happy to review a 3.15 server-side plugin for inclusion in Base, once you have it working.