The PBA Control Panel is not available, the system error message The server is busy is displayed in the Control Panel:
The log of the AMT container (transaction manager) amt.log on the PBA Management Node contains messages about server being busy with transactions:
[12-07-04 10:11:00.831 TransMan TH14984 ERR] CMTransManager::Repository::addActor(30834, <25:3:1>): the server is busy with transaction = 51 [12-07-04 10:11:00.831 _amt_trsnmg TH14984 ERR] C-string exception in _amt_trsnmgr_: The server is busy.
Checking the xmlrpcd.* logs on the PBA Management Node we see a lot of transactions which were neither committed nor rolled back:
the number of methods called without automatic commit:
# egrep '\+\+\+.*AutoCommit:No' ~bm/log/xmlrpcd.* | wc -l 657
# egrep '\+\+\+.*CommitTransaction' ~bm/log/xmlrpcd.* | wc -l 37
rolled back transactions:
# egrep '\+\+\+.*RollbackTransaction' ~bm/log/xmlrpcd.* | wc -l 221
Some 3rd-party application must be sending API requests to PBA XML RPC server without the proper commit.
It is possible to pass the parameter AutoCommit=No in API request to PBA. In this case PBA will process the request, corresponding transaction ID will be returned back to request originator but the transaction will not be committed automatically. Transaction originator must explicitly commit/rollback the transaction received from PBA in the response to the request Execute. If that did not happen, the transaction will be left in the system, locking further requests to the object, which may lead to problems with control panel and general PBA functionality.
If the parameter AutoCommit is omitted in API request or explicitly set to Yes then PBA XML RPC server creates new transaction, processes the request, commits or rolls back changes made by the request and closes the transaction. So, in the latter case PBA XML RPC server takes care about proper transaction commit.
For proper communication with PBA XML RPC server request originator must follow either of the rules below:
If the parameter AutoCommit is set to No in API request then it must be followed by the corresponding request CommitTransaction with proper transaction ID.
- Set AutoCommit to Yes or omit it in the API request, so the transaction created will be commited/rolled back automatically.
Refer to the PBA Public API Reference for more details, chapter Using Transaction Mechanism.