Provided are a method, system, and program for managing resources in which
a local processor sends remote operation requests to be executed by a
remote processor having multiple resources. In the illustrated
embodiment, the local processor and the remote processor each have a
resource manager, each of which maintains a control set for each resource
of the remote processor. Each control set of the remote processor
resource manager includes a queue for queuing remote operation requests
awaiting execution in connection with the resource associated with the
control set. Each control set of the local processor resource manager
includes a credit counter which keeps track of permissible outstanding
remote operation requests. Each local processor control set credit
counter is decremented for each remote operation request for the
associated resource sent to the remote processor and is incremented for
each acknowledgment received from the remote processor. For each remote
processor control set, the remote processor resource manager sends an
acknowledgment for each remote operation request initiated in connection
with the associated resource. For each local processor control set, the
local processor resource manager queues remote operation requests if the
control set credit counter falls below a threshold after being
initialized in accordance with the capacity of the associated remote
processor control set queue.