Tim, No worries for the late response, good advice is always useful.... I did check in the alert log for the 3136 error and was only able to find it at startup of the database, which I suspect is tied to all the the disks not being mounted by the time the db comes up. There was nothing in the memory tables, I did get data as you suggested when changing to the dba_ table. I pasted the results below, sorry for the poor formatting. The thing that sticks out to me is the first line of the results of the last query. Waited for 246,614 milliseconds (?) on db file sequential read with a blkstate of "NO HOLDER" (not really sure what the means, the docs just list the domain of values, not the meaning, background process maybe?). Not sure if there is enough information to figure this out now, but I will be ready next time anyway. I also checked all of those in_ columns in the view and the only one that was Y was in_sql_execution. SQL_ID CNT TIME_WAITED ------------- -------- ------------ 3vcuyr8dbrf2p 3 0 1 row selected. Elapsed: 00:00:00.94 SQL> SQL> select event, 2 count(*) cnt, 3 sum(decode(session_state, 'ON CPU', wait_time, 4 time_waited))/1000000 time_waited 5 -- from gv$active_session_history 6 from dba_hist_active_sess_history 7 where sample_time >= to_date('03-OCT-2012 05:40:00','DD-MON-YYYY HH24:MI:SS') 8 and sample_time < to_date('03-OCT-2012 05:40:59', 'DD-MON-YYYY HH24:MI:SS') 9 group by event 10 order by time_waited desc; EVENT CNT TIME_WAITED ------------------------------ -------- ------------ db file sequential read 1 0 2 0 2 rows selected. Elapsed: 00:00:00.03 SQL> SQL> select event, 2 sql_id, 3 count(*) cnt, 4 sum(decode(session_state, 'ON CPU', wait_time, 5 time_waited))/1000000 time_waited 6 -- from gv$active_session_history 7 from dba_hist_active_sess_history 8 where sample_time >= to_date('03-OCT-2012 05:40:00','DD-MON-YYYY HH24:MI:SS') 9 and sample_time < to_date('03-OCT-2012 05:40:59', 'DD-MON-YYYY HH24:MI:SS') 10 group by event, sql_id 11 order by time_waited desc; EVENT SQL_ID CNT TIME_WAITED ------------------------------ ------------- -------- ------------ db file sequential read 3vcuyr8dbrf2p 1 0 3vcuyr8dbrf2p 2 0 2 rows selected. SQL> SQL> select e.object_name || decode(e.object_name,'','','.') || 2 e.procedure_name entry_name, 3 p.object_name || decode(p.object_name,'','','.') || 4 p.procedure_name name, 5 x.sql_id, 6 x.sql_plan_hash_value, 7 x.module, 8 x.event, 9 x.time_waited, 10 x.cnt 11 from dba_procedures e, 12 dba_procedures p, 13 (select plsql_entry_object_id, 14 plsql_entry_subprogram_id, 15 plsql_object_id, 16 plsql_subprogram_id, 17 module, 18 sql_id, 19 sql_plan_hash_value, 20 event, 21 sum(decode(session_state, 'ON CPU', wait_time, time_waited))/1000000 time_waited, 22 count(*) cnt 23 -- from gv$active_session_history 24 from dba_hist_active_sess_history 25 where sample_time >= to_date('03-OCT-2012 05:40:00','DD-MON-YYYY HH24:MI:SS') 26 and sample_time < to_date('03-OCT-2012 05:40:59', 'DD-MON-YYYY HH24:MI:SS') 27 group by plsql_entry_object_id, 28 plsql_entry_subprogram_id, 29 plsql_object_id, 30 plsql_subprogram_id, 31 module, 32 sql_id, 33 sql_plan_hash_value, 34 event) x 35 where e.object_id (+) = x.plsql_entry_object_id 36 and e.subprogram_id (+) = x.plsql_entry_subprogram_id 37 and p.object_id (+) = x.plsql_object_id 38 and p.subprogram_id (+) = x.plsql_subprogram_id 39 order by 7 desc, 1, 2, 3, 4; Entry Package.procedure Package.procedure SQL_ID SQL_PLAN_HASH_VALUE MODULE EVENT TIME_WAITED ----------------------------------- ------------------------------- ------------- ------------------- -------------------------------------------------- ------------------------------ ------------ CNT -------- PROCESS_PKG.MAIN 3vcuyr8dbrf2p 2528273879 SQL*Plus db file sequential read 0 1 PROCESS_PKG.MAIN 3vcuyr8dbrf2p 2528273879 SQL*Plus 0 2 2 rows selected. SQL> SQL> select sample_time, 2 session_id||'.'||session_serial# sid, 3 session_state state, 4 decode(session_state, 'ON CPU', wait_time, time_waited) time_waited, 5 blocking_session||'.'||blocking_session_serial# blksid, 6 blocking_session_status blkstate, 7 user_id, 8 sql_id, 9 module, 10 event, 11 p1, p2, p3, 12 action 13 -- from gv$active_session_history 14 from dba_hist_active_sess_history 15 where sample_time >= to_date('03-OCT-2012 05:40:00','DD-MON-YYYY HH24:MI:SS') 16 and sample_time < to_date('03-OCT-2012 05:40:59', 'DD-MON-YYYY HH24:MI:SS') 17 order by sample_time; SAMPLE_TIME SID STATE TIME_WAITED BLKSID BLKSTATE USER_ID SQL_ID MODULE EVENT -------------------------- ---------- ---------- ------------ ---------- ---------- ---------- ------------- -------------------------------------------------- ------------------------------ P1 P2 P3 ACTION ---------- ---------- ---------- ---------------------------------------- 03-OCT-12 05.40.00.284 AM 163.59695 WAITING 246,614 . NO HOLDER 76 3vcuyr8dbrf2p SQL*Plus db file sequential read 6 2438632 1 03-OCT-12 05.40.10.295 AM 163.59695 ON CPU 233 . NOT IN WAI 76 3vcuyr8dbrf2p SQL*Plus T 6 2440714 1 03-OCT-12 05.40.20.299 AM 163.59695 ON CPU 275 . NOT IN WAI 76 3vcuyr8dbrf2p SQL*Plus T 6 2442871 1 3 rows selected. Thanks, Mike --- On Thu, 10/11/12, Tim Gorman <tim@xxxxxxxxx> wrote: From: Tim Gorman <tim@xxxxxxxxx> Subject: Re: ORA-03135 running plsql locally To: oracle-l@xxxxxxxxxxxxx Date: Thursday, October 11, 2012, 12:23 PM Mike, Sorry for late response, hope I'm not entering this thread too late... This error is a database issue (not a network issue) having to do with establishing a connection, so it can happen regardless of whether you are connecting via a network, via IPC, or even BEQ. This is not the termination of an established connection (which would be ORA-03113 or ORA-03114), but a connection that never happened. Chances are good someone has been fiddling with the SQLNET.ORA parameter INBOUND_CONNECT_TIMEOUT (default 60 secs) with the only result that it takes longer for you to get the error. Increasing a timeout rarely resolves anything, but instead masks the problem, as is likely the case here. When a connection is being established, several SQL statements are run as SYS before authentication and authorization are complete and the session connects as the requested user account. During this time, while these SQL statements against the Oracle data dictionary are being run, the same kind of contention or blocking can occur which might happen to any SQL statement. In your "alert.log" files are logged ORA-03136 error messages which correspond to the ORA-03135 messages that your shell script (and likely other end-user programs). The only useful thing about these logged ORA-03136 error messages is their timestamp. Please use that timestamp to query into the Active Session History views using a SQL*Plus script similar to the following... set echo on feedback on timing on pagesize 100 linesize 200 trimout on trimspool on tab off col sample_time format a26 col day format a12 col min_sample_time format a5 col max_sample_time format a5 col inst# format 9990 col sid format a10 col state format a10 col blksid format a10 col blkstate format a10 col time_waited format 999,999,990 col event format a30 col plsql_entry_object_id format 999990 col plsql_entry_subprogram_id format 999990 col plsql_object_id format 999990 col plsql_subprogram_id format 999990 col program format a30 col module format a50 col action format a40 col entry_owner format a6 heading "Entry|Owner" col entry_name format a35 heading "Entry|Package.procedure" col owner format a6 heading "Owner" col name format a31 heading "Package.procedure" col cnt format 999,990 col duration format a20 spool ashq clear breaks computes select sql_id, count(*) cnt, sum(decode(session_state, 'ON CPU', wait_time, time_waited))/1000000 time_waited from gv$active_session_history /* dba_hist_active_sess_history */ where sample_time >= to_date('xxxxx','DD-MON-YYYY HH24:MI:SS') and sample_time < to_date('yyyyy', 'DD-MON-YYYY HH24:MI:SS') group by sql_id order by time_waited desc; select event, count(*) cnt, sum(decode(session_state, 'ON CPU', wait_time, time_waited))/1000000 time_waited from gv$active_session_history /* dba_hist_active_sess_history */ where sample_time >= to_date('xxxxx','DD-MON-YYYY HH24:MI:SS') and sample_time < to_date('yyyyy', 'DD-MON-YYYY HH24:MI:SS') group by event order by time_waited desc; select event, sql_id, count(*) cnt, sum(decode(session_state, 'ON CPU', wait_time, time_waited))/1000000 time_waited from gv$active_session_history /* dba_hist_active_sess_history */ where sample_time >= to_date('xxxxx','DD-MON-YYYY HH24:MI:SS') and sample_time < to_date('yyyyy', 'DD-MON-YYYY HH24:MI:SS') group by event, sql_id order by time_waited desc; select e.object_name || decode(e.object_name,'','','.') || e.procedure_name entry_name, p.object_name || decode(p.object_name,'','','.') || p.procedure_name name, x.sql_id, x.sql_plan_hash_value, x.module, x.event, x.time_waited, x.cnt from dba_procedures e, dba_procedures p, (select plsql_entry_object_id, plsql_entry_subprogram_id, plsql_object_id, plsql_subprogram_id, module, sql_id, sql_plan_hash_value, event, sum(decode(session_state, 'ON CPU', wait_time, time_waited))/1000000 time_waited, count(*) cnt from gv$active_session_history /* dba_hist_active_sess_history */ where sample_time >= to_date('xxxxx','DD-MON-YYYY HH24:MI:SS') and sample_time < to_date('yyyyy', 'DD-MON-YYYY HH24:MI:SS') group by plsql_entry_object_id, plsql_entry_subprogram_id, plsql_object_id, plsql_subprogram_id, module, sql_id, sql_plan_hash_value, event) x where e.object_id (+) = x.plsql_entry_object_id and e.subprogram_id (+) = x.plsql_entry_subprogram_id and p.object_id (+) = x.plsql_object_id and p.subprogram_id (+) = x.plsql_subprogram_id order by 7 desc, 1, 2, 3, 4; select sample_time, session_id||'.'||session_serial# sid, session_state state, decode(session_state, 'ON CPU', wait_time, time_waited) time_waited, blocking_session||'.'||blocking_session_serial# blksid, blocking_session_status blkstate, user_id, sql_id, module, event, p1, p2, p3, action from gv$active_session_history /* dba_hist_active_sess_history */ where sample_time >= to_date('xxxxx','DD-MON-YYYY HH24:MI:SS') and sample_time < to_date('yyyyy', 'DD-MON-YYYY HH24:MI:SS') order by sample_time; spool off set echo off feedback 6 timing off linesize 130 tab on ...where the date/timestamp value of "xxxxx" is about 30-60 seconds prior to one or more of the timestamps of the ORA-03136 error(s) in the alert.log, and the date/timestamp value of "yyyyy" is about 10-20 seconds after that timestamp. So, if you have a bunch of ORA-03136 errors logged on 02-OCT 2012 at 15:35:17, 15:35:22, 15:35:27, then you might want to replace "xxxxx" with the value of "02-OCT-2012 15:34:00" and "yyyyy" with the value of "02-OCT-2012 15:35:40", or something like that. In the FROM clauses of each of the queries above, you'll notice that GV$ACTIVE_SESSION_HISTORY is used, while DBA_HIST_ACTIVE_SESS_HISTORY is commented out. If your queries return no rows for the requested SAMPLE_TIME values, then it means that the data has been rolled out of the memory-based GV$ view and is now stored in the table-based DBA_HIST view. The data in the GV$ view is much more granular (i.e. 1-second samples) so the information there is more useful, but retained for a shorter period of time. The data in the table-based DBA_HIST views is a little less granular (i.e. 10-second samples), but it is still quite useful for diagnosing problems like these. Good luck and please feel free to share your findings with the list as you go? The causes of the problem might be quite subtle and require more data gathering, and I don't want to influence your investigations by suggesting possible causes. It is more useful to go where the ASH data leads, rather than trying to force a conclusion. Good luck! Thanks! -- Tim Gorman consultant -> Evergreen Database Technologies, Inc. postal => PO Box 352151, Westminster CO 80035 website => http://www.EvDBT.com/ email => Tim@xxxxxxxxx mobile => +1-303-885-4526 fax => +1-303-484-3608 Lost Data? => http://www.ora600.be/ for info about DUDE... On 10/7/2012 5:08 AM, David Roberts wrote: > In this scenario It appears that the 'server side process' has failed, > although that isn't always true. > I suggest that you inspect the alert log and the dump directories to see if > there are logs/dumps from the appropriate time that you can pass onto > Oracle support or us for interpretation. > > Dave > > On Wed, Oct 3, 2012 at 8:18 PM, mike boligan <mboligan@xxxxxxxxx> wrote: > >> Hi, >> I am running Oracle 11.2.0.2.0 64 bit on Solaris 10. I have a process >> that runs on the database server and calls a plsql package via a shell >> script like so: >> >> sqlplus user/pass @scriptname parm1 parm2 >> >> The package runs for roughly 2600 seconds and sometimes gets a ORA-03135. >> The package does not fail in the same spot every time. It does not seem to >> fail after x minutes either. I do have sqlnet.expire_time in sqlnet.ora >> on the server, not sure that helps any as this should be using IPC. I do >> see alot of log switching while the job runs, but I don't see how the >> increased activity could cause this error. >> >> Maybe I am missing something, but I don't think I should get this error >> when running a script locally on the database server. Has anyone ever seen >> a similar situation or fill me in on anything I am overlooking? I am >> trying avoid a sqlnet trace because of space concerns on where the output >> would go. >> >> TIA, >> Mike >> >> -- >> //www.freelists.org/webpage/oracle-l >> >> >> > > -- > //www.freelists.org/webpage/oracle-l > > > > > -- //www.freelists.org/webpage/oracle-l -- //www.freelists.org/webpage/oracle-l