How buffering works, Buffering and historian server security – Rockwell Automation FactoryTalk Historian SE 3.0 H2H Interface User Guide User Manual

Page 112

Advertising
background image

Buffering

106

How Buffering Works

A complete technical description of PIBufss and Bufserv is beyond the scope of this
document. However, the following paragraphs provide some insights on how buffering
works.

When an interface node has buffering enabled, the buffering application (PIBufss or Bufserv)
connects to the Historian Server. It also creates shared memory storage.

When an interface program makes a PI API function call that writes data to the Historian
Server (for example,

pisn_sendexceptionqx()

), the PI API checks whether buffering is

enabled. If it is, these data writing functions do not send the interface data to the Historian
Server. Instead, they write the data to the shared memory storage that the buffering
application created.

The buffering application (either Bufserv or PIBufss) in turn

reads the data in shared memory, and

if a connection to the Historian Server exists, sends the data to the Historian Server;

or

if there is no connection to the Historian Server, continues to store the data in shared

memory (if shared memory storage is available) or writes the data to disk (if shared
memory storage is full).

When the buffering application re-establishes connection to the Historian Server, it writes to
the Historian Server the interface data contained in both shared memory storage and disk.

(Before sending data to the Historian Server, PIBufss performs further tasks such data
validation and data compression, but the description of these tasks is beyond the scope of this
document.)

When PIBufss writes interface data to disk, it writes to multiple files. The names of these
buffering files are

PIBUFQ_*.DAT

.

When Bufserv writes interface data to disk, it writes to a single file. The name of its buffering
file is

APIBUF.DAT

.

As a previous paragraph indicates, PIBufss and Bufserv create shared memory storage at
startup. These memory buffers must be large enough to accommodate the data that an
interface collects during a single scan. Otherwise, the interface may fail to write all its
collected data to the memory buffers, resulting in data loss. The buffering configuration
section of this chapter provides guidelines for sizing these memory buffers.

When buffering is enabled, it affects the entire interface node. That is, you do not have a
scenario whereby the buffering application buffers data for one interface running on an
interface node but not for another interface running on the same interface node.

Buffering and Historian Server Security

After you enable buffering, it is the buffering application—and not the interface program—
that writes data to the Historian Server. If the Historian Server‟s trust table contains a trust
entry that allows all applications on an interface node to write data, then the buffering
application is able write data to the Historian Server.

Advertising