What’s new in SAPRC.DLL version 4.0.0.18?

This blog discusses the new features of SAP’s cluster resource DLL for the Windows Failover cluster. Version 4.0.0.18 has been released in July 2022.

For more information where to download this DLL and how to update it, please see SAP note 1596496.

You find saprc.dll in c:\windows\system32 folder:

New feature in SAP Service cluster resource

There is a new property “ExecuteBeforeStart”:

You can enter the file path to a script here. The script will be executed BEFORE the cluster will start the SAP start service (sapstartsrv.exe).

This is needed in special use cases, where you need to do certain things on storage or filesystem level, before the SAP service should be started.

Example:

Before the cluster should start a service, all oplocks (file locks) on sapmnt share should be removed by a script.

Note: 

The script will be started using the credentials of the Windows cluster service. This is LocalSystem. This cannot be changed.

New feature in SAP Instance cluster resource

New properties are:

ExecuteOnYellowFirst and ExecuteOnYellowSecond

(the other “Execute…” properties are discussed in this blog:  https://blogs.sap.com/2020/09/01/identify-problems-in-windows-failover-cluster-environments/ )

You can enter the file path to a script.

The meaning of the “Execute…” properties in detail:

ExecuteAfterOnline means, execute this script AFTER the cluster has brought online the SAP instance resource.

ExecuteBeforeOffline means, execute this script BEFORE the cluster has brought offline the SAP instance resource.

ExecuteBeforeFailure – see blog https://blogs.sap.com/2020/09/01/identify-problems-in-windows-failover-cluster-environments/

The script can capture additional trace information before a SAP instance resource will be terminated due to an error.

New in 4.0.0.18:

ExecuteOnYellowFirst means, that in case of a “yellow” state of a SAP process, for example msg_server.exe or enserver.exe (Message Server or Enqueue Server), a script can be started which captures traces at this specific point in time.

Only needed if “yellow” states caused issues in cluster operations.

ExecuteOnYellowSecond means the same as above, but saprc.dll waits 10 seconds, until it starts another script to capture traces at this point in time.

Only needed if “yellow” states caused issues in cluster operations.

Example:

SAP Message Server process (msg_server.exe) becomes yellow sporadically and non predictable.

If you configure both properties to start scripts, a script will start a debugger or other application to capture a dump of msg_server.exe. This can be later analyzed by SAP support to identify the reason, why msg_server.exe was “yellow”.