<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Whitehorses Blog</title>
	
	<link>http://blog.whitehorses.nl</link>
	<description>Experienced SOA, BPM and Portal professionals - Oracle / Java - Lean thinking, Agile working</description>
	<lastBuildDate>Sat, 18 May 2013 10:26:10 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/whitehorses/blog-posts" /><feedburner:info uri="whitehorses/blog-posts" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>How to stick a sticky note</title>
		<link>http://feedproxy.google.com/~r/whitehorses/blog-posts/~3/UZBn_AumK0w/</link>
		<comments>http://blog.whitehorses.nl/2013/05/17/how-to-stick-a-sticky-note/#comments</comments>
		<pubDate>Fri, 17 May 2013 15:06:32 +0000</pubDate>
		<dc:creator>Martin Schapendonk</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[lowtech]]></category>
		<category><![CDATA[sticky notes]]></category>

		<guid isPermaLink="false">http://blog.whitehorses.nl/?p=3458</guid>
		<description><![CDATA[<p>While doing my work in a lean and agile way, I work with sticky notes quite often. When sticked to a wall or whiteboard, it is quite crucial that they do not move until I want them to. Unfortunately, it sometimes happens that the sticky notes fall down to the ground... What a disaster!</p>
]]></description>
				<content:encoded><![CDATA[<p></p><p>While doing my work in a lean and agile way, I work with sticky notes quite often. When sticked to a wall or whiteboard, it is quite crucial that they do not move until I want them to. Unfortunately, it sometimes happens that the sticky notes fall down to the ground&#8230; What a disaster!</p>
<p>Although the sticky note manufacturers are also selling Extra Fantastic Super sticky notes, these are not always available and they come at premium cost. There is an easier solution! Read on for a best practice to stick a sticky note to a wall without risking that it will fall down.</p>
<p>I hear you thinking: &#8220;Is this guy kidding me? I know how to stick a sticky note!&#8221;. Please, try it for yourself and judge me afterwards <img src='http://blog.whitehorses.nl/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><span id="more-3458"></span></p>
<h3>Prerequisites</h3>
<p>Grab some sticky notes!<br />
<a href="http://blog.whitehorses.nl/wp-content/uploads/2013/05/IMAG0609.jpg"><img class="size-medium wp-image-3467" alt="Sticky notes" src="http://blog.whitehorses.nl/wp-content/uploads/2013/05/IMAG0609-300x214.jpg" width="300" height="214" /></a></p>
<h3>The Wrong Way</h3>
<p>Take the sticky note at the bottom and move it upwards to remove it from the pad. See the photo, the blue line indicates where the adhesive is, and the red arrow is the direction to move the sticky note.<br />
<a href="http://blog.whitehorses.nl/wp-content/uploads/2013/05/IMAG0610.jpg"><img class="size-medium wp-image-3468" alt="From bottom to top" src="http://blog.whitehorses.nl/wp-content/uploads/2013/05/IMAG0610-300x234.jpg" width="300" height="234" /></a><br />
Now look at that note. It is curled where the adhesive is!<br />
<a href="http://blog.whitehorses.nl/wp-content/uploads/2013/05/IMAG0612.jpg"><img class="size-medium wp-image-3469" alt="Result from bottom to top" src="http://blog.whitehorses.nl/wp-content/uploads/2013/05/IMAG0612-300x198.jpg" width="300" height="198" /></a><br />
Stick it somewhere on the wall and prey it doesn&#8217;t fall off before you reach the end of this blog post.<br />
<a href="http://blog.whitehorses.nl/wp-content/uploads/2013/05/IMAG0613.jpg"><img class="size-medium wp-image-3470" alt="Sticked curly sticky note" src="http://blog.whitehorses.nl/wp-content/uploads/2013/05/IMAG0613-300x235.jpg" width="300" height="235" /></a></p>
<h3>The Right Way</h3>
<p>Now take another sticky note. Start at the left side of the pad and pull the note to the right. See the picture; the blue line indicates the adhesive again, and the red arrow is the direction to move the sticky note.<br />
<a href="http://blog.whitehorses.nl/wp-content/uploads/2013/05/IMAG0615.jpg"><img class="size-medium wp-image-3471" alt="From left to right" src="http://blog.whitehorses.nl/wp-content/uploads/2013/05/IMAG0615-300x222.jpg" width="300" height="222" /></a><br />
Look at the result again. It&#8217;s perfectly flat!<br />
<a href="http://blog.whitehorses.nl/wp-content/uploads/2013/05/IMAG0617.jpg"><img class="size-medium wp-image-3472" alt="Flat, not curled" src="http://blog.whitehorses.nl/wp-content/uploads/2013/05/IMAG0617-300x209.jpg" width="300" height="209" /></a><br />
Now stick it next to the curled note (if it&#8217;s still there of course). See the difference?<br />
<a href="http://blog.whitehorses.nl/wp-content/uploads/2013/05/IMAG0618.jpg"><img class="size-medium wp-image-3473" alt="The difference" src="http://blog.whitehorses.nl/wp-content/uploads/2013/05/IMAG0618-300x172.jpg" width="300" height="172" /></a></p>
<p>Remember this and your sticky notes will never, EVER, come off that wall again.</p>
<p>Happy sticking!</p>
<div class='wb_fb_comment'><br/></div><img src="http://feeds.feedburner.com/~r/whitehorses/blog-posts/~4/UZBn_AumK0w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.whitehorses.nl/2013/05/17/how-to-stick-a-sticky-note/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.whitehorses.nl/2013/05/17/how-to-stick-a-sticky-note/</feedburner:origLink></item>
		<item>
		<title>OSB, For-Each and the org.apache.xmlbeans.impl.values.XmlValueDisconnectedException exception</title>
		<link>http://feedproxy.google.com/~r/whitehorses/blog-posts/~3/PVhmqtZCbzk/</link>
		<comments>http://blog.whitehorses.nl/2013/05/16/osb-for-each-and-the-org-apache-xmlbeans-impl-values-xmlvaluedisconnectedexception-exception/#comments</comments>
		<pubDate>Thu, 16 May 2013 13:15:13 +0000</pubDate>
		<dc:creator>Laurens van der Starre</dc:creator>
				<category><![CDATA[Integration, SOA & BPM]]></category>
		<category><![CDATA[Oracle tools]]></category>
		<category><![CDATA[11g]]></category>
		<category><![CDATA[Oracle Fusion Middleware]]></category>
		<category><![CDATA[OSB]]></category>

		<guid isPermaLink="false">http://blog.whitehorses.nl/?p=3450</guid>
		<description><![CDATA[<p>At one of my clients a developer was hitting the following BEA-382000 error in a OSB proxy:</p>
<pre>org.apache.xmlbeans.impl.values.XmlValueDisconnectedException</pre>
<p><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">The exception occurred from within a For-Each operation within the proxy pipeline, in which a Service Callout was invoked multiple times and its output concatenated into the $body.</span></p>
]]></description>
				<content:encoded><![CDATA[<p></p><p>At one of my clients a developer was hitting the following BEA-382000 error in a OSB proxy:</p>
<pre class="brush: plain">org.apache.xmlbeans.impl.values.XmlValueDisconnectedException
                at org.apache.xmlbeans.impl.values.XmlObjectBase.check_orphaned(XmlObjectBase.java:1258)
                at org.apache.xmlbeans.impl.values.XmlObjectBase.newCursor(XmlObjectBase.java:286)
                at stages.transform.runtime.ForEachMessageContext.initVariableValue(ForEachMessageContext.java:80)
                at stages.transform.runtime.ForEachRuntimeStep.processMessage(ForEachRuntimeStep.java:95)
                at com.bea.wli.sb.pipeline.debug.DebuggerRuntimeStep.processMessage(DebuggerRuntimeStep.java:74)</pre>
<p>The exception occurred from within a For-Each operation within the proxy pipeline, in which a Service Callout was invoked multiple times and its output concatenated into the $body.</p>
<p>Fearing for a bug in Apache&#8217;s XMLBeans, I was relieved to find out that the cause was much more innocent: when using a For-Each operation in which a ServiceCallout is done, don&#8217;t manipulate the $body context variable. Use a (temporary) copy, and assign the results afterwards outside of the For-Each. Then you should be fine.</p>
<p>Happy coding!</p>
<p>&nbsp;</p>
<div class='wb_fb_comment'><br/></div><img src="http://feeds.feedburner.com/~r/whitehorses/blog-posts/~4/PVhmqtZCbzk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.whitehorses.nl/2013/05/16/osb-for-each-and-the-org-apache-xmlbeans-impl-values-xmlvaluedisconnectedexception-exception/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.whitehorses.nl/2013/05/16/osb-for-each-and-the-org-apache-xmlbeans-impl-values-xmlvaluedisconnectedexception-exception/</feedburner:origLink></item>
		<item>
		<title>“Unable to obtain metrics data from the server” after OSB upgrade</title>
		<link>http://feedproxy.google.com/~r/whitehorses/blog-posts/~3/pS4DD-z5CME/</link>
		<comments>http://blog.whitehorses.nl/2013/05/07/unable-to-obtain-metrics-data-from-the-server-after-osb-upgrade/#comments</comments>
		<pubDate>Tue, 07 May 2013 14:20:23 +0000</pubDate>
		<dc:creator>Laurens van der Starre</dc:creator>
				<category><![CDATA[Integration, SOA & BPM]]></category>
		<category><![CDATA[OSB]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[upgrade]]></category>
		<category><![CDATA[weblogic]]></category>

		<guid isPermaLink="false">http://blog.whitehorses.nl/?p=3440</guid>
		<description><![CDATA[<p>After a clustered OSB upgrade the "unable to obtain metrics data from the server" message always appears in the Monitoring dashboard of the OSB Console.</p>
]]></description>
				<content:encoded><![CDATA[<p></p><p>After a clustered OSB upgrade the &#8220;unable to obtain metrics data from the server&#8221; message always appears in the Monitoring dashboard of the OSB Console.</p>
<p style="text-align: center;"><a href="http://blog.whitehorses.nl/wp-content/uploads/2013/05/unable-to-obtain.png"><img class="aligncenter size-large wp-image-3441" alt="Unable to obtain metrics from the server" src="http://blog.whitehorses.nl/wp-content/uploads/2013/05/unable-to-obtain-540x178.png" width="540" height="178" /></a></p>
<p>This is annoying, and doesn&#8217;t really help using the metrics in the Monitoring Dashboard &#8230; <img src='http://blog.whitehorses.nl/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>For some reason the &#8220;ALSB Cluster Singleton Marker Application&#8221; and &#8220;ALSB Domain Singleton Marker Application&#8221; are targeted to the cluster after an upgrade. Simply (re-)target these singleton applications to the OSB <em>managed server</em> that is always  started as first managed server of the OSB cluster configuration.</p>
<div class='wb_fb_comment'><br/></div><img src="http://feeds.feedburner.com/~r/whitehorses/blog-posts/~4/pS4DD-z5CME" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.whitehorses.nl/2013/05/07/unable-to-obtain-metrics-data-from-the-server-after-osb-upgrade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.whitehorses.nl/2013/05/07/unable-to-obtain-metrics-data-from-the-server-after-osb-upgrade/</feedburner:origLink></item>
		<item>
		<title>Talking in Tongues – NLS with dbms_scheduler</title>
		<link>http://feedproxy.google.com/~r/whitehorses/blog-posts/~3/ljPQwhkQfrg/</link>
		<comments>http://blog.whitehorses.nl/2013/04/26/talking-in-tongues-nls-with-dbms_scheduler/#comments</comments>
		<pubDate>Fri, 26 Apr 2013 21:09:02 +0000</pubDate>
		<dc:creator>Tony van Esch</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Oracle platform]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[nls]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[scheduling]]></category>

		<guid isPermaLink="false">http://blog.whitehorses.nl/?p=3431</guid>
		<description><![CDATA[<p>I've implemented enterprise scheduling with dbms_scheduler at an international customer. All is working like a charm, until some jobs started 'talking' the local lingo (dutch).</p>
]]></description>
				<content:encoded><![CDATA[<p></p><p>I&#8217;ve implemented enterprise scheduling with dbms_scheduler at an international customer. All is working like a charm, until some jobs started &#8216;talking&#8217; the local lingo (dutch).</p>
<p>The simple answer is that a submitted scheduler job stores the NLS session settings along with the job definition when creating a scheduler job. To verify these settings for your jobs:</p>
<pre>select job_name, nls_env from all_scheduler_jobs;</pre>
<p>Unfortunately you cannot modify the NLS attributes of a scheduler job. The only way to change the NLS attributes, is to recreate the job with your session having the correct NLS attributes. That&#8217;s not what I wanted as it depends on people being aware of this issue.</p>
<p>The easy way to circumvent and fix this issue here, was to implement a schema logon trigger.</p>
<pre>create or replace
trigger SYSJCS_LOGON_NLS_TRG after logon on SYSJCS.schema
begin
dbms_session.set_nls(param =&gt; 'NLS_LANGUAGE',value =&gt; 'AMERICAN');
dbms_session.set_nls(param =&gt; 'NLS_DATE_FORMAT',value =&gt; '''DD-MM-YYYY HH24:MI:SS''');
end;</pre>
<p>&nbsp;</p>
<p>As all scheduler jobs are created in the SYSJCS schema, I only needed a logon trigger for SYSJCS. This way all SYSJCS jobs always have the one NLS setting we need without worrying about the NLS client configuration. All other schemas and users are unaffected.</p>
<p>&nbsp;</p>
<p>Regards,<br />
Tony</p>
<div class='wb_fb_comment'><br/></div><img src="http://feeds.feedburner.com/~r/whitehorses/blog-posts/~4/ljPQwhkQfrg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.whitehorses.nl/2013/04/26/talking-in-tongues-nls-with-dbms_scheduler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.whitehorses.nl/2013/04/26/talking-in-tongues-nls-with-dbms_scheduler/</feedburner:origLink></item>
		<item>
		<title>A small and clean WebLogic cold backup</title>
		<link>http://feedproxy.google.com/~r/whitehorses/blog-posts/~3/wODV0oL0U-Y/</link>
		<comments>http://blog.whitehorses.nl/2013/03/07/a-small-and-clean-weblogic-cold-backup/#comments</comments>
		<pubDate>Thu, 07 Mar 2013 10:50:13 +0000</pubDate>
		<dc:creator>Laurens van der Starre</dc:creator>
				<category><![CDATA[Integration, SOA & BPM]]></category>
		<category><![CDATA[11g]]></category>
		<category><![CDATA[Oracle Fusion Middleware]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[weblogic]]></category>

		<guid isPermaLink="false">http://blog.whitehorses.nl/?p=3413</guid>
		<description><![CDATA[<p>In one of my projects we have to be able to set up a (cold) backup Oracle Service Bus domain in a different data center from a domain backup. One of the requirements was that this data center is -for security reasons- completely independent of the "main" data center. In this particular case, just syncing the middleware home and domain directories wasn't an option. This post discusses a simple and clean solution.</p>
<p>&#160;</p>
]]></description>
				<content:encoded><![CDATA[<p></p><p>In one of my projects we have to be able to set up a (cold) backup Oracle Service Bus domain in a different data center from a domain backup. One of the requirements was that this data center is -for security reasons- completely independent of the &#8220;main&#8221; data center. In this particular case, just syncing the middleware home and domain directories wasn&#8217;t an option.</p>
<p>Fair enough, and not that difficult at all. Setting up this cold backup domain is just <a title="Pack &amp; Unpack commands" href="http://docs.oracle.com/cd/E21764_01/web.1111/e14144/tasks.htm#WLDPU136" target="_blank">using the pack &amp; unpack tools</a> from WebLogic, and &#8220;cloning&#8221; your domain. Keeping you cold backup domain up to date can be done by just syncing the configuration backups the &#8220;main&#8221; domain can automatically create for you:</p>
<p>&lt;YOUR DOMAIN&gt; -&gt; Configuration -&gt; General -&gt; Advanced.</p>
<p>&nbsp;</p>
<img class="size-large wp-image-3415" alt="Config Archive in WebLogic" src="http://blog.whitehorses.nl/wp-content/uploads/2013/03/config_backup-540x76.png" width="540" height="76" /> Config Archive in WebLogic
<p>&nbsp;</p>
<p>With this option enabled, every time an configuration change is activated in your domain, the complete config directory is JAR&#8217;ed, and stored in DOMAIN_HOME/configArchive. Getting the latest configuration state in your cold backup domain is just deleting the contents of the config directory and &#8220;un-tar&#8221; the config backup jar from your main domain in the config directory.</p>
<p>However, if you have set up your cold backup domain using pack and unpack, WebLogic&#8217;s &#8220;salt&#8221; and security configuration such as DefaultAuthenticatorInit.ldif and XACMLRoleMapperInit.ldif are automatically generated. This makes your config archives from your main domain incompatible with your backup domain. Not only isn&#8217;t WebLogic able to decrypt the encrypted passwords from the config.xml, the deployed applications in your domain aren&#8217;t allowed to run. Although your weblogic-user&#8217;s password is set up correctly, nice error messages such as</p>
<pre class="brush: bash">&lt;Critical&gt; &lt;WebLogicServer&gt; &lt;BEA-000386&gt; &lt;Server 
subsystem failed. Reason: weblogic.security.SecurityInitializationException: 
Authentication for user weblogic denied</pre>
<p>will fill the logs.</p>
<p>The solution is straightforward: when using the pack.sh tool, make sure that you add/inject the files DefaultAuthenticatorInit.ldif and XACMLRoleMapperInit.ldif from the DOMAIN_HOME/security directory into the created JAR file. For example:</p>
<pre class="brush: bash"># Pack
pack.sh -domain=&lt;YOUR DOMAIN HOME&gt; -template=./backup.jar -template_name=backupDomain

# Inject
jar ufv backup.jar &lt;YOUR DOMAIN HOME&gt;/security/DefaultAuthenticatorInit.ldift

jar ufv backup.jar &lt;YOUR DOMAIN HOME&gt;/security/XACMLRoleMapperInit.ldift</pre>
<p>Also, backup the &lt;YOUR DOMAIN HOME&gt;/security/SerializedSystemIni.dat from your main domain separately. This is the &#8220;salt / seed&#8221; of the encrypted passwords in your configuration.  Now, when using unpack to create your cold backup domain, the DefaultAuthenticatorInit.ldif and XACMLRoleMapperInit.ldif are already present. Copy the SerializedSystemIni.dat to your new domain in the security directory, and your cold backup domain should be compatible with your &#8220;main&#8221;-domain&#8217;s config archives.</p>
<p>Using this method my backups for the cold backup domain consists of of the packed domain, the latest configuration archive from the main domain, the SerializedSystemIni.dat, and some misc config files (such as the nodemanager.properties). Basically, I only have to make sure that the configuration archive is up to date in the backup. Nice, clean, small and simple. This backup allows me to quickly setup an new production domain in case of an emergency, using this backup and readily available OSB en WebLogic binaries and deployments from SVN.</p>
<div class='wb_fb_comment'><br/></div><img src="http://feeds.feedburner.com/~r/whitehorses/blog-posts/~4/wODV0oL0U-Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.whitehorses.nl/2013/03/07/a-small-and-clean-weblogic-cold-backup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.whitehorses.nl/2013/03/07/a-small-and-clean-weblogic-cold-backup/</feedburner:origLink></item>
		<item>
		<title>Monitoring Business Objects end user activity using Oracle Enterprise Manager</title>
		<link>http://feedproxy.google.com/~r/whitehorses/blog-posts/~3/A4hQHzpc_Yk/</link>
		<comments>http://blog.whitehorses.nl/2013/02/25/monitoring-business-objects-end-user-activity-using-oracle-enterprise-manager/#comments</comments>
		<pubDate>Mon, 25 Feb 2013 17:17:36 +0000</pubDate>
		<dc:creator>Maarten van Luijtelaar</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Oracle tools]]></category>
		<category><![CDATA[Business Objects]]></category>
		<category><![CDATA[Client Identifier]]></category>
		<category><![CDATA[Enterprise Manager]]></category>
		<category><![CDATA[grid control]]></category>
		<category><![CDATA[instrumentation]]></category>

		<guid isPermaLink="false">http://blog.whitehorses.nl/?p=3392</guid>
		<description><![CDATA[<p>Recently, one of our clients upgraded their Business Objects environment to version 4. Reports are run on datamarts in the datawarehouse, but there are also older reports running directly on operational databases. From an instrumentation perspective, we couldn't see what was going on exactly using the Oracle Enterprise Manager during the day. Especially, the question of which end user was doing what and how many resources a particular report in total would consume in the database was a real pain. Also an insight on if, and how much a particular report was used would be valuable information.</p>
]]></description>
				<content:encoded><![CDATA[<p></p><p>Recently, one of our clients upgraded their Business Objects environment to version 4. Reports are run on datamarts in the datawarehouse, but there are also older reports running directly on operational databases. These are subject to move to the dedicate datawarehouse environment eventually. From an <strong>instrumentation</strong> perspective, we couldn&#8217;t see what was going on exactly using the Oracle Enterprise Manager during the day. Especially, the question of which end user was doing what and how many resources a particular report in total would consume in the database was a real pain. Also an insight on if, and how much a particular report was used would be valuable information. The only thing we could see is the name of the originating BO machine, and the executable firing off the BI queries (WireportServer.exe)</p>
<p>So we tried to find a way to expose the current Business Objects universe, report- and end user name in the Oracle Database&#8217;s session information and came up with this solution:</p>
<p>Be sure the user you connect through has execute rights on DBMS_SESSION.<br />
In your Business Objects Universe Designer goto:<br />
Menu-&gt;Tools-&gt;Connection-&gt;Edit<br />
and add the following to the ConnectInit parameter:</p>
<pre>BEGIN
  DBMS_SESSION.SET_IDENTIFIER('@Variable('BOUSER')');  
  DBMS_APPLICATION_INFO.SET_CLIENT_INFO('@Variable('BOUSER')');  
  DBMS_APPLICATION_INFO.SET_MODULE('@Variable('UNVNAME')', '@Variable('DOCNAME')');
END;</pre>
<p><a href="http://blog.whitehorses.nl/wp-content/uploads/2013/02/ConnectInit-Screenshot.png"><img class="alignnone size-medium wp-image-3394" alt="ConnectInit Screenshot" src="http://blog.whitehorses.nl/wp-content/uploads/2013/02/ConnectInit-Screenshot-300x248.png" width="300" height="248" /></a></p>
<p>Above will set the client identifier, client info, module and action in the session info, ready for us to do some aggegration upon in Enterprise Manager:</p>
<p><a href="http://blog.whitehorses.nl/wp-content/uploads/2013/02/BO_instrumentation_1.png"><img class="alignnone size-medium wp-image-3395" alt="BO_instrumentation_1" src="http://blog.whitehorses.nl/wp-content/uploads/2013/02/BO_instrumentation_1-300x238.png" width="300" height="238" /></a><br />
As you can see in the above screenshot, you can view the actions (report names) per module(BO universe) and enable aggegration. This wil save statistics on a particular module/action to be viewed in detail:</p>
<p><a href="http://blog.whitehorses.nl/wp-content/uploads/2013/02/BO_instrumentation_2.png"><img class="alignnone size-medium wp-image-3397" alt="BO_instrumentation_2" src="http://blog.whitehorses.nl/wp-content/uploads/2013/02/BO_instrumentation_2-300x230.png" width="300" height="230" /></a></p>
<p>If you need to find out what a specific user is executing, simply view the session information filtering on client identifier:</p>
<p><a href="http://blog.whitehorses.nl/wp-content/uploads/2013/02/BO_instrumentation_3.png"><img class="alignnone size-medium wp-image-3398" alt="BO_instrumentation_3" src="http://blog.whitehorses.nl/wp-content/uploads/2013/02/BO_instrumentation_3-300x179.png" width="300" height="179" /></a></p>
<p>I hope this helps in providing more insight in database activity.<br />
In fact, this approach can of course be used for any PL/SQL program or third party tooling which has the possiblity to execute some code when the connection to the database is set up.</p>
<div class='wb_fb_comment'><br/></div><img src="http://feeds.feedburner.com/~r/whitehorses/blog-posts/~4/A4hQHzpc_Yk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.whitehorses.nl/2013/02/25/monitoring-business-objects-end-user-activity-using-oracle-enterprise-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.whitehorses.nl/2013/02/25/monitoring-business-objects-end-user-activity-using-oracle-enterprise-manager/</feedburner:origLink></item>
		<item>
		<title>PGA tour: Maximize workareas for ETL in Oracle 11.2.0.3</title>
		<link>http://feedproxy.google.com/~r/whitehorses/blog-posts/~3/Ls_t3LzmWGY/</link>
		<comments>http://blog.whitehorses.nl/2013/02/07/pga-tour-maximize-workareas-for-etl-in-oracle-11-2-0-3/#comments</comments>
		<pubDate>Thu, 07 Feb 2013 05:01:36 +0000</pubDate>
		<dc:creator>Tony van Esch</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[datawarehouse]]></category>
		<category><![CDATA[etl]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[optimize]]></category>
		<category><![CDATA[parallel]]></category>
		<category><![CDATA[pga]]></category>
		<category><![CDATA[px]]></category>
		<category><![CDATA[tuning]]></category>

		<guid isPermaLink="false">http://blog.whitehorses.nl/?p=3369</guid>
		<description><![CDATA[<p>When massaging large volumes of data into your datawarehouse, it is necessary to give the database the maximum resources available to get the job done in time.&#160;Our setup consists of a 2s12c24t blade with 48G of memory running Oracle linux 5.7 with a 11.2.0.3 database. The partitioning option and Parallel eXecution (PX) are being used to maximize processing.</p>
]]></description>
				<content:encoded><![CDATA[<p></p><p>When massaging large volumes of data into your datawarehouse, it is necessary to give the database the maximum resources available to get the job done in time. Our setup consists of a 2s12c24t blade with 48G of memory running Oracle linux 5.7 with a 11.2.0.3 database. The partitioning option and Parallel eXecution (PX) are being used to maximize processing.</p>
<p>This case specifically revolved around PGA memory usage. It was necessary to be able to use the maximum amount of memory for our join and sort operations, so it wouldn&#8217;t spill to disk (TEMP). Sounds pretty easy to do, but it actually proved to be a bit more complex.</p>
<p>Some things to consider when optimizing PGA.</p>
<ul>
<li>The maximum size of a workarea (which is used for sort,hash and join operations) has a hard limit of 2GB.</li>
<li>work_area_policy is default set to AUTO and let&#8217;s leave it just like that.</li>
<li>pga_agregate_target determines the target amount of memory available to all server processes of a database instance. It is a target, not a limit and its value is used to determine al kinds of internal settings. This should be the parameter to optimize.</li>
<li>Degree of Parallelism (DOP) determines how many slaves will work on an object and also indirectly determines how (much) PGA memory is allocated to processes.</li>
</ul>
<p>Searching and experimenting led us to the following rules to work with:</p>
<p>The maximum amount of memory for a workarea is reflected in the hidden parameter _smm_max_size.<br />
The value is derived as 50% of hidden parameter _pga_max_size.<br />
_pga_max_size is then derived as 5% of the pga_aggregate_target.</p>
<p>So if we want to have the  maximum of 2GB per workarea we should apply the following formula:<br />
_smm_max_size=2GB, is 50% of _max_pga_size=4GB, is 5% of pga_aggregate_target=20G</p>
<p>But when using Parallel eXecution things work slightly different. When using a DOP of more than 5 another hidden parameter controls the amount of available PGA memory: _smm_px_max_size</p>
<p>The formula to maximize our workareas with PX:<br />
50% of pga_aggregate_target. This would give us 50% of 20GB=10GB of memory for our PX slaves to work with.</p>
<p>As the DOP is maximized at 8, we need to be able to max out memory at 8*2GB=16GB of memory.<br />
So we actually need to set pga_aggregate_target to at least 16GB*2=32 GB to make sure the workareas are maxed out.</p>
<p>This should give us all the correct derived values, but surely we hit another limit somewhere in Oracle. The _pga_max_size value will never be larger than 2GB, which give us a maximum of 1GB per workarea (_smm_max_size). This is a bit strange as the hard limit per workarea is 2GB, not for the total amount of workareas per process. Fortunately we can force _pga_max_size to 4G.</p>
<p>So to actually have processes use the absolute maximum of 2GB per workarea, set two parameters:</p>
<ol>
<li>pga_aggregate_target=20G (or higher depending on your DOP)</li>
<li>_pga_max_size=4G</li>
</ol>
<p>One more thing!</p>
<p>During testing I ran into an <a href="https://support.oracle.com/epmos/faces/DocContentDisplay?id=1372904.1">ora-0060 [kcblin_3]</a>, as I initially misinterpreted some information as how to set some parameters. It was caused by explicitely setting _smm_max_size to 4G and forcing a session into using more than 2GB. I was hitting the hard limit of 2GB imposed by Oracle.</p>
<p>Some usefull links</p>
<p><a href="https://support.oracle.com/epmos/faces/DocContentDisplay?id=453540.1" target="_blank">MOS Note 453540.1: How To Super-Size Work Area Memory Size Used By Sessions?</a><br />
<a href="http://docs.oracle.com/cd/E11882_01/server.112/e25513/initparams191.htm#CHDBJCDE" target="_blank">Oracle Database Reference 11.2: pga_aggregate_target<br />
</a><a href="http://christianbilien.wordpress.com/2007/05/01/two-useful-hidden-parameters-_smm_max_size-and-_pga_max-size/" target="_blank">Cristian Bilien: two useful hidden parameters _smm_max_size and _pga_max_size<br />
</a><a href="https://support.oracle.com/epmos/faces/DocContentDisplay?id=1372904.1" target="_blank">MOS Note 1372904.1: ORA-600 [kcblin_3] when _smm_max_size is greater than 2GB</a></p>
<div class='wb_fb_comment'><br/></div><img src="http://feeds.feedburner.com/~r/whitehorses/blog-posts/~4/Ls_t3LzmWGY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.whitehorses.nl/2013/02/07/pga-tour-maximize-workareas-for-etl-in-oracle-11-2-0-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.whitehorses.nl/2013/02/07/pga-tour-maximize-workareas-for-etl-in-oracle-11-2-0-3/</feedburner:origLink></item>
		<item>
		<title>Three new future features for BAM 12c</title>
		<link>http://feedproxy.google.com/~r/whitehorses/blog-posts/~3/26eCcYI22C8/</link>
		<comments>http://blog.whitehorses.nl/2012/10/16/three-new-future-features-for-bam-12c/#comments</comments>
		<pubDate>Tue, 16 Oct 2012 11:54:19 +0000</pubDate>
		<dc:creator>Peter Paul Van de Beek</dc:creator>
				<category><![CDATA[Business & IT]]></category>
		<category><![CDATA[Integration, SOA & BPM]]></category>
		<category><![CDATA[12c]]></category>
		<category><![CDATA[BAM]]></category>
		<category><![CDATA[bpm]]></category>
		<category><![CDATA[FMW]]></category>
		<category><![CDATA[obiee]]></category>
		<category><![CDATA[SOA Suite]]></category>

		<guid isPermaLink="false">http://blog.whitehorses.nl/?p=3337</guid>
		<description><![CDATA[<p>At Oracle OpenWorld some great planned features where indicated for Oracle BAM. Some of these have been long awaited like multi browser support. No release date was given for 12c except the statement that it would be in the calendar year 2013.</p>
]]></description>
				<content:encoded><![CDATA[<p></p><p>At Oracle OpenWorld some great planned features where indicated for Oracle <strong>BAM</strong> (<a title="Business Activity Monitoring" href="http://www.deltalounge.net/wpress/?s=BAM" target="_blank">Business Activity Monitoring</a>). Some of these have been long awaited like <a title="BAM multi browser support" href="http://www.deltalounge.net/wpress/2009/08/fusion-middleware-11g-bam/" target="_blank">multi browser support</a>. No release date was given for 12c except the statement that it would be in the calendar year 2013.</p>
<h3>Tighter integration with OBIEE</h3>
<p><a href="http://blog.whitehorses.nl/wp-content/uploads/2012/10/BPM-Star-schema.png"><img class="alignright size-thumbnail wp-image-3343" title="BPM Star schema" src="http://blog.whitehorses.nl/wp-content/uploads/2012/10/BPM-Star-schema-150x150.png" alt="" width="150" height="150" /></a>Current versions of BPM and BAM allow you to report to BI tools using the <a title="BPM Star schema" href="http://www.deltalounge.net/wpress/2012/08/export-oracle-bpm-metrics-to-a-data-warehouse/" target="_blank">BPM STAR Schema views</a> to export the data gathered during the execution of processes. In the upcoming 12c version there will be tighter integration possible towards OBIEE. Allowing you to move through continuous monitoring, current state analysis and strategic analysis. The enhanced integration will enable you to define dashboard both in BAM and BI.</p>
<h3>Improved availability and scalability options</h3>
<p>On the non-functional requirements side, from 12c on it will be possible to run BAM in Active-Active mode. This also allows for more scalability options. Here we see that the requirements for reporting on processes and the availability of these reports have grown with the maturity of the underlying software.</p>
<h3>Multi-browser support for BAM</h3>
<p><a href="http://blog.whitehorses.nl/wp-content/uploads/2012/10/BAM-Dashboard-example-2.png"><img class="alignright size-thumbnail wp-image-3345" title="BAM Dashboard example 2" src="http://blog.whitehorses.nl/wp-content/uploads/2012/10/BAM-Dashboard-example-2-150x150.png" alt="BAM Dashboard example " width="150" height="150" /></a>To create these great BAM dashboards Oracle was still using VML. VML is a Microsoft and Macromedia specific XML language to produce vector graphics. That is what bound BAM to Internet Explorer. For years the statement has been that “<em>Browser independent functionality is on our roadmap for a major release in the future</em>”. Now that multi-browser support has been announced it seems thay have moved to the open standard for vector graphics is SVG. This also opens up BAM for access from mobile devices.</p>
<div class='wb_fb_comment'><br/></div><img src="http://feeds.feedburner.com/~r/whitehorses/blog-posts/~4/26eCcYI22C8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.whitehorses.nl/2012/10/16/three-new-future-features-for-bam-12c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.whitehorses.nl/2012/10/16/three-new-future-features-for-bam-12c/</feedburner:origLink></item>
		<item>
		<title>ACM – Adaptive Case Management</title>
		<link>http://feedproxy.google.com/~r/whitehorses/blog-posts/~3/G5eb9Cdz4d4/</link>
		<comments>http://blog.whitehorses.nl/2012/10/15/acm-adaptive-case-management/#comments</comments>
		<pubDate>Mon, 15 Oct 2012 14:22:21 +0000</pubDate>
		<dc:creator>Peter Paul Van de Beek</dc:creator>
				<category><![CDATA[Business & IT]]></category>
		<category><![CDATA[Integration, SOA & BPM]]></category>
		<category><![CDATA[12c]]></category>
		<category><![CDATA[ACM]]></category>
		<category><![CDATA[adaptive case management]]></category>
		<category><![CDATA[bpm]]></category>
		<category><![CDATA[BPM Suite]]></category>
		<category><![CDATA[Case Management]]></category>
		<category><![CDATA[dynamic case management]]></category>
		<category><![CDATA[FMW]]></category>

		<guid isPermaLink="false">http://blog.whitehorses.nl/?p=3320</guid>
		<description><![CDATA[<p>Adaptive case management (ACM) is also known as “dynamic case management” , is getting a lot of interest lately. BPM vendors identified this need while engaging with companies to manage existing business processes. And so ACM tools are emerging as complements to BPM. They provide a human-centric combination of process, content and collaboration to support knowledge workers to be more productive.</p>
]]></description>
				<content:encoded><![CDATA[<p></p><p><strong>Adaptive case management</strong> (ACM) is also known as “dynamic case management” , is getting a lot of interest lately. BPM vendors identified this need while engaging with companies to manage existing business processes. And so ACM tools are emerging as complements to BPM. They provide a human-centric combination of process, content and collaboration to support knowledge workers to be more productive.</p>
<h3>What is case management?</h3>
<p><a href="http://blog.whitehorses.nl/wp-content/uploads/2012/10/Oracle-BPM-Adaptive-Case-Management.png"><img class="alignright size-medium wp-image-3323" title="Oracle BPM Adaptive Case Management" src="http://blog.whitehorses.nl/wp-content/uploads/2012/10/Oracle-BPM-Adaptive-Case-Management-300x205.png" alt="" width="300" height="205" /></a></p>
<p>Case management is a way of organizing the work and activities in a company around a case instead of around a process or data. A Case is the coordination of multiple tasks – planned or unplanned – and associated content, towards a concrete objective or goal. Case oriented systems allow more flexibility and adaptability compared to process oriented solutions. Case oriented systems are better equipped to handle unstructured or less structured data compared to data oriented solutions.</p>
<h3>Why would you need case management?</h3>
<p>You would typically need ACM in a situation where you want activities to be managed, activities don’t have a fixed pre-determined sequence (there are unplanned parts), activities need access to content (both structured and unstructured data), and humans determine what need to happen while executing a process and/or need to interact with other experts (collaboration to solve the case).</p>
<p>Scenario’s in companies we have engaged with are claims handling and investigation in insurance, credit card disputes and pension rewarding in financial services, rehabilitation in health care, and handling contracts.</p>
<h3>Compared to process management</h3>
<p>In BPM the process is dominant. This means the order in which the activities are performed is predetermined and static. Data flows through the process. While with ACM the data is primary and the processes are brought to it. In many cases using ACM the processes are not even fully defined. They are defined on the fly. From that perspective ACM is a way provide enough structure to knowledge work to make it manageable, but not so much as to strangle it.</p>
<p>When handling our values adding activities as a case we know most of the activities that have to be performed. There is no fixed order. The order depends largely on human decisions. In each stage of processing a case a process participant has insight into the activities that have been performed, the data available (structured or not, internal or external) and needed, and the activities that still have to be performed.</p>
<p>The activities are performed by employees in a way that suits the case the best, to their best knowledge and experience. So the process is designed and performed by doing. The flow of activities and their sequence depends on human decisions during the execution of the process.</p>
<p>Like a process a case has state. A case can be open, resolved (complete, closed, rejected) and re-opened. The latter is often difficult when using BPM.</p>
<h3>Oracle BPM and Adaptive Case Management</h3>
<p><a href="http://blog.whitehorses.nl/wp-content/uploads/2012/10/Oracle-BPM-ACM-example-screen.png"><img class="alignright size-medium wp-image-3325" title="Oracle BPM ACM example screen" src="http://blog.whitehorses.nl/wp-content/uploads/2012/10/Oracle-BPM-ACM-example-screen-300x136.png" alt="" width="300" height="136" /></a>At Oracle OpenWorld the addition of Case Management functionality in BPM Suite is announced. PS6 of BPM Suite (version 11.1.1.7) will feature Adaptive Case Management at design time. It will support the definition of a &#8220;case&#8221; as basis for flexible, unstructured, user-driven case progression. You’ll be able to define Case Activities, Case Events, Stakeholders and Permissions. There won’t be a user interface available in PS6, just an API and probably some example Java code.</p>
<p><a href="http://blog.whitehorses.nl/wp-content/uploads/2012/10/Oracle-BPM-PS6-Define-a-Case.png"><img class="alignright size-medium wp-image-3327" title="Oracle BPM PS6 Define a Case" src="http://blog.whitehorses.nl/wp-content/uploads/2012/10/Oracle-BPM-PS6-Define-a-Case-300x191.png" alt="" width="300" height="191" /></a>Additional ACM functionality will be available in the 12c release Oracle BPM Suite. It is expected there will be some sort of Case Spaces that user interface can be compared to Process Spaces for BPM Suite. And of course there will be further integration of BPM en WebCenter.</p>
<h3>Conclusion</h3>
<p>Use ACM as an addition to BPM. Again a hybrid solution could be the one that best fits your business. There are parts of your process that can be handled best using a fixed sequence and there are parts that need Case Management. Just like when you didn’t start using an automated process to handle certain types of data in your applications.</p>
<p>The use of ACM extends beyond the knowledge worker. There tons of other roles that could benefit from working with cases. Basically all processes that are handled by e-mail and spreadsheet and the people using these could benefit from a well designed case management system. This would also improve transparency and open up possibilities to better reporting on the work done.</p>
<div class='wb_fb_comment'><br/></div><img src="http://feeds.feedburner.com/~r/whitehorses/blog-posts/~4/G5eb9Cdz4d4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.whitehorses.nl/2012/10/15/acm-adaptive-case-management/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.whitehorses.nl/2012/10/15/acm-adaptive-case-management/</feedburner:origLink></item>
		<item>
		<title>Slow loading of tabular forms in Application Express</title>
		<link>http://feedproxy.google.com/~r/whitehorses/blog-posts/~3/aRf_IMiXVTU/</link>
		<comments>http://blog.whitehorses.nl/2012/10/11/slow-loading-of-tabular-forms-in-application-express/#comments</comments>
		<pubDate>Thu, 11 Oct 2012 13:35:48 +0000</pubDate>
		<dc:creator>Patrick Sinke</dc:creator>
				<category><![CDATA[Oracle platform]]></category>
		<category><![CDATA[Oracle tools]]></category>
		<category><![CDATA[4.1.1.00.23]]></category>
		<category><![CDATA[Apex]]></category>
		<category><![CDATA[APEX 4.0]]></category>
		<category><![CDATA[APEX4]]></category>
		<category><![CDATA[Application Express]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[report]]></category>
		<category><![CDATA[tabular form]]></category>
		<category><![CDATA[wwv_flow_utilities]]></category>

		<guid isPermaLink="false">http://blog.whitehorses.nl/?p=3300</guid>
		<description><![CDATA[<p>Under some circumstances, there is an issue (observed in Application Express 4.1.1.00.23) that page tabular forms take very long to load, up to several minutes. Even if there is a very small dataset in the underlying table.  When I encountered this issue, the report ran fine on Development en Test environments, but in the almost identical production environment the page took minutes to load.</p>
]]></description>
				<content:encoded><![CDATA[<p></p><p>Under some circumstances, there is an issue (observed in Application Express 4.1.1.00.23) that page tabular forms take very long to load, up to several minutes. Even if there is a very small dataset in the underlying table.  When I encountered this issue, the report ran fine on Development en Test environments, but in the almost identical production environment the page took minutes to load.</p>
<p>When examining the debug, I found the following line of <strong>Apex</strong> generated code, taking up to 30 seconds:</p>
<pre class="brush: sql">begin 
   select /*+ cardinality(t 10) */ 
         disp
       , val 
         bulk collect 
   into wwv_flow_utilities.g_display
      , wwv_flow_utilities.g_value 
   from table(wwv_flow_utilities.get_temp_lov_data(4)) t 
   order by insert_order, disp; 
end;</pre>
<p>The main culprit appears to be the <strong>wwv_flow_utilities.get_temp_lov_data</strong>. This function is called whenever you create an item of the type &#8220;Select List (Named LOV)&#8221;. The workaround I found is to change the type to &#8220;Select List (Query Based LOV)&#8221; or &#8220;Select List (Static LOV)&#8221;. After altering the report attribute type, the report is loading normally.</p>
<p><a href="http://blog.whitehorses.nl/wp-content/uploads/2012/10/10-report-attributes.jpg"><img class="alignleft size-medium wp-image-3308" title="report-attributes" src="http://blog.whitehorses.nl/wp-content/uploads/2012/10/10-report-attributes-300x182.jpg" alt="Report Attributes" width="300" height="182" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Downside is that it will make your code less maintainable. Hopefully the problem is fixed in Apex 4.2.</p>
<div class='wb_fb_comment'><br/></div><img src="http://feeds.feedburner.com/~r/whitehorses/blog-posts/~4/aRf_IMiXVTU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.whitehorses.nl/2012/10/11/slow-loading-of-tabular-forms-in-application-express/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.whitehorses.nl/2012/10/11/slow-loading-of-tabular-forms-in-application-express/</feedburner:origLink></item>
	</channel>
</rss>
