Download as pdf or txt
Download as pdf or txt
You are on page 1of 66

Buffering

User Guide

For PI Buffer Subsystem 4.7 and API Buffer Server 2016


OSIsoft, LLC
1600 Alvarado Street
San Leandro, CA 94577 USA
Tel: (01) 510-297-5800
Fax: (01) 510-357-8136
Web: http://www.osisoft.com

Buffering User Guide


© 2014-2017 by OSIsoft, LLC. All rights reserved.
No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or
by any means, mechanical, photocopying, recording, or otherwise, without the prior written permission
of OSIsoft, LLC.
OSIsoft, the OSIsoft logo and logotype, Managed PI, OSIsoft Advanced Services, OSIsoft Cloud Services,
OSIsoft Connected Services, PI ACE, PI Advanced Computing Engine, PI AF SDK, PI API,
PI Asset Framework, PI Audit Viewer, PI Builder, PI Cloud Connect, PI Connectors, PI Data Archive,
PI DataLink, PI DataLink Server, PI Developer’s Club, PI Integrator for Business Analytics, PI Interfaces,
PI JDBC driver, PI Manual Logger, PI Notifications, PI ODBC, PI OLEDB Enterprise, PI OLEDB Provider,
PI OPC HDA Server, PI ProcessBook, PI SDK, PI Server, PI Square, PI System, PI System Access, PI Vision,
PI Visualization Suite, PI Web API, PI WebParts, PI Web Services, RLINK, and RtReports are all
trademarks of OSIsoft, LLC. All other trademarks or trade names used herein are the property of their
respective owners.
U.S. GOVERNMENT RIGHTS
Use, duplication or disclosure by the U.S. Government is subject to restrictions set forth in the OSIsoft,
LLC license agreement and as provided in DFARS 227.7202, DFARS 252.227-7013, FAR 12.212, FAR
52.227, as applicable. OSIsoft, LLC.
Version: PI Buffer Subsystem 4.7 and PI API (API Buffer Server) 2016
Published: 21 April 2017
Contents

What is buffering?......................................................................................................1

When to use buffering................................................................................................ 3

Buffering services...................................................................................................... 5

Start using buffering.................................................................................................. 7

Buffering Manager..................................................................................................... 9

Buffering and high availability...................................................................................11


N-way buffering for PI interfaces................................................................................................................... 11
PI Buffer Subsystem configuration............................................................................................................. 11
Batch interfaces and buffering................................................................................................................... 15
N-way buffering for PI clients.........................................................................................................................15
Configure n-way buffering for AF SDK clients............................................................................................ 16
Configure n-way buffering for PI SDK clients............................................................................................. 16
Buffering configuration when you add a PI Data Archive server to a collective........................................... 17

Buffering and security.............................................................................................. 19


Best practices for buffering security...............................................................................................................19
PI Buffer Subsystem security considerations................................................................................................. 19
PI Buffer Subsystem security requirements................................................................................................... 20
Configure PI Buffer Subsystem security..................................................................................................... 20

Special cases for buffering........................................................................................ 27


API Buffer Server configuration..................................................................................................................... 27
When to use API Buffer Server................................................................................................................... 27
Configure n-way buffering for interfaces with API Buffer Server................................................................ 27
Upgrade to n-way buffering for interfaces with API Buffer Server..............................................................29
Buffering from an interface on the PI Data Archive computer........................................................................ 30
Configure PI Buffer Subsystem 3.4.380 or later on a PI Data Archive computer.......................................... 31
Configure PI Buffer Subsystem 3.4.375 on a PI Data Archive computer.......................................................31
Configure API Buffer Server on a PI Data Archive computer.......................................................................32

Buffering reference topics......................................................................................... 35


PI Buffer Subsystem software requirements.................................................................................................. 35
PI products and buffering programs.............................................................................................................. 36
Buffering types.............................................................................................................................................. 38

Troubleshoot buffering.............................................................................................41
Buffering and the PI message log.................................................................................................................. 42
PI Buffer Subsystem health alerts..................................................................................................................42
PI Buffer Subsystem point ownership............................................................................................................ 47
PI message log and 32-bit and 64-bit installations..........................................................................................47
View buffering sessions with pibufss -cfg.......................................................................................................48

Buffering User Guide iii


Contents

Performance monitoring for PI Buffer Subsystem....................................................... 51


PI Buffer Subsystem statistics........................................................................................................................53
PI Buffered Logical Servers statistics............................................................................................................. 55
PI Buffered Physical Servers statistics............................................................................................................56

Technical support and other resources....................................................................... 61

iv Buffering User Guide


What is buffering?
OSIsoft provides buffering to protect against data loss for PI interface and PI client computers
when PI Data Archive is unavailable.
Buffering is implemented as a service that stores and forwards events to a PI Data Archive
server or collective. You can buffer data from PI interfaces and clients, and from manual data
entry applications including Manual Logger, DataLink, and custom data entry applications
developed with AF SDK or PI SDK. For information about buffering and specific products, see
PI products and buffering programs.
When a PI Data Archive server or collective is unavailable for any reason, the buffering service
temporarily stores the data from PI System applications running on the buffered computer.
This allows continuous data collection during network outages or other unexpected failures, or
when a PI Data Archive server is down for maintenance, upgrades, or backups. When the
connection with PI Data Archive is restored, the buffering service sends all the stored data
from the buffer to PI Data Archive in chronological order.

Terminology change
OSIsoft is revising its terminology to reflect the growth of the PI System from its original
single-server architecture. In the revised terminology, PI Data Archive refers to the component
that stores time-series data (formerly called PI Server), and PI Server refers to both PI Data
Archive and PI Asset Framework. This document uses the revised terminology.

Buffering User Guide 1


What is buffering?

2 Buffering User Guide


When to use buffering
OSIsoft recommends using buffering on any computer with software that writes data to PI
Data Archive. For example, we recommend that you use buffering on PI interface computers.
Buffering is not recommended on computers that are used only to view data.

Buffering User Guide 3


When to use buffering

4 Buffering User Guide


Buffering services
The PI System offers two services to implement buffering at interfaces. Only one of them, PI
Buffer Subsystem, supports buffering for clients.

• PI Buffer Subsystem (pibufss)


PI Buffer Subsystem is the best option for most environments, particularly if you use
version 4.3 or later. Starting with version 4.3, PI Buffer Subsystem supports buffering to
multiple servers and collectives.

• API Buffer Server (bufserv)


API Buffer Server is needed only by those with unusual configurations, for example, those
connecting to older versions of PI Data Archive. For details, see When to use API Buffer
Server.

Buffering User Guide 5


Buffering services

6 Buffering User Guide


Start using buffering
Use buffering to protect against data loss on any computer with software that writes data to PI
Data Archive. You can also use it to help ensure data integrity for PI Data Archive collectives by
fanning data to all collective members.

Procedure
1. Identify the PI product or products for which you want to configure buffering and the PI
Data Archive version and configuration that will receive the data. Based on that
information, decide which buffering service to use. In most cases, OSIsoft recommends PI
Buffer Subsystem.
If you currently use API Buffer Server, or if you are uncertain about which program to use,
refer to PI products and buffering programs and When to use API Buffer Server.
2. (PI Buffer Subsystem only) Decide whether to set up a domain user for the buffering
service. For improved security, OSIsoft recommends configuring the buffering service to log
on as a domain user. For more information, see PI Buffer Subsystem and service logon
accounts.
3. Configure and verify buffering.
To Do this
Configure buffering for a PI interface using PI Start PI Interface Configuration Utility (PI ICU),
Buffer Subsystem then refer to the appropriate instructions below:
◦ Start buffering (PI Buffer Subsystem version
4.3 or later)
◦ Start buffering (PI Buffer Subsystem versions
earlier than 4.3)
Configure buffering for a PI interface using API Start PI Interface Configuration Utility, then refer
Buffer Server to these instructions: Start buffering (PI Buffer
Subsystem versions earlier than 4.3)
Note:
Do not install PI Buffer Subsystem 4.3 or
later, because you will lose the ability to
configure API Buffer Server using PI ICU.

Configure buffering for a PI client (requires PI a. Refer to PI products and buffering programs
Buffer Subsystem) to determine whether the client product
sends data to PI Data Archive using PI SDK,
AF SDK, or both.
b. Refer to the appropriate instructions below:
▪ Configure n-way buffering for AF SDK
clients
▪ Configure n-way buffering for PI SDK
clients

Buffering User Guide 7


Start using buffering

8 Buffering User Guide


Buffering Manager
Buffering Manager helps you set up buffering with PI Buffer Subsystem. When upgrading from
an older version of PI Buffer Subsystem or from API Buffer Server, Buffering Manager helps
ensure that buffering is configured properly for existing interfaces. After upgrading, you can
also use Buffering Manager to add PI Data Archive servers or collectives that will receive
buffered data.
With Buffering Manager, you can also:
• Modify buffering settings for the computer that Buffering Manager is running on, specific
servers, and collectives receiving buffered data.
• View buffering status, estimated buffer capacity, number of events sent and queued, and
any point errors for servers and collectives.
• Export files containing detailed information about the status of buffering on a computer.
• View messages with additional information for troubleshooting issues.

Buffering User Guide 9


Buffering Manager

10 Buffering User Guide


Buffering and high availability
In high availability environments, OSIsoft recommends using n-way buffering to protect
against data loss. With n-way buffering, the buffering service queues data independently to
each server in a PI Data Archive collective.
Starting with version 4.3, PI Buffer Subsystem can buffer data to multiple servers and
collectives. It also comes with Buffering Manager, a new tool that provides step by step
buffering configuration, including upgrades from API Buffer Server to PI Buffer Subsystem.
These improvements are particularly helpful for high availability environments.

N-way buffering for PI interfaces


You can use a buffering service to control the time-series data flowing from a PI interface to PI
Data Archive. When PI Data Archive is not available, the buffering service temporarily stores
the PI interface data. Once the server is available, the buffering service sends the data to PI
Data Archive in the proper order. To support PI Data Archive HA, you configure the buffering
service to use n-way buffering. With n-way buffering, the buffering service queues data
independently to each server in a PI Data Archive collective.

PI Buffer Subsystem configuration


Use PI ICU to configure an interface to use PI Buffer Subsystem and n-way buffering. For
interfaces that were already configured to use PI Buffer Subsystem before you added a PI Data
Archive collective, the collective-creation process automatically configures n-way buffering.
You can verify proper n-way buffering configuration.

Configure n-way buffering for interfaces with PI Buffer Subsystem


The procedure in this section describes how you can use PI Interface Configuration Utility (PI
ICU) to configure PI Buffer Subsystem and n-way buffering for an interface that sends data to a
PI Data Archive collective.
Note:
If you have configured interface failover, you must configure n-way buffering at both the
primary interface and the redundant interface. Use PI ICU to ensure that each interface is
dependent on PI Buffer Subsystem.

Procedure
1. Click Start > All Programs > PI System > PI Interface Configuration Utility.
2. In Interface, select the interface.
3. In the page tree, select General.
4. Depending which version of PI Buffer Subsystem is installed on this computer, refer to the
appropriate instructions:

Buffering User Guide 11


Buffering and high availability

◦ Start buffering (PI Buffer Subsystem version 4.3 or later)


◦ Start buffering (PI Buffer Subsystem versions earlier than 4.3)
5. Verify that buffering is working as expected by doing one of the following:
◦ If you are using PI Buffer Subsystem 4.3 or later, view the Buffering Manager dashboard.
◦ If you are using an earlier version, see Verify that buffered data is being sent to PI Data
Archive.

Start buffering (PI Buffer Subsystem version 4.3 or later)


PI ICU assists in configuring and running buffering.

Before you start


These instructions apply only if PI Buffer Subsystem version 4.3 or later is installed on this
computer. If version 3.4.380.79 or earlier is installed, refer to Start buffering (PI Buffer
Subsystem versions earlier than 4.3).
Note:
The version of PI Buffer Subsystem currently installed determines the process you follow
to start buffering. It does not matter whether buffering is configured on this computer, or
whether you use PI Buffer Subsystem or API Buffer Server.

Procedure
1. Click Tools > Buffering.
2. When prompted, confirm that you want to configure PI Buffer Subsystem. If you currently
use API Buffer Server (bufserv), you may need to confirm more than one prompt.
The Buffering Manager window opens. This indicates one of two things:
◦ This computer is configured to buffer data using API Buffer Server (bufserv). In this case,
before you continue, review the information in the Buffering Manager window regarding
upgrades from API Buffer Server.
◦ This computer is not configured to use any form of buffering.
3. To configure buffering, follow the instructions in the Buffering Manager window.
4. After you finish, return to the PI Interface Configuration Utility window. Select each interface,
and on the General page under PI Host Information, look at the Buffering Status setting:
◦ If Buffering Status is On, the buffering configuration for the server to which this interface
sends data is complete. (This is the server specified in the API Hostname field for this
interface.)
◦ If Buffering Status is Off, you need to configure the server specified in the API Hostname
field to receive buffered data from this interface. To add the server to the buffering
configuration, click the Enable button and follow the instructions on the Buffering
Manager screen.

Start buffering (PI Buffer Subsystem versions earlier than 4.3)


PI ICU assists in configuring and running buffering (API Buffer Server or PI Buffer Subsystem).

12 Buffering User Guide


Buffering and high availability

Before you start


These instructions apply only if PI Buffer Subsystem version 3.4.380.79 or earlier is installed
on this computer. If version 4.3 or later is installed, refer to Start buffering (PI Buffer
Subsystem version 4.3 or later).
Note:
The version of PI Buffer Subsystem currently installed determines the process you follow
to start buffering. It does not matter whether buffering is configured on this computer, or
whether you use PI Buffer Subsystem or API Buffer Server.

Procedure
1. Choose Tools > Buffering to display the Buffering dialog box.
2. Use the Choose Buffer Type page to select a buffering option:
◦ Disable buffering
◦ Enable PI Buffer Subsystem
◦ Enable API Buffer Server
3. Use the Buffering Settings page to change default settings.
4. Use the Buffered Servers page to select one or more servers that you want to buffer data to.
5. Use the API Buffer Server Service and PI Buffer Subsystem pages to configure and control the
buffering services.

Buffering configuration when you add a PI Data Archive server to a


collective
PI Buffer Subsystem automatically uses n-way buffering and sends data to all servers in a PI
Data Archive collective. In many cases, you only need to verify PI Buffer Subsystem operation
after you add a server to a PI Data Archive collective.

Additional steps for those using interface failover


If you have configured interface failover and PI Data Archive sends output points to the
interface, you should also point a redundant interface to a secondary collective member.
Note:
Restart PI ICU after upgrading to a PI Data Archive collective.

Point a redundant interface to a secondary collective member


If you use PI Buffer Subsystem 4.3 or later, follow steps 1 through 4 below. If you use PI Buffer
Subsystem versions 3.4.380 and earlier, follow all steps below.

Before you start


If you just upgraded from a single PI Data Archive server to a collective, restart PI ICU.

Buffering User Guide 13


Buffering and high availability

Procedure
1. In the PI ICU page tree, select General.
2. Under PI Host Information, set SDK Member to a secondary collective member.
This property sets which PI Data Archive server in the collective sends the interface
configuration information and output points. If you set each interface to a different
collective member, you enable failover when the PI Data Archive server that sends output
points becomes unavailable.
3. Set API Hostname to match.
The interface uses this information to connect to the PI Data Archive server that provides
configuration data. The drop-down list shows the host specified in various formats. You can
specify the host as an IP address, a path, or a host name. However, when you configure the
buffered server list, you must specify the buffered server names in the same format,
otherwise buffering will not work.
4. Click Apply.
Note:
Follow the remaining steps only if you are using PI Buffer Subsystem 3.4.380 or
earlier.
5. Select Tools > Buffering.
6. In the Buffering dialog box task list, select Buffered Servers.
7. Verify that the Replicate data to all collective member nodes check box is selected and that
the server list contains the server and format specified in API Hostname.
8. If necessary, click the appropriate entry under Buffered Server Names to change the format.
9. Click Yes at the prompt to restart PI Buffer Subsystem and dependent interfaces.

Configure PI Buffer Subsystem to send data to select collective


members
Use these instructions only for PI Buffer Subsystem 4.3 or later.
For certain configurations, you may not want to send data to all collective members. For
example, if collective members are in different networks, you may want to send data only to
servers on the local network.

Before you start


Configure PI Buffer Subsystem to send data to all servers in a collective.

Procedure
1. Click Start > All Programs > PI System > PI Interface Configuration Utility.
2. Select Tools > Buffering.
3. In the Buffering Manager window, click the Settings link.
4. In the Buffering Settings window, select the collective member to which you do not want PI
Buffer Subsystem to send data.

14 Buffering User Guide


Buffering and high availability

5. In the Buffering list, select Disallowed.


6. Click Save.

Results
PI Buffer Subsystem no longer sends data to the selected server. To send data to this server,
you can configure a PI to PI interface.

Verify that buffered data is being sent to PI Data Archive


Use these instructions only for PI Buffer Subsystem versions 3.4.380 and earlier. For later
versions of PI Buffer Subsystem, use Buffering Manager to verify buffering status.

Procedure
1. In a command window, navigate to the \PIPC\bin directory.
2. Enter: pibufss -cfg
3. In the resulting display, note the number of total events sent.
4. Wait a few seconds, then enter pibufss -cfg again.
You may want to repeat this step one or two more times. If buffering is working properly,
the number of total events sent increases each time. The number of queued events
should remain at or near zero.

Batch interfaces and buffering


Batch interfaces write data only to the primary server in a PI Data Archive collective. While
data can be buffered to collective members, it will not function as it does on the primary.
Therefore, OSIsoft does not recommend buffering for computers that run only batch interfaces.
For computers running both a batch interface and another interface that can be buffered,
buffering is recommended. Refer to the documentation for your interface for instructions on
configuring the interface without buffering.

N-way buffering for PI clients


You can use PI Buffer Subsystem to control the PI point data written by a PI client to PI Data
Archive. When PI Data Archive is not available, the buffering service temporarily stores the PI
client data. Once the server is available, the buffering service sends the data to PI Data Archive.
To support PI Data Archive HA for PI clients, you configure PI Buffer Subsystem to use n-way
buffering. With n-way buffering, the buffering service fans data all PI Data Archive collective
members.
There are some important differences between PI client buffering and PI interface buffering:

• You can buffer PI client data only with PI Buffer Subsystem. API Buffer Server cannot buffer
client data.
• If your PI clients write data using PI SDK, use PI SDK Utility to configure buffering.
• If your PI clients write data using AF SDK, use PI System Explorer to configure buffering.

Buffering User Guide 15


Buffering and high availability

Configure n-way buffering for AF SDK clients


By default, once you have successfully configured buffering, AF SDK data is buffered if possible.
This means that if the buffering service is running, security is properly configured, and the
target PI Data Archive server is configured for buffering, then data sent by AF SDK to PI Data
Archive is buffered. If the target is a PI Data Archive collective, data is sent to all collective
members (or fanned). No additional configuration is required.
AF SDK applications can override the default buffering behavior, either to bypass buffering or
require buffering.
If buffering is not configured, or if the configuration is incomplete, then AF SDK data is written
directly to PI Data Archive and data sent to PI Data Archive collectives is not fanned. If the
server becomes unavailable, data loss occurs.
If needed, you can modify the default buffering behavior for AF SDK data. You can either turn
off AF SDK buffering, or you can require buffering, which means data will not be written if the
buffering service becomes unavailable. Use PI System Explorer to modify the default setting for
AF SDK buffering.

Before you start


Install PI Asset Framework 2.6.1 or later. These instructions assume that you have already
configured one or more PI Data Archive computers to receive buffered data from this
computer. If not, start PI System Explorer and click Tools > Buffering Manager to configure
buffering, then follow these instructions.

Procedure
1. To change the default configuration for AF SDK buffering, start PI System Explorer and click
Tools > Buffering Manager.
Alternatively, you can click File > Connections, and then click Buffering Manager.
2. In the Buffering Settings window, click Show advanced global configuration.
3. In the AF SDK Buffering list, select the setting you want:
◦ To turn off buffering for AF SDK data, select Do not buffer.
◦ To require buffering to send AF SDK data to PI Data Archive, select Always buffer.
Caution:
Use the Always buffer option with care. If data cannot be buffered for any reason, it
will not be sent to the target PI Data Archive server or collective. Since it cannot be
buffered, the data will be lost.
4. Click Save.

Configure n-way buffering for PI SDK clients


To buffer data from PI clients that send data using PI SDK, use PI SDK Utility to enable PI SDK
buffering.

16 Buffering User Guide


Buffering and high availability

Before you start


Install PI SDK 1.4.4 or later. These instructions assume that you have already configured one or
more PI Data Archive computers to receive buffered data from this computer. If not, start PI
SDK Utility and click Buffering > Buffering Manager to configure buffering, then follow these
instructions.

Procedure
1. On the computer sending the data to be buffered, run PI SDK Utility.
2. Click Buffering > PI SDK Buffering Configuration.
3. Select the Enable PI SDK Buffering check box.
4. Click Save.
A message in the status bar shows the current buffering status.
5. Restart the PI client applications to ensure that their data is buffered.

Results
All PI SDK data from this computer is sent to all PI Data Archive computers that have been
configured to receive data from PI Buffer Subsystem. To add servers, use Buffering Manager.

Buffering configuration when you add a PI Data Archive server to a collective


PI Buffer Subsystem versions 4.3 and later automatically use n-way buffering and send data to
all servers in a PI Data Archive collective. For PI clients, you only need to verify PI Buffer
Subsystem operation after you add a server to a PI Data Archive collective.

Buffering User Guide 17


Buffering and high availability

18 Buffering User Guide


Buffering and security
There are a number of things to consider when setting up security for PI Buffer Subsystem. If
you have not configured buffering before, see Configure PI Buffer Subsystem security for
information about the security required for buffering. Even if you have configured buffering
before, you may find it helpful to review current security considerations and requirements.
The release of PI Buffer Subsystem 4.3 introduced a few security changes worth noting:
• To maximize security, OSIsoft now recommends configuring PI Buffer Subsystem to log on
as a dedicated domain user account. For more information, see PI Buffer Subsystem and
service logon accounts.
• Buffering Manager provides step by step configuration, including security. It can create
mappings and trusts. However, if you use a domain user account for the PI Buffer
Subsystem service, you may want to set up the domain account before you configure
buffering using Buffering Manager.
• Users who need to configure buffering on an interface or client computer no longer need to
belong to the local administrators group. Instead, you can add them to the PI Buffering
Administrators group created when you install PI Buffer Subsystem 4.3 or later. This group
provides the permissions required to use Buffering Manager to configure buffering.

Best practices for buffering security


When planning security for buffering, OSIsoft recommends that you first familiarize yourself
with documented security considerations and requirements for your version of PI Buffer
Subsystem.
To maximize security, OSIsoft now recommends configuring PI Buffer Subsystem to log on as a
dedicated domain user account. For more information, see PI Buffer Subsystem security
considerations.
If your site does not have a domain, you can still use Windows authentication. For more
information, see the OSIsoft Tech Support article KB 00354 - Supported Windows Security
Configurations in Domains and Workgroups for the PI Data Archive (https://
techsupport.osisoft.com/Troubleshooting/KB/KB00354).

PI Buffer Subsystem security considerations


PI Buffer Subsystem sends data to the PI Data Archive server using its PI identity, PI user, or PI
group, as it has in previous versions that supported only API buffering. API buffering usually
buffers data from one type of interface per interface node, meaning one PI identity, PI user, or
PI group sends one type of data. However, a single client node using buffering PI SDK data may
handle multiple client applications and possibly multiple users concurrently (including, for
example, web services and application servers).

Buffering User Guide 19


Buffering and security

Note:
The various applications and users on a client node using buffering will all send data to
PI Data Archive using the PI identity, PI user, or PI group associated with PI Buffer
Subsystem.
By default, the PI Buffer Subsystem service logs on using the Local System account, which may
also be used by other services on the local machine. If the other services that log on as Local
System also write to PI Data Archive, their data cannot be distinguished from data written by
PI Buffer Subsystem. OSIsoft recommends setting up the PI Buffer Subsystem service to log on
as a domain user, which provides added security and may improve the ability to identify data
written by PI Buffer Subsystem.
If you configure a domain user as the logon account for PI Buffer Subsystem, see PI Buffer
Subsystem and service logon accounts for information about configuration requirements.

PI Buffer Subsystem security requirements


PI Buffer Subsystem requires access permissions on both the buffered node and the PI Data
Archive server.

• On the buffered computer, PI Buffer Subsystem runs as a Windows service. By default, this
service runs as the Local System account. For increased security, OSIsoft recommends
configuring the service to log on as a dedicated domain user account.
• On the PI Data Archive computer, PI Buffer Subsystem (pibufss.exe) needs a PI identity,
PI user, or PI group to define its identity when it connects to the server. It also needs a PI
mapping (for Windows authentication) or, if you are using PI API version 1.6.8 or earlier, a
PI trust so it can successfully authenticate using the selected PI identity, PI user, or PI
group.
OSIsoft does not recommend using PI trusts or explicit logins for authentication. For a more
secure environment, OSIsoft recommends Windows Integrated Security.
Note:
PI API 2016 for Windows Integrated Security extends Windows authentication to API-
based client applications. If you choose to install PI API 2016 for Windows Integrated
Security, you can use only Windows Integrated Security for authentication. Both
trusts and explicit logins will fail. For more information, see "Security configuration"
in Live Library (https://livelibrary.osisoft.com).

Configure PI Buffer Subsystem security


PI Buffer Subsystem needs both an operating system account to run the buffering service, and
an appropriate PI Data Archive security configuration to communicate with servers receiving
buffered data.
When you install or upgrade to PI Buffer Subsystem 4.3 or later, you will have an opportunity
to configure the items below using the Buffering Manager wizard. After installing PI Buffer
Subsystem 4.3 or later, you need to use the Windows Services snap-in to choose an account for
the PI Buffer Subsystem service, but you can change the settings in steps 2 and 3 below when
you use Buffering Manager to add a server (File > Add Server).

20 Buffering User Guide


Buffering and security

Procedure
1. Choose the operating system account that the PI Buffer Subsystem service will use to log on
to the buffered node.
You can use the Local System account, which is the default configuration, or choose a
domain account with the permissions listed in Operating system permissions for buffering.
The advantages and disadvantages of each are described in PI Buffer Subsystem and service
logon accounts.
2. Choose a PI identity, PI user, or PI group to be used by PI Buffer Subsystem when it
connects to PI Data Archive. The PI identity, PI user, or PI group must have the permissions
listed in PI Data Archive permissions for buffering.
3. Configure Windows authentication (PI mapping) or PI trusts so that PI Buffer Subsystem
can authenticate with PI Data Archive using the chosen PI identity, PI user, or PI group.
Remember that the buffered application also requires a PI mapping or PI trust. For
recommendations, see PI Data Archive authentication and buffering.
OSIsoft does not recommend using PI trusts or explicit logins for authentication. For a more
secure environment, OSIsoft recommends Windows Integrated Security.
Note:
PI API 2016 for Windows Integrated Security extends Windows authentication to API-
based client applications. If you choose to install PI API 2016 for Windows Integrated
Security, you can use only Windows Integrated Security for authentication. Both
trusts and explicit logins will fail. For more information, see "Security configuration"
in Live Library (https://livelibrary.osisoft.com).

PI Buffer Subsystem and service logon accounts


To maximize security, OSIsoft recommends configuring PI Buffer Subsystem to log on as a
dedicated domain user account with specific Operating system permissions for buffering. If
your site does not have a domain but you want to use Windows authentication, see Best
practices for buffering security for more information. You can also configure it to log on as the
built-in Local System account provided with Microsoft Windows.
Advantages and disadvantages of the domain and Local System approaches are described
below.

Domain User Account


To maximize security, set up the PI Buffer Subsystem service to run using a domain user
account. The advantage of this approach is that you can configure a user account specifically
for the PI Buffer Subsystem service and configure a PI mapping or a PI trust specifically for
that user account. This provides added security and flexibility compared to using the Local
System account. The disadvantage is this approach requires setting up and maintaining a more
complex security configuration.
Note:
When the domain user's password changes, use the Microsoft Windows Services snap-in
to update the password for the PI Buffer Subsystem service on each buffered node.
OSIsoft does not recommend using PI trusts or explicit logins for authentication. For a more
secure environment, OSIsoft recommends Windows Integrated Security.

Buffering User Guide 21


Buffering and security

Note:
PI API 2016 for Windows Integrated Security extends Windows authentication to API-
based client applications. If you choose to install PI API 2016 for Windows Integrated
Security, you can use only Windows Integrated Security for authentication. Both trusts
and explicit logins will fail. For more information, see "Security configuration" in Live
Library (https://livelibrary.osisoft.com).

Local System Account


By default, the PI Buffer Subsystem runs as a Windows Service using the Local System account.
The advantage of using Local System is a simple, one-time configuration for each buffered
node. The disadvantage is that it is less secure if PI Data Archive is configured to authenticate
PI Buffer Subsystem using Windows authentication. When used with Windows authentication,
this configuration allows any account that takes on the computer's identity (for example, Local
System) to write to PI Data Archive.
Note:
Depending on the versions of PI Data Archive and PI Buffer Subsystem you are using, you
may need to map the PI identity associated with buffering to each computer that runs PI
Buffer Subsystem. For details, see Map a PI identity to a buffered computer.

Map a PI identity to a buffered computer


Follow these steps if you use Windows integrated security on PI Server 3.4.380 or later and PI
Buffer Subsystem 3.4.380, and the PI Buffer Subsystem service runs as Local System. If you use
PI Buffer Subsystem 4.3 or later, you can create this mapping using Buffering Manager. You can
do this during installation or upgrade, or when adding a server that will receive buffered data.
Note:
These instructions apply only to computers in a domain.

Procedure
1. Run PI System Management Tools.
2. Under Collectives and Servers, select the server.
3. Under System Management Tools, select Security > Identities, Users, & Groups.
4. Select the PI Identities tab.
5. If you have not yet created a PI identity for the buffering service, create it now.
6. Double-click the identity to open its Properties dialog box.
7. Click the Mappings & Trusts tab.
8. Under the mappings, click Add to open the Add New Mapping dialog box.
(There is also an Add button under the trusts; be sure to click the correct button.)
Note:
The Add button is disabled if the selected PI identity is disabled or not usable in a
mapping.
9. Click the ellipsis button next to the Windows Account box.

The Select User, Computer, or Group dialog box appears.

22 Buffering User Guide


Buffering and security

10. Click the Object Types button.


The Object Types dialog box appears.
11. In the Object Types list, make sure Computers is selected, then click OK.
12. In the Select User, Computer, or Group dialog box, enter the computer name (for example, \
\my_client_computer) and click OK.
13. Click OK to create the new mapping.

Operating system permissions for buffering


Accounts used to configure and run PI Buffer Subsystem must have these permissions on the
buffered computer.

Permissions for the PI Buffer Subsystem service


The Windows user account used to run the PI Buffer Subsystem service must be a member of
the local Administrators group, which provides the required permissions. When you use
Buffering Manager to select the user account, it is automatically added to that group.
The required permissions for the account used to run the PI Buffer Subsystem service are
described below for your information.
• The ability to log on as a service. When you use Buffering Manager to configure buffering, it
ensures that the account has this ability.
• The ability to start, stop, and restart services. This is normally available to local
administrator user accounts.
• Read and write access to the %ProgramData% folder. If there is already an \OSIsoft
subfolder in this folder, then read and write access to the \OSIsoft subfolder is also
required. This is normally available to local administrator user accounts.
Note:
The %ProgramData% folder is defined as %SystemDrive%\ProgramData on
Windows Vista and later, and %SystemDrive%\Documents and Settings\All
Users\Application Data on Windows Server 2003 SP2.
• If you set the QUEUEPATH parameter, read and write access to the folder specified by
QUEUEPATH is also required.
• Read and write access to the \PIPC\DAT folder on the buffered computer. (For 64-bit
operating systems, this means access to both %PIHOME%\PIPC\DAT and %PIHOME64%\PIPC
\DAT.) This is normally available to local administrator user accounts.
• (For PI API buffering) The ability to create global objects on the buffered computer. Create
global objects is a user right defined by a local security policy setting in Microsoft Windows
operating systems. Some types of user accounts, including administrator accounts, have this
user right by default.
Note:
When creating the Windows account for the PI Buffer Subsystem service, in addition to
the permissions above, be sure to consider password policy. If the password expires on
the account, data will not be buffered.

Buffering User Guide 23


Buffering and security

Permissions for users who configure buffering


Installing PI Buffer Subsystem 4.3 or later creates a Windows group named PI Buffering
Administrators. This group has the permissions required to configure PI Buffer Subsystem, and
is provided for your convenience. You can add accounts to this group for users who are not
local Administrators, but who need to configure buffering using Buffering Manager.

PI Data Archive permissions for buffering


Each PI identity, PI user, or PI group that PI Buffer Subsystem uses to authenticate must have
the following permissions on PI Data Archive:
• Read access to the PI points it will buffer to
• Read and write access to the data associated with those PI points
You can set this using Point Builder or PI Builder.

PI Data Archive authentication and buffering


Configure a PI mapping or PI trust for both PI Buffer Subsystem and the buffered application
so they can authenticate with PI Data Archive using the specified PI identity, PI user, or PI
group. The recommended authentication method varies depending on the PI Data Archive
version and the application connecting to the server.
OSIsoft does not recommend using PI trusts or explicit logins for authentication. For a more
secure environment, OSIsoft recommends Windows Integrated Security.
Note:
PI API 2016 for Windows Integrated Security extends Windows authentication to API-
based client applications. If you choose to install PI API 2016 for Windows Integrated
Security, you can use only Windows Integrated Security for authentication. Both trusts
and explicit logins will fail. For more information, see "Security configuration" in Live
Library (https://livelibrary.osisoft.com).

PI Data Archive version Application connecting to PI Data Recommended authentication method


Archive
3.4.375 PI Buffer Subsystem PI trust; this version of PI Data Archive does not
support Windows authentication
Buffered application (PI API or PI PI trust; this version of PI Data Archive does not
SDK) support Windows authentication
3.4.380 or later with PI PI Buffer Subsystem Windows authentication (PI mapping)
API 1.6.8 or earlier Buffered PI client or other AF SDK or Windows authentication (PI mapping)
PI SDK application
Buffered PI interface or other PI API PI trust; connections using these versions of PI API
application do not support Windows authentication
2016 R2 (3.4.405) or PI Buffer Subsystem Windows authentication (PI mapping)
later with PI API 2016 Buffered application (PI API or PI Windows authentication (PI mapping)
for Windows Integrated SDK)
Security

24 Buffering User Guide


Buffering and security

Note:
If a DNS provides both forward and reverse name lookups, define PI Trusts using fully-
qualified domain names (FQDN). In other cases, IP addresses are accepted. In all cases,
restrict the trust by specifying the Appname (application name), such as pibufss.exe.

Buffering User Guide 25


Buffering and security

26 Buffering User Guide


Special cases for buffering
This information is for sites with unusual buffering requirements.
For example, if you need to buffer to a PI Server version older than 3.4.375 or you need to
buffer data from interfaces that run on a non-Windows platform, you need to use API Buffer
Server. Instructions are also provided for buffering data from an interface, such as
Performance Monitor, on the PI Data Archive computer.

API Buffer Server configuration


Use PI Interface Configuration Utility (PI ICU) to configure an interface to use API Buffer Server
and n-way buffering. In this case, do not install PI Buffer Subsystem 4.3 or later, because you
will lose the ability to configure API Buffer Server using PI ICU.
Use API Buffer Server only if one or more of the conditions described in When to use API
Buffer Server is true.

When to use API Buffer Server


PI Buffer Subsystem is the best option for most environments. However, API Buffer Server is
needed for certain operating systems, PI Data Archive versions, or configurations.
Use API Buffer Server only when one or more of the following conditions is true:

• The PI Server receiving the buffered data is older than version 3.4.375
• Your interfaces run on a non-Windows platform
• Your system requires API Buffer Server for another reason (for example, it is required by a
custom high availability solution used at your site).
Otherwise, use PI Buffer Subsystem.
Caution:
API Buffer Server does not detect and validate the PI Data Archive collective
configuration. As a result, API Buffer Server requires manual configuration whenever a
collective changes. Also, because API Buffer Server results in compression at PI Data
Archive, archives at different servers in the collective could contain different records.

Configure n-way buffering for interfaces with API Buffer Server


You can use PI Interface Configuration Utility (ICU) to configure API Buffer Server (Bufserv)
and n-way buffering at an interface connected to a PI Data Archive collective. The following
procedure assumes that you have already configured the interface to connect and send data to
the collective.

Buffering User Guide 27


Special cases for buffering

Note:
API Buffer Server is not appropriate for all high availability environments. For details,
see When to use API Buffer Server.

Procedure
1. Click Start > All Programs > PI System > PI Interface Configuration Utility.
2. Identify the API hostname:
a. In Interface, select the interface.
b. In the page tree, select General.
c. Under PI Host Information, note the value and format of API Hostname.
The interface uses this information to connect with the PI Data Archive server that
provides configuration data. When you specify the buffered server list, you must use the
same format (either IP address, path, or host name).
3. Select Tools > Buffering.
4. In the Buffering dialog box, choose Enable buffering with API Buffer Server.
5. At the confirmation prompt, click Yes.
PI ICU starts the API Buffer Server service and restarts interfaces on this computer that
currently use a buffering service.
Note:
You might receive an error message that indicates buffer overrun detected. A
temporary default server name in the pilogin.ini file generates this message. It
does not impact the creation of API Buffer Server.

6. In the task list, select Buffered Servers.


7. Configure the server list to show each server in the collective and indicate that it is buffered
and replicated:
a. If necessary, type the server name in Add a server and click Add Server to add a server
from the collective to the list.
Specify the server in the same format as API Hostname in step 2 (that is, use either IP
address, path, or host name).
b. Click the Replicated column next to each server name to toggle the status from No to Yes.

When you set the Replicated status to yes, the Buffered status automatically changes to
yes also.
8. Click OK to apply the configuration and close the Buffering dialog box.
9. Click Yes at the prompt to restart API Buffer Server and dependent interfaces.
10. In the page list of PI ICU, click Service. (If this page is already selected, click another page
and then click this page.)
11. At the prompt to create a dependency on API Buffer Server, click Yes.
PI ICU adds a dependency for Bufserv (the API Buffer Server service).

28 Buffering User Guide


Special cases for buffering

12. Click the Restart interface service button.


13. Check that API Buffer Server is processing data.
You might monitor point updates with SMT or you might use bufutil:

a. On PI ICU, select Tools > Buffering.


b. On the Buffering dialog box, choose Tools > API Buffer Server > Run Bufutil.
A command window opens, showing a menu of choices for bufutil. For information
about what to look for, see KB00363 (https://techsupport.osisoft.com/
Troubleshooting/KB/KB00363).
Note:
You must close bufutil before you restart the interface or buffering service.

Upgrade to n-way buffering for interfaces with API Buffer Server


If a single PI Data Archive server receiving data from an interface is upgraded to a PI Data
Archive collective, you need to modify the buffering configuration to send interface data to all
of the collective members. This type of configuration is called n-way buffering. If you have
interface failover (that is, you have redundant interfaces), you must configure n-way buffering
at both the primary and the redundant interfaces.
Note:
API Buffer Server is not appropriate for all high availability environments. For details,
see When to use API Buffer Server.

Procedure
1. Click Start > All Programs > PI System > PI Interface Configuration Utility.
2. Identify the API hostname:
a. In Interface, select the interface.
b. In the page tree, select General.
c. Under PI Host Information, note the value and format of API Hostname.
The interface uses this information to connect with the PI Data Archive server that
provides configuration data. When you specify the buffered server list, you must use the
same format (either IP address, path, or host name).
3. If PI Data Archive sends output points to an interface configured for failover, point the
redundant interface to a secondary collective member.
Note:
If you have not closed and reopened PI ICU since creating a collective, you must do so
before pointing the redundant interface to a secondary collective member.

a. Under PI Host Information, set SDK Member to a secondary collective member.


This property sets the PI Data Archive server in the collective that sends configuration
information and output points to the interface. If you set each interface to a different

Buffering User Guide 29


Special cases for buffering

collective member, you enable failover when the PI Data Archive server that sends
output points becomes unavailable.
b. Set API Hostname to match.
The interface uses this information to connect with the PI Data Archive server that
provides configuration data. When you specify the buffered server list, you must use the
same format (either IP address, path, or host name).
c. Click Apply.
d. Click the Restart interface service button to restart the interface service.
4. Choose Tools > Buffering.
5. On the Buffering dialog box, select Buffered Servers.
The list of servers shows the server already configured (the collective has that name). In
some cases, the list might also show the IP address for that server.

6. Add the new secondary servers in your collective.


a. In Add a server, type the host name of the server. Specify the name in the same format as
API Hostname.
b. Click Add Server.
c. Repeat for each secondary server in the collective.
7. For each server, click the Replicated value to toggle the value from No to Yes.
When you set the Replicated status to Yes, the Buffered status automatically changes to Yes
also.
Note:
If the list shows the same server in two formats (such as IP address and host name),
only set the status to yes for the format specified in API Hostname.

8. Click OK to apply the change and close the Buffering dialog box.
9. Click Yes at the prompt to restart API Buffer Server and dependent interfaces.

Buffering from an interface on the PI Data Archive computer


You might install some interfaces, such as a Performance Monitor interface or a PI to PI
interface, on the PI Data Archive computer. You can use a buffering service to send data from
that interface to all the servers in a collective or to specific other servers. You can use either
buffering service for interfaces on the PI Data Archive computer, but procedures differ for each
service.
Use caution when selecting which servers to send buffered data. For performance monitoring
interfaces, which collect data about a particular server, you might want to send data to all
servers in a collective, including the server hosting the interface. On the other hand, for a PI to
PI interface that collects data stored on the host PI Data Archive server, you do not want to

30 Buffering User Guide


Special cases for buffering

send the data back to that server; instead you probably only want to send the data to other
servers in its collective.

Configure PI Buffer Subsystem 3.4.380 or later on a PI Data Archive computer


For an interface installed on a PI Data Archive computer, you can use PI Buffer Subsystem to
send interface data to the server or servers in its collective.
If you have PI ICU version 1.4.9 or later and PI Buffer Subsystem version 3.4.380 or later, you
can use PI ICU to configure PI Buffer Subsystem on a PI Data Archive computer.

Before you start


On the PI Data Archive computer, install and configure the interface for which data will be
buffered.
Note:
Do not use localhost as the server name in the interface configuration. Instead, use the
actual server name. Buffering to localhost can cause problems for PI Performance
Equation Scheduler, PI Totalizer, and PI Alarm.

Procedure
• Use PI ICU to configure PI Buffer Subsystem as you would on an interface computer, but as
mentioned above, use caution when selecting buffered servers.
See Configure n-way buffering for interfaces with PI Buffer Subsystem for instructions.

Configure PI Buffer Subsystem 3.4.375 on a PI Data Archive computer


For an interface installed on a PI Data Archive computer, you can use PI Buffer Subsystem to
send interface data to the server or to servers in its collective.
If you have a version of PI ICU older than 1.4.9 and PI Buffer Subsystem 3.4.375, you need to
manually configure PI Buffer Subsystem on a PI Data Archive computer as described in the
procedure below. In this case you must install PI Buffer Subsystem, specify the servers in the
initialization file, and set service dependencies.

Before you start


On the PI Data Archive computer, install and configure the interface for which data will be
buffered.
Note:
Do not use localhost as the server name in the interface configuration. Instead, use the
actual server name. Buffering to localhost can cause problems for PI Performance
Equation Scheduler, PI Totalizer, and PI Alarm.

Procedure
1. Install PI Buffer Subsystem on the PI Data Archive computer where the interface is
installed.
2. Configure PI Buffer Subsystem by editing the piclient.ini file.

Buffering User Guide 31


Special cases for buffering

a. Open the piclient.ini file, found in the \PIPC\DAT\ directory.


b. Edit the file to include the RUNSONSERVER parameter in the PIBUFSS section and to list
the servers that you are sending data to in the BUFFEREDSERVERLIST section.
For example, if you are sending data from the interface to two servers:
[APIBUFFER]
BUFFERING=1
[PIBUFSS]
BUFFERING=1
AUTOCONFIG=1
RUNSONSERVER=1
[BUFFEREDSERVERLIST]
BUFSERV1= MyPIDataArchiveServer1
BUFSERV2= MyPIDataArchiveServer2
c. Save the file.
3. Use PI ICU to add PI Buffer Subsystem as a dependency and to start the interface.
a. Click Start > All Programs > PI System > PI Interface Configuration Utility.
b. In Interface, select the interface you want to buffer.
c. In the page tree of PI ICU, click Service.
d. At the prompt to add a dependency on API Buffer Server, click No.
e. Under Installed services, select PIBufss and click to move the service to the
Dependencies list.
f. Click Apply.
g. Start or restart the interface.
h. At the prompt to start the PIBufss service, click Yes.
PI ICU starts the PI Buffer Subsystem service and then starts the interface service.

Configure API Buffer Server on a PI Data Archive computer


This procedure is applicable only for PI systems running PI API 1.6.8 or earlier. For a more
secure environment, OSIsoft recommends installing PI API 2016 for Windows Integrated
Security.
Note:
PI API 2016 for Windows Integrated Security extends Windows authentication to API-
based client applications. If you choose to install PI API 2016 for Windows Integrated
Security, you can use only Windows Integrated Security for authentication. Both trusts
and explicit logins will fail. For more information, see "Security configuration" in Live
Library (https://livelibrary.osisoft.com).
For interfaces installed on a PI Data Archive computer, you can use API Buffer Server to send
interface data to the server or to servers in its collective.
You can use PI ICU to configure API Buffer Server on a PI Data Archive computer. If the server
is in a PI Data Archive collective, set a tuning parameter at the primary server to automatically
create trusts that enable the buffering service to send data.

32 Buffering User Guide


Special cases for buffering

Note:
API Buffer Server is not appropriate for all high availability environments. For details,
see When to use API Buffer Server.

Before you start


On the PI Data Archive computer, install and configure the interface for which data will be
buffered.
Note:
Do not use localhost as the server name in the interface configuration. Instead, use the
actual server name. Buffering to localhost can cause problems for PI Performance
Equation Scheduler, PI Totalizer, and PI Alarm.

Procedure
1. Use the AutoTrustConfig tuning parameter to create trusts automatically for each collective
member.
a. Open PI SMT.
b. Under System Management Tools, select Operation > Tuning Parameters.
c. Select the Security tab.
d. Double-click AutoTrustConfig in the list of parameters to open a dialog box that displays
the parameter's value.
e. In Value, type 17.
f. Click OK.
The Tuning Parameters tool generates a trust for each collective member.
Note:
If DNS is not properly configured, additional trusts may be required.

2. Configure API Buffer Server at the interface.


a. In PI ICU, choose Tools > Buffering.
b. On the Buffering dialog box, select Enable buffering with API Buffer Server.
c. Click Yes to confirm that you want to change the buffer type.
d. Select Buffered Servers.
e. If necessary, add servers to list each server that you want to send interface data.
f. Click the Replicated value for the servers that you want to send interface data. When you
click, you toggle the value of Buffered and Replicated from No to Yes.
Note:
If the list shows the same server in two formats (such as IP address and host
name), only set the status to yes for the format specified in API Hostname.

g. Click OK to apply the configuration and close the Buffering dialog box.
h. Click Yes at the prompt to restart API Buffer Server.

Buffering User Guide 33


Special cases for buffering

i. In the page list of PI ICU, click Service. (If already selected, click another page, then click
Service.)
j. Click Yes at the prompt to create a dependency on API Buffer Server.
3. Start or restart the interface service, as appropriate.

34 Buffering User Guide


Buffering reference topics
Information in this section includes requirements for buffering software, types of data writes
that are buffered, and how individual PI products send data to PI Data Archive.

PI Buffer Subsystem software requirements


PI Buffer Subsystem version 4.3 or later is available for the Microsoft Windows platform.
Requirements for PI Buffer Subsystem
Type Description and Details
Operating system Any of the following (where 32-bit and 64-bit
versions are available, both are supported unless
otherwise noted):
• Windows Server 2012 R2 (Server Core or full
installation)
• Windows Server 2012 (Server Core or full
installation)
• Windows 8.1
• Windows 8
• Windows Server 2008 R2 (Server Core or full
installation; 64-bit only)
• Windows Server 2008 SP2
• Windows 7 SP1
• Windows Vista SP2
To run PI Buffer Subsystem, you need local
administrator privileges.

PI Data Archive Version 3.4.375 or later

Buffering User Guide 35


Buffering reference topics

Type Description and Details


Buffering configuration tools To configure buffering for an interface computer
(PI API connection), you will need PI Interface
Configuration Utility (PI ICU). To use PI Buffer
Subsystem 4.3 or later with an interface, you will
need PI ICU version 1.4.15 or later.
To configure buffering for client computers, you
will need one of the following, depending on how
the product sending data connects to PI Data
Archive:
• PI AF Client 2014 or later (for AF SDK
connections)
• PI SDK 2014 or later (for PI SDK connections)
PI Buffer Subsystem 4.3 or later includes Buffering
Manager, which helps you set up buffering and
shows information about buffering status. Both are
included with PI AF Client 2014 and PI SDK 2014.
They are also included with certain PI interfaces.
Refer to the release notes for your interface to find
out whether it includes the latest version of PI
Buffer Subsystem.

PI products and buffering programs


Each PI product sends PI point data to PI Data Archive using PI API, PI SDK, AF SDK, or a
combination of these. API Buffer Server provides buffering for applications that send data
using PI API, which are sometimes called PI API applications. PI Buffer Subsystem provides
buffering for applications that send data using any of the three.
To ensure that all data from a given product is buffered, first make sure that you are using the
appropriate buffering program. Then make sure the buffering program is configured to
support the way the product sends data (that is, using PI API, PI SDK, or AF SDK).
Tip:
If the table below indicates that you can use either buffering program with your PI
product, PI Buffer Subsystem is usually the best option. You can use Buffering Manager to
either configure PI Buffer Subsystem, or upgrade from PI API Buffer Server to PI Buffer
Subsystem.
With Buffering Manager, you choose whether to configure buffering for one of three
options: PI ACE, any Windows-based PI Interface, or all other applications. Based on that
choice, Buffering Manager automatically sends data using the appropriate method.

36 Buffering User Guide


Buffering reference topics

PI product How it sends data Buffering program(s) to use


to PI Data Archive
Custom applications Check with Check with application developer
application
developer (for
applications
written with AF
SDK, see the
relevant PI Asset
Framework
version)
PI ACE PI API PI Buffer Subsystem or PI API
Buffer Server
PI Asset Framework 2012 with .NET 4.0 AF SDK Buffering not supported
PI Asset Framework (PI AF) 2014 and earlier PI SDK PI Buffer Subsystem only
with .NET 3.5
PI Asset Framework (PI AF) 2014 and later AF SDK PI Buffer Subsystem only
with .NET 4.0
PI DataLink 2010 SP1 and earlier PI SDK PI Buffer Subsystem only
PI DataLink 2013 and later PI SDK and AF SDK PI Buffer Subsystem only
PI interfaces that run on Microsoft Windows PI API PI Buffer Subsystem or PI API
1 Buffer Server
PI interfaces that run on Linux or UNIX PI API API Buffer Server only
platforms
PI Interface for Relational Database (RDBMS PI SDK and PI API PI Buffer Subsystem only
via ODBC) 2
PI Interface for Universal File and Stream PI SDK and PI API PI Buffer Subsystem only
Loading (UFL) 2
PI JDBC Driver 3 PI SDK PI Buffer Subsystem only
PI Manual Logger 2.1 and later (PC Client, PI SDK PI Buffer Subsystem only
Web Services, and Windows Service)
PI Manual Logger 2014 (Web Application) AF SDK PI Buffer Subsystem only
PI Notifications 4 PI API PI Buffer Subsystem or PI API
Buffer Server
PI ODBC Client 3 PI SDK PI Buffer Subsystem
PI OLEDB Provider PI SDK PI Buffer Subsystem only
PI OPC DA Server AF SDK PI Buffer Subsystem only
PI OPC HDA Server PI API PI Buffer Subsystem or PI API
Buffer Server
PI ProcessBook 3.1 and later PI SDK PI Buffer Subsystem only
PI System Explorer See the relevant PI PI Buffer Subsystem only (for
Asset Framework versions that support buffering)
version
PI System Management Tools (PI SMT) 5 PI SDK PI Buffer Subsystem only
PI Web API AF SDK PI Buffer Subsystem only
PI Web Services PI SDK PI Buffer Subsystem only

Buffering User Guide 37


Buffering reference topics

1 Most PI interfaces send data to PI Data Archive using PI API. Exceptions: AMI interfaces and

PI Connectors have their own buffering and do not use the buffering services described here.
Batch interfaces are a special case (see Batch interfaces and buffering for details). Other
exceptions are listed in the table above.
2 These applications use PI SDK to write annotation data and PI API to write other data to PI
Data Archive.
3 Relies on PI OLEDB Provider buffering capabilities

4 Custom delivery channels may send data to PI Data Archive using PI API, PI SDK, or AF SDK.

5 Supports buffering, but not fanning (does not send data to all collective members)

Examples:
• To buffer data from PI DataLink 2010 SP1 or earlier, configure PI Buffer Subsystem to
buffer PI SDK data.
• To buffer data from PI Asset Framework 2014 or later, configure PI Buffer Subsystem to
buffer both PI SDK and AF SDK data.
• To buffer data from PI ACE, configure either PI Buffer Subsystem or API Buffer Server to
buffer PI API data.
• For a few products like PI Relational Database (RDBMS via ODBC) Interface and PI
Universal File and Stream Loader (UFL) Interface, you may want to configure PI Buffer
Subsystem to buffer both PI API and PI SDK data. For these products, consider buffering PI
SDK data if you need to buffer annotations.
• To buffer data from a PI interface running on a Linux or UNIX platform, configure API Buffer
Server to buffer PI API data.

Buffering types
Buffering queues data from PI interface nodes and client nodes in case the PI Data Archive
server receiving the data becomes unavailable for any reason. For example, this might occur
during a network outage, maintenance, or backup.
When the connection with the PI Data Archive server or collective is restored, the buffering
service sends all the stored data from the buffer to the PI Data Archive server in the order it
was received.
There are three types of data writes that can be buffered:

• PI API
Data from PI API applications is usually buffered using PI Buffer Subsystem. If you send
buffered data to PI Server version 3.4.370 or earlier, or if your interfaces run on a non-
Windows platform, you need to use API Buffer Server.

• PI SDK
Data from PI SDK applications can be buffered only using PI Buffer Subsystem. PI SDK
buffering was introduced with PI SDK 2010 R2.

38 Buffering User Guide


Buffering reference topics

• AF SDK
Data from AF SDK applications can be buffered only using PI Buffer Subsystem. AF SDK
buffering was introduced with PI Asset Framework 2014 (2.6).

Buffering User Guide 39


Buffering reference topics

40 Buffering User Guide


Troubleshoot buffering
Troubleshooting steps vary depending on which version of PI Buffer Subsystem you use. Steps
below that do not indicate a specific version apply to all versions.

Procedure
1. Depending on your version of PI Buffer Subsystem, do one of the following:
If you use Then
PI Buffer Subsystem 4.3 or later Start Buffering Manager and view the dashboard,
which reports any problems with buffering. For
information about what to do in response to
specific issues, see PI Buffer Subsystem health
alerts.
You can start Buffering Manager from PI
Interface Configuration Utility 1.4.15 or later, PI
SDK Utility 2014 or later, or PI System Explorer
2014 R2 or later.

PI Buffer Subsystem 3.4.380 or earlier In a command window, navigate to the PIPC


\BIN folder and type pibufss -cfg. This shows
information about critical errors (if any),
whether PI Buffer Subsystem is buffering PI API
data or RPC (AF SDK or PI SDK) data, and the
status of current buffer sessions. See View
buffering sessions with pibufss -cfg for more
information.

2. (PI Buffer Subsystem 4.3 or later only) To find out when an issue first started to occur, open
a command window, navigate to the \PIPC\bin folder and type:
pibufss -health
Each issue has a timestamp, for example:
Health: critical
Issues:
critical: Failed to create API shared memory buffer (ID: 8)
26-Jul-14 08:34:05
3. If the above steps don't provide enough information, look in the PI message log for errors or
warnings posted around the time when the issue first started. For information about where
to find the message log and what to look for, see Buffering and the PI message log.
4. If you need help resolving the problem, contact OSIsoft Technical Support.
(PI Buffer Subsystem 4.3 or later only) To facilitate troubleshooting, use Buffering Manager
to generate a buffering report as follows. You can send this report to OSIsoft Technical
Support when opening a ticket.

a. In Buffering Manager, click File > Export buffering report.


b. In the Save As window, specify a file name and location and click Save.

Buffering User Guide 41


Troubleshoot buffering

Buffering and the PI message log


You can view the message log as follows:
• (PI Buffer Subsystem 4.3 or later only) Use Buffering Manager. In the dashboard, click the
View messages link.
• Use PI System Management Tools. In the System Management Tools pane, click Operation >
Message Log.
• Use PI Interface Configuration Utility. Click Tools > Log Files, then double-click the PIPC log
file with the appropriate Date Last Modified. The PIPC log contains only messages written
by PI interfaces.
Messages related to PI Buffer Subsystem are likely to come from one of the following programs
(shown in the Program column):
Program Description
pibufss PI Buffer Subsystem process messages
The name of the buffered application Messages from that application
pinetmgr Messages about connection to the server receiving buffered data
pilogsrv Messages that were originally in the PIPC log and were copied to the PI
message log by the PIPC Log Server service. In the message body, look for
pibufss or the name of the buffered interface. For example:
I 28-Jul-14 15:26:45 pilogsrv (0)
>> 28-Jul-14 15:26:45 pibufss.exe>PI-API Buffer Manager
(19680) - serverA> Buffer status changed to disconnected.

If you have trouble identifying or viewing messages in the PI message log, see PI message log
and 32-bit and 64-bit installations.
If PI Message Subsystem is not running, all messages go to the Windows Application Event Log.
Use the Microsoft Event Viewer to look at Windows Event Logs.

PI Buffer Subsystem health alerts


When a buffering problem occurs, the Buffering Manager dashboard shows an error or
warning icon along with a description of the issue.

42 Buffering User Guide


Troubleshoot buffering

Message Description What to do


Failed to create PI Buffer Subsystem cannot Check the message log for possible causes of this
API shared create the API shared memory error. Two common causes are:
memory buffer buffer. As a result, PI API data is • One or more interfaces were still accessing the
not buffered for this server. shared memory buffer from a previous session
when pibufss was started.
Stop the interface (or interfaces) and wait
approximately 1 minute. Then view the
Buffering Manager dashboard. When the
message has disappeared, restart the
interfaces.
If you don't know which interface is at fault,
stop and restart all interfaces that write to the
target PI Data Archive server.
• PI Buffer Subsystem does not have sufficient
permissions to create the shared memory
buffer.
Review the permissions for the account the PI
Buffer Subsystem service uses to log on, and
modify them if needed. For more information,
see PI Buffer Subsystem and service logon
accounts.
Failed load PI Buffer Subsystem cannot find Run Buffering Manager and click the Settings link.
configuration pibufcfg.xml or the file is If needed, change settings to implement the
file corrupted. PI Buffer Subsystem expected configuration. Click Save. This recreates
(pibufcfg.xml) will continue to buffer data using the configuration file and should resolve the issue
default configuration settings. after 1 minute.
User disabled Queuing data but not sending it If you used Buffering Manager to change the buffer
data sending (- to the server. This can occur after location (Queue path), status should return to
bc stop you change the buffer location by normal in a few minutes when the change is
command) setting Queue path in Buffering completed.
Manager, or when a user
If a user issued the pibufss -bc stop command,
intentionally issues the pibufss
then to resume buffering, open a command
-bc stop command.
window, navigate to the \PIPC\bin folder and
type:
pibufss -bc start
If prompted, specify the server receiving buffered
data, the buffer session number, or both for the
affected server.

Buffering User Guide 43


Troubleshoot buffering

Message Description What to do


User disabled Neither queuing data nor If you used Buffering Manager to change the buffer
data queuing (- sending it to the server. All location (Queue path), status should return to
bc dismount incoming data for this server is normal in a few minutes when the change is
command) lost. This can occur after you completed.
change the buffer location by
setting Queue path in Buffering If a user issued the pibufss -bc dismount
command, then to resume buffering, open a
Manager, or when a user
command window, navigate to the \PIPC\bin
intentionally issues the pibufss
folder and type:
-bc dismount command.
pibufss -bc start
If prompted, specify the server receiving buffered
data, the buffer session number, or both for the
affected server

The configured The buffer location has been If you used Buffering Manager to change the buffer
queue path is changed in configuration, but PI location (Queue path), status should return to
not yet in effect Buffer Subsystem has not applied normal in a few minutes when the change is
the change yet. completed. If the issue persists, check the message
log for the root cause of the problem. Some
common causes are:
• The disk is full. Increase the disk space or use a
different buffer location.
• PI Buffer Subsystem does not have sufficient
permissions to write to the new location.
Review the permissions for the buffer location
(Queue path in Buffering Settings), and modify
them if needed. For more information, see
Operating system permissions for buffering.
Failed read When this happens, PI Buffer Add the required permission to the account the PI
from or write Subsystem cannot buffer or fan Buffer Subsystem service uses to log on, then
to data path data. restart the service. For more information, see
($ProgramData Operating system permissions for buffering.
\ OSIsoft \
Buffering)
Failed load This file was corrupted when PI If there was no buffered data when pibufss was
pibufss.dat (or Buffer Subsystem was last last shut down, you can ignore this message and
pibufmem.dat started. As a result, PI Buffer clear the issue. To do this, open a command
in upgrade Subsystem no longer has the list window, navigate to the \PIPC\bin folder and
case) of servers to which it was type:
sending data before it was last
pibufss -health -clear 5
shut down.
If there was buffered data, or if you are not sure,
contact OSIsoft Technical Support.

There are This message indicates a If there was no buffered data when pibufss was
configuration configuration problem not last shut down, you can ignore this message and
errors covered by other messages. For clear the issue. To do this, open a command
example, it might indicate a window, navigate to the \PIPC\bin folder and
setting that is not within the type:
permitted range.
pibufss -health -clear 5
This message is unlikely if you
If there was buffered data, or if you are not sure,
use Buffering Manager to
contact OSIsoft Technical Support.
configure buffering.

44 Buffering User Guide


Troubleshoot buffering

Message Description What to do


Received PI Buffer Subsystem received To check error details, open a command window,
error(s) when errors when posting to certain navigate to the \PIPC\bin folder and type:
posted to points.
pibufss -cfg
certain point(s)
For example, you might see a message like this:
[-11473] There are configuration
errors: collective1\memberA: retryRate
out of range.
Then use Buffering Manager to adjust the
configuration accordingly. You may need to
contact OSIsoft Technical Support.

Corrupted When PI Buffer Subsystem Contact OSIsoft Technical Support.


queue has been started, it detected queue
detected and corruption and moved the old
moved, the old queue files to a separate folder
queue(s) can within the Queue path. The
be found under folder structure for corrupted
the configured queue files is:
queue path
\autoreset_corruptedQue
ues\
logical_server_name\
physical_server_name\
current_timestamp

Error reading PI Buffer Subsystem is queuing Contact OSIsoft Technical Support.


from the buffer data, but is not able to read data
queue out of the queue to send it to the
server.
Error writing PI Buffer Subsystem is not Check the message log for the reason. If the disk is
to the buffer writing data to the queue. All full, try to make room or use Buffering Manager to
queue incoming data for this server is change the buffer location (Queue path).
lost.
If that does not resolve the issue, or if the message
log indicates a different reason, contact OSIsoft
Technical Support.

Low buffer The disk containing the buffer If PI Buffer Subsystem is queuing data because the
queue capacity queue is full. All incoming data PI Data Archive server is down or connection to
(Critical) for the affected server(s) is lost. the server is lost, check whether you can bring up
the server or reestablish the connection.
If you cannot connect to the server right away,
options include:
• Delete or move other files on the disk to make
room in the buffer queue location.
• Use Buffering Manager to change the buffer
location (Queue path) to a disk with more
available space. In Buffering Manager, click the
Settings link. In the Buffering Settings window,
select the affected server, change its Queue
path, and click Save.

Buffering User Guide 45


Troubleshoot buffering

Message Description What to do


Low buffer The disk containing the buffer Same as Low buffer queue capacity (Critical),
queue capacity queue is almost full. PI Buffer except that you have approximately 24 hours to
(Error) Subsystem can continue to queue resolve the problem before data loss occurs.
data for approximately 24 more
hours. Caution:
Changing the buffer location can cause
temporary data loss.

Low buffer The disk containing the buffer Same as Low buffer queue capacity (Critical),
queue capacity queue is low on space. PI Buffer except that you have approximately 7 days to
(Warning) Subsystem can continue to queue resolve the problem before data loss occurs.
data for approximately 7 days.
Caution:
Changing the buffer location can cause
temporary data loss.

Queue path The buffer location was changed, Check the old buffer location. If it contains buffer
changed. Did but the existing buffer queue files queue files, contact OSIsoft Technical Support. The
not find were not successfully moved to data in those files may need to be manually
queue(s) in the the new location. reprocessed.
new location,
may have lost
data
Failed to PI Buffer Subsystem cannot Check the message log for the root cause. Common
initialize/load create the buffer queue in the causes are:
the buffer configured buffer location. All • PI Buffer Subsystem does not have sufficient
queue incoming data for the server is permissions to create the file in the configured
lost. buffer location. For more information, see PI
Buffer Subsystem and service logon accounts.
• There is not enough disk space in the
configured buffer location for PI Buffer
Subsystem to create buffer queues. Options
include:
◦ Delete or move other files on the disk to
make room in the buffer queue location.
◦ Use Buffering Manager to change the buffer
location (Queue path) to a disk with more
available space. In Buffering Manager, click
the Settings link. In the Buffering Settings
window, select the affected server, change its
Queue path, and click Save.
Not connected Queuing data but not connected Check whether the server is available. If it is a
to the server to PI Data Archive. connection problem, try to reestablish the
connection.
No Queuing data and connected to Check the status of PI Snapshot Subsystem on the
communication PI Data Archive, but cannot send target PI Data Archive server.
with PI data. PI Snapshot Subsystem may
Snapshot be busy or stopped.
Subsystem. Not
sending data

46 Buffering User Guide


Troubleshoot buffering

PI Buffer Subsystem point ownership


Once PI Buffer Subsystem registers with a PI Data Archive server and starts sending snapshot
values for a PI point, only PI Buffer Subsystem can write snapshot values (either new values or
edits) for that point. In other words, PI Buffer Subsystem "owns" the point in the snapshot.
Point ownership is used to maintain consistent compression.
When PI Buffer Subsystem is unable to accept a data value, PI SDK or AF SDK may attempt to
write the value directly. In a case like this, PI Data Archive rejects the write attempt because
only PI Buffer Subsystem can write to the point.
If this happens, you may see error messages that include this PI error code: [-11414]
Buffered point does not accept new events.
To resolve this problem, you need to identify and fix any problems that are preventing PI
Buffer Subsystem from receiving or sending data. This allows PI SDK and AF SDK to send data
using PI Buffer Subsystem instead of sending it directly to the server.

PI message log and 32-bit and 64-bit installations


The PI message log and PI message definitions are installed in different locations for 32-bit and
64-bit installations of PI SDK or PI interfaces.
These differing locations can cause issues identifying messages or viewing older messages in
the PI message log under the following circumstances:

• A 32-bit interface is installed on a node with an existing 64-bit PI SDK


• A 64-bit version of PI SDK or an interface is installed on a node with an existing 32-bit
version of PI SDK or the interface (or the reverse: a 32-bit version is installed after a 64-bit
version)
Workarounds for these issues are as follows.
Symptom Resolution
You cannot identify messages in the log using the Use Windows Services to restart the PI Message
Error Lookup feature in PI SDK Utility Subsystem service (pimsgss).
You cannot view messages that were posted to the Copy the PI message log files from the LOG
PI message log before the newer PI SDK or subfolder of the older installation to the LOG
interface was installed subfolder of the newer installation.
PI message log filenames start with pimsg_ and
end with the .dat extension, and are stored in
PIHOME\LOG for 32-bit applications and
PIHOME64\LOG for 64-bit applications.
For example, if you installed a 32-bit interface on a
node with 64-bit PI SDK, copy the files named
pimsg_*.dat from PIHOME64\LOG to PIHOME
\LOG.

Buffering User Guide 47


Troubleshoot buffering

View buffering sessions with pibufss -cfg


Each buffer session represents a connection between PI Buffer Subsystem and a PI Data
Archive server or PI Data Archive collective member.
If you use PI Buffer Subsystem 4.3 or later, you can view these sessions using the dashboard in
Buffering Manager.
If you use an earlier version of PI Buffer Subsystem, you can display sessions by issuing the
pibufss -cfg command or using PI Interface Configuration Utility (PI ICU). The output from
pibufss -cfg and other pibufss commands refers to PI SDK buffering as "RPC data
buffering."
Note:
To view buffering sessions with PI Interface Configuration Utility (PI ICU), first click
Tools > Buffering. Then, in the Buffering dialog box, click Tools > PI Buffer Subsystem >
Run PIBufss -Cfg.

Procedure
1. Open a command window and change to the \pipc\bin\ directory.
2. Type pibufss -cfg.

Results
The output shows the activity on each buffering queue of a two-server PI Data Archive
collective:
Compiled PI-API Library: 1.6.2.4
Installed PI-API Library: 1.6.1.17

--- PIbufss Interactive Mode, Time: 13-Jun-11 11:14:12

Configuration Query, status: [0] Success

API data buffering: On, RPC data buffering: On


Loaded parameters: AUTHENTICATIONOPTIONS=SSPI

Buffer session Query, status: [0] Success

pibufss configuration, version: 2


bufferid: 56deea20-b36c-4ec3-ad24-e646c88606fb (wac: 0)
*** Validated servers listed in BUFFEREDSERVERLIST in piclient.ini, count: 2
1 SRV1
2 SRV2
*** Server configuration, count: 1
collective: COL1 (last update: 13-Jun-11 11:06:22)
serverid: 163a5827-ace0-4fe5-be34-390d06553c2e - replicated hosts: 2
1 hostname: SRV1 (bsl: SRV1), role: 1, buffered: 1
fqdn: 10.0.9.1
id: fe956388-47c3-4313-839d-8d6c417eae07
path: SRV1, port: 5450
2 hostname: SRV2 (bsl: SRV2), role: 2, buffered: 1
fqdn: SRV2.test.net
id: f577a972-60c4-4f31-91a8-50aca249d5e6
path: SRV2, port: 5450
*** Server buffer sessions, count: 2
1 [SRV1] state: SendingData, successful connections: 1
firstcon: 13-Jun-11 11:06:21, lastreg: 13-Jun-11 11:06:22, regid: 2

48 Buffering User Guide


Troubleshoot buffering

total events sent: 97, snapshot posts: 96, queued events: 0


2 [SRV2] state: SendingData, successful connections: 1
firstcon: 13-Jun-11 11:06:21, lastreg: 13-Jun-11 11:06:22, regid: 3
total events sent: 97, snapshot posts: 96, queued events: 0
*** Client registration, count: 0

The following lines from the above output indicate that PI Buffer Subsystem is available to
perform both PI API and PI SDK buffering, and that it will attempt to authenticate using SSPI
(Windows Security).
API data buffering: On, RPC data buffering: On
Loaded parameters: AUTHENTICATIONOPTIONS=SSPI

There is also a line describing the number of buffer sessions. In the example above, there are
two sessions (*** Server buffer sessions, count: 2).

Buffering User Guide 49


Troubleshoot buffering

50 Buffering User Guide


Performance monitoring for PI Buffer Subsystem
You can use Windows Performance Monitor and PI performance counters to monitor buffering
health and status across the organization. In contrast, you can use Buffering Manager to
monitor buffering on one client or interface computer.
The three performance objects provided with PI Buffer Subsystem 4.3 and later include
counters that allow you to monitor buffering health and status at three different levels. Each
object is described below, along with its key counters.

PI Buffer Subsystem object (global status)


The PI Buffer Subsystem object has counters for monitoring global status, which includes all
buffering from a given client or interface computer. For example, the global counter Total
Events Sent/sec tells you the number of events sent to all servers receiving buffered data from
this computer.
Key global performance counters include:
• Health: the overall health of PI Buffer Subsystem, including the health of all servers
receiving buffered data (0 = OK, 1 = Warning, 2 = Error, 3=Critical).
• Events Received/sec: the number of events per second received by PI Buffer Subsystem.
• Queue> Capacity: estimated time (in seconds) until data loss if all servers were
disconnected.
• Total Events Sent/sec: the number of events per second sent to all servers receiving
buffered data.
For more details and a complete list of global performance counters for PI Buffer Subsystem,
see PI Buffer Subsystem statistics.

PI Buffered Logical Servers object (logical server status)


The PI Buffered Logical Severs object has instances and counters you can use to monitor the
status of buffered logical servers. A logical server is either a standalone PI Data Archive server
or a PI Data Archive server collective, which appears as one server to end users. When users
connect to a collective, they may not be aware that they are actually connecting to one of its
members.
For example, assume you are sending buffered data to the collective COL1 and the server SRV3
shown below. To monitor the status of COL1, you can add counters from the PI Buffered
Logical Servers object for the instance COL1. To monitor the status of SRV3, you can add
counters for the instance SRV3.

Buffering User Guide 51


Performance monitoring for PI Buffer Subsystem

Key logical performance counters include:


• Health: the overall health of this logical server, including the health of all physical servers
that comprise this logical server (0 = OK, 1 = Warning, 2 = Error, 3=Critical).
• Events Received/sec: the number of events per second received by PI Buffer Subsystem for
this logical server.
• Events Rejected: the number of events rejected by PI Buffer Subsystem for this logical
server.
• Points with Post Error: the number of points for which PI Buffer Subsystem failed to post
the last event (sum of Points with Post Error of all physical servers that comprise this
logical server).
• Total Events Sent/sec: the number of events per second PI Buffer Subsystem sent to all
physical servers that comprise this logical server.
• Total Queued Events: the total number of events in all buffer queues for physical servers
that comprise this logical server.
For a complete list of logical performance counters for PI Buffer Subsystem, see PI Buffered
Logical Servers statistics.

PI Buffered Physical Servers object (physical server status)


The PI Buffered Physical Severs object has instances and counters you can use to monitor the
status of individual buffered servers, including both collective members and standalone PI
Data Archive servers.
While certain counters are available for both PI Buffered Logical Servers and PI Buffered
Physical Servers, each object also has its own unique counters. For example, the physical
counters State> Is Connected and State> Is Sending OK make sense only for individual physical
servers, while the counters Total Events Sent/sec and Total Queued Events may be useful at
both the logical and physical levels.

52 Buffering User Guide


Performance monitoring for PI Buffer Subsystem

Key physical performance counters include:


• Health: the health of buffering for this physical server (0 = OK, 1 = Warning, 2 = Error,
3=Critical).
• Points with Post Error: the number of points for which PI Buffer Subsystem failed to post
the last event to this server.
• State> Is Sending OK: whether PI Buffer Subsystem is sending or ready to send data to this
server (0 = No, 1 = Yes).
• Total Events Sent/sec: the number of events per second PI Buffer Subsystem sent to this
physical server.
• Total Queued Events: the total number of events in all buffer queues for this physical server.
For a complete list of logical performance counters for PI Buffer Subsystem, see PI Buffered
Physical Servers statistics.

PI Buffer Subsystem statistics


These global counters record PI Buffer Subsystem's overall status, which includes all buffering
from a given client or interface computer. They include counters that are not specific to any
one server, and counters that represent aggregated values of all servers receiving buffered
data.
Attribute Description
Buffer Sessions Active Number of active buffer sessions1 for physical
servers to which PI Buffer Subsystem is connected
and sending data.
Buffer Sessions Offline Number of inactive buffer sessions1 for physical
servers for which PI Buffer Subsystem is unable
queue and/or send data.
Buffer Sessions Total Total number of active and offline buffer sessions1.
Compressed Events/sec Rate of events marked for archiving (does not
include Out-Of-Order events).
Events In Error Number of events not processed locally by the
Buffer Subsystem, including:
1. events with invalid mode, data type, or value
2. events that can't be coerced to the point's data
type
3. events with a digital set that does not match
the point's configuration
These events are still sent to the PI Data Archive
servers.

Events Received/sec Rate of events received.

Buffering User Guide 53


Performance monitoring for PI Buffer Subsystem

Attribute Description
Events Rejected Number of events rejected by the Buffer
Subsystem, including:
1. events with unsupported API source type
(uncommon)
2. the target server is version 3.4.375 and PI
Buffer Subsystem does not have write access to
the point
These events are not sent to the PI Data Archive
servers.

Health Overall health (0 = OK, 1 = Warning, 2 = Error,


3=Critical)
Out-Of-Order Events/sec Rate of out-of-order events received.
Point Count Numbers of local points with cached configuration
(on disk).
Point Edits/sec Rate of new points and point edits received from
all servers.
Points With Post Error Total number of points that received errors when
posting, for all servers.
Queue> Capacity The estimated time (in seconds) that PI Buffer
Subsystem can buffer data for this logical server if
the connection to all servers is lost.
Queue> File Count Total number of queue files for all servers.
Queue> Reset Folder Count Number of buffer queue reset folders currently in
storage. If PI Buffer Subsystem detects the queue is
corrupted and is not able to recover it, a new
queue is created so that data can flow. Each time
that happens, the old corrupted queue files are
saved in a separate folder under the configured
queue path.
Queue> Write Errors Number of events that failed to be written to the
buffer queue for all servers.
Total API Buffered Events Number of events in all API buffers (including
APIBUF*.DAT files).
Total Events Sent/sec Rate of events sent to all servers.
Total Queue Writes Exclusive/sec Rate of events written to a buffer queue but not
other queues in the same collective (no fanning
mode).
Total Queue Writes/sec Rate of events written to all buffer queues.
Total Queued Events Total buffered events.
Total Snapshot Posts/sec Rate of data posts to all PI sessions.
Unresolved Cache Points Numbers of local points with unknown
configuration.

1 When PI Buffer Subsystem establishes buffering to a physical server, it creates a buffer

session. The session persists as long as PI Buffer Subsystem is buffering to this server.

54 Buffering User Guide


Performance monitoring for PI Buffer Subsystem

PI Buffered Logical Servers statistics


PI Buffered Logical Servers counters record the buffering status of logical servers. For the
purposes of these counters, a logical server is any PI Data Archive server you can connect to
(for example, using Connection Manager). That means it can be either a PI Data Archive
collective or a single PI Data Archive server. Logical counters include counters that apply only
to logical servers, and counters that represent aggregated values of all physical servers that
comprise a specific logical server.
Attribute Description
Buffer Sessions Active Number of active buffer sessions* for all physical
servers in this logical server to which PI Buffer
Subsystem is connected and sending data.
Buffer Sessions Offline Number of inactive buffer sessions* for physical
servers in this logical server to which PI Buffer
Subsystem is unable to send data.
Buffer Sessions Total Total number of active and offline buffer sessions*
for this logical server.
Compressed Events/sec Rate of events marked for archiving (does not
include Out-Of-Order events).
Events In Error Number of events not processed locally by the
Buffer Subsystem, including:
1. events with invalid mode, data type, or value
2. events that can't be coerced to the point's data
type
3. events with a digital set that does not match
the point's configuration
These events are still sent to the PI Data Archive
servers.

Events Received/sec Rate of events received.


Events Rejected Number of events rejected by the Buffer
Subsystem, including:
1. events with unsupported API source type
(uncommon)
2. the target server is version 3.4.375 and PI
Buffer Subsystem does not have write access to
the point
These events are not sent to the PI Data Archive
servers.

Health Health of this server (0 = OK, 1 = Warning, 2 =


Error, 3=Critical)
Out-Of-Order Events/sec Rate of out-of-order events received.
Point Count Numbers of local points with cached configuration
(on disk).
Point Edits/sec Rate of new points and point edits received from
the PI Data Archive server.
Points With Post Error Total number of points that received errors when
posting, for all servers.

Buffering User Guide 55


Performance monitoring for PI Buffer Subsystem

Attribute Description
Queue> Capacity The estimated time (in seconds) that PI Buffer
Subsystem can buffer data for this logical server
(collective) if connection to all the physical servers
(collective members) is lost.
Queue> File Count Total number of queue files for all physical servers
in this logical server.
Queue> Reset Folder Count Number of buffer queue reset folders currently in
storage. If PI Buffer Subsystem detects the queue is
corrupted and is not able to recover it, a new
queue is created so that data can flow. Each time
that happens, the old corrupted queue files are
saved in a separate folder under the configured
queue path.
Queue> Write Errors Number of events that failed to be written to the
buffer queue for all physical servers in this logical
server.
Total API Buffered Events Number of events in all API buffers (including
APIBUF*.DAT files).
Total Events Sent/sec Rate of events sent to all physical servers in this
logical server.
Total Queue Writes Exclusive/sec Rate of events written to a buffer queue but not
other queues in the same collective (no fanning
mode).
Total Queue Writes/sec Rate of events written to buffer queues for all
physical servers in this logical server.
Total Queued Events Total number of buffered events for all physical
servers in this logical server.
Total Snapshot Posts/sec Rate of data posts to all physical servers in this
logical server.
Unresolved Cache Points Numbers of local points with unknown
configuration.

* When PI Buffer Subsystem establishes buffering to a physical server, it creates a buffer


session. The session persists as long as PI Buffer Subsystem is buffering to this server.

PI Buffered Physical Servers statistics


PI Buffered Physical Servers counters record the buffering status of physical PI Data Archive
computers.
Note:
Counters starting with Autotune> or Post> are primarily for troubleshooting when working with
OSIsoft Technical Support.

56 Buffering User Guide


Performance monitoring for PI Buffer Subsystem

Attribute Description
Autotune> Countdown to restart Autotune> Countdown to optimization restart
(sec) - How long (in seconds) autotune will wait
before it restarts autotuning if the number of
events pending isn't below the value of Autotune
events trigger (default value = 12,000,000). You
can find Autotune events trigger in Buffering
Manager's Buffering Settings window.
Note:
This countdown timer will get reset each
time:
1. The number of queued events goes
below the previously lowest value
2. The timer expires and the number of
events pending is less than or equal to
the value of Autotune events trigger

Autotune> Events Pending Low Autotune> Lowest number of pending events since
last optimization. If the number of pending events
gets below this, PI Buffer Subsystem is catching up.
Autotune> Events/send upper limit Autotune> The upper limit of the number of events
per send used by the autotuning algorithm. This
may be reduced from the default value when there
are errors (timeout, message too big, etc.) sending
data.
Autotune> Mode Autotune optimization mode (0 = off; 1=start;
2=init; 3=run; 4=optimized)
Autotune> Optimization Step Autotune> Each time the autotuning algorithm
tries a new value, this counter is incremented by
one.
Autotune> Optimized events/send Autotune> optimized number of events to send
each time
Autotune> Queue File Count Low Autotune> Lowest number of queue files since last
optimization. If the number of queue files gets
below this, PI Buffer Subsystem is catching up.
Autotune> Send Err Recovery Autotune> Send error recovery mode (0 = false, 1
= true). If PI Buffer Subsystem is in send error
recovery mode, then it will reduce the number of
values it is sending to try and clear the error.
Autotune> Trial events/sec Autotune> Events/Sec rate for the previous trial
value of Events/Send
Autotune> Trial events/send Trial value for the number of events to send each
time
Health Health of this server (0 = OK, 1 = Warning, 2 =
Error, 3=Critical)
Last Successful Send Time The last time successfully sent data to the server
Points With Post Error Number of points received errors when posted to
the server.
Post> Current events/send Post> number of events to send each time

Buffering User Guide 57


Performance monitoring for PI Buffer Subsystem

Attribute Description
Post> Seek-Send-Peek Time Post> The total time in milliseconds to seek past
the events successfully sent to the server,
asynchronously send events previously peeked,
and seek the next events to send.
Note:
Seeking and Peeking happen in parallel with
sending the previously peeked events. So this
counter's value is not the sum of the 'Post>
Time to Seek', 'Post> Time to Send', and
'Post> Time to Peek' counter values.

Post> Send mode Post> Send mode (0 = Not sending; 1 = Lock error;
2 = Created; 3 = Initialized; 4 = No events; 5 =
Peeked first events; 6 = Finished sending and
events peeked; 7 = Sending; 8 = Send error; 9 =
Wait error; 10 = Send OK; 11 = Seeking sent
events; 12 = Seek error; 13 = Seek OK; 14 = Peek
error; 15 = Peek OK; 16 = Peeking next events; 17
= Sent events and peeked events before; 18 = Sent
events and no more to send; 19 = Post OK; 20 = No
events to seek)
Post> Time to Peek (ms) Post> The time in milliseconds to peek events out
of the queue including copying for peeking ahead
Post> Time to Seek (ms) Post> The time in millisecond to seek past the
events successfully sent to the server
Post> Time to Send (ms) Post> The time in milliseconds to send the data to
the server and get an acknowledgement
Queue> Capacity The estimated time (in seconds) that PI Buffer
Subsystem can buffer data for this server if
connection to the server is lost.
Queue> File Count Number of queue files
Queue> Reset Folder Count Number of buffer queue reset folders currently in
storage. If PI Buffer Subsystem detects the queue is
corrupted and is not able to recover it, a new
queue is created so that data can flow. Each time
that happens, the old corrupted queue files are
saved in a separate folder under the configured
queue path.
Queue> Write Errors Number of events failed to be written to the buffer
queue.
State> Is Connected Whether PI Buffer Subsystem is connected to this
server (0 = No, 1 = Yes).
State> Is Queuing Enabled Whether data queuing for this server is enabled (0
= No, 1 = Yes). Users can disable queuing by
issuing the command pibufss -bc dismount.
When queuing is disabled, data is not queued or
sent to the server.
State> Is Sending Enabled Whether sending data to the server is enabled (0 =
No, 1 = Yes). Users can disable sending by issuing
pibufss -bc stop. When sending is disabled,
data is queued but not sent to the server.

58 Buffering User Guide


Performance monitoring for PI Buffer Subsystem

Attribute Description
State> Is Sending OK Whether PI Buffer Subsystem is sending or ready
to send data to this server (0 = No, 1 = Yes).
Total Events Sent/sec Rate of events sent to this server.
Total Queue Writes Exclusive/sec Rate of events written to this buffer queue but not
other queues in the same collective (no fanning
mode).
Total Queue Writes/sec Rate of events written to the buffer queue for this
server.
Total Queued Events Total number of buffered events for this server.
Total Snapshot Posts/sec Rate of data post calls to this server.

Buffering User Guide 59


Performance monitoring for PI Buffer Subsystem

60 Buffering User Guide


Technical support and other resources
For technical assistance, contact OSIsoft Technical Support at +1 510-297-5828 or through the
OSIsoft Tech Support Contact Us page (https://techsupport.osisoft.com/Contact-Us/). The
website offers additional contact options for customers outside of the United States.
When you contact OSIsoft Technical Support, be prepared to provide this information:
• Product name, version, and build numbers
• Details about your computer platform (CPU type, operating system, and version number)
• Time that the difficulty started
• Log files at that time
• Details of any environment changes prior to the start of the issue
• Summary of the issue, including any relevant log files during the time the issue occurred
To ask questions of others who use OSIsoft software, join the OSIsoft user community,
PI Square (https://pisquare.osisoft.com). Members of the community can request advice and
share ideas about the PI System. The PI Developers Club space within PI Square offers
resources to help you with the programming and integration of OSIsoft products.

Buffering User Guide 61


Technical support and other resources

62 Buffering User Guide

You might also like