Добрый день всем. Столкнулся с таким случаем. С помощью socket_connect подсоединяюсь к сокету и сразу же логирую в базу. Всё работает на ура. Но стоит только сокету получить TimeOut, то последующее логирование в базу (oci_execute) выдаёт ошибку Warning: oci_execute(): ORA-03113: end-of-file on communication channel Идентификатор процесса: 518 Идентификатор сеанса: 83 Порядковый номер: 61670 in /usr/local/apache2/htdocs/ps/vendor/application.php on line Хотя последующее обращение к базе проходит нормально. Такое впечатление, что вываливается все соединения данного процесса. В чём может быть проблема? Код (Text): function getAgentBalance ($id_plat_klient=null) { if(!$this->socket->connect()){ $errdesc = 'socket_instance->connect:' . $this->socket->get_last_error_description(); App::db_log(__FUNCTION__, App::SEND_MESSAGE, '', -1, $errdesc, $id_plat_klient); return false; } return true; } ------------------------- SocketConnect -------------------------- public function connect() { $this->last_error_description = ''; if (!($this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP))) { $this->last_error_description = 'socket_create:' . socket_strerror(socket_last_error()); return false; } if (!socket_connect($this->socket, App::$config['fp']['ip'], App::$config['fp']['port'])) { $this->last_error_description = 'socket_connect:' . socket_strerror(socket_last_error()); return false; } return true; } -------------------------- App ------------------------- public static function db_log($actor, $message_type, $content, $status, $error_desc, $id_plat_klient) { if (!self::$db_connection) { $e = oci_error(); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); } $query_text = "INSERT INTO PS_MESSAGE_LOG (SERVICE, ACTOR, MESSAGE_TYPE, CONTENT, STATUS, ERROR_DESC, ID_PLAT_KLIENT)" ." values (:SERVICE, :ACTOR, :MESSAGE_TYPE, :CONTENT, :STATUS, :ERROR_DESC, :ID_PLAT_KLIENT)"; self::$log_query = oci_parse(self::$db_connection, $query_text); if (!self::$log_query) { $e = oci_error(self::$db_connection); self::file_log($e['message']); } oci_bind_by_name(self::$log_query, ":SERVICE", self::$service); oci_bind_by_name(self::$log_query, ":ACTOR", $actor); oci_bind_by_name(self::$log_query, ":MESSAGE_TYPE", $message_type); oci_bind_by_name(self::$log_query, ":CONTENT", $content); oci_bind_by_name(self::$log_query, ":STATUS", $status); oci_bind_by_name(self::$log_query, ":ERROR_DESC", $error_desc); oci_bind_by_name(self::$log_query, ":ID_PLAT_KLIENT", $id_plat_klient); $r = oci_execute(self::$log_query); if (!$r) { $e = oci_error(self::$log_query); self::file_log($e['message'] . ': ' . $e['sqltext'] . ' at:' . $e['offset']); } } Выставить всё и "красиво" не получается, дофига классов задействовано. Но общая суть отражена. Спасибо за помощь.