The application server can be accessed from a multi-threaded client. However, the application server itself is not multi-threaded. As a result, only one request is serviced at a time. If a method call is made from the client while another one is still running on the application server, the application will decide which of the following should happen:

  • The second call can be queued and executed when the application server becomes available
  • The client can get a Java exception

The application can set the run-time properties to do either and can switch the setting at any time. The default is to throw an exception (WaitIfBusy=false).

The methods in the following table provide thread control to the Open Client Runtime. For a detailed description of each property, see Alphabetical list of properties.

Table 1. Thread control methods
Method Description/Property
setWaitIfBusy() Sets PROGRESS.Session.waitIfBusy to true
setNoWaitIfBusy() Sets PROGRESS.Session.waitIfBusy to false
getWaitIfBusy() Gets PROGRESS.Session.waitIfBusyReturns TRUE if setWaitIfBusy() was called; FALSE, if setNoWaitIfBusy() was called