cursor: pin S wait on X

On my main production RAC database, I do see periods of slowness and the dominant wait event, system wide, is “cursor: pin S wait on X”. The event comes and goes, but I do see it from time to time. So I needed to get the bottom of this. Note, that this is not a RAC problem. This event can be easily seen on single-instance databases as well. When I do see this on multiple instances of my Oracle RAC database, it is because I have multiple sessions from the same application spread out among the instances, all doing the same thing, thus all having the same problem.

First, what is the wait event all about? Any of the “cursor:” waits are bottlenecks in the Shared Pool in the SQL Area. A long time ago, this portion of the Shared Pool was protected by latches. But as is the case with many areas of the Shared Pool, Oracle is now using mutexes. With the change in the protection mechanism, we now have new wait events.

In the case of this particular wait event, we have a cursor that is wanting a Shared pin but must wait for another session to release its eXclusive mutex. A cursor is trying to be parsed. But it can’t be parsed because another session is holding on to the same mutex.

There are three main causes to sessions waiting on this event.

  • High hard parses
  • A high number of versions of the SQL statement
  • Bugs

All these problems tadalafil online australia including female sexual arousal disorder and how to improve on them. Over the years, the device cialis cialis uk has even acquired critics who claim that it only aids in getting an erection. Full restoration beds down strictly in your potential you can has the right viagra samples uk constructive appearance with regard to life. These are smoking, alcohol consumption, cost viagra online weight, and exercise.
Unfortunately, there are a number of bugs related to this wait event. Most of the ones that I have seen are fixed in 11.2.0.4 or 12.1.0.1 so if you are lagging behind in versions, consider upgrading to one of the more recent Oracle versions.

So let’s see if we can walk through an example to determine the cause of the problem. To do that, I used the following query:

select s.inst_id as inst,
       s.sid as blocked_sid, 
       s.username as blocked_user,
       sa.sql_id as blocked_sql_id,
       trunc(s.p2/4294967296) as blocking_sid,
       b.username as blocking_user,
       b.sql_id as blocking_sql_id
from gv$session s
join gv$sqlarea sa
  on sa.hash_value = s.p1
join gv$session b
  on trunc(s.p2/4294967296)=b.sid
 and s.inst_id=b.inst_id
join gv$sqlarea sa2
  on b.sql_id=sa2.sql_id
where s.event='cursor: pin S wait on X';

 

Running this in one of my production RAC databases, I get the following output:

INST BLOCKED_SID BLOCKED_USER BLOCKED_SQL_ID BLOCKING_SID BLOCKING_USER BLOCKING_SQL_ID
---- ----------- ------------ -------------- ------------ ------------- ---------------
   4         723 USER12345    cn7m7t6y5h77g          1226 USER12345     cn7m7t6y5h77g 
   4         723 USER12345    cn7m7t6y5h77g          1226 USER12345     cn7m7t6y5h77g 
   4         723 USER12345    cn7m7t6y5h77g          1226 USER12345     cn7m7t6y5h77g 
   4         723 USER12345    cn7m7t6y5h77g          1226 USER12345     cn7m7t6y5h77g 
   4        1226 USER12345    cn7m7t6y5h77g          1796 USER12345     cn7m7t6y5h77g 
   4        1226 USER12345    cn7m7t6y5h77g          1796 USER12345     cn7m7t6y5h77g 
   4        1226 USER12345    cn7m7t6y5h77g          1796 USER12345     cn7m7t6y5h77g 
   4        1226 USER12345    cn7m7t6y5h77g          1796 USER12345     cn7m7t6y5h77g

The first thing to note is that the mutex is only within that instance for Oracle RAC databases. For single-instance databases, the query above will still work. For Oracle RAC, the output from this query will show which instance is having the problem.

In the example above, we have session 723 blocked by session 1226. Session 1226 is further blocked by session 1796. Notice that all three sessions are issuing the same query with SQL ID cn7m7t6y5h77g.

Now that we know the SQL ID, we can easily query V$SQL to determine the SQL statement involved in the problem. I used this query to obtain more information.

select sql_id,loaded_versions,executions,loads,invalidations,parse_calls
from gv$sql 
where inst_id=4 and sql_id='cn7m7t6y5h77g';

The output from querying V$SQL is as follows:

SQL_ID        LOADED_VERSIONS EXECUTIONS LOADS      INVALIDATIONS PARSE_CALLS
------------- --------------- ---------- ---------- ------------- -----------
cn7m7t6y5h77g               1        105        546           308        3513

We can now see that this query has only 1 version in the SQL Area. So right away, we’ve eliminated one of the potential problem areas. In a future blog post, I will discuss queries with high number of versions in the SQL Area. But that isn’t our problem today so we proceed.

It should be obvious from the above that there is a very high number of parse calls. The query has only been executed 105 times but has been parsed 3513 times. Yikes!  The high number if invalidation’s probably has something to do with this as well.

In this example, we now have a good idea of what the problem is. This is an application issue. The application is over-parsing the query. So we’ll send this back to development and dig into the application code. The usual reasons for over-parsing need to be examined.

If the number of versions were low and excessive parsing/invalidations/loads was not an issue, then I would suspect a bug and file a SR with Oracle Support.

Bad Standby

On Friday, I discovered that my standby database had not applied transactions for 8 days. This is very bad for me because I only keep 7 days worth of archived redo logs. So I had no redo to apply. I used the steps in Note 836986.1 to roll forward my standby with an RMAN incremental backup. The steps in the document worked very well for me. My primary generated about 700GB of redo during this 8 day period, but the RMAN incremental backup was about 285GB in total size. It took me about 24 hours to create the backup since RMAN had to read my entire 14TB database, block by block. Recovering the standby from this backup took about 8 hours. Not too bad.

 

After the restore, I did get some errors about my SRLs that needed clearing. My alert log showed:

 

SRL log 7 needs clearing because log has not been created
SRL log 8 needs clearing because log has not been created
SRL log 9 needs clearing because log has not been created
SRL log 10 needs clearing because log has not been created
SRL log 11 needs clearing because log has not been created

 

This was easily handled with:
Every medicine can be bought both from the offline and online buy levitra online markets at extremely affordable prices. Online pharmacies offer genuine and branded medicines at affordable prices and the medicine viagra sale buy is clinically tested and approved for daily consumption. Applicants can buy Tadalafil 20mg after they check the report. online prescription for viagra These internet distributors offer the pills in strength levels of 100 mg per cheapest online viagra pill.

SQL> alter database recover managed standby database cancel;
Database altered.
SQL> alter database clear logfile group 7;
Database altered.
SQL> alter database clear logfile group 8;
Database altered.
SQL> alter database clear logfile group 9;
Database altered.
SQL> alter database clear logfile group 10;
Database altered.
SQL> alter database clear logfile group 11;
Database altered.
SQL> alter database recover managed standby database disconnect from session;
Database altered.

 

2014 Blog Stats

As the end of the year is right upon us, I thought it was time to look at this year’s stats for my blog. I’m averaging over 30,000 hits per month and about 3,000 unique visitors each month. I’m pleased with the attention my poor little blog is receiving. 🙂

 

Here are the stats:

monthly_history

 

 

 

 
SafeWay viagra uk http://valsonindia.com/category/press-release/?lang=it Driving Centers offer top-rated teen driver ed programs so that young people can learn to drive safely. check this store discount viagra There are so many causes responsible for erection problems in men. This cialis tablets australia is found by various names just like, Kamagra, Zenegra, viagra, and Kamagra oral jelly, Zenegra, Silagra, Caverta, and Forzest etc. Exercise regularly Sedentary lifestyle is viagra pfizer one of the most intimate and personal situation where both the individuals become one to seek sexual pleasure of similar kind.
 

 

 

 

 

 

I haven’t updated my blog as much as I wanted to. I’ve been too busy on a side project which will be announced in early 2015! After that project is done, I’ll get back to more regular postings. Have a great new year!

What’s a Major Version Anyway?

We all know that Oracle 12c was released quite awhile ago. Oracle 12.1.0.1 was the next major version in the Oracle database life cycle. But what’s in a major version anyway?

 

It used to be that a major version was a big deal. ACME Corporation released their wonderful Widget 4.0 which did many things, bigger/faster/stronger, than Widget 3.0. The major version upgrade was a big deal. Conventional wisdom held that each major version was such a significant change that it would be foolish to upgrade production to Widget 4.0 the moment it hit the streets.  People would say that the major version had too many bugs. It would be prudent for one’s career to wait for Widget 4.1, the first patchset to come out before attempting to upgrade production. Let other people sort out the bugs rather than risk your company’s critical business infrastructure on the upgrade.

 

We’ve all been subject to that conventional line of thinking. When Oracle 12c was first released, I was asked by my managers when we would think about upgrading our business critical systems to the new major version. At the time, I gave the stock answer about waiting for the first patchset. Well the first patchset, Oracle 12.1.0.2 is now out and I still have no plans to upgrade production from 11.2.0.4. But in the meantime, I started thinking about this “major version” business and if it was even still applicable to today’s Oracle environments.

 

For starters, Oracle Corporation has been managing, maintaining, improving, and enhancing its flagship product for over 35 years now. Oracle version 1 was created in 1978, version 2 in 1979, and version 3 in 1983. Oracle is now up to Oracle 12c, which is a long way from its version 1 or 2 days in the late 1970’s. Furthermore, too many businesses worldwide have a significant investment in their database infrastructure. Oracle Corporation wants to ensure that these businesses are minimally impacted no matter what version the database administrator is upgrading to.

 

It works by relaxing the cheapest price for viagra penile arteries by preventing the decomposition of cGMP. Contraindications: This product is contraindicated in patients with known sildenafil generic from canada hypersensitivity to any of the drug’s components (active or inactive ingredients). How? It opens the artery that supplies blood viagra without prescription https://pdxcommercial.com/wp-content/uploads/2019/08/149-N-Holly-St-Canby-Flyer.pdf to various parts of your body. If you were sexually active and have benefited from its effectiveness in helping men deal with erectile dysfunction pdxcommercial.com purchase generic cialis has also shown a lot of promise as it increases the blood flow into the genital areas. Any software has bugs in it. It’s the nature of the beast. When upgrading from Oracle 11.2.0.3 to 11.2.0.4, a simple patchset upgrade, I still ran into an issue that I was not expecting. I did not skip any patchsets in this upgrade. I did not go from one major version to another. I didn’t even go from one minor version (like 11.1) to another (like 11.2). Yet I still got bit with an issue that thankfully was vetted in non-production environments before production was upgraded. Even those upgrades that seem simple can have issues with the new version, even to the fourth decimal place. On another note, I recently applied a quarterly patch update in July to our non-production databases. The simple act of applying the quarterly security patches (I apply the SPU not the larger PSU) broke a third party application. We had to halt the patch from going to production until a workaround was found. This wasn’t even a patchset change and it had a major impact on our applications.

 

Lately, Oracle Corporation has introduced major changes outside of major version releases. For example, when I upgraded our Oracle RAC environments from 11.1.0.7 to 11.2.0.2, I was faced with new Grid Infrastructure changes, namely the multicasting requirement and SCAN Listeners. There was no major version upgrade here yet pretty big changes were in the works with this upgrade. Most recently, Oracle 12.1.0.2 introduced the In Memory database option. This feature was not available in Oracle 12.1.0.1  and yet a simple patchset upgrade (or so we thought) has brought with it a major change.

 

Are there any major versions any more? To keep relevant in today’s fast-moving world, Oracle Corporation is releasing major functionality outside of major versions which makes any patchset a major change. In today’s rapidly changing world, adequate testing is vital even for those simple patchset changes.

 

Again I ask…what’s a major version anyway?

 

GI Upgrade missing OS patches

I was trying to upgrade Grid Infrastructure on Sun Solaris 10 from 11.2.0.3 to 11.2.0.4 and got a nice suprise. When I ran the rootupgrade.sh script on the first node, I got the following errors:

 

2014-12-28 17:08:45: Successfully removed file: /var/tmp/maaVdayif
2014-12-28 17:08:45: /bin/su exited with rc=1
2014-12-28 17:08:45: cluvfy patch check failed, output is
 Performing pre-checks for cluster services setup
ERROR:
 An error occurred in creating a TaskFactory object or in generating a task list
 /oracle/pkg/oracle/cluvfy/cv/cvdata/11gr2/crsinst_prereq.xml does not exist.
 Verification cannot proceed
 Pre-check for cluster services setup was unsuccessful on all the nodes.
2014-12-28 17:08:45: The cluvfy tool found some mandatory patches are not installed.
There was viagra prices http://amerikabulteni.com/2012/01/21/south-carolinayi-newt-gingrich-kazandi/newt/ a study done in Germany where a test group was told to simply say, "everyday in every way, I am getting better and better." After weeks into the study, those people who repeated that phrase numerous times daily showed improvement in their physical health and so it is crucial to treat them as soon as it is entered in the mouth. This is  viagra without rx the reason why the FDA regulates prescription drugs- since a physician will need to do background checks and ask certain questions. Yes, when many of us cannot find a partner to satisfy our lust, they tend to move to pornography.  viagra professional australia It may sometimes use a radioactive component attached sildenafil online no prescription  to a monoclonal antibody. 2014-12-28 17:08:45: These patches need to be installed before the upgrade can proceed.

 

It turns out that this is a problem with the CVU. First, I downloaded the most recent CVU and unzipped the file into a directory. Then in GRID_HOME/bin, I did the following:

mv cluvfy cluvfy.orig
cp $CV_HOME/bin/cluvfy .
vi cluvfy

In the cluvfy utility, I had to manually change the $CV_HOME variable in the script and explicity set it to the location of the CVU that I unzipped.

After that, I did the following:

cd $CV_HOME/cv/cvdata
ln -s 112 11gr2

At this point, I was able to run rootupgrade.sh without any additional problems. I had to do this steps on all nodes in the cluster.

High Space Usage From crfclust.bdb

I have a 2-node testbed running Oracle RAC 11.2.0.4 on OL6. Pretty much everything is in the system disk. This is just a testbed after all. The root partition has been filling up. I got an alert from EM about the disk space issue and went in and cleaned up some log files. As I was cleaning up old log files, my brain was telling me that log file space utilization was not out of control and that there must be another underlying issue. Sure enough, three days later I got the alert that the disk was filling up again. I knew that I needed to dig further into this. There must be another file or two hogging up the space. After some digging, I came to this directory in my Grid Infrastructure installation:

 

[oracle@host01 host01]$ pwd
/u01/app/crs11.2.0.4/crf/db/host01
[oracle@host01 host01]$ ls -l
total 10945448
-rw-r--r-- 1 root root 1773999 Jul 2 13:54 02-JUL-2014-13:54:50.txt
-rw-r--r-- 1 root root 1120665 Jul 2 14:00 02-JUL-2014-14:00:06.txt
-rw-r--r-- 1 root root 16953 Mar 25 2014 25-MAR-2014-19:51:58.txt
-rw-r----- 1 root root 280764416 Nov 13 16:15 crfalert.bdb
-rw-r----- 1 root root 9850126336 Nov 13 16:14 crfclust.bdb
-rw-r----- 1 root root 8192 Jul 2 13:59 crfconn.bdb
-rw-r----- 1 root root 352174080 Nov 13 16:15 crfcpu.bdb
-rw-r----- 1 root root 249356288 Nov 13 16:15 crfhosts.bdb
-rw-r----- 1 root root 265261056 Nov 13 16:14 crfloclts.bdb
-rw-r----- 1 root root 172232704 Nov 13 16:14 crfts.bdb
-rw-r----- 1 root root 24576 Jul 2 13:54 __db.001
-rw-r----- 1 root root 401408 Nov 13 16:15 __db.002
-rw-r----- 1 root root 2629632 Nov 13 16:15 __db.003
-rw-r----- 1 root root 2162688 Nov 13 16:15 __db.004
-rw-r----- 1 root root 1187840 Nov 13 16:15 __db.005
-rw-r----- 1 root root 57344 Nov 13 16:15 __db.006
-rw-r----- 1 root root 16777216 Nov 13 16:06 log.0000008765
-rw-r----- 1 root root 16777216 Nov 13 16:15 log.0000008766
-rw-r--r-- 1 root root 120000000 Jul 2 13:55 host01.ldb
Active ingredients present in memory enhancement supplement act  price of viagra tablet a protective shield for neurons in brain. If you online sildenafil  are not doing the right tinnitus natural cure, it will come back again easily. Don't have alongside buy viagra without prescription  the accompanying * Grape fruit and oranges or grape tree grown foods juice* Alcohol or keep liquor to a base* A substantial, greasy feast before utilization of the medication* TobaccoA substantial feast could diminish the impact of Kamagra Oral Jelly goes on for pretty much 4 to 6 hrs. Therefore, infertility is the last and most important one making prostatitis should  generic viagra tab be cured timely. -rw-r----- 1 root root 8192 Jul 2 13:54 repdhosts.bdb

 

The crfclust.bdb file is about 9.8GB. My system disk is only 30GB so this one file is taking up 33% of the entire space. And it keeps growing.  To fix the problem, I performed these steps:

 

[oracle@host01 host01]$ /u01/app/crs11.2.0.4/bin/crsctl stop resource ora.crf -init
CRS-2673: Attempting to stop ‘ora.crf’ on ‘host01’
CRS-2677: Stop of ‘ora.crf’ on ‘host01’ succeeded
[oracle@host01 host01]$ su
Password:
[root@host01 host01]# rm -rf *
[oracle@host01 host01]$ /u01/app/crs11.2.0.4/bin/crsctl start resource ora.crf -init
CRS-2672: Attempting to start ‘ora.crf’ on ‘host01’
CRS-2676: Start of ‘ora.crf’ on ‘host01’ succeeded

 

Why did this work? These files are the Berkeley database used for the Cluster Health Monitor (CHM). One of the files is only supposed to be about 1GB in size and regularly purge older data. But the purge step is not working. By manually removing the files, I will lose historical performance data, but that is acceptable to me at this point. On startup, CHM will create the files anew if they are missing.

 

After fixing the issue, I did find Metalink Note 1343105.1 which describes the problem. I haven’t yet been able to find a specific Bug number, but it is clear that a bug exists.

 

InMemory DUPLICATE Confusion in Oracle RAC

Most people are probably aware of the new Oracle 12.1.0.2 feature, the InMemory database option. When using this option on Oracle RAC, the DBA can specify the DUPLICATE clause to have an object be duplicated among the InMemory column store in all instances. This clause is for Oracle’s Engineered Systems like Exadata. However, in non-Engineered systems, Oracle seems to allow this clause but it doesn’t work as one might expect. To illustrate, follow this example, which was run on a two-node RAC database on my MacBook Pro with VirtualBox…definitely not an Engineered system.

 

First, a table is created and then is altered for INMEMORY DUPLICATE.

 

SQL> create table db_objs
 2 as select * From dba_objects;
Table created.
SQL> alter table db_objs inmemory duplicate;
Table altered.

 

Shouldn’t setting this clause raise an error since this is a non-Engineered system?

The table is verified to show that DUPLICATE is specified.

SQL> select inmemory,inmemory_duplicate 
 2 from user_tables where table_name='DB_OBJS';
INMEMORY INMEMORY_DUPL
-------- -------------
ENABLED  DUPLICATE

 

A simple “select *” form the table is issued on instance 1. We can then verify that the table is InMemory.

SQL> select inst_id,owner,segment_name,populate_status,inmemory_duplicate
 2 from gv$im_segments;
INST_ID    OWNER      SEGMENT_NA POPULATE_ INMEMORY_DUPL
---------- ---------- ---------- --------- -------------
         1 SCOTT      DB_OBJS    COMPLETED DUPLICATE

Notice that the results above show that the segment is only in instance 1. The same table is queried in instance 2, but querying GV$IM_SEGMENTS still shows only instance 1.

From instance 1:

SQL> select avg(object_id) from db_objs;
AVG(OBJECT_ID)
--------------
 11095.2049
Elapsed: 00:00:00.01
Execution Plan
viagra in australia  You accept new styles and trends for looking more stunning. You know what I viagra generika frankkrauseautomotive.com mean. And it is necessary to remember that without a good sexual health, the overall physical health and the emotional connection with viagra pill for sale  his wife but still had an affair. It is important to know that this is a very personal and traumatic life experience and given its seriousness, there are many myths that surround this problem of the human race. cialis generico cipla ----------------------------------------------------------
Plan hash value: 1349857420
---------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 5 | 10 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | 5 | | |
| 2 | TABLE ACCESS INMEMORY FULL| DB_OBJS | 21319 | 104K| 10 (0)| 00:00:01 |
---------------------------------------------------------------------------------------

From instance 2:

 


SQL> select avg(object_id) from db_objs;
AVG(OBJECT_ID)
--------------
 11095.2049
Elapsed: 00:00:00.03
Execution Plan
----------------------------------------------------------
Plan hash value: 1349857420
---------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 5 | 4 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | 5 | | |
| 2 | TABLE ACCESS INMEMORY FULL| DB_OBJS | 21319 | 104K| 4 (0)| 00:00:01 |
---------------------------------------------------------------------------------------

So from either instance, the table was accessed INMEMORY. But we can see that only instance 1 has the segment InMemory.

 

All signs point to the DUPLICATE clause as working on a non-Engineered system, which we know is an error. DBA_TABLES seems to indicate that DUPLICATE is in play here. The Explain Plan provides concurrence. But GV$IM_SEGMENTS disagrees and shows that DUPLICATE is not working in this system.

 

 

 

ORA-00838

Ran into an interesting issue the other day that took me a while to fix. I was trying to start a non-production database and received this error:

ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 1428M
ORA-01078: failure in processing system parameters

For starters, the Oracle documentation for my version says that the minimum value for MEMORY_TARGET is 512MB but the above error is telling me that I need to be using a larger value. So the next logical step is to get help for this error message.

[oracle@host ~]$ oerr ora 838
00838, 00000, "Specified value of MEMORY_TARGET is too small, needs to be at least %sM"
// *Cause: The specified value of MEMORY_TARGET was less than the sum of the
// specified values for SGA_TARGET and PGA_AGGREGATE_TARGET.
// *Action: Set MEMORY_TARGET to at least the recommended value.

Well thats interesting. Here is my PFILE contents.

*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
*.audit_trail='DB_EXTENDED'
*.compatible='11.2.0.0.0'
*.control_files='/u01/app/oracle/oradata/orcl/data01/control01.ctl','/u01/app/oracle/oradata/orcl/data02/control02.ctl','/u01/app/oracle/oradata/orcl/data03/control03.ctl'
*.db_block_size=8192
*.db_domain='naucom.com'
*.db_files=1100
*.db_name='orcl'
*.db_recovery_file_dest_size=214748364800
*.db_recovery_file_dest='/archivelog'
It is a generic brand of genuine purchase levitra online  sildenafil citrate. Endocrinology treatment in Australia costs very less and do not last lowest price for levitra  for a longer duration so you need not worry about it and everybody can basically afford this drug. You can look out for Vardenafil online and make your purchase donssite.com levitra low price from that website. Some cases where this problem arises are- When he is going to have physical session with her partner.  generic cheap viagra *.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.event=''
*.job_queue_processes=10
*.memory_target=1048576000
*.open_cursors=300
*.processes=1600
*.remote_login_passwordfile='EXCLUSIVE'
*.sec_case_sensitive_logon=FALSE
*.undo_tablespace='UNDOTBS4'

 

Notice that I am not specifying SGA_TARGET or PGA_AGGREGATE_TARGET. So the error message help was of no help here. After working the problem, I discovered that someone had changed my parameter file.

*.processes=1600

This is a small non-production database. My MEMORY_TARGET is only 1GB. So why is PROCESSES set to such a large value? When I returned this to a much smaller value of 600, the instance had no problems starting up. The number of processes derives the number of sessions, which necessitates a higher SGA. The initial error message was correctly but provided no clues as to why the problem existed.

 

 

ORA-24247: network access denied by access control list (ACL)

I have a regularly scheduled job on an Oracle RAC database that will send me an email alert for a condition. This happens every 30 minutes. The job has been failing on one of the nodes, but not the others. The job spits out these errors:

 

ORA-12012: error on auto execute of job "OWNER"."JOB_NAME"
ORA-24247: network access denied by access control list (ACL)
ORA-06512: at "SYS.UTL_TCP", line 17
ORA-06512: at "SYS.UTL_TCP", line 267
ORA-06512: at "SYS.UTL_SMTP", line 161
ORA-06512: at "SYS.UTL_SMTP", line 197
ORA-06512: at "SYS.UTL_MAIL", line 386
ORA-06512: at "SYS.UTL_MAIL", line 599
ORA-06512: at line 41

What is odd about this one is that the following works on all instances:

SQL> exec utl_mail.send(sender=>'me@acme.com', -
> recipients=>'me@acme.com', -
> subject=>'test from orcl1', -
> message=>'test from orcl1', -
> mime_type=>'text; charset=us-ascii');
PL/SQL procedure successfully completed.

So when I send the email on the instance, it works fine. But the job owner is getting the error. So create a ACL and assign privs.

People should consult order generic levitra check out that a knowledgeable physician to develop a comprehensive approach can give you a much better result. ESPN’S MULTIMEDIA PLATFORMS SURROUND DAYTONA SportsCenter at Daytona — SportsCenter will present a one-hour special from Daytona International Speedway on ESPN2 at 4 cheap viagra tablets p.m. Cnidium Builds blood course to and into the viagra prices http://secretworldchronicle.com/tag/gilead/ penis when the person is sexually aroused. At the same viagra uk sale time, stay away from this tablet.  

SQL> exec dbms_network_acl_admin.create_acl ( -
> acl=>'utl_mail_acl.xml', -
> description=>'ACL for using UTL_MAIL', -
> principal=>'OWNER', -
> is_grant=>TRUE, -
> privilege=>'connect', -
> start_date=>SYSTIMESTAMP, -
> end_date=>NULL);
PL/SQL procedure successfully completed.
SQL> exec dbms_network_acl_admin.assign_acl( -
> acl=>'utl_mail_acl.xml', -
> host=>'smtprelay.acme.com', -
> lower_port=>25, upper_port=>NULL);
PL/SQL procedure successfully completed.
SQL> commit;
Commit complete.

 

Now the procedure works as directed.

Oct2014CPU Crashes ArcGIS Desktop

Right after I applied the Oct2014 SPU to our development database, members of our IT staff started complaining that direct-connect connections with ArcCatalog and ArcMap would crash. The app wouldn’t even connect to the database. I tried various things…even upgrading Oracle Client to 11.2.0.4 to match the database version (it was 11.2.0.1) but nothing worked. I even went so far as to enable both 10046 tracing and client-side SQL*Net tracing. In the 10046 trace, I could see where SQL statements were issued to the database. The Listener log confirmed the client established a connection and the 10046 shows the standard SQL statements that were issued to the the Oracle database any time ArcCatalog makes a direct-connect connection. Except at the end of the 10046 trace file, was this last SQL statement:

 

PARSING IN CURSOR #140250835575144 len=279 dep=0 uid=9459 oct=3 lid=9459 tim=1413920974829489 hv=3533534632 ad='7963a438' sqlid='5hq4svb99uxd8'
SELECT r.owner, r.table_name, x.column_name, x.column_id, x.index_id, x.registration_id, x.minimum_id, x.config_keyword,x.xflags FROM SDE.table_registry r, SDE.sde_xml_columns x WHERE r.registration_id = x.registration_id AND (( r.table_name = 'GDB_ITEMS' AND r.owner = 'SDE'))
END OF STMT
PARSE #140250835575144:c=4999,e=5796,p=0,cr=147,cu=0,mis=1,r=0,dep=0,og=1,plh=1755489251,tim=1413920974829487
WAIT #140250835575144: nam='SQL*Net message to client' ela= 3 driver id=1413697536 #bytes=1 p3=0 obj#=297281 tim=1413920974829548

So the SQL was issued and parse. And then before execution, the SQL*Net message to client wait event occurred. And that’s the end of it.  So I turned to SQL*Net tracing. That trace revealed the following:

 

DDE: Flood control is not active
Incident 1 created, dump file: c:\oracle\product\11.2.0\client_2\log\oradiag_bpeasland\diag\clients\user_bpeasland\host_525531546_80\incident\incdir_1\ora_26000_24088_i1.trc
cheapest viagra tablets  Regular smoking: The harmful chemicals in the tobacco smoke end up hardening the delicate arteries in the penis, thus interfering with the hydraulic process of erection. There are only three places that scientists have discovered resveratrol naturally, and that is in grapes, some green teas, and peanuts that leads scientists to believe that it is addictive. online levitra india http://www.opacc.cv/documentos/RegulamentodoControlodeQualidadedosAuditoresCertificados_15.12.2015.pdf There is nothing worse than being on a movie date when one of the advertisements is for viagra india online  or other performance enhancing drugs, provides access to an abundance of unlawful generics on the internet breaking the patent ownership and the unregulated companies that create and supply them. Men prefer to sense less confident, aggravated, mortified, embarrassed & disenchanted. on line viagra oci-24550 [3221225477] [Unhandled exception: Code=c0000005 Flags=0
] [] [] [] [] [] [] [] [] [] []

 

Well the OCI-24550 error wasn’t very informative. I was trying to do some more digging when a colleague found an ESRI document that describes this exact behavior and they now have Bug # 82555. Here is that document:

http://support.esri.com/en/knowledgebase/techarticles/detail/43293?utm_source=esri&utm_medium=email&utm_term=73110&utm_content=article&utm_campaign=oracle_patch_2014

 

ESRI says to avoid the patch. But I’d rather not wait for ESRI and Oracle to quit pointing fingers at each other. It has also been my experience that ESRI bugs are not fixed expeditiously. The workaround to grant the SELECT_CATALOG_ROLE role has worked quite well for me. I hope this helps others who have the same problem.