Ora 03114 нет связи с oracle

Обновлено: 02.07.2024

1. Мы ценим свое и Ваше время, поэтому мы всегда согласываем ТЗ и приступаем к работе в короткие сроки.
2. Мы без всяких проблем исправляем свои ошибки быстро и оперативно.
3. Мы предлагаем свои пути решения тех или иных задач. Вы выбираете решение, которое подходит именно Вам.

Вопрос: Можно ли холодную копию БД Oracle 64 бит запустить на 32 битной системе?

Ответ: Да, можно. Если попробовать просто запустить БД на 32 битной системе, то получим ошибку:

sql>connect system/password
ERROR:

ORA-06553: PLS-801: internal error [56319]

Для того, чтобы избежать данную ошибку, нужно выполнить следующие действия:

sql>connect / as sysdba

sql>shutdown immediate;
sql>startup migrate;
sql> @$ORACLE_HOME/rdbms/admin/utlirp.sql
sql>shutdown immediate;
sql> startup
sql>
sql> @$ORACLE_HOME/rdbms/admin/utlrp.sql

sql> connect system/password

Вопрос: Можно ли установить бюджетную и хозрасчетную версию ИС "Парус-8" в одну папку и в одну БД?

Отчет: Устанавливать клиенты нужны в разные папки. Также не рекомендуется держать в одной БД бюджет и хозрасчет.

Вопрос: Отчеты Crystal Reports печатается очень медленно, хотя запросы, которые в них используются выполняются быстро. В чем может быть проблема?

Ответ: Точно в чем причина не установлено, но отчет начинает работать быстрее, если открыть его в редакторе и выполнить команду "Verify Database".

Вопрос: Как получить RN в контексте обработчика событий на элементах управления?

Ответ: В версиях "Парус-8" 8.5.2.2, 8.5.3.0, 8.5.4.0, 8.5.5.0 можно использовать такую конструкцию

Application.MainForm.ActiveMDIChild.ActiveControl.DataSource.DataSet.FieldByName("тут должно быть имя поля, которое есть в представлении на главной форме").Value

Вопрос: При создании "Авансового отчета" не ставится сумма предыдущего аванса. Автоматизирован ли расчет суммы предыдущего аванса, или ее надо вводить вручную?

Ответ: Нет, не автоматизирован. Но можно написать неименованный блок, который будет заполнять данное поле автоматически. А откуда брать значения, каждый решает сам для себя. Варианты можно почитать по ссылке ниже.

Every day first user who is trying to login from application getting ORA-03114 error. After 3 attempts the application is logging to database. Once logged in everything is working fine for all users for the whole day.

Same issue again on next day who is logging in for the 1st time.

What could be the reason for this kind of behavior. Please suggest on how to fix this issue.

Answers

The reason is likely there is a DBA who

- doesn't read documentation

- doesn't use online resources

- can only be bothered to post questions like 'My car doesn't work, please fix my car' without doing any troubleshooting himself and without providing any details.

Your request must be considered insulting and rude.

Senior Oracle DBA

I have read the online info and tried some troubleshooting. But could not get the reason for this issue. The listener log looks good and no error on alertlog about the timed out.

That is the reason I requested here to know if anyone has faced similar issue.

I am not insulting anyone here or being rude with anyone.

The last time i faced this issue it was because the session was disconnected by the DBA(read: Myself).

Probably you can check truss on your listener.

Also it would be helpful to check what entries exist in the alert log before this error is encountered.

User tried to login at 7:50, after 3 failed attempts the user got logged in, listener.log shows connection details at 7:54

- There are no erros in listener.log

01-OCT-2013 07:46:58 * service_update * abc * 0

01-OCT-2013 07:54:00 * (CONNECT_DATA=(SERVICE_NAME=ABC)(CID=(PROGRAM=D:\Apa?Software?Foundation\Tom\bin\tom**5.exe)(HOST=CM*****APP)(USER=SYSTEM))) * (ADDRESS=(PROTOCOL=tcp)(HOST=app server ip)(PORT=57279)) * establish * ABC * 0

01-OCT-2013 07:54:02 * service_update * abc * 0

- No erros in the alter log.

The listener only reports requests that it receives. If a connection request has a network timeout before the request gets to the listener, it will not - it cannot - be reported in the listener log.

Your reported error code (ora-03114) seems to indicate a possibility that the app is either issuing sql statements before it ever gets connected, or the established connection is getting dropped. Either way, I wouldn't expect to find much about it in the listener log. The listener only handles the request to get connected to the database. Once that connection is made, the listener is completely out of the picture. You can even stop the listener and it will have no effect on established connections.

ORA-03114 occurs when an oracle call is made, when no connection is established.

You have said before that user's login through an application, if the application is user writen, you have to check the program. Might be some problems between the program and database.

Thanks for the explanation. What you said is true.

Is anything to do with the database idle ? because the user who tried to login first in the day he is only facing the issue, after that everything going smooth without any issue.

Based on information that listener.log has no error at all I presume the request is not even reaching listener in the first 3 attempts.

Logically thinking the issue is with some firewall, router etc going to sleep state as this issue is only faced by the person trying to login for the first time.

you can check the expire time for various factors involved.

I'm sorry i can't be of much help right now. When you do find out the solution please post it on this forum.

We have recently migrated app/db to new windows machine. Before that everything was working fine. No changes made to app/db expect migration to new servers.

Firewalls are disabled on new servers.

>We have recently migrated app/db to new windows machine.

>Before that everything was working fine.

>No changes made to app/db expect migration to new servers.

whether or not above is/was true is moot.

Existing configuration does not know or care about what may or may not have occurred or existed in the past.

You must deal with the present & now errors exist.

I suggest that deploy packet sniffing software to see at the lowest level what occurs when error get thrown.

There are multiple scenarios that cause this error. Check the following list of solutions:

1. Verify there is no firewall or router setting which terminates connections which are active for longer than x minutes.

2. Verify there is no firewall or router setting which terminates connections which are idle for longer than x minutes.

3. Verify the Oracle configuration. Let the database send a packet every x minutes, so that the firewall, router, etc does not close the connection due to being 'idle'.

1. The Oracle documentation lists the following details for the sqlnet.ora parameter: SQLNET.EXPIRE_TIME

Purpose:
Use parameter SQLNET.EXPIRE_TIME to specify the time interval, in minutes, to send a probe to verify that client/server connections are active. Setting a value greater than 0 ensures that connections are not left open indefinitely, due to an abnormal client termination. If the probe finds a terminated connection, or a connection that is no longer in use, it returns an error, causing the server process to exit. This parameter is primarily intended for the database server, which typically handles multiple connections at any one time.

- It is not allowed on bequeathed connections.
- Though very small, a probe packet generates additional traffic that may downgrade network performance.
- Depending on which operating system is in use, the server may need to perform additional processing to distinguish the connection probing event from other events that occur. This can also result in degraded network performance.

Default: 0
Minimum Value: 0
Recommended Value: 10
Example:
SQLNET.EXPIRE_TIME=10

Perform the following test:

2. Check the Oracle setting 'connection idle time limit.

This can be set in the Oracle Enterprise Manager Console.
Select the database you are using and click down to the "security\profile\\idle time".
Setting this to something lower than 60 minutes will cause the user to be disconnected after that XX minutes of inactivity.

Знаете ли вы какую-либо причину, чтобы получить следующую ошибку, когда я беру несколько отчетов Oracle?

"FRM-40735: триггер ON-ERROR вызвал необработанное исключение ORA-03114"

Это случается несколько раз для нескольких пользователей.

Не понимаю в чем дело, понятного объяснения не нашел.
В PL/SQL Developer при попытке открыть процедуру или пакет (пишем имя в SQL окно и кликаем с зажатым Ctrl) падает эта ошибка.

ORA-03113: принят сигнал конца файла по коммуникационному каналу. Идентификатор процесса: такой-то. Идентификатор сеанса: такой-то. Порядковый номер:такой-то

После нажатия OK выпадает следующая:

При этом обычные селекты из таблиц продолжают работать. Селекты из представлений так же дают ошибку "нет связи". Например:

Пробовал перезапускать PL/SQL Developer (даже весь комп ребутил). База не локальная, в сети.


1 ответ 1

Узнать, куда серверный процесс пишет логи можно так:

По-умолчанию примерно такое:

Серверный процес обычно не пишет логи (только самые критические ошибки). Включить логгирование можно так:

Ошибку как в вопросе я воспроизвести конечно же не могу, но как примерно искать причину подобных ошибок см. далее.

Запускаю сессию с любого клиента и нахожу к нему серверный процесс, в моём случае:

Предлагаю ему закрыться (провоцирую ошибку):

В клиенте получаю ошибку, что соединения больше нет:

В папке trace/, в файле тревог alert_ .log нахожу причину:

Где pid: 7532, uid: 1004 это оболочка и учётка с которых был выполнен kill .

Базы данных

ORA-03114: не связан с ORACLE

Причина:

Вызов в ORACLE был предпринят, когда никакой связи еще не было установлено. Обыкновенно, это происходит потому что программа написанная пользователем еще не загружена. Это может также произойти если нарушение связи вызывает рассоединение.

Действие:

Повторите операцию. Если ошибка происходит снова, то проверьте программу написанную пользователем.

Читайте также: