Fabasoft Folio, more precisely the Fabasoft Folio COO-Services, has built-in error handling for about a dozen of ORA error codes. If one of that error codes is received, the COO-Service is trying to retry the query, and on further errors, will finally force a reconnect to the Oracle Instant Client.
This Oracle error codes are hardcoded into Fabasoft Folio to retry the query, and finally to force a reconnect to the database:
- ORA-00028 ("Your session has been killed")
- ORA-01012 ("Not logged on")
- ORA-01403 ("No data found OCI error")
- ORA-03113 ("End-of-file on communication channel")
- ORA-03114 ("Not connected to Oracle")
- ORA-03135 ("Connection lost")
- ORA-12570 ("TNS packet reader failure")
- ORA-12571 ("TNS packet writer failure")
- ORA-25401 ("Cannot continue fetches")
- ORA-25402 ("Transaction must roll back")
- ORA-25408 ("Cannot safely replay call")
It is not possible to disable the error handling of the mentioned error codes, but it is possible to extend the list of error codes.
Add futher error codes
Adding further error codes should only be done with agreement from Fabasoft Support. Adding inappropriate error codes may lead to further errors, and unpredictable behaviour of the Oracle Database and Fabasoft Folio.
Follow these steps for every COO-Service object in Fabasoft Folio:
- Navigate to the Domain Administration / Domain Objects / Services
- Edit the COO-Service object
- On the COO-Service tab of the COO-Service object, create a new line at the aggregate property Additional Database Parameters (COOSYSTEM@1.1:coosrvparameters)
- Name of the Parameter: CommunicationErrorCodes
- Value of the Parameter: <Number of the error code> (remove training zeros, e.g. for ORA-03113 write 3113)
- Use only the numbers without the ORA- prefix. If you add multiple error codes, split the codes with : (colon)
- Save the COO-Service object
(The codes of the example are taken from the above list, therefore already hardcoded in Fabasoft Folio and not needed to specify explicitely).
After you have changed all COO-Service objects, open the Fabasoft Folio Server Management, navigate to your domain, and run All Tasks / Synchronize registry entries from the context menu. Caution, this will restart all backend services of the domain.
Double-check the values in the registry of the backend servers:
HKEY_LOCAL_MACHINE\Software\Fabasoft\Fabasoft Component Server\Domain x.y\Service x\Environment now should contain the CommunicationErrorCodes key.