<?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/"
	>

<channel>
	<title>Seraph Consulting</title>
	<atom:link href="http://seraph-consulting.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://seraph-consulting.com</link>
	<description>Professional IT Services</description>
	<lastBuildDate>Thu, 24 Mar 2011 23:45:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Oracle&#8217;s 32 Character Limit in Generating Histograms</title>
		<link>http://seraph-consulting.com/oracles-32-character-limit-in-generating-histograms/</link>
		<comments>http://seraph-consulting.com/oracles-32-character-limit-in-generating-histograms/#comments</comments>
		<pubDate>Thu, 14 Oct 2010 22:34:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[11g]]></category>
		<category><![CDATA[11g Release 1]]></category>
		<category><![CDATA[11g Release 2]]></category>
		<category><![CDATA[Adaptive Cursor Sharing]]></category>
		<category><![CDATA[histogram]]></category>
		<category><![CDATA[SQL Plan Management]]></category>

		<guid isPermaLink="false">http://seraph-consulting.com/?p=325</guid>
		<description><![CDATA[Upon Oracle&#8217;s release of 11g and noticeably with 11g Release 2, Oracle&#8217;s functionality is pretty rock solid. What I considered the most obvious weaknesses of the Oracle database engine are now resolved. Namely, bind peaking is resolved with Adaptive Cursor Sharing, and plan stability issues are resolved with SQL Plan Management. One weakness still remaining [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-252" href="http://seraph-consulting.com/about/2-revision-55/"><img class="size-full wp-image-252 alignnone" title="oracle" src="http://www.bwong64.com/wp-content/uploads/2010/04/oracle.gif" alt="" width="133" height="18" /></a></p>
<p>Upon Oracle&#8217;s release of 11g and noticeably with 11g Release 2, Oracle&#8217;s functionality is pretty rock solid.  What I considered the most obvious weaknesses of the Oracle database engine are now resolved.  Namely, bind peaking is resolved with Adaptive Cursor Sharing, and plan stability issues are resolved with SQL Plan Management.</p>
<p>One weakness still remaining with 11g Release 2(11.2.0.1.0) is the 32 character limit in generating histograms for wide character columns.  In a nutshell, if you have a column that is wider than 32 characters AND its values are longer than 32 characters, Oracle will only consider the first 32 characters in the column in generating histograms.  <span id="more-325"></span>In other words, if the first 32 characters don&#8217;t vary much in all the rows or it&#8217;s identical in all rows, then the histograms generated or the absence of them can be way off.  As a consequence, the optimizer will make wrong decisions, doing range scans when it shouldn&#8217;t, thinking that more rows will match the criteria than there should be.</p>
<p>But this really should be considered a limitation, not a bug.  It is a limitation purposely put in place even at 11g Release 2.   And it is a reasonable limitation because it is virtually impossible for Oracle to maintain histograms for columns that can be infinitely wide(up to 4000 characters for varchar2 columns).  It&#8217;ll have to know how many distinct values there are and how many rows there are for each distinct value.  So inevitably, Oracle has to draw a line somewhere.</p>
<p>Here&#8217;s a more detailed post from Hemant:<br />
<a href="http://hemantoracledba.blogspot.com/2009/08/histograms-on-larger-columns.html" onclick="pageTracker._trackPageview('/outgoing/hemantoracledba.blogspot.com/2009/08/histograms-on-larger-columns.html?referer=');">http://hemantoracledba.blogspot.com/2009/08/histograms-on-larger-columns.html</a><br />
It&#8217;s a great read.  At the time of this writing, the blog tested the limitation as of 11g Release 1.   But I&#8217;ve tested the limitation with 11g Release 2, and it&#8217;s still present.</p>
<p>One workaround that worked for me is to set the column statistics of such a column manually, so that the number of distinct values and density based on the total number of rows in the table.  So:</p>
<p>num_distinct = number of rows<br />
density = 1 / number of rows</p>
<p>The following can be run manually if you wanna do it just once.<br />
dbms_stats.set_column_stats(<br />
&nbsp;&nbsp;&nbsp;&nbsp;ownname=&gt;&#8217;{schema}&#8217;,<br />
&nbsp;&nbsp;&nbsp;&nbsp;tabname=&gt;&#8217;{table}&#8217;,<br />
&nbsp;&nbsp;&nbsp;&nbsp;colname=&gt;&#8217;{column}&#8217;,<br />
&nbsp;&nbsp;&nbsp;&nbsp;distcnt=&gt;&#8217;{count}&#8217;,<br />
&nbsp;&nbsp;&nbsp;&nbsp;density=&gt;&#8217;{1/count}&#8217;<br />
);</p>
<p>The automatic statistic collection may overwrite these columns stats.  So to protect against that, on 10g&#8217;s Enterprise Manager, a &#8220;chain&#8221; can be created to contain the statistics collection procedure and the following procedure call immediately following.  This will ensure that every time statistics is collected, the columns stats are set.  On 11g, however, the automatic statistics collection is more integrated and hidden from us, so I would created so it&#8217;s better to schedule a repeating job to set them every n minutes.  The following procedure can be reused for other tables when you supply different values for the parameters.</p>
<p>create or replace procedure set_column_stats_for_wide_cols (piOwner in varchar2, piTableName in varchar2, piColumnName in varchar2) as<br />
&nbsp;&nbsp;&nbsp;&nbsp;vNumDistinct number := 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;vDensity     number := 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;vNumRows     number := 0;<br />
begin</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;select num_distinct, density<br />
&nbsp;&nbsp;&nbsp;&nbsp;into vNumDistinct, vDensity<br />
&nbsp;&nbsp;&nbsp;&nbsp;from dba_tab_col_statistics<br />
&nbsp;&nbsp;&nbsp;&nbsp;where owner     = piOwner<br />
&nbsp;&nbsp;&nbsp;&nbsp;and table_name  = piTableName<br />
&nbsp;&nbsp;&nbsp;&nbsp;and column_name = piColumnName;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;select num_rows<br />
&nbsp;&nbsp;&nbsp;&nbsp;into vNumRows<br />
&nbsp;&nbsp;&nbsp;&nbsp;from dba_tables<br />
&nbsp;&nbsp;&nbsp;&nbsp;where owner    = piOwner<br />
&nbsp;&nbsp;&nbsp;&nbsp;and table_name = piTableName;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;if vNumDistinct != vNumRows OR vDensity != 1/vNumRows then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbms_stats.set_column_stats(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ownname=&gt;piOwner,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tabname=&gt;piTableName,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;colname=&gt;picolumnName,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;distcnt=&gt;vNumRows,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;density=&gt;1/vNumRows<br />
&nbsp;&nbsp;&nbsp;&nbsp;);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;end if;</p>
<p>end;<br />
/</p>
<p>That&#8217;ll indicate to Oracle that each value in the column is unique.  And it&#8217;ll know not to range scan the column.</p>
<p>Don&#8217;t expect this limitation to go away for future versions of Oracle.  This is particularly true if the histograms are generated after the data is populated.  And even if Oracle tries to maintain such stats instantly as data comes in, this will dramatically upset concurrency and scalability.  One wilder idea may be to export the column out to an open source relational database or noSQL database, and use methods such as Map/Reduce to determine the number of distinct values.  And then set the column stats in Oracle based on it.  Not that Oracle cannot do Map/Reduce, doing it in Oracle may compromise other mission critical operations.</p>
]]></content:encoded>
			<wfw:commentRss>http://seraph-consulting.com/oracles-32-character-limit-in-generating-histograms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>dbms_stats.gather_fixed_objects_stats() fails</title>
		<link>http://seraph-consulting.com/dbms_stats-gather_fixed_objects_stats-fails/</link>
		<comments>http://seraph-consulting.com/dbms_stats-gather_fixed_objects_stats-fails/#comments</comments>
		<pubDate>Thu, 27 May 2010 20:30:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[11g]]></category>
		<category><![CDATA[11g Release 2]]></category>
		<category><![CDATA[Data Guard]]></category>
		<category><![CDATA[dbms_stats]]></category>
		<category><![CDATA[Statistics]]></category>

		<guid isPermaLink="false">http://seraph-consulting.com/?p=315</guid>
		<description><![CDATA[dbms_stats.gather_fixed_objects_stats() fails on 11g Release 2(11.2.0.1.0). The bug is witnessed on Standard Edition databases, but should also apply to Enterprise Edition software, per my speculation. Upon issuing the command, an error is returned: SQL*Plus: Release 11.2.0.1.0 Production on Wed May 12 16:49:23 2010 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://seraph-consulting.com/wp-content/uploads/2010/04/oracle.gif"><img class="alignnone size-full wp-image-298" title="oracle" src="http://seraph-consulting.com/wp-content/uploads/2010/04/oracle.gif" alt="" width="133" height="18" /></a></p>
<p>dbms_stats.gather_fixed_objects_stats() fails on 11g Release 2(11.2.0.1.0). The bug is witnessed on Standard Edition databases, but should also apply to Enterprise Edition software, per my speculation.</p>
<p>Upon issuing the command, an error is returned:</p>
<p>SQL*Plus: Release 11.2.0.1.0 Production on Wed May 12 16:49:23 2010</p>
<p>Copyright (c) 1982, 2009, Oracle. All rights reserved.</p>
<p>Connected to:<br />
Oracle Database 11g Release 11.2.0.1.0 &#8211; 64bit Production</p>
<p>SQL&gt; exec dbms_stats.gather_fixed_objects_stats;<br />
BEGIN dbms_stats.gather_fixed_objects_stats; END;</p>
<p>*<br />
ERROR at line 1:<br />
ORA-20011: Approximate NDV failed: ORA-00439: feature not enabled: Data Guard<br />
Broker<br />
ORA-06512: at &#8220;SYS.DBMS_STATS&#8221;, line 20508<br />
ORA-06512: at &#8220;SYS.DBMS_STATS&#8221;, line 20951<br />
ORA-06512: at &#8220;SYS.DBMS_STATS&#8221;, line 21498<br />
ORA-06512: at line 1</p>
<p>These bugs are involved:<br />
Bug 9180311: GETTING ORA-20011 AND ORA-439 EXECUTING GATHER_FIXED_OBJECTS_STATS<br />
Bug 9056912: GATHERING STATISTICS ON EXTERNAL TABLES REQUIRES NULL FOR ESTIMATE_PERCENT</p>
<p>Patch 9056912 is available for our platform(x86-64). And once applied, the problem is fixed. Note that there are post installation tasks to be carried out.</p>
]]></content:encoded>
			<wfw:commentRss>http://seraph-consulting.com/dbms_stats-gather_fixed_objects_stats-fails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to live with the Standard Edition of Oracle</title>
		<link>http://seraph-consulting.com/how-to-live-with-the-standard-edition-of-oracle/</link>
		<comments>http://seraph-consulting.com/how-to-live-with-the-standard-edition-of-oracle/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 20:54:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[10g]]></category>
		<category><![CDATA[11g]]></category>
		<category><![CDATA[Best practise]]></category>
		<category><![CDATA[Discipline]]></category>
		<category><![CDATA[Limitations]]></category>
		<category><![CDATA[Scalability]]></category>
		<category><![CDATA[Standard Edition]]></category>

		<guid isPermaLink="false">http://seraph-consulting.com/?p=297</guid>
		<description><![CDATA[With the advent of open source relational database platforms, many organizations must be looking at Oracle Enterprise Edition(EE) pricing as outrageous. Not to mention the drying up of budgets in this economy. You can&#8217;t do anything for the sunk cost of the existing EE licenses. However, even for new purchases, switching to an entirely different [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://seraph-consulting.com/wp-content/uploads/2010/04/oracle.gif"><img class="alignnone size-full wp-image-298" title="oracle" src="http://seraph-consulting.com/wp-content/uploads/2010/04/oracle.gif" alt="" width="133" height="18" /></a></p>
<p>With the advent of open source relational database platforms, many organizations must be looking at Oracle Enterprise Edition(EE) pricing as outrageous.  Not to mention the drying up of budgets in this economy.  You can&#8217;t do anything for the sunk cost of the existing EE licenses.  However, even for new purchases, switching to an entirely different database platform can be impractical.  Some companies make compromises and go with Standard Edition, or for single-node installations, Standard Edition ONE.</p>
<p><span id="more-297"></span>Here are a few considerations to be taken when choosing to use Standard Edition:</p>
<p>1. Release Management. Strict release procedures should be in place.  Database changes should not be released to a production environment running Standard Edition without shutting down the application first.  This is particularly true for applications that have a lot of data.  The limitations of Standard Edition such as the inability to build index online makes releasing schema changes on-the-fly very difficult.<br />
2. Application Testing. The database should best be running only a few key, well-tested applications, rather than a big assortment of different applications.  The lack of Database Resource Manager in SE means that applications are left to consume resources(cpu cycles, etc) freely.  A big assortment of different applications particularly those firing ad-hoc or dynamically composed SQL statements is prone to give you grief.<br />
3. Datawarehouses most likely shouldn&#8217;t be hosted on an SE database due to the lack of bitmap indexes on SE.<br />
4. Applications that have a lot of data also are not good candidates to run on SE.  SE&#8217;s lack of multi-channel RMAN backup makes RMAN backups very time consuming for big databases.  You can consider other ways of backing up big databases, such as using SAN snapshots.  However, RMAN is an essential part of the Oracle backup strategy.  So this comes down to hosting only small datasets on SE.  How small should it be?  Roughly the databases would best be less 300GB.  Otherwise, RMAN full backups will take a long long time.<br />
5. Transportable Tablespaces is not available with SE.  So as you sync production data to a development database, you&#8217;ll have to rely on other utilities such as data pump export/import or the legacy export/import.  Those utilities take a long time to dump out and import data.<br />
6. Parallel Operations. All parallel operations are disabled on SE.  This applies to parallel query, parallel index creation, parallel data pump export/import, etc, etc.<br />
7. Virtual Private Database(VPD) / Fine Grained Security are not available for SE.  This means it&#8217;s harder to allow a broader user base and use that feature to automatically make only a subset of data visible based on the users&#8217; credentials/profile.<br />
8. All Options are not available. Options are only available for EE only.  So no partitioning, active data guard, advanced compression, etc, etc.</p>
<p>In essence, anything that allows the database to scale is taken off on SE.  To be able to live with SE, you have to practice discipline, testing your applications thoroughly and making sure that SQL statements fired at the SE database are not resource-hogging surprises(this one may be tough to do).  Manage the release management procedures, shutdown the applications first, then apply database schema changes and build indexes.  Keep things simple and small.  Huge tables or indexes will definitely give you a lot of problems down the road for SE.</p>
<p>If you go with open source relational database platforms, those certainly have their own limitations.  Their pros and cons vary.  Some of their features are comparable to Oracle EE.  For example, Postgresql can do online index creation whereas Oracle SE cannot.  Some are even weaker than Oracle SE.  For example, MySQL cannot do a true hotbackup w/o blocking ongoing DMLs.</p>
<p>When a company can afford to purchase Enterprise Edition licenses, functionally it is really the best you can get.  But if it&#8217;s not feasible and you choose to stick with Oracle by using SE, then you&#8217;ll need to prepare to be strict on your procedures and don&#8217;t expect you&#8217;d have easy solutions when problems happen.  Tuning into that mindset would make using SE a lot easier.  You really get ONLY what you paid for.</p>
]]></content:encoded>
			<wfw:commentRss>http://seraph-consulting.com/how-to-live-with-the-standard-edition-of-oracle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle 11g Release 2 client for x86-64 has a new bug(9496209)</title>
		<link>http://seraph-consulting.com/oracle-11g-release-2-client-for-x86-64-has-bug-9496209/</link>
		<comments>http://seraph-consulting.com/oracle-11g-release-2-client-for-x86-64-has-bug-9496209/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 08:30:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[11.2.0.1.0]]></category>
		<category><![CDATA[11g Release 2]]></category>
		<category><![CDATA[C3P0]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[JDBC]]></category>
		<category><![CDATA[OCI]]></category>
		<category><![CDATA[ORA-24550]]></category>
		<category><![CDATA[Thick client]]></category>

		<guid isPermaLink="false">http://seraph-consulting.com/?p=291</guid>
		<description><![CDATA[Oracle 11g Release 2(11.2.0.1.0) client for x86-64 has a new bug(9496209). I was able to reproduce the issue after about 2-3 days of repeated execution. With a Java module that uses the thick client(OCI) to connect through JDBC and initializes a C3P0 connection pool, the module would intermittently crash. Here&#8217;s an example of how to [...]]]></description>
			<content:encoded><![CDATA[<p>Oracle 11g Release 2(11.2.0.1.0) client for x86-64 has a new bug(9496209).  I was able to reproduce the issue after about 2-3 days of repeated execution.</p>
<p>With a Java module that uses the thick client(OCI) to connect through JDBC and initializes a C3P0 connection pool, the module would intermittently crash.  Here&#8217;s an example of how to reproduce the problem.  Of course, you would need C3P0 libraries in your environment.</p>
<p><span id="more-291"></span>import java.sql.*;<br />
import com.mchange.v2.c3p0.*;</p>
<p>public class Reproduce {<br />
&nbsp;&nbsp;&nbsp;&nbsp;public static void main(String[] s)throws Exception {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class.forName(&#8220;oracle.jdbc.OracleDriver&#8221;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String url =&#8221;jdbc:oracle:oci:@shotspi&#8221;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ComboPooledDataSource source = new ComboPooledDataSource();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;java.util.Properties props = new java.util.Properties();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;props.setProperty(&#8220;oracle.jdbc.defaultNChar&#8221;, &#8220;true&#8221;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source.setProperties(props);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source.setDriverClass(&#8220;oracle.jdbc.OracleDriver&#8221;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source.setJdbcUrl(url);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source.setUser(&#8220;username&#8221;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source.setPassword(&#8220;password&#8221;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source.setAutoCommitOnClose(false);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source.setMaxConnectionAge(100);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source.setMaxIdleTimeExcessConnections(10);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source.setMaxPoolSize(10);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection conn = source.getConnection();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Statement stmt = conn.createStatement();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResultSet res= stmt.executeQuery(&#8220;select 1 from dual&#8221;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(res.next()) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(res.getString(1));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(Exception e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</p>
<p>#<br />
# A fatal error has been detected by the Java Runtime Environment:<br />
#<br />
# SIGSEGV (0xb) at pc=0x0000002b20ad9399, pid=30445, tid=1088649568<br />
#<br />
# JRE version: 6.0_18-b07<br />
# Java VM: Java HotSpot(TM) 64-Bit Server VM (16.0-b13 mixed mode linux-amd64 )<br />
# Problematic frame:<br />
# C [libclntsh.so.11.1+0x765399] sltskjadd+0xa1<br />
#<br />
# An error report file with more information is saved as:<br />
# &#8230;&#8230;&#8230;.hs_err_pid30445.log<br />
#<br />
# If you would like to submit a bug report, please visit:<br />
# http://java.sun.com/webapps/bugreport/crash.jsp<br />
# The crash happened outside the Java Virtual Machine in native code.<br />
# See problematic frame for where to report the bug.<br />
#<br />
ORA-24550: signal received: [si_signo=6] [si_errno=0] [si_code=-6] [si_int=-838819818] [si_ptr=0x101ce00a016] [si_addr=0x22e8000076ed]<br />
kpedbg_dmp_stack()+314&lt;-kpeDbgCrash()+166&lt;-kpeDbgSignalHandler()+158&lt;-skgesig_sigactionHandler()+217&lt;-0000002A95678430&lt;-gsignal()+61&lt;-0000002B1FA7F250&lt;-0000002B1FA7F250&lt;-0000002B1FA7F250&lt;-0000002B1FA7F250&lt;-0000002B1FA7F250&lt;-0000002B1FA7F250&lt;-0000002B1FA7F250&lt;-0000002B1FA7F250&lt;-0000002B1FA7F250&lt;-0000002B1FA7F250&lt;-0000002B1FA7F250&lt;-0000002B1FA7F250&lt;-0000002B1FA7F250&lt;-0000002B1FA7F250&lt;-0000002B1FA7F250&lt;-0000002B1FA7F250&lt;-0000002B1FA7F250&lt;-0000002B1FA7F250&lt;-0000002B1FA7F250<br />
./wrapper.sh: line 12: 30445 Killed /usr/java/jdk1.6-m64/bin/java -classpath &#8230;&#8230;../ojdbc6.jar:&#8230;&#8230;..c3p0-0.9.1.2.jar Reproduce</p>
<p>Bug 9496209 has been filed for this.  At the time of this writing, the bug is still progressing in the hands of Oracle&#8217;s Development.</p>
]]></content:encoded>
			<wfw:commentRss>http://seraph-consulting.com/oracle-11g-release-2-client-for-x86-64-has-bug-9496209/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Oracle Automatic Memory Management(AMM) is not compatible with Hugepages as of 11g Release 2</title>
		<link>http://seraph-consulting.com/oracle-automatic-memory-management-is-not-compatible-with-hugepages-as-of-11g-release-2/</link>
		<comments>http://seraph-consulting.com/oracle-automatic-memory-management-is-not-compatible-with-hugepages-as-of-11g-release-2/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 04:18:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[11g]]></category>
		<category><![CDATA[11g Release 2]]></category>
		<category><![CDATA[Automatic Memory Management]]></category>
		<category><![CDATA[Hugepages]]></category>

		<guid isPermaLink="false">http://seraph-consulting.com/?p=124</guid>
		<description><![CDATA[As of Oracle 11g Release 2, the Automatic Memory Management(AMM) feature is not compatible with hugepages. In a nutshell, Hugepages is a way to allow the operating system to reduce the amount of overhead operations needed to map between virtual memory addresses and physical memory addresses. With the default page size of 4KB for the [...]]]></description>
			<content:encoded><![CDATA[<p>As of Oracle 11g Release 2, the Automatic Memory Management(AMM) feature is not compatible with hugepages.</p>
<p>In a nutshell, Hugepages is a way to allow the operating system to reduce the amount of overhead operations needed to map between virtual memory addresses and physical memory addresses.  With the default page size of 4KB for the x86 architecture, the amount of mapping operations can be overwhelming when there is a large amount of physical memory in use.  With hugepages set, the amount of pages is dramatically reduced and hence the amount of mapping operations also reduced.</p>
<p><span id="more-124"></span>AMM was introduced in 11g Release 1 as a capability to shuffle memory between SGA and PGA.  When either memory pool is not fully utilized, its spare memory can be used by the other.  And this is managed by Oracle automatically.</p>
<p>It is well-known since 11g Release 1 that AMM is not compatible with Hugepages.  The effect is that for systems that have a lot of physical memory, you will need to choose between the following 2 options:</p>
<ol>
<li>Use Hugepages and give up using AMM.  This forces you to specify a setting for sga_target and pga_aggregate_target.  If the database needs more memory in either pools and there is free memory from the other pool, there&#8217;ll be no way for Oracle to automatically shuffle memory between the two.</li>
<li>Use AMM and give up using Hugepages.</li>
</ol>
<p>According to a Oracle Support Representative, due to the fact that Hugepages and AMM are so architecturally different, they will most likely not become compatible in the future releases of Oracle.</p>
]]></content:encoded>
			<wfw:commentRss>http://seraph-consulting.com/oracle-automatic-memory-management-is-not-compatible-with-hugepages-as-of-11g-release-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seraph Consulting Revamped China Unicom Americas&#8217; Website</title>
		<link>http://seraph-consulting.com/unicomamericas/</link>
		<comments>http://seraph-consulting.com/unicomamericas/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 07:40:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Beijing]]></category>
		<category><![CDATA[China Unicom]]></category>
		<category><![CDATA[China Unicom Americas]]></category>

		<guid isPermaLink="false">http:/?p=1</guid>
		<description><![CDATA[Seraph Consulting helped China Unicom Americas&#8217; revamp their website. The new website completely reshaped China Unicom Americas&#8217; publicity and received tremendous acceptance from the Headquarters in Beijing. Before After &#160; &#160; The design of the website allows China Unicom Americas&#8217; staff to maintain their contents easily, including news, events, and career opportunities. The website also [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://seraph-consulting.com/images/unicomamericas.gif" alt="" align="bottom" /></p>
<p>Seraph Consulting helped China Unicom Americas&#8217; revamp their website.  The new website completely reshaped China Unicom Americas&#8217; publicity and received tremendous acceptance from the Headquarters in Beijing.</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td><strong>Before</strong></td>
<td><strong>After</strong></td>
</tr>
<tr>
<td><a title="China Unicom Americas' old website" rel="lightbox[roadtrip]" href="/images/old_unicom.jpg"><img style="border: 1px solid silver;" src="http://seraph-consulting.com/images/old_unicom_tn.jpg" alt="" width="150" height="100" /></a></td>
<td><a title="China Unicom Americas' new website" rel="lightbox[roadtrip]" href="http://seraph-consulting.com/images/new_unicom.jpg"><img style="border: 1px solid silver;" src="/images/new_unicom_tn.jpg" alt="" width="150" height="100" /></a></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
<p><span id="more-1"></span><br />
The design of the website allows China Unicom Americas&#8217; staff to maintain their contents easily, including news, events, and career opportunities.  The website also serves as an excellent platform to present their products and services offerings.</p>
<p><a href="http://unicomamericas.com" onclick="pageTracker._trackPageview('/outgoing/unicomamericas.com?referer=');">Visit the new site now</a></p>
<p><span style="font-size: 24px;">SC</span></p>
]]></content:encoded>
			<wfw:commentRss>http://seraph-consulting.com/unicomamericas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
