<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>A. Fuat Sungur's Blog</title>
	<atom:link href="http://sungur.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://sungur.wordpress.com</link>
	<description>About on Computer World</description>
	<lastBuildDate>Tue, 15 Mar 2011 07:43:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='sungur.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>A. Fuat Sungur's Blog</title>
		<link>http://sungur.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://sungur.wordpress.com/osd.xml" title="A. Fuat Sungur&#039;s Blog" />
	<atom:link rel='hub' href='http://sungur.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Writing an sql query output to a File in PLSQL Package</title>
		<link>http://sungur.wordpress.com/2011/02/18/writing-an-sql-query-output-to-a-file-in-plsql-package/</link>
		<comments>http://sungur.wordpress.com/2011/02/18/writing-an-sql-query-output-to-a-file-in-plsql-package/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 11:11:25 +0000</pubDate>
		<dc:creator>Ahmet Fuat Sungur</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[PL / SQL]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[plsql]]></category>
		<category><![CDATA[utl_file]]></category>

		<guid isPermaLink="false">http://sungur.wordpress.com/?p=144</guid>
		<description><![CDATA[We are developing ETL projects and sometimes we need to write output of a table or view query to a file. The problem is that for each project it should be written another package or procedure to write table or query data to a file. This is a needless operation and I decided to write [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sungur.wordpress.com&amp;blog=6780870&amp;post=144&amp;subd=sungur&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We are developing ETL projects and sometimes we need to write output of a table or view query to a file. The problem is that for each project it should be written another package or procedure to write table or query data to a file. This is a needless operation and I decided to write a package to overcome this problem.</p>
<p>The package that I coded is PKG_QUERY_TO_FILE that has two public procedure to write a query&#8217;s output to a file. Example calling of the procedures are listed below:</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">BEGIN&nbsp;</p>
<p>PKG_QUERY_TO_FILE.WRITE(<br />
pv_sql_query =&gt;                 &#8216;SELECT * FROM ODS_ETL.TTA01EXTLOAD_DEFINITIONS WHERE SOURCE_SYSTEM = &#8221;BSCS&#8221;&#8217;,<br />
pv_disk_directory =&gt;            &#8216;/ETLfs&#8217;,<br />
pv_file_name =&gt;                 &#8216;extload.txt&#8217;,<br />
pb_include_column_header =&gt;     TRUE,<br />
pv_column_header_encloser =&gt;    &#8216;&#8221;&#8216;,<br />
pv_column_header_seperator =&gt;   &#8216;;&#8217;,<br />
pv_file_seperator =&gt;            &#8216;,&#8217;,<br />
pb_append_mode =&gt;               FALSE,<br />
pv_null_replacer =&gt;             &#8216;NULL&#8217;<br />
);</p>
<p>PKG_QUERY_TO_FILE.WRITE(<br />
pv_sql_query =&gt; &#8216;SELECT * FROM ODS_ETL.TTA01EXTLOAD_DEFINITIONS WHERE SOURCE_SYSTEM = &#8221;BSCS&#8221;&#8217;,<br />
pv_disk_directory =&gt; &#8216;/ETLfs&#8217;,<br />
pv_file_name =&gt; &#8216;extload2.txt&#8217;<br />
);</p>
<p>EXECUTE IMMEDIATE &#8216;CREATE OR REPLACE DIRECTORY SIL_TMPDIR AS &#8221;/ETLfs/fuat&#8221;&#8217;;<br />
PKG_QUERY_TO_FILE.WRITE_SIMPLE(<br />
pv_sql_query        =&gt; &#8216;SELECT * FROM ODS_ETL.TTA01EXTLOAD_DEFINITIONS WHERE SOURCE_SYSTEM = &#8221;BSCS&#8221;&#8217;,<br />
pv_directory_object =&gt; &#8216;SIL_TMPDIR&#8217;,<br />
pv_file_name        =&gt; &#8216;extload3.txt&#8217;<br />
);<br />
EXECUTE IMMEDIATE &#8216;DROP DIRECTORY SIL_TMPDIR&#8217;;<br />
END;</p>
</div>
<p>You can analyse, download and use free the code of PKG_QUERY_TO_FILE package, from <a title="PKG_QUERY_TO_FILE" href="https://docs.google.com/document/d/1ZCfx0sGObUNp7HOntsXT8GJ0L2jDUVcMxqRDqAsPH5M/edit?hl=en&amp;pli=1#" target="_blank">here</a>. You can add your log system instead DBMS_OUTPUT.</p>
<p>It may have some bugs if you specify that I will fix it or you can create your own generic package by using my package.</p>
<p>Also Thomas Kyte has written a package about this problem ( <a href="http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:95212348059">http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:95212348059</a> ).</p>
<br />Filed under: <a href='http://sungur.wordpress.com/category/oracle/'>Oracle</a>, <a href='http://sungur.wordpress.com/category/oracle/pl-sql/'>PL / SQL</a> Tagged: <a href='http://sungur.wordpress.com/tag/file/'>file</a>, <a href='http://sungur.wordpress.com/tag/oracle-2/'>oracle</a>, <a href='http://sungur.wordpress.com/tag/plsql/'>plsql</a>, <a href='http://sungur.wordpress.com/tag/utl_file/'>utl_file</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sungur.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sungur.wordpress.com/144/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sungur.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sungur.wordpress.com/144/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sungur.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sungur.wordpress.com/144/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sungur.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sungur.wordpress.com/144/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sungur.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sungur.wordpress.com/144/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sungur.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sungur.wordpress.com/144/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sungur.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sungur.wordpress.com/144/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sungur.wordpress.com&amp;blog=6780870&amp;post=144&amp;subd=sungur&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sungur.wordpress.com/2011/02/18/writing-an-sql-query-output-to-a-file-in-plsql-package/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9a5c600f86aebe640ef492602a8358e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Sungur</media:title>
		</media:content>
	</item>
		<item>
		<title>Java DelayQueue test</title>
		<link>http://sungur.wordpress.com/2011/02/10/java-delayqueue-test/</link>
		<comments>http://sungur.wordpress.com/2011/02/10/java-delayqueue-test/#comments</comments>
		<pubDate>Thu, 10 Feb 2011 17:43:03 +0000</pubDate>
		<dc:creator>Ahmet Fuat Sungur</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[queue]]></category>

		<guid isPermaLink="false">http://sungur.wordpress.com/?p=135</guid>
		<description><![CDATA[DelayQueue Test DelayQueue is a Java Queue that supports delaying for queue elements. An element inside the queue only taken after its expiration(delay) time. Object class that inside the queue should implement the &#8220;Delayed&#8221; interface. This interface forces you to implement 2 methods: getDelay,compareTo getDelay method is important because Java decided to dequeue element from [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sungur.wordpress.com&amp;blog=6780870&amp;post=135&amp;subd=sungur&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>DelayQueue Test</p>
<p><a href="http://download.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/DelayQueue.html">DelayQueue </a> is a Java Queue that supports delaying for queue elements. An element inside the queue only taken after its expiration(delay) time.</p>
<p>Object class that inside the queue should implement the &#8220;<a href="http://download.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/Delayed.html">Delayed</a>&#8221; interface. This interface forces you to implement 2 methods:</p>
<p>getDelay,compareTo</p>
<p>getDelay method is important because Java decided to dequeue element from queue if getDelayed&lt;=0 . For more information, visit Delayed Interface javadoc.</p>
<p>Lets start an example.</p>
<p>Firstly, you should define a class that represents the elements inside the queue. Our class name is NewString. This class has 2 important methods,getDelay and compareTo. If getDelay method returns 0 value or a value is lower than 0, this object will dequeue from the queue.</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
<p>package com.turkcelltech.queuetests.DelayQueue;</p>
<p>import java.util.concurrent.Delayed;<br />
import java.util.concurrent.TimeUnit;</p>
<p>public class NewString implements Delayed{<br />
private long endOfDelay;<br />
private String text;<br />
private long queueInsertTime;</p>
<p>public long getQueueInsertTime() {<br />
return queueInsertTime;<br />
}</p>
<p>public void setQueueInsertTime(long queueInsertTime) {<br />
this.queueInsertTime = queueInsertTime;<br />
}</p>
<p>public String getText() {<br />
return text;<br />
}</p>
<p>public void setText(String text) {<br />
this.text = text;<br />
}</p>
<p>public NewString()<br />
{<br />
}</p>
<p>public long getEndOfDelay() {<br />
return endOfDelay;<br />
}<br />
public void setEndOfDelay(long endOfDelay) {<br />
this.endOfDelay = endOfDelay;<br />
}</p>
<p>@Override<br />
public long getDelay(TimeUnit unit) {<br />
// TODO Auto-generated method stub<br />
long tmp = unit.convert((getQueueInsertTime()-System.currentTimeMillis())+endOfDelay, TimeUnit.MILLISECONDS);<br />
return tmp;</p>
<p>}</p>
<p>@Override<br />
public int compareTo(Delayed o) {<br />
// TODO Auto-generated method stub<br />
int ret = 0;<br />
NewString ns = (NewString) o;</p>
<p>if ( this.endOfDelay &lt; ns.endOfDelay ) ret = -1;<br />
else if ( this.endOfDelay &gt; ns.endOfDelay ) ret = 1;<br />
else if ( this.getQueueInsertTime() == ns.getQueueInsertTime() ) ret = 0;</p>
<p>return ret;</p>
<p>}</p>
<p>}</p>
</div>
<p>And we are preparing Producer and Consumer classes. For each step in producer, a NewString object is creating and setting its attributes; for each step in consumer, consumer tries to take an element from the queue, if it could not, it waits until an element will be put (Refer the java queue documentation to understand differences between poll and take methods of queue, http://download.oracle.com/javase/1.5.0/docs/api/java/util/Queue.html )</p>
<p>Producer:</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">package com.turkcelltech.queuetests.DelayQueue;<br />
import java.math.BigInteger;<br />
import java.security.SecureRandom;<br />
import java.util.Random;<br />
import java.util.concurrent.DelayQueue;&nbsp;</p>
<p>public class Producer extends Thread {</p>
<p>private DelayQueue dq;<br />
private SecureRandom random = new SecureRandom();</p>
<p>public Producer(DelayQueue dq) {<br />
// TODO Auto-generated constructor stub<br />
this.dq = dq;<br />
}</p>
<p>@Override<br />
public void run() {<br />
// TODO Auto-generated method stub<br />
while (true) {<br />
try {<br />
String str = getRandomString();<br />
NewString nstr = new NewString();<br />
int iRandom = 2000 + new Random().nextInt(1000);</p>
<p>nstr.setText(str);<br />
nstr.setEndOfDelay(iRandom);<br />
nstr.setQueueInsertTime(System.currentTimeMillis());<br />
dq.put(nstr);</p>
<p>Thread.sleep(1);<br />
} catch (InterruptedException e) {<br />
// TODO Auto-generated catch block<br />
e.printStackTrace();<br />
}<br />
}<br />
}</p>
<p>public String getRandomString() {<br />
return new BigInteger(130, random).toString(32);<br />
}</p>
<p>}</p>
</div>
<p>Consumer:</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">package com.turkcelltech.queuetests.DelayQueue;<br />
import java.util.concurrent.DelayQueue;<br />
import java.util.concurrent.Delayed;<br />
import java.util.concurrent.LinkedBlockingQueue;&nbsp;</p>
<p>public class Consumer extends  Thread {</p>
<p>private DelayQueue dq;<br />
private NewString ns;</p>
<p>public Consumer(DelayQueue dq) {<br />
// TODO Auto-generated constructor stub<br />
this.dq = dq;<br />
}</p>
<p>@Override<br />
public void run()<br />
{<br />
long dequeueTime = 0;<br />
while ( true )<br />
{<br />
String str = null;<br />
try {<br />
ns =  (NewString) dq.take();<br />
dequeueTime = System.currentTimeMillis();<br />
} catch (InterruptedException e1) {<br />
// TODO Auto-generated catch block<br />
e1.printStackTrace();<br />
}<br />
StringBuffer sb = new StringBuffer();<br />
sb.append(&#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&#8221;+&#8221;\n&#8221;);<br />
sb.append(&#8220;Queue Size ( Cons ) :&#8221;+dq.size()+&#8221;\n&#8221;);<br />
sb.append(&#8220;Inserted Element :&#8221;+ns.getText()+&#8221;\n&#8221;);<br />
sb.append(&#8220;Queue Insertion Time :&#8221;+ns.getQueueInsertTime()+&#8221;\n&#8221;);<br />
sb.append(&#8220;Now ( dequeue time ) :&#8221;+dequeueTime+&#8221;\n&#8221;);<br />
sb.append(&#8220;Expected Delay (ms):&#8221;+ns.getEndOfDelay()+&#8221;\n&#8221;);<br />
sb.append(&#8220;Actual Delay (ms):&#8221;+(dequeueTime-ns.getQueueInsertTime())+&#8221;\n&#8221;);<br />
sb.append(&#8220;Differences Actual and Expected Delay (ms):&#8221;+((dequeueTime-ns.getQueueInsertTime())-ns.getEndOfDelay())+&#8221;\n&#8221;);<br />
sb.append(&#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&#8221;+&#8221;\n&#8221;);<br />
System.out.println(sb.toString());<br />
//System.out.println(&#8220;Queue Size (Cons):&#8221;+dq.size()+&#8221;|Inserted Element:&#8221;+ns.getText()+&#8221;|Delay:&#8221;+ns.getEndOfDelay()+&#8221;|Queue Insertion Time:&#8221;+ns.getQueueInsertTime()+&#8221;|Now:&#8221;+System.currentTimeMillis());</p>
<p>}<br />
}</p>
<p>}</p>
</div>
<p>And, create the main class that calls producer and consumer:</p>
<p>DelayQueueTest:</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
<p>package com.turkcelltech.queuetests.DelayQueue;</p>
<p>import java.util.concurrent.DelayQueue;</p>
<p>public class DelayQueueTest {</p>
<p>private static DelayQueue dq;</p>
<p>public static void main(String args[])<br />
{<br />
System.out.println(&#8220;DelayQueue Example&#8230;&#8221;);<br />
dq = new DelayQueue();<br />
Producer p = new Producer(dq);<br />
Consumer c = new Consumer(dq);<br />
p.start();<br />
c.start();</p>
<p>}<br />
}</p>
</div>
<p>Lastly, run the DelayQueueTest.java, then lets analyse the output. After a<br />
period of time, to find the elements that has expired become hard because the<br />
queue size is increasing gradually because of  in our example, producer is<br />
faster than the consumer. I think this delay queing structure is great, useful and works well with middle-size queues but if the<br />
queue size is big enough, deciding expired items much more hard.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Queue Size ( Cons ) :6190<br />
Inserted Element :cqf44unuj7e54gm6ou8hafgt6b<br />
Queue Insertion Time :<strong>1297351067151</strong><br />
Now ( dequeue time ) :<strong>1297351069152</strong><br />
Expected Delay (ms):<strong>2000</strong><br />
Actual Delay (ms):<strong>2001</strong><br />
Differences Actual and Expected Delay (ms):<strong>1</strong><br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Queue Size ( Cons ) :6190<br />
Inserted Element :q5a0atgilmik2jd6d3qu2bl2ic<br />
Queue Insertion Time :1297351066479<br />
Now ( dequeue time ) :1297351069152<br />
Expected Delay (ms):2000<br />
Actual Delay (ms):2673<br />
Differences Actual and Expected Delay (ms):673<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Queue Size ( Cons ) :6189<br />
Inserted Element <img src='http://s1.wp.com/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> plb0ojmltu473jgbstbsdcauj<br />
Queue Insertion Time :1297351065869<br />
Now ( dequeue time ) :1297351069152<br />
Expected Delay (ms):2001<br />
Actual Delay (ms):3283<br />
Differences Actual and Expected Delay (ms):1282<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Queue Size ( Cons ) :6188<br />
Inserted Element :la7uka3abq4t8ilbbki386dc2p<br />
Queue Insertion Time :1297351065891<br />
Now ( dequeue time ) :1297351069152<br />
Expected Delay (ms):2001<br />
Actual Delay (ms):3261<br />
Differences Actual and Expected Delay (ms):1260<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Queue Size ( Cons ) :6187<br />
Inserted Element :35uesr3s7c8dbkrtfudjvg2tir<br />
Queue Insertion Time :1297351066946<br />
Now ( dequeue time ) :1297351069152<br />
Expected Delay (ms):2001<br />
Actual Delay (ms):2206<br />
Differences Actual and Expected Delay (ms):205<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Queue Size ( Cons ) :6186<br />
Inserted Element :adcufi915fr0ehs43ebkl66apl<br />
Queue Insertion Time :1297351063883<br />
Now ( dequeue time ) :1297351069152<br />
Expected Delay (ms):2002<br />
Actual Delay (ms):5269<br />
Differences Actual and Expected Delay (ms):3267<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Queue Size ( Cons ) :8227<br />
Inserted Element :sevfljifbd677h178l6t4225pp<br />
Queue Insertion Time :1297351069243<br />
Now ( dequeue time ) :1297351071244<br />
Expected Delay (ms):2000<br />
Actual Delay (ms):2001<br />
Differences Actual and Expected Delay (ms):1<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Queue Size ( Cons ) :8325<br />
Inserted Element :unrvsodhafh02bcq21ords5ude<br />
Queue Insertion Time :1297351069341<br />
Now ( dequeue time ) :1297351071343<br />
Expected Delay (ms):2001<br />
Actual Delay (ms):2002<br />
Differences Actual and Expected Delay (ms):1<br />
&#8230;&#8230;<br />
&#8230;&#8230;<br />
&#8230;&#8230;<br />
Queue Size ( Cons ) :<strong>507047</strong><br />
Inserted Element :e4gjtvfq6b8hnlau27hlldvpve<br />
Queue Insertion Time :<strong>1297350198016</strong><br />
Now ( dequeue time ) :<strong>1297350301063</strong><br />
Expected Delay (ms):<strong>2003</strong><br />
Actual Delay (ms):<strong>103047</strong><br />
Differences Actual and Expected Delay (ms):<strong>101044</strong><br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Queue Size ( Cons ) :507046<br />
Inserted Element :p8fe9d49o1ga0i9oe3ciepac37<br />
Queue Insertion Time :1297350200057<br />
Now ( dequeue time ) :1297350301063<br />
Expected Delay (ms):2003<br />
Actual Delay (ms):101006<br />
Differences Actual and Expected Delay (ms):99003<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Queue Size ( Cons ) :507045<br />
Inserted Element :n5bd4saorqcmo3ahgfersfg4ns<br />
Queue Insertion Time :1297350187489<br />
Now ( dequeue time ) :1297350301063<br />
Expected Delay (ms):2003<br />
Actual Delay (ms):113574<br />
Differences Actual and Expected Delay (ms):111571<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Queue Size ( Cons ) :507044<br />
Inserted Element :2522nr8jkk56qr3qbm06ie8er<br />
Queue Insertion Time :1297350203764<br />
Now ( dequeue time ) :1297350301063<br />
Expected Delay (ms):2003<br />
Actual Delay (ms):97299<br />
Differences Actual and Expected Delay (ms):95296</p>
<br />Filed under: <a href='http://sungur.wordpress.com/category/java/'>Java</a> Tagged: <a href='http://sungur.wordpress.com/tag/java/'>Java</a>, <a href='http://sungur.wordpress.com/tag/queue/'>queue</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sungur.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sungur.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sungur.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sungur.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sungur.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sungur.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sungur.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sungur.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sungur.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sungur.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sungur.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sungur.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sungur.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sungur.wordpress.com/135/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sungur.wordpress.com&amp;blog=6780870&amp;post=135&amp;subd=sungur&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sungur.wordpress.com/2011/02/10/java-delayqueue-test/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9a5c600f86aebe640ef492602a8358e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Sungur</media:title>
		</media:content>
	</item>
		<item>
		<title>UKOUG Conference 2010</title>
		<link>http://sungur.wordpress.com/2010/10/17/ukoug-conference-2010/</link>
		<comments>http://sungur.wordpress.com/2010/10/17/ukoug-conference-2010/#comments</comments>
		<pubDate>Sun, 17 Oct 2010 07:25:42 +0000</pubDate>
		<dc:creator>Ahmet Fuat Sungur</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sungur.wordpress.com/?p=130</guid>
		<description><![CDATA[We developed an Oracle CEP application which processes GSM network events and produces alerts. We also used Oracle Coherence to facilitate handling huge data. My presentation about this topic has been selected for inclusion within the this year programme to present on Tuesday 30th November: Processing Turkcell GSM Network Data with Oracle CEP (30/11/2010 13:45 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sungur.wordpress.com&amp;blog=6780870&amp;post=130&amp;subd=sungur&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We developed an <a href="http://www.oracle.com/technologies/soa/complex-event-processing.html">Oracle CEP</a> application which processes GSM network events and produces alerts. We also used <a href="http://www.oracle.com/technetwork/middleware/coherence/overview/index.html">Oracle Coherence</a> to facilitate handling huge data.<br />
My presentation about this topic has been selected for inclusion within the this year programme to present on Tuesday 30th November:</p>
<p>Processing Turkcell GSM Network Data with Oracle CEP<br />
(30/11/2010 13:45 &#8211; 14:30)</p>
<p>I&#8217;m a bit excited because this will be my first visit to England and my first presentation in abroad <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />Filed under: <a href='http://sungur.wordpress.com/category/uncategorized/'>Uncategorized</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sungur.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sungur.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sungur.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sungur.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sungur.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sungur.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sungur.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sungur.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sungur.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sungur.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sungur.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sungur.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sungur.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sungur.wordpress.com/130/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sungur.wordpress.com&amp;blog=6780870&amp;post=130&amp;subd=sungur&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sungur.wordpress.com/2010/10/17/ukoug-conference-2010/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9a5c600f86aebe640ef492602a8358e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Sungur</media:title>
		</media:content>
	</item>
		<item>
		<title>Split utility Performance on Linux</title>
		<link>http://sungur.wordpress.com/2010/10/02/split-utility-performance-on-linux/</link>
		<comments>http://sungur.wordpress.com/2010/10/02/split-utility-performance-on-linux/#comments</comments>
		<pubDate>Sat, 02 Oct 2010 12:03:23 +0000</pubDate>
		<dc:creator>Ahmet Fuat Sungur</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[unix split]]></category>

		<guid isPermaLink="false">http://sungur.wordpress.com/?p=122</guid>
		<description><![CDATA[Generally processing huge files is a big deal. Parallel processing is a common method to get over this problem. There are several ways processing files as parallel. I used MPI api to process files as parallel when I was at Computer Hardware class. It gives you to lots of methods to accomplish this. Parallel processing, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sungur.wordpress.com&amp;blog=6780870&amp;post=122&amp;subd=sungur&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Generally processing huge files is a big deal. Parallel processing is a common method to get over this problem. There are several ways processing files as parallel. I used MPI api to process files as parallel when I was at Computer Hardware class. It gives you to lots of methods to accomplish this. Parallel processing, basically, one node splits file up to all of the nodes then each node responsible for processing its own data and after processed it informs the coordinator process, as is in MPI. For detailed information you can visit <a href="http://www.lam-mpi.org/download/files/7.1.4-user.pdf">LAM-MPI User Guide</a>.</p>
<p>In addition to MPI api, we can use Unix split function to split up our files then each process could take a file and process it. Every process read its file at the same time therefore we can reduce total file processing time.</p>
<p>In this text I want to describe linux/unix split utility with a demo. Our first scenario we have 2GB file ( output.txt ) and we&#8217;re going to split it up to various size files.</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
[oracle@galatats01.no.turkcell.tgc]:/home/oracle/split_test&gt; ls -la output.txt<br />
-rw-r&#8211;r&#8211; 1 oracle oinstall <b>1907874429</b> Oct  2 13:51 output.txt<br />
[oracle@galatats01.no.turkcell.tgc]:/home/oracle/split_test&gt; nohup ./split.sh &gt; split.txt &amp;<br />
[1]	31883<br />
[oracle@galatats01.no.turkcell.tgc]:/home/oracle/split_test&gt; tail -f split.txt<br />
Started ( Splitting up to 5000 lines per file ) at :1286016749781<br />
Finished ( Splitting up to 5000 lines per file ) at :1286016757756. Total time:7975 ms.<br />
Started ( Splitting up to 50000 lines per file ) at :1286016757769<br />
Finished ( Splitting up to 50000 lines per file ) at :1286016778449. Total time:20680 ms.<br />
Started ( Splitting up to 500000 lines per file ) at :1286016780335<br />
Finished ( Splitting up to 500000 lines per file ) at :1286016845797. Total time:65462 ms.<br />
[1] +  Done                    nohup ./split.sh &gt; split.txt &amp;
</div>
<p>As it seems, if size of the partitioned file increases, processing time will increase as well. Is this true always? I do not think so:</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
[oracle@galatats01.no.turkcell.tgc]:/home/oracle/split_test&gt; ls -la output.txt<br />
-rw-r&#8211;r&#8211; 1 oracle oinstall 1907874429 Oct  2 13:51 output.txt<br />
[oracle@galatats01.no.turkcell.tgc]:/home/oracle/split_test&gt; nohup ./split.sh &gt; split.txt &amp;<br />
[1]	6335<br />
[oracle@galatats01.no.turkcell.tgc]:/home/oracle/split_test&gt; tail -f split.txt<br />
Started ( Splitting up to 5000 lines per file ) at :1286018690329<br />
Finished ( Splitting up to 5000 lines per file ) at :1286018699098. Total time:8769 ms.<br />
Started ( Splitting up to 50000 lines per file ) at :1286018699109<br />
Finished ( Splitting up to 50000 lines per file ) at :1286018706011. Total time:6902 ms.<br />
Started ( Splitting up to 500000 lines per file ) at :1286018706022<br />
Finished ( Splitting up to 500000 lines per file ) at :1286018731639. Total time:25617 ms.<br />
[oracle@galatats01.no.turkcell.tgc]:/home/oracle/split_test&gt; nohup ./split.sh &gt; split.txt &amp;<br />
[1]	5900<br />
[oracle@galatats01.no.turkcell.tgc]:/home/oracle/split_test&gt;<br />
[oracle@galatats01.no.turkcell.tgc]:/home/oracle/split_test&gt; tail -f split.txt<br />
Started ( Splitting up to 5000 lines per file ) at :1286018566979<br />
Finished ( Splitting up to 5000 lines per file ) at :1286018577839. Total time:10860 ms.<br />
Started ( Splitting up to 50000 lines per file ) at :1286018577850<br />
Finished ( Splitting up to 50000 lines per file ) at :1286018584919. Total time:7069 ms.<br />
Started ( Splitting up to 500000 lines per file ) at :1286018587039<br />
Finished ( Splitting up to 500000 lines per file ) at :1286018607979. Total time:20940 ms.<br />
[1] +  Done                    nohup ./split.sh &gt; split.txt &amp;<br />
[oracle@galatats01.no.turkcell.tgc]:/home/oracle/split_test&gt;
</div>
<p>But, if the size of file that is splitted is smaller, results will be more stable:</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
[oracle@galatats01.no.turkcell.tgc]:/home/oracle/split_test&gt; ls -la output.txt<br />
-rw-r&#8211;r&#8211; 1 oracle oinstall <b>41074528</b> Oct  2 13:53 output.txt<br />
[oracle@galatats01.no.turkcell.tgc]:/home/oracle/split_test&gt; nohup ./split.sh &gt; split.txt &amp;<br />
[1]	5142<br />
[oracle@galatats01.no.turkcell.tgc]:/home/oracle/split_test&gt; tail -f split.txt<br />
Started ( Splitting up to 5000 lines per file ) at :1286018340006<br />
Finished ( Splitting up to 5000 lines per file ) at :1286018340174. Total time:168 ms.<br />
Started ( Splitting up to 50000 lines per file ) at :1286018340186<br />
Finished ( Splitting up to 50000 lines per file ) at :1286018340344. Total time:158 ms.<br />
Started ( Splitting up to 500000 lines per file ) at :1286018340355<br />
Finished ( Splitting up to 500000 lines per file ) at :1286018340499. Total time:144 ms.<br />
[1] +  Done                    nohup ./split.sh &gt; split.txt &amp;<br />
[oracle@galatats01.no.turkcell.tgc]:/home/oracle/split_test&gt; ls -la output.txt<br />
-rw-r&#8211;r&#8211; 1 oracle oinstall <b>246447168</b> Oct  2 14:20 output.txt<br />
[oracle@galatats01.no.turkcell.tgc]:/home/oracle/split_test&gt;<br />
[oracle@galatats01.no.turkcell.tgc]:/home/oracle/split_test&gt;<br />
[oracle@galatats01.no.turkcell.tgc]:/home/oracle/split_test&gt;<br />
[oracle@galatats01.no.turkcell.tgc]:/home/oracle/split_test&gt; nohup ./split.sh &gt; split.txt &amp;<br />
[1]	5650<br />
[oracle@galatats01.no.turkcell.tgc]:/home/oracle/split_test&gt; tail -f split.txt<br />
Started ( Splitting up to 5000 lines per file ) at :1286018462209<br />
Finished ( Splitting up to 5000 lines per file ) at :1286018463166. Total time:957 ms.<br />
Started ( Splitting up to 50000 lines per file ) at :1286018463180<br />
Finished ( Splitting up to 50000 lines per file ) at :1286018464039. Total time:859 ms.<br />
Started ( Splitting up to 500000 lines per file ) at :1286018464054<br />
Finished ( Splitting up to 500000 lines per file ) at :1286018464887. Total time:833 ms.
</div>
<p>As a result, it could not be said that a number is the best for splitting, it depends on many factors. You ought to test to reduce splitting time if you use split utility .</p>
<p>This tests were performed in Linux 2.6.18-194.el5, SUN X4150. It has eight processors and 16 GB mem.</p>
<p>By the way, split.sh is below :</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
[oracle@galatats01.no.turkcell.tgc]:/home/oracle/split_test&gt; cat split.sh<br />
#!/bin/ksh</p>
<p>time1=0;<br />
time2=0;<br />
time3=0;<br />
getTime()<br />
{<br />
time1=`perl -MTime::HiRes -e &#8216;print int(1000 * Time::HiRes::gettimeofday),&#8221;\n&#8221;&#8216;`<br />
}</p>
<p>getTime<br />
time2=$time1;<br />
echo &#8220;Started ( Splitting up to 5000 lines per file ) at :$time1&#8243;<br />
split -a 5 -d output.txt -l 5000 output5K<br />
getTime<br />
time3=`echo &#8220;$time1 &#8211; $time2&#8243; | bc`<br />
echo &#8220;Finished ( Splitting up to 5000 lines per file ) at :$time1. Total time:$time3 ms.&#8221;</p>
<p>getTime<br />
time2=$time1;<br />
echo &#8220;Started ( Splitting up to 50000 lines per file ) at :$time1&#8243;<br />
split -a 5 -d output.txt -l 50000 output50K<br />
getTime<br />
time3=`echo &#8220;$time1 &#8211; $time2&#8243; | bc`<br />
echo &#8220;Finished ( Splitting up to 50000 lines per file ) at :$time1. Total time:$time3 ms.&#8221;</p>
<p>getTime<br />
time2=$time1;<br />
echo &#8220;Started ( Splitting up to 500000 lines per file ) at :$time1&#8243;<br />
split -a 5 -d output.txt -l 500000 output500K<br />
getTime<br />
time3=`echo &#8220;$time1 &#8211; $time2&#8243; | bc`<br />
echo &#8220;Finished ( Splitting up to 500000 lines per file ) at :$time1. Total time:$time3 ms.&#8221;
</p></div>
<br />Filed under: <a href='http://sungur.wordpress.com/category/unix/'>Unix</a> Tagged: <a href='http://sungur.wordpress.com/tag/unix-split/'>unix split</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sungur.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sungur.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sungur.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sungur.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sungur.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sungur.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sungur.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sungur.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sungur.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sungur.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sungur.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sungur.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sungur.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sungur.wordpress.com/122/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sungur.wordpress.com&amp;blog=6780870&amp;post=122&amp;subd=sungur&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sungur.wordpress.com/2010/10/02/split-utility-performance-on-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9a5c600f86aebe640ef492602a8358e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Sungur</media:title>
		</media:content>
	</item>
		<item>
		<title>Running Shell Script in PL/SQL on a RAC Environment</title>
		<link>http://sungur.wordpress.com/2010/09/26/running-shell-script-in-plsql-on-a-rac-environment/</link>
		<comments>http://sungur.wordpress.com/2010/09/26/running-shell-script-in-plsql-on-a-rac-environment/#comments</comments>
		<pubDate>Sun, 26 Sep 2010 06:55:31 +0000</pubDate>
		<dc:creator>Ahmet Fuat Sungur</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[PL / SQL]]></category>
		<category><![CDATA[RAC]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[rac]]></category>
		<category><![CDATA[shell script]]></category>

		<guid isPermaLink="false">http://sungur.wordpress.com/?p=116</guid>
		<description><![CDATA[Sometimes we need to run shell script within the PL/SQL code. To do accompplish this we have two options : 1 ) Create a java stored class that runs shell script with Java Runtime class. 2 ) Using DBMS_SCHEDULER Oracle supplied package When you are on second option and you work on a RAC environment [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sungur.wordpress.com&amp;blog=6780870&amp;post=116&amp;subd=sungur&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Sometimes we need to run shell script within the PL/SQL code. To do accompplish this we have two options :</p>
<p>1 ) Create a java stored class that runs shell script with Java Runtime class.<br />
2 ) Using DBMS_SCHEDULER Oracle supplied package</p>
<p>When you are on second option and you work on a RAC environment you should be aware of somethings that are listed below:</p>
<p>1 ) Unix user who had installed the Oracle Database ( generally oracle ) should have been granted to run specified shell script. This is a requirement whether you use Oracle RAC or not.<br />
2 ) In shell script, use exact path of supplied unix utilities instead of using its actual name. For example, if shell script use &#8220;echo&#8221; utility and you do not call explicitly profile file or set environment variables, you should specify its path exactly what it is, like &#8220;/bin/echo&#8221;.<br />
3 ) Shell script that will be run by Oracle DB should be placed on all of the nodes with same grants. Because you do not know which node will execute the shell script.<br />
Assume that you have 2 nodes a. Your shell script is located on /home/oracle/demoSh/demo.sh . And instance names that match nodes which are listed below :</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
node1 : galatats1<br />
node2 : galatats2
</div>
<p>By the way you can learn your instance name in your session via querying v$instance system view.</p>
<p>On instance2 :</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
[oracle@galatats02.no.turkcell.tgc]:/home/oracle/demoSh&gt; ls -la<br />
total 20<br />
drwxr-xr-x 2 oracle oinstall 4096 Sep 26 01:49 .<br />
drwx&#8212;&#8212; 6 oracle      501 4096 Sep 26 01:49 ..<br />
-rwxr-xr-x 1 oracle oinstall 1239 Sep 26 01:49 demo.sh<br />
-rw-r&#8211;r&#8211; 1 oracle oinstall   20 Sep 26 01:49 output.txt
</div>
<p>In order to execute demo.sh inside the PL/SQL we are creating a DBMS_SCHEDULER job like that :</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
BEGIN<br />
  dbms_scheduler.create_job(<br />
  job_name   =&gt; &#8216;DEMO&#8217;,<br />
  job_type   =&gt; &#8216;EXECUTABLE&#8217;,<br />
  job_action =&gt; &#8216;/home/oracle/demoSh/demo.sh&#8217;,<br />
  start_date =&gt; SYSTIMESTAMP,<br />
  number_of_arguments=&gt;0,<br />
  enabled    =&gt; true,<br />
  auto_Drop =&gt; true,<br />
  comments   =&gt; &#8216;Demo&#8217;);<br />
END;
</div>
<p>As soon as job is created, it started to run. As soon as job completed its run, it is dropped automatically. Because of auto_drop clause was set to true while job was creating. ( By the way you do not necessary to do this ). How can I check status of my job that has already dropped? You can use USER_SCHEDULER_JOB_RUN_DETAILS view to check status of all scheduler jobs that run. Also In a RAC environment you can see node that job was executed on.</p>
<p>If you change name of demo.sh file on node1, the job we have created above will run successfully sometimes. If you check the status code of user_scheduler_job_run_details you can see both SUCCESSFUL and FAILED status of your job. In the FAILED row you may see this in ADDITIONAL_INFO column:</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
ORA-27369: job of type EXECUTABLE failed with exit code: No such file or directory
</div>
<p>So that, in order to execute shell script as successful via PL/SQL you have to obey some rules. In this article I tried to tell what they are.</p>
<br />Filed under: <a href='http://sungur.wordpress.com/category/oracle/'>Oracle</a>, <a href='http://sungur.wordpress.com/category/oracle/pl-sql/'>PL / SQL</a>, <a href='http://sungur.wordpress.com/category/oracle/rac/'>RAC</a>, <a href='http://sungur.wordpress.com/category/unix/'>Unix</a> Tagged: <a href='http://sungur.wordpress.com/tag/rac-2/'>rac</a>, <a href='http://sungur.wordpress.com/tag/shell-script/'>shell script</a>, <a href='http://sungur.wordpress.com/tag/unix/'>Unix</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sungur.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sungur.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sungur.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sungur.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sungur.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sungur.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sungur.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sungur.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sungur.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sungur.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sungur.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sungur.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sungur.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sungur.wordpress.com/116/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sungur.wordpress.com&amp;blog=6780870&amp;post=116&amp;subd=sungur&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sungur.wordpress.com/2010/09/26/running-shell-script-in-plsql-on-a-rac-environment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9a5c600f86aebe640ef492602a8358e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Sungur</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle CEP Bug &#8211; org.springframework.beans.TypeMismatchException</title>
		<link>http://sungur.wordpress.com/2010/08/02/oracle-cep-bug-org-springframework-beans-typemismatchexception/</link>
		<comments>http://sungur.wordpress.com/2010/08/02/oracle-cep-bug-org-springframework-beans-typemismatchexception/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 16:52:01 +0000</pubDate>
		<dc:creator>Ahmet Fuat Sungur</dc:creator>
				<category><![CDATA[Complex Event Processing]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[oracle cep]]></category>
		<category><![CDATA[spring]]></category>

		<guid isPermaLink="false">http://sungur.wordpress.com/?p=107</guid>
		<description><![CDATA[I have installed the Oracle Complex Event Processing 11.1.3. I will have described what I am doing by the end of this month. Anyway I decided to use Event Partitioning feature to achieve scalability. When I use a channel with event partitioning feature I was getting error : org.springframework.beans.factory.BeanCreationException: Error creating bean with name &#8216;inputChannel&#8217;: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sungur.wordpress.com&amp;blog=6780870&amp;post=107&amp;subd=sungur&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have installed the Oracle Complex Event Processing 11.1.3. I will have described what I am doing by the end of this month. Anyway I decided to use Event<br />
Partitioning feature to achieve scalability. When I use a channel with event partitioning feature I was getting error :</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
org.springframework.beans.factory.BeanCreationException: Error creating bean with name </p>
<p>&#8216;inputChannel&#8217;: Invocation of init method failed; nested exception is </p>
<p>org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:<br />
PropertyAccessException 1: org.springframework.beans.TypeMismatchException: Failed to convert </p>
<p>property value of type [java.lang.String] to required type </p>
<p>[com.bea.wlevs.channel.EventPartitioner] for property &#8216;eventPartitioner&#8217;; nested exception is </p>
<p>java.lang.IllegalArgumentException: Cannot convert value of type [java.lang.String] to required </p>
<p>type [com.bea.wlevs.channel.EventPartitioner] for property &#8216;eventPartitioner&#8217;: no matching </p>
<p>editors or conversion strategy found
</p></div>
<p>In CEP documentation,<br />
( <a href="http://download.oracle.com/docs/cd/E14571_01/doc.1111/e14301/scalconfig.htm#CBDCBDFA">Section 19.1, &#8220;How to Configure Scalability With an Event Partitioner Channel&#8221;</a> )</p>
<p>it says we could achieve scalability by putting this piece of code into channel configuration part of EPN assembly file:</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
&lt;wlevs:instance-property name=&#8221;eventPartitioner&#8221; value=&#8221;true&#8221; /&gt;
</div>
<p>However, it does not working. I created a Metalink SR and they answered me as they filed a bug about this issue(9964253). </p>
<p>Getting rid of this error is simple. Change name of instance-property from &#8220;<strong>eventPartitioner</strong>&#8221; to &#8220;<strong>partitionByEventProperty</strong>&#8221; and change value parameter to a varible name of your Event Class like this:</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
&lt;wlevs:instance-property name=&#8221;partitionByEventProperty&#8221; value=&#8221;symbol&#8221; /&gt;
</div>
<p>Your event class should have a &#8220;symbol&#8221; variable.</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
public String symbol;
</div>
<br />Filed under: <a href='http://sungur.wordpress.com/category/oracle/complex-event-processing/'>Complex Event Processing</a>, <a href='http://sungur.wordpress.com/category/java/'>Java</a> Tagged: <a href='http://sungur.wordpress.com/tag/java/'>Java</a>, <a href='http://sungur.wordpress.com/tag/oracle-cep/'>oracle cep</a>, <a href='http://sungur.wordpress.com/tag/spring/'>spring</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sungur.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sungur.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sungur.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sungur.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sungur.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sungur.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sungur.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sungur.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sungur.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sungur.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sungur.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sungur.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sungur.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sungur.wordpress.com/107/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sungur.wordpress.com&amp;blog=6780870&amp;post=107&amp;subd=sungur&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sungur.wordpress.com/2010/08/02/oracle-cep-bug-org-springframework-beans-typemismatchexception/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9a5c600f86aebe640ef492602a8358e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Sungur</media:title>
		</media:content>
	</item>
		<item>
		<title>SIMPLE_INTEGER as performance booster [ Comparing SIMPLE_INTEGER, PLS_INTEGER, NUMBER data types ]</title>
		<link>http://sungur.wordpress.com/2009/12/10/simple_integer-as-performance-booster-comparing-simple_integer-pls_integer-number-data-types/</link>
		<comments>http://sungur.wordpress.com/2009/12/10/simple_integer-as-performance-booster-comparing-simple_integer-pls_integer-number-data-types/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 13:54:32 +0000</pubDate>
		<dc:creator>Ahmet Fuat Sungur</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Performance Tuning]]></category>

		<guid isPermaLink="false">http://sungur.wordpress.com/?p=101</guid>
		<description><![CDATA[I&#8217;ve given education about the Advanced features of PL/SQL in our company academy. While i was preparing the education, simple_integer data type drawn my attention. This data type introduced with Oracle 11g. I wanted to compare this data type to pls_integer and number. If you are sure with simple_integer variable that won&#8217;t be null, you [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sungur.wordpress.com&amp;blog=6780870&amp;post=101&amp;subd=sungur&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve given education about the Advanced features of PL/SQL in our company academy. While i was preparing the education, simple_integer data type drawn my attention. This data type introduced with Oracle 11g. I wanted to compare this data type to pls_integer and number. </p>
<p>If you are sure with simple_integer variable that won&#8217;t be null, you can use this data type instead of pls_integer ( Also you know that pls_integer faster than number variable because it uses the hardware calculations instead of programmatic calculations like number).</p>
<p>To compare this i&#8217;ve written 3 split functions that takes an in parameter and takes an out parameter that is array of splitted parts of this string. </p>
<p>Firstly we create a string array type : </p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
CREATE OR REPLACE TYPE AQ_ADM_PRTP_V204.ARR_VARCHAR_100 IS TABLE OF VARCHAR2(100)<br />
/
</div>
<p>Secondly write 3 split functions that uses simple_integer, pls_integer, number data types respectively.</p>
<p>Procedure that uses simple_integer data types :</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
<p>CREATE OR REPLACE PROCEDURE AQ_ADM_PRTP_V204.PROC_SPLIT_SIMPLE_INTEGER(pv_param_string VARCHAR2, strings IN OUT NOCOPY ARR_VARCHAR_100)<br />
   IS<br />
  ln_comma <b>simple_integer</b> := 1;<br />
  ln_next  <b>simple_integer</b> := 1;<br />
  ln_index <b>simple_integer</b> := 0;<br />
BEGIN</p>
<p>  ln_comma := instr(pv_param_string, &#8216;,&#8217;, 1, 1);<br />
  WHILE (ln_comma &gt; 0) LOOP<br />
    ln_index := ln_index + 1;<br />
    strings(ln_index) := substr(pv_param_string,<br />
                                ln_next,<br />
                                ln_comma &#8211; ln_next);<br />
    ln_next := ln_comma + 1;<br />
    ln_comma := instr(pv_param_string, &#8216;,&#8217;, ln_next, 1);<br />
  END LOOP;</p>
<p>  ln_index := ln_index + 1;<br />
  ln_comma := length(pv_param_string) + 1;<br />
  strings(ln_index) := substr(pv_param_string, ln_next, ln_comma &#8211; ln_next);</p>
<p>END;<br />
/</p>
</div>
<p>Procedure that uses pls_integer data types :</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
<p>CREATE OR REPLACE PROCEDURE AQ_ADM_PRTP_V204.PROC_SPLIT_PLS_INTEGER(pv_param_string VARCHAR2, strings IN OUT NOCOPY ARR_VARCHAR_100)<br />
   IS<br />
  ln_comma <b>pls_integer</b> := 1;<br />
  ln_next  <b>pls_integer</b> := 1;<br />
  ln_index <b>pls_integer</b> := 0;<br />
BEGIN</p>
<p>  ln_comma := instr(pv_param_string, &#8216;,&#8217;, 1, 1);<br />
  WHILE (ln_comma &gt; 0) LOOP<br />
    ln_index := ln_index + 1;<br />
    strings(ln_index) := substr(pv_param_string,<br />
                                ln_next,<br />
                                ln_comma &#8211; ln_next);<br />
    ln_next := ln_comma + 1;<br />
    ln_comma := instr(pv_param_string, &#8216;,&#8217;, ln_next, 1);<br />
  END LOOP;</p>
<p>  ln_index := ln_index + 1;<br />
  ln_comma := length(pv_param_string) + 1;<br />
  strings(ln_index) := substr(pv_param_string, ln_next, ln_comma &#8211; ln_next);</p>
<p>END;<br />
/</p>
</div>
<p>Procedure that uses number data types :</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
<p>CREATE OR REPLACE PROCEDURE AQ_ADM_PRTP_V204.PROC_SPLIT_NUMBER(pv_param_string VARCHAR2, strings IN OUT NOCOPY ARR_VARCHAR_100)<br />
   IS<br />
  ln_comma <b>NUMBER</b> := 1;<br />
  ln_next  <b>NUMBER</b> := 1;<br />
  ln_index <b>NUMBER</b> := 0;<br />
BEGIN</p>
<p>  ln_comma := instr(pv_param_string, &#8216;,&#8217;, 1, 1);<br />
  WHILE (ln_comma &gt; 0) LOOP<br />
    ln_index := ln_index + 1;<br />
    strings(ln_index) := substr(pv_param_string,<br />
                                ln_next,<br />
                                ln_comma &#8211; ln_next);<br />
    ln_next := ln_comma + 1;<br />
    ln_comma := instr(pv_param_string, &#8216;,&#8217;, ln_next, 1);<br />
  END LOOP;</p>
<p>  ln_index := ln_index + 1;<br />
  ln_comma := length(pv_param_string) + 1;<br />
  strings(ln_index) := substr(pv_param_string, ln_next, ln_comma &#8211; ln_next);</p>
<p>END;<br />
/</p>
</div>
<p>After those we write test cases :</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
<p>DECLARE </p>
<p>    ln_iteration_no SIMPLE_INTEGER := 1000000;<br />
    strings ARR_VARCHAR_100 := ARR_VARCHAR_100();<br />
    ln_temp VARCHAR2(1000);<br />
    ln_time1 NUMBER;<br />
    ln_time2 NUMBER;<br />
    ln_time3 NUMBER;<br />
    ln_time4 NUMBER;<br />
BEGIN</p>
<p>    strings.extend(47);<br />
    ln_temp := </p>
<p>&#8217;2000,2,123553168,1,10,64895,65535,27662,64860,64895,65535,27662,64860,0,,,,,,0,0,2491039806,,,,,,,,,0,0,1,,24910391</p>
<p>06,,,,,,,&#8217; ||<br />
                &#8217;1&#8242; || &#8216;,,,,,&#8217;;</p>
<p>    ln_time1 := DBMS_UTILITY.GET_TIME;<br />
    FOR i IN 1..ln_iteration_no<br />
    LOOP</p>
<p>        proc_split_simple_integer(ln_temp,strings);</p>
<p>    END LOOP;<br />
    ln_time2 := DBMS_UTILITY.GET_TIME;<br />
    FOR i IN 1..ln_iteration_no<br />
    LOOP</p>
<p>        proc_split_pls_integer(ln_temp,strings);</p>
<p>    END LOOP;<br />
    ln_time3 := DBMS_UTILITY.GET_TIME;<br />
    FOR i IN 1..ln_iteration_no<br />
    LOOP</p>
<p>        proc_split_number(ln_temp,strings);</p>
<p>    END LOOP;<br />
    ln_time4 := DBMS_UTILITY.GET_TIME;</p>
<p>    DBMS_OUTPUT.PUT_LINE(&#8216;Total Duration of proc_split_simple_integer procedure is : &#8216;||((ln_time2-ln_time1)/100)|| </p>
<p>&#8216; seconds.&#8217;);<br />
    DBMS_OUTPUT.PUT_LINE(&#8216;Total Duration of proc_split_pls_integer procedure is : &#8216;||((ln_time3-ln_time2)/100)|| &#8216; </p>
<p>seconds.&#8217;);<br />
    DBMS_OUTPUT.PUT_LINE(&#8216;Total Duration of proc_split_number procedure is : &#8216;||((ln_time4-ln_time3)/100)|| &#8216; </p>
<p>seconds.&#8217;);</p>
<p>END;</p>
</div>
<p>results :</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
<p>Total Duration of proc_split_simple_integer procedure is : 16,7 seconds.<br />
Total Duration of proc_split_pls_integer procedure is : 18,6 seconds.<br />
Total Duration of proc_split_number procedure is : 33,19 seconds.</p>
</div>
<p>In this example, SIMPLE_INTEGER data type is faster twice time than NUMBER data type.</p>
<p>If you do not use the native compilation method, you could see much time of previous results. Notice that as specified in document, if you do not use native compilation, procedure that uses simple_integer variable takes much time of pls_integer. </p>
<p>Interpreted compilation results :</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
<p>Total Duration of proc_split_simple_integer procedure is : 29,1 seconds.<br />
Total Duration of proc_split_pls_integer procedure is : 27,24 seconds.<br />
Total Duration of proc_split_number procedure is : 46,42 seconds.</p>
</div>
<p>SIMPLE_INTEGER slower than PLS_INTEGER when you are not using NATIVE compilation method.</p>
<p>To get more information about NATIVE and INTERPRETED compilation, <a href="http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10472/tuning.htm#LNPLS911">here</a>.</p>
<br />Posted in Oracle, Performance Tuning  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sungur.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sungur.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sungur.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sungur.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sungur.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sungur.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sungur.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sungur.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sungur.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sungur.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sungur.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sungur.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sungur.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sungur.wordpress.com/101/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sungur.wordpress.com&amp;blog=6780870&amp;post=101&amp;subd=sungur&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sungur.wordpress.com/2009/12/10/simple_integer-as-performance-booster-comparing-simple_integer-pls_integer-number-data-types/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9a5c600f86aebe640ef492602a8358e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Sungur</media:title>
		</media:content>
	</item>
		<item>
		<title>Automatically Backuping Apex Applications</title>
		<link>http://sungur.wordpress.com/2009/10/31/automatically-backuping-apex-applications/</link>
		<comments>http://sungur.wordpress.com/2009/10/31/automatically-backuping-apex-applications/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 10:45:38 +0000</pubDate>
		<dc:creator>Ahmet Fuat Sungur</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Application Express]]></category>
		<category><![CDATA[backup apex]]></category>
		<category><![CDATA[apex]]></category>
		<category><![CDATA[export apex]]></category>
		<category><![CDATA[plsql]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[apex backup]]></category>
		<category><![CDATA[application express backup]]></category>
		<category><![CDATA[automatically backuping application express]]></category>

		<guid isPermaLink="false">http://sungur.wordpress.com/?p=97</guid>
		<description><![CDATA[Automatically Backuping Apex Applications We can export our apex applications as an sql file in &#8220;Home&#62;Application Builder&#62;Application $ID&#62;Export / Import&#62;Export&#8221; menu. You can do this as manually, so if you want to backup your apex application(s) you should do this for each time for each application. As you guess this operation runs a plsql command [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sungur.wordpress.com&amp;blog=6780870&amp;post=97&amp;subd=sungur&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Automatically Backuping Apex Applications </p>
<p>We can export our apex applications as an sql file in &#8220;Home&gt;Application Builder&gt;Application $ID&gt;Export / Import&gt;Export&#8221; menu. You can do this as manually, so if you want to backup your apex application(s) you should do this for each time for each application.</p>
<p>As you guess this operation runs a plsql command in background to export application. </p>
<p>&#8220;wwv_flow_utilities&#8221; public package of apex, includes &#8220;export_application_to_clob&#8221; function that returns clob variable that containts sql statements. These sql statements those are application metadata that will be imported your workspace. Spec part of function is below :</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
<p>function export_application_to_clob (<br />
   p_application_id   in number,<br />
   p_export_saved_reports in varchar2 default &#8216;N&#8217;)<br />
   return clob<br />
   ;</p>
</div>
<p>Application ID is a number that user specified or automatically got from apex. That is on right of f?p= parameter of url string. You should specify application id to export application. Another parameter is p_export_saved_reports is optional, if you want to export saved report you can set this as &#8216;Y&#8217;.</p>
<p>You can write a dbms_scheduler job that runs this plsql for every specified interval time. Or you can write a unix shell script that produces an sql file, put this shell script to crontab to run this backup operations for every specified interval time. Or anything else&#8230;</p>
<p>Also you can export only a page of an application, this function is under wwv_flow_utilities package too, spec part of this :</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
<p>function export_page_to_clob (<br />
   p_application_id   in number,<br />
   p_page_id          in number)<br />
   return CLOB<br />
   ;</p>
</div>
<p>Example :</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
<p>CREATE TABLE EXPORT_CLOB<br />
(<br />
    APP_EXPORT CLOB<br />
);</p>
<p>BEGIN</p>
<p>INSERT INTO EXPORT_CLOB<br />
VALUES (WWV_FLOW_UTILITIES.EXPORT_APPLICATION_TO_CLOB(&#8217;107&#8242;));</p>
<p>END;</p>
<p>SELECT length(app_export) FROM EXPORT_CLOB;</p>
<p>954956</p>
</div>
<p>To backup your all of applications you can get application id from &#8220;select * from apex_applications&#8221;.</p>
<p>This example was tested on Oracle 11.1.0.6 and Apex 3.2.</p>
<br />Posted in Application Express, Oracle Tagged: apex, apex backup, application express backup, automatically backuping application express, backup apex, export apex, plsql, sql <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sungur.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sungur.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sungur.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sungur.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sungur.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sungur.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sungur.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sungur.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sungur.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sungur.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sungur.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sungur.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sungur.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sungur.wordpress.com/97/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sungur.wordpress.com&amp;blog=6780870&amp;post=97&amp;subd=sungur&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sungur.wordpress.com/2009/10/31/automatically-backuping-apex-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9a5c600f86aebe640ef492602a8358e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Sungur</media:title>
		</media:content>
	</item>
		<item>
		<title>Apex Interactive Reports with Dynamic Sql</title>
		<link>http://sungur.wordpress.com/2009/10/11/apex-interactive-reports-with-dynamic-sql/</link>
		<comments>http://sungur.wordpress.com/2009/10/11/apex-interactive-reports-with-dynamic-sql/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 10:41:06 +0000</pubDate>
		<dc:creator>Ahmet Fuat Sungur</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Application Express]]></category>

		<guid isPermaLink="false">http://sungur.wordpress.com/?p=91</guid>
		<description><![CDATA[Interactive Reports in Apex, presents too many features that will be performed on reports. You can apply specified column filtering, highlighted specified values in a column, use aggregation functions, ajax paginations are some of these features. To use these features you can create a report region as Interactive report ( In a page attributes, Create [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sungur.wordpress.com&amp;blog=6780870&amp;post=91&amp;subd=sungur&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Interactive Reports in Apex, presents too many features that will be performed on reports. You can apply specified column filtering, highlighted specified values in a column, use aggregation functions, ajax paginations are some of these features. To use these features you can create a report region as Interactive report ( In a page attributes, Create Region &gt; Report &gt; Interactive Report ).</p>
<p>While creating Interactive Reports, apex wants from you an sql word. It must be pure sql unlike varchar2 variable that stores sql ( in standart reports you can use a varchar2 variable that stores sql. For example lv_dynamic_sql := &#8216;SELECT EMP_NO FROM EMPLOYEE&#8217;; return lv_dynamic_sql; ). So in normally you can&#8217;t use dynamic sql in interactive report. I said &#8220;in normally&#8221; <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>By using PIPELINED FUNCTIONS you can use dynamic sql in Apex Interactive Reports. </p>
<p>In Interactive Reports, you will specify sql as &#8220;SELECT * FROM TABLE(table_function);&#8221;</p>
<p>After that you should design your &#8220;table_function()&#8221; function.</p>
<p>First of all you should create an object type that matches a report row fields.</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
CREATE OR REPLACE TYPE OBJ_STREAM_FILTERED AS OBJECT<br />
(<br />
  a_rowid             VARCHAR2(100),<br />
  ActivationType      VARCHAR2(100),<br />
  ActivationCellCgi   VARCHAR2(100),<br />
  TerminationCellCgi  VARCHAR2(100),<br />
  IMSI                VARCHAR2(100),<br />
  IMEI_TAC            VARCHAR2(100),<br />
  IMEI_LAC            VARCHAR2(100),<br />
  ActivationSec       VARCHAR2(100),<br />
  OriginationCellCgi  VARCHAR2(100),<br />
  TargetCellCgi       VARCHAR2(100),<br />
  ENQ_DATE            DATE,<br />
  INSERT_DATE         DATE,<br />
  REMOTE_HOST         VARCHAR2(100),<br />
  IMEI                VARCHAR2(100),<br />
  MSISDN_NUMBER       VARCHAR2(100),<br />
  GENERAL_SEGMENT     VARCHAR2(100),<br />
  GENERAL_SUB_SEGMENT VARCHAR2(100)<br />
)<br />
/
</div>
<p>Your report fields should match these object type fields.</p>
<p>After that you should design your &#8220;table_function&#8221; function.</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
CREATE OR REPLACE FUNCTION AQ_ADM_PRTP_V204.get_table_rows2(p_table_name VARCHAR2)<br />
  RETURN OBJ_STREAM_FILTERED_ARR<br />
  PIPELINED IS<br />
  out_rec OBJ_STREAM_FILTERED := OBJ_STREAM_FILTERED(NULL,<br />
                                                     null,<br />
                                                     NULL,<br />
                                                     NULL,<br />
                                                     null,<br />
                                                     null,<br />
                                                     null,<br />
                                                     null,<br />
                                                     null,<br />
                                                     null,<br />
                                                     null,<br />
                                                     null,<br />
                                                     null,<br />
                                                     NULL,<br />
                                                     NULL,<br />
                                                     NULL,<br />
                                                     NULL);<br />
  p       sys_refcursor;</p>
<p>  v0  VARCHAR2(100);<br />
  v1  VARCHAR2(100);<br />
  v2  VARCHAR2(100);<br />
  v3  VARCHAR2(100);<br />
  v4  VARCHAR2(100);<br />
  v5  VARCHAR2(100);<br />
  v6  VARCHAR2(100);<br />
  v7  VARCHAR2(100);<br />
  v8  VARCHAR2(100);<br />
  v9  VARCHAR2(100);<br />
  v10 VARCHAR2(100);<br />
  v11 VARCHAR2(100);<br />
  v12 VARCHAR2(100);<br />
  v13 VARCHAR2(100);<br />
  v14 VARCHAR2(100);<br />
  v15 VARCHAR2(100);<br />
  v16 VARCHAR2(100);<br />
  t1  TIMESTAMP(6);<br />
  t2  TIMESTAMP(6);<br />
BEGIN<br />
  OPEN p FOR &#8216;SELECT<br />
  t.rowid,<br />
  t.*,<br />
  t2.imei,<br />
  t2.msisdn_number,<br />
  t2.general_Segment,<br />
  t2.general_sub_segment<br />
  FROM<br />
  &#8216; || p_table_name || &#8216; t,<br />
  syn_rds_imsi_info t2<br />
  WHERE<br />
  CONCAT(CONCAT(column15,column16),column17) = t2.IMSI(+)&#8217;;<br />
  LOOP<br />
    FETCH p<br />
      INTO v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, t1, t2, v12, v13, v14, v15, v16;<br />
    EXIT WHEN p%NOTFOUND;<br />
    out_rec.a_rowid             := v0;<br />
    out_rec.ActivationType      := v1;<br />
    Out_rec.ActivationCellCgi   := v2;<br />
    out_rec.TerminationCellCgi  := v3;<br />
    out_rec.IMSI                := v4 || v5 || v6;<br />
    out_rec.IMEI_TAC            := v7;<br />
    out_rec.IMEI_LAC            := v8;<br />
    out_rec.OriginationCellCgi  := v10;<br />
    out_rec.TargetCellCgi       := v11;<br />
    out_rec.ActivationSec       := v9;<br />
    out_rec.ENQ_DATE            := t1;<br />
    out_rec.INSERT_DATE         := t2;<br />
    out_rec.REMOTE_HOST         := v12;<br />
    out_rec.IMEI                := v13;<br />
    out_rec.MSISDN_NUMBER       := v14;<br />
    out_rec.GENERAL_SEGMENT     := v15;<br />
    out_rec.GENERAL_SUB_SEGMENT := v16;<br />
    PIPE ROW(out_rec);<br />
  END LOOP;<br />
  CLOSE p;<br />
  RETURN;<br />
EXCEPTION<br />
  WHEN OTHERS THEN<br />
    DBMS_OUTPUT.PUT_LINE(DBMS_UTILITY.format_error_backtrace);<br />
    DBMS_OUTPUT.PUT_LINE(SQLCODE);<br />
    DBMS_OUTPUT.PUT_LINE(SQLERRM);<br />
END;<br />
/</p>
</div>
<p>You can check this function accuracy:</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
SELECT * FROM TABLE(get_table_rows2(&#8216;galata_report.FUAT123&#8242;));
</div>
<p>Anymore, there is no need to do anything to use this sql in interactive report. </p>
<p>If you get an uniquely related error you can specify a unique column ( a_rowid in this example ) in Report Attributes &gt; Link Column section.</p>
<p>Edited on 05.10.2010 :<br />
There is a better solution to handle more dynamic sql. Which means that you can prepare dynamic interactive report for any sql. Those sqls do not need to has same number of columns or same column names. It is demonstrated at http://www.oracleapplicationexpress.com/tutorials/71 .</p>
<br />Posted in Application Express, Oracle  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sungur.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sungur.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sungur.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sungur.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sungur.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sungur.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sungur.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sungur.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sungur.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sungur.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sungur.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sungur.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sungur.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sungur.wordpress.com/91/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sungur.wordpress.com&amp;blog=6780870&amp;post=91&amp;subd=sungur&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sungur.wordpress.com/2009/10/11/apex-interactive-reports-with-dynamic-sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9a5c600f86aebe640ef492602a8358e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Sungur</media:title>
		</media:content>
	</item>
		<item>
		<title>Solution of &#8220;ORA-25307: Enqueue rate too high&#8221;</title>
		<link>http://sungur.wordpress.com/2009/08/29/solution-of-ora-25307-enqueue-rate-too-high/</link>
		<comments>http://sungur.wordpress.com/2009/08/29/solution-of-ora-25307-enqueue-rate-too-high/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 07:04:54 +0000</pubDate>
		<dc:creator>Ahmet Fuat Sungur</dc:creator>
				<category><![CDATA[Advanced Queue]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://sungur.wordpress.com/?p=87</guid>
		<description><![CDATA[One of the method of to speed up the performance of Oracle Advanced Queue is using Buffered Messages. In default, maxiumum 5000 non-dequeued messages can reside in memory. If you enqueued more than 5000 messages that have not dequeued yet, you will get an error like : &#8220;ORA-25307: Enqueue rate too high&#8221;. So, your messages [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sungur.wordpress.com&amp;blog=6780870&amp;post=87&amp;subd=sungur&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>One of the method of to speed up the performance of Oracle Advanced Queue is using Buffered Messages. In default, maxiumum 5000 non-dequeued messages can reside in memory. If you enqueued more than 5000 messages that have not dequeued yet, you will get an error like : &#8220;ORA-25307: Enqueue rate too high&#8221;. So, your messages will be written to disk.</p>
<p>Oracle uses this error to prevent memory overflow when you are enqueuing messages. You can increase this number by setting a system parameter.</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
SQL&gt; alter system set &#8220;_buffered_publisher_flow_control_threshold&#8221;=500000 scope=both;    </p>
<p>System altered</p>
<p>SQL&gt; show parameter buffered;</p>
<p>NAME                                 TYPE        VALUE<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
_buffered_publisher_flow_control_threshold integer 500000</p>
<p>SQL&gt;
</p></div>
<p>After that, you can observe how many messages were spilled to the disk:</p>
<div class="plsql" style="font-family:Courier New;color:#006;background-color:#f0f0f0;border:1px dotted;font-size:12px;white-space:normal;">
SQL&gt; select queue_name,subscriber_name,total_spilled_msg<br />
  2  from<br />
  3  v$buffered_subscribers<br />
  4  ;</p>
<p>QUEUE_NAME                     SUBSCRIBER_NAME                TOTAL_SPILLED_MSG<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
NLIZT01_STREAM_Q               NLIZT01                                        0<br />
NLCR01_STREAM_Q                NLCR01                                         0<br />
NLER01_STREAM_Q                NLER01                                         0<br />
NLER03_STREAM_Q                NLER03                                         0<br />
NLER02_STREAM_Q                NLER02                                         0<br />
NLCR03_STREAM_Q                NLCR03                                         0<br />
NLCR02_STREAM_Q                NLCR02                                         0<br />
NLIZT03_STREAM_Q               NLIZT03                                        0<br />
NLIZT02_STREAM_Q               NLIZT02                                        0<br />
NLBRS03_STREAM_Q               NLBRS03                                        0<br />
NLBRS02_STREAM_Q               NLBRS02                                        0<br />
NLBRS01_STREAM_Q               NLBRS01                                        0<br />
NLBLK03_STREAM_Q               NLBLK03                                        0<br />
NLBLK02_STREAM_Q               NLBLK02                                        0<br />
NLBLK01_STREAM_Q               NLBLK01                                        0</p>
<p>15 rows selected</p>
<p>SQL&gt;
</p></div>
<p>If you use dbms_capture package, you can use :<br />
alter system set &#8220;_capture_publisher_flow_control_threshold&#8221;=500000 scope=both;  </p>
<br />Posted in Advanced Queue, Oracle  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sungur.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sungur.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sungur.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sungur.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sungur.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sungur.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sungur.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sungur.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sungur.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sungur.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sungur.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sungur.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sungur.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sungur.wordpress.com/87/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sungur.wordpress.com&amp;blog=6780870&amp;post=87&amp;subd=sungur&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sungur.wordpress.com/2009/08/29/solution-of-ora-25307-enqueue-rate-too-high/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e9a5c600f86aebe640ef492602a8358e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Sungur</media:title>
		</media:content>
	</item>
	</channel>
</rss>
