Product: ChemBioOffice Enterprise
External Procedure Agent to Oracle Cartridge Crashes Upon Saving Notebook Experiment.
We have an example of an enotebook cartridge system where the external procedures agent is crashing on a particular cartridge call (cdxtomolweight). Repeating the error was sporadic, sometimes everything would work just fine, and other times, upon pasting a reactant into a reaction section in the notebook you get the following error (this retrieved from the eln logs but you also get a popup on the client) :
lost RPC connection to external procedure agent ORA-06512: at "CSCARTRIDGE.TOMOLWEIGHT", line 1 ORA-06512: at "CSCARTRIDGE.CONVERTCDX", line 65 ORA-06512: at "EN1103.INTUB_CHEMICAL_STRUCTURES", line 5 ORA-04088: error during execution of trigger 'EN1103.INTUB_CHEMICAL_STRUCTURES'
The culprit is a SQLNET.ORA parameter: SQLNET.INBOUND_CONNECT_TIMEOUT. This parameter was enabled in Oracle 10.2.0.3 and beyond to protect the database from denial of service attacks. It is however incompatible with connections made from an external procedure agent such as our Chemistry Cartridge. When this parameter is set to a non-zero value it causes any external procedure to terminate after the timeout. In this case, this parameter was set to 120 seconds thus killing the Cartridge for any middle-tier connection lasting more than 120 seconds. Oracle admits that the issue of this parameter is incompatible with systems that require external process connections. They recommend either disabling this parameter (setting it to zero) or establishing an alternate SQLNET.ORA file or Listener (where this setting is disabled) for use with external procedure connections