Client-Library Issues

Known programming issues and workarounds, if any, of Client-Library.

Programming issues of Client-Library
CR# Description

ct_poll

Workaround: Do not call ct_poll from within any Client-Library callback function or from within any other function that can execute at the system-interrupt level. Calling ct_poll at the system-interrupt level corrupts SAP Open Client and SAP Open Server internal resources and causes recursion in the application.

Asynchronous operations

Workaround:

To properly exit Client-Library, wait until all asynchronous operations are complete, then call ct_exit. If an asynchronous operation is in progress when ct_exit is called, the routine returns CS_FAIL and does not exit Client-Library properly, even when CS_FORCE_EXIT is used.

Client-Library fully supports asynchronous operations on UNIX platforms. See Asynchronous Programming in the Open Client Client-Library/C Reference Manual.

Registered procedure notifications

Workaround: The CS_ASYNC_NOTIFS connection property controls how a Client-Library application receives registered procedure notifications from an SAP Open Server application.

Currently, the SAP Open Server application sends a notification to the client as one or more Tabular Data Stream™ (TDS) packets. However, the client application does not learn of the notification until Client-Library reads the notification packets from the connection and invokes the application’s notification callback.

To trigger the application's notification callback on a connection that is otherwise idle, set CS_ASYNC_NOTIFS to CS_TRUE for ct_poll. In other words, unless the application is actively sending commands and reading results on the connection, it does not receive notifications when CS_ASYNC_NOTIFS is CS_FALSE (the default).