Link to home
Start Free TrialLog in
Avatar of jjmekkattil
jjmekkattil

asked on

Failed to connect to database instance: ORA-12637: Packet receive failed (DBD ERROR: OCIServerAttach)

When ever I connect to the OEM I get the following error:

Failed to connect to database instance: ORA-12637: Packet receive failed (DBD ERROR: OCIServerAttach).

However the other tabs in the OEM work fine in fact I can still administer the DB just fine.  But I truly believe this isn't really a false positive there is something else going on and was wondering if anyone can help
Avatar of slightwv (䄆 Netminder)
slightwv (䄆 Netminder)

Never seen that error.

I assume you have looked it up for possible actions?

http://ora-12637.ora-code.com/

My guess would be a communications issue.

When do you get that error?
What versions are you dealing with (OEM and database)?
Avatar of jjmekkattil

ASKER

Since Monday...Oracle 11g OEM 11g
>>Since Monday..

I mean:  What exactly are you doing when that error message is generated?

You also need to investigate:  What changed?  Don't say "nothing".  Stuff just doesn't stop working for no reason.
Ok well let me try to go with this,  I do some administrative tasks in oracle and when I tried to log into SYS apparently the password expired as well as a few other users.  So I ran the following SQL statement:

set pagesize 99
set head off
set linesize 132
set echo off
set feedback off
set newpage none
set serveroutput on size 1000000
SPOOL D:\Repair_Users.sql
DECLARE
    cursor USER_CRSR IS select d.USERNAME, u.PASSWORD, u.SPARE4,
d.DEFAULT_TABLESPACE, d.TEMPORARY_TABLESPACE, d.PROFILE
                               from sys.dba_users d, sys.user$ u
                               where d.USERNAME=u.name
                               and USERNAME not like '%SYS%';
    USER_ROW  USER_CRSR%ROWTYPE;
    OUT_LINE  varchar2(2000);

BEGIN

   OPEN USER_CRSR;
     LOOP
       FETCH USER_CRSR INTO USER_ROW;
       EXIT WHEN USER_CRSR%NOTFOUND;
       DBMS_OUTPUT.PUT_LINE('--');
       IF USER_ROW.SPARE4 IS NULL THEN
       DBMS_OUTPUT.PUT_LINE('alter user '||USER_ROW.USERNAME||'
identified by values '''||USER_ROW.PASSWORD||''';');
       ELSE
       DBMS_OUTPUT.PUT_LINE('alter user '||USER_ROW.USERNAME||'
identified by values '''||USER_ROW.SPARE4||''';');
       END IF;
--
     END LOOP;
     OUT_LINE:= ' ';
   CLOSE USER_CRSR;

END;
/

SPOOL OFF

Then While in still in SQL I run @Repair_Users.sql

I'm not sure if this has something to do with it I also have attached a log from my Metric Collection log
metric-errors.PNG
I'm a little confused by your last post.

What does running that script to change passwords have to do with the original error:
Failed to connect to database instance: ORA-12637

That error doesn't appear to have anything to do with expired passwords.
Well you asked when did it start and it seemed to start when that happened...not sure if there was a correlation or not
>> it seemed to start when that happened...

OH.  Sorry.  I thought that was something after.

Never having seen that error before, I suppose anything could be the cause.

My guess is you changed a password that probably shouldn't have been changed.

Another guess would be: MGMT_VIEW or DBSNMP?

http://docs.oracle.com/cd/B28359_01/server.111/b28337/tdpsg_user_accounts.htm#TDPSG20000
The only one I think that would be an issue is the MGMT_VIEW since its randomly generated...other than that the password for the other non expired accounts I know.
It was a guess.

From a quick scan of the script it looks like it should have set the password to what it was so I'm not sure anything would have changed.  Still not thinking just running that script would cause a communications error message.

I'm still not sure I know exactly what you are doing when you get that error.

For example:
I run X, I click Y and the error appears every time.
The error in the OEM is only in the OEM when I open it, its there at the home screen however everything is still functional.
I rarely use OEM so I'm going from memory here.

Check the nodes/objects OEM is told to monitor.
See if you have one that is no longer valid.
Check saved credentials and see if maybe there is an old server/database/???

It might be going out to say 'hi' to everything it knows about and cannot find something?
Well I eliminated the OEM out of the equation and I am still getting the error maybe I'm doing this wrong but I have a batch file that references a .sql file to refresh materialized views.  However when I click on the .bat file to execute it seems to run fine until I get the attached error. User generated image.  I also attached the .sql statement that the batch file is referencing.User generated image
Was that BAT script executed on the database server?

Seems like a network problem somewhere.
Just for grins, turn off the local firewall for a quick test.
Yes it is executed on the database server, and there is no local firewall....I did find out that there was a bad account that was hammering the server every 30-60 seconds but we just got the guy to stop that but didn't fix it.
Can you post your sqlnet.ora?

Check the alert log for the database.  Everything I'm finding on the ORA-12637 seems to also have an entry in the alert log that can provide more information.
sqlnet.ora:

# sqlnet.ora Network Configuration File: D:\app\product\11.2.0\dbhome_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.

# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
For grins change change the sqlnet.ora
from:
 SQLNET.AUTHENTICATION_SERVICES= (NTS)

to:
 SQLNET.AUTHENTICATION_SERVICES= (NONE)

Try sqlplus again.
Take a look at the following note in Oracle Support:
Troubleshooting Guide ORA-609 : Opiodr aborting process unknown ospid (Doc ID 1121357.1)

Make sure the Database Service and Listener Service are running as the same account.
Thanks for the scrub I was trying to scrub I was trying to head out for lunch....when I change the sqlnet.ora file do I need to shutdown the db and then restart it?
>>when I change the sqlnet.ora file do I need to shutdown the db and then restart it?

No.  The sqlnet.ora file is a client only file.  It is read when a client attempts to make a connection.
ASKER CERTIFIED SOLUTION
Avatar of jjmekkattil
jjmekkattil

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ummm.... OK.  I've not seen anything about that error that references the processes spfile parameter.  Might just be a coincidence that it is now working.
so I'll close this but I will be putting up another one about cloning
Had a third party at the same time I had the individual on here help me.  The offline guy figured it out.