<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-6873099295148794773</atom:id><lastBuildDate>Sun, 24 May 2026 06:38:10 +0000</lastBuildDate><category>oracle</category><category>ESB</category><category>java</category><category>oc4j</category><category>soa</category><category>SOA suite</category><category>oas</category><category>sql</category><category>logging</category><category>fileadaptor</category><category>webservices</category><category>xslt</category><category>geocoding</category><category>j2ee</category><category>jdbc</category><category>struts2</category><category>unix</category><category>Axis</category><category>BitGravity</category><category>Interscope</category><category>Mobile</category><category>SWFObject</category><category>WSM</category><category>WSM. SOA</category><category>Wily</category><category>aggregate function</category><category>android</category><category>apache</category><category>billing</category><category>billing system</category><category>classloading</category><category>clearquest</category><category>command</category><category>datasource</category><category>flash</category><category>frameworks</category><category>grant</category><category>https</category><category>https java</category><category>ibatis</category><category>install</category><category>ipconfig</category><category>java url connection</category><category>java url connection EOFException</category><category>javascript</category><category>jdeveloper</category><category>jms</category><category>jndi</category><category>lsof</category><category>mbean</category><category>network interface</category><category>open source</category><category>php</category><category>phpmailer</category><category>port</category><category>properties</category><category>recreate</category><category>role</category><category>smtp</category><category>spring</category><category>ssl</category><category>subversion</category><category>telecom</category><category>thrust store</category><category>timeout</category><category>urlconnection</category><category>weblogic</category><category>window.onload cookie object</category><category>windows</category><category>windows service</category><category>xml</category><title>TechnoGems Tech Notes</title><description>Technical notes that I find useful.</description><link>http://blog.technogemsinc.com/</link><managingEditor>noreply@blogger.com (jean)</managingEditor><generator>Blogger</generator><openSearch:totalResults>51</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-4731787040644308559</guid><pubDate>Tue, 16 Oct 2012 06:04:00 +0000</pubDate><atom:updated>2012-10-16T02:04:40.669-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">android</category><category domain="http://www.blogger.com/atom/ns#">https java</category><category domain="http://www.blogger.com/atom/ns#">thrust store</category><title>Making https connection from Android client if your CA provider is not trusted by Android</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Android does not recognize all the SSL certificate issuers. If your certificate happens to be issues by one of them or you have a self signed certificate and you want your android application to talk to the server,&amp;nbsp; the code can be a bit tricky.&amp;nbsp; Android requires a special version of the keystore.&amp;nbsp; Here are 5 steps you need to perform to make it work.&lt;br /&gt;
&lt;br /&gt;
1) Download the correct version of bouncycastle. For clients running API level 8, version 1.46 works fine. It can be downloaded from&amp;nbsp; http://ftp.uasw.edu/pub/security/bouncycastle/release1.46/bcmail-jdk13-146.jar&lt;br /&gt;&lt;br /&gt;2) Extract the certificate from the server using the following command:&lt;br /&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;echo | openssl s_client -connect &lt;span style=&quot;color: red;&quot;&gt;server.name.com&lt;/span&gt;:443 2&amp;gt;&amp;amp;1 | sed -ne &#39;/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p&#39; &amp;gt; mycert.pem&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;3) Run the following command to create the keystore&lt;br /&gt;&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;keytool -importcert -v -trustcacerts -file mycert.pem&amp;nbsp; \&lt;br /&gt;-alias &lt;span style=&quot;color: red;&quot;&gt;server.name.com&lt;/span&gt; -keystore mykeystore.bks \&lt;br /&gt;-provider org.bouncycastle.jce.provider.BouncyCastleProvider \&lt;br /&gt;-providerpath &lt;span style=&quot;color: red;&quot;&gt;/path/to/your/Download/&lt;/span&gt;bcprov-jdk15on-146.jar&amp;nbsp; \&lt;br /&gt;-storetype BKS -storepass &lt;span style=&quot;color: red;&quot;&gt;mypass&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;4) Copy the file to the Android resource directory under the name &lt;b&gt;res/raw/mykeystore.bks&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;5) Add the following code snippet in your application and have it executed before you make the https url connection.&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setDefaultSSL () {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Context con = getApplicationContext() ;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; TrustManagerFactory tmf;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tmf = TrustManagerFactory.getInstance(&quot;X509&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; KeyStore ks = KeyStore.getInstance(&quot;BKS&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; InputStream in = con.getResources().openRawResource(R.&lt;b&gt;raw.mykeystore&lt;/b&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ks.load(in, &quot;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;mypass&lt;/span&gt;&lt;/span&gt;&quot;.toCharArray());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; in.close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tmf.init(ks);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; SSLContext context = SSLContext.getInstance(&quot;TLS&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; context.init(null, tmf.getTrustManagers(), null);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Log.d(&quot;HTTPS&quot;, &quot;Setting custom trust store&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // TODO Auto-generated catch block&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/blockquote&gt;
&lt;br /&gt;Once you have invoked the above code segment, you can make url connection as you normally do and you should be fine.&amp;nbsp; Here is a code snippet to do that. One point to note in this code below is that the keepAlive header. Without this, you may experience intermittent issues where the response from the call is empty. &lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private String getServerContent(String url_str ) throws Exception {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;System.setProperty(&quot;http.keepAlive&quot;, &quot;false&quot;);&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; URL url = new URL(url_str);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; HttpsURLConnection urlConnection = (HttpsURLConnection) url&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; .openConnection();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; urlConnection.setDoInput(true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; InputStream ins = urlConnection.getInputStream();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; BufferedReader reader = new BufferedReader(new InputStreamReader(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ins, &quot;iso-8859-1&quot;), 8);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuilder sb = new StringBuilder();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; String line = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; while ((line = reader.readLine()) != null) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; sb.append(line + &quot;\n&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ins.close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; urlConnection.disconnect();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return sb.toString();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;/blockquote&gt;
&amp;nbsp;&lt;/div&gt;
</description><link>http://blog.technogemsinc.com/2012/10/making-https-connection-from-android.html</link><author>noreply@blogger.com (jean)</author><thr:total>11</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-1634768992082065104</guid><pubDate>Tue, 04 Sep 2012 21:11:00 +0000</pubDate><atom:updated>2012-09-05T13:42:20.514-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">j2ee</category><category domain="http://www.blogger.com/atom/ns#">struts2</category><category domain="http://www.blogger.com/atom/ns#">weblogic</category><title>Weblogic disabling freemark debug messages</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Recently we migrated our applications to Oracle weblogic server (OAS 11g) and we noticed that the application log file is filled with debug messages from freemark like the one below:&lt;br /&gt;
&lt;span style=&quot;color: red; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;Notice&amp;gt; &amp;lt;Stdout&amp;gt; &amp;lt;&amp;lt;BEA-000000&amp;gt; &amp;lt;DEBUG&amp;nbsp;&amp;nbsp; 13467&amp;nbsp;&amp;nbsp; [freemark] (): &lt;/span&gt;&lt;br /&gt;
I searched for options to turn off freemark using the logger option and it did not work.&amp;nbsp; The reason could be that the application is not using and logging configuration (no log4j or jdk logging) and oracle diagnostic logging is picking up the logs.&lt;br /&gt;
&lt;br /&gt;
We also have stdout redirecting to the log file.&amp;nbsp; We have the logger configuration set to debug level as it is the development environment.&amp;nbsp; However, I do not want the freemarker logging to fill up the log file.&amp;nbsp; The solution I ended up implementing was to &lt;a href=&quot;http://docs.oracle.com/cd/E13222_01/wls/docs100/ConsoleHelp/taskhelp/domain_log_filters/CreateLogFilters.html&quot; target=&quot;_blank&quot;&gt;create a log filter&lt;/a&gt; to disable the freemarker log messages.&amp;nbsp;&amp;nbsp; I am not sure if this is the best way or not, but this is the only way I could turn off the freemarker debug message and leave the rest of the debug messages on.&lt;br /&gt;
&lt;br /&gt;
Here is the log filter configuration.&amp;nbsp; The create a log filter click on the domain name on the weblogic console and go to Configuration-&amp;gt;LogFilters&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj1_MzZV0uDQjvH-BxawedCr3A63IsWslUM2x0msHnlrvUJ4jPYKEkZ4vQqWu4lqeH1tFbVsgwVtGnN_u8Iz9UyuchG77Lhj1QlWbAYX4Xz8d-IPBjQN9oGlUOqkr-B5CP0afyBp3exIGY/s1600/freemarkLogFilterForWeblogic.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj1_MzZV0uDQjvH-BxawedCr3A63IsWslUM2x0msHnlrvUJ4jPYKEkZ4vQqWu4lqeH1tFbVsgwVtGnN_u8Iz9UyuchG77Lhj1QlWbAYX4Xz8d-IPBjQN9oGlUOqkr-B5CP0afyBp3exIGY/s1600/freemarkLogFilterForWeblogic.gif&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Here is the log file configuration that I used in the development environment. (For production environment, I would recommend setting the log levels to Warning so the log files are not clogged up with debug messages)&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOZfVfjRT2ychIrBFie5NxPDiVSAfbYavFna-OOujYnB9FF5ItAxXXsihNRUyjZUbPFJQi7X8qTZNbB3frDs4ificZ5b7sFMwOMvsMitK_qczzBxXbadSED1WNzMXGqieKhXEdTizSp2Ww/s1600/freemarkLogSettingForWeblogic.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOZfVfjRT2ychIrBFie5NxPDiVSAfbYavFna-OOujYnB9FF5ItAxXXsihNRUyjZUbPFJQi7X8qTZNbB3frDs4ificZ5b7sFMwOMvsMitK_qczzBxXbadSED1WNzMXGqieKhXEdTizSp2Ww/s1600/freemarkLogSettingForWeblogic.gif&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://blog.technogemsinc.com/2012/09/weblogic-disabling-freemark-debug.html</link><author>noreply@blogger.com (jean)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj1_MzZV0uDQjvH-BxawedCr3A63IsWslUM2x0msHnlrvUJ4jPYKEkZ4vQqWu4lqeH1tFbVsgwVtGnN_u8Iz9UyuchG77Lhj1QlWbAYX4Xz8d-IPBjQN9oGlUOqkr-B5CP0afyBp3exIGY/s72-c/freemarkLogFilterForWeblogic.gif" height="72" width="72"/><thr:total>24</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-4263048900919628379</guid><pubDate>Fri, 11 Nov 2011 03:14:00 +0000</pubDate><atom:updated>2011-11-10T22:14:35.678-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">frameworks</category><category domain="http://www.blogger.com/atom/ns#">Mobile</category><title>Cross Platform Mobile Application Development Framework Comparision Chart</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;style&gt;
&lt;!--
 /* Font Definitions */
 @font-face
 {font-family:PMingLiU;
 panose-1:2 2 5 0 0 0 0 0 0 0;}
@font-face
 {font-family:Latha;
 panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
 {font-family:Latha;
 panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
 {font-family:Calibri;
 panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
 {font-family:Tahoma;
 panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
 {font-family:&quot;\@PMingLiU&quot;;
 panose-1:2 2 5 0 0 0 0 0 0 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
 {margin-top:0in;
 margin-right:0in;
 margin-bottom:10.0pt;
 margin-left:0in;
 line-height:115%;
 font-size:11.0pt;
 font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;}
a:link, span.MsoHyperlink
 {color:blue;
 text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
 {color:purple;
 text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
 {mso-style-link:&quot;Balloon Text Char&quot;;
 margin:0in;
 margin-bottom:.0001pt;
 font-size:8.0pt;
 font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;}
span.BalloonTextChar
 {mso-style-name:&quot;Balloon Text Char&quot;;
 mso-style-link:&quot;Balloon Text&quot;;
 font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;}
.MsoChpDefault
 {font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;}
.MsoPapDefault
 {margin-bottom:10.0pt;
 line-height:115%;}
@page WordSection1
 {size:8.5in 11.0in;
 margin:2.25in 1.0in 1.0in 1.0in;}
div.WordSection1
 {page:WordSection1;}
--&gt;
&lt;/style&gt;&lt;br /&gt;
&lt;div class=&quot;WordSection1&quot;&gt;&lt;br /&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;   &lt;td style=&quot;border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 108.9pt;&quot; valign=&quot;top&quot; width=&quot;145&quot;&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;&lt;b&gt;Corona&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 243.0pt;&quot; valign=&quot;top&quot; width=&quot;324&quot;&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;Corona lets developers use integrated Lua, layered on top of&lt;br /&gt;
Objective-C, to build graphically rich applications that are also lightweight&lt;br /&gt;
in size and quick in development time. &lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 126.9pt;&quot; valign=&quot;top&quot; width=&quot;169&quot;&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Corona_%28software_development_kit%29&quot;&gt;Wikipedia&lt;br /&gt;
Link&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;&lt;a href=&quot;http://developer.anscamobile.com/resources/docs&quot;&gt;Developer&lt;br /&gt;
Link&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 108.9pt;&quot; valign=&quot;top&quot; width=&quot;145&quot;&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black;&quot;&gt;Phone Gap (Adobe)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt; width: 243.0pt;&quot; valign=&quot;top&quot; width=&quot;324&quot;&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;The mobile framework allows web developers to natively target all&lt;br /&gt;
smartphone with a single codebase (JavaScript, HTML and CSS) by enabling a&lt;br /&gt;
Foreign Function Interface (FFI) to an embedded WebView or Webkit on the&lt;br /&gt;
device.&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt; width: 126.9pt;&quot; valign=&quot;top&quot; width=&quot;169&quot;&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/PhoneGap&quot;&gt;Wikipedia Link&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;&lt;a href=&quot;http://docs.phonegap.com/en/1.2.0/index.html&quot;&gt;Developer Link&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 57.55pt;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; height: 57.55pt; padding: 0in 5.4pt 0in 5.4pt; width: 108.9pt;&quot; valign=&quot;top&quot; width=&quot;145&quot;&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black;&quot;&gt;Rhomobile &lt;br /&gt;
&lt;br /&gt;
(Motorola Solutions company)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 57.55pt; padding: 0in 5.4pt 0in 5.4pt; width: 243.0pt;&quot; valign=&quot;top&quot; width=&quot;324&quot;&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;Rhodes is a framework for building native applications that can run&lt;br /&gt;
on a variety of smartphones. Rhodes uses a Model View Controller pattern.&lt;br /&gt;
Views are written in HTML&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 57.55pt; padding: 0in 5.4pt 0in 5.4pt; width: 126.9pt;&quot; valign=&quot;top&quot; width=&quot;169&quot;&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Rhomobile&quot;&gt;Wikipedia Link&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;&lt;a href=&quot;http://docs.rhomobile.com/&quot;&gt;Developer Link&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 108.9pt;&quot; valign=&quot;top&quot; width=&quot;145&quot;&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: black;&quot;&gt;Titanium Mobile&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt; width: 243.0pt;&quot; valign=&quot;top&quot; width=&quot;324&quot;&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;Appcelerator Titanium Mobile is a web based application framework&lt;br /&gt;
solutions allowing web developers to apply existing skills to create native&lt;br /&gt;
applications for iPhone and Android using the familiar JavaScript syntax.&lt;br /&gt;
Developers will also have to learn the extensive Titanium API. Wikipedia&lt;br /&gt;
notes that the term cross-compiler is misleading as the titanium engine&lt;br /&gt;
interprets the code during run time.&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt; width: 126.9pt;&quot; valign=&quot;top&quot; width=&quot;169&quot;&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Appcelerator_Titanium&quot;&gt;Wikipedia&lt;br /&gt;
Link&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;&lt;a href=&quot;http://wiki.appcelerator.org/display/guides/Quick+Start&quot;&gt;Developer&lt;br /&gt;
Link&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</description><link>http://blog.technogemsinc.com/2011/11/cross-platform-mobile-application.html</link><author>noreply@blogger.com (jean)</author><thr:total>21</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-5953937403334581340</guid><pubDate>Tue, 11 Oct 2011 11:33:00 +0000</pubDate><atom:updated>2011-10-11T07:33:23.193-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">php</category><category domain="http://www.blogger.com/atom/ns#">phpmailer</category><category domain="http://www.blogger.com/atom/ns#">smtp</category><title>Using PHPMailer and Gmail to send email</title><description>If you are developing applications using PHP and you need to send email you can use the PHPMailer() class in PHP. Using a publicly available SMTP server to send the email is much easier than trying to setup your own email server.  The following code snippet shows the various settings for the mailer. &lt;br /&gt;
The code assumes that you have PHP 5.x version and you have class.phpmailer.php file in the include directory. &lt;br /&gt;
Google uses ssl for the smtp connection.  In order for this example to work with google smtp server, you need to enable ssl in your php.ini file by adding a line that says &lt;b&gt;extension=php_openssl.dll&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
If you are not sure of the exact location of the php.ini file and you are using xampp, you can find the location of the php.ini file by navigating to http://localhost/xampp/phpinfo.php on your browser and look for the text &quot;Loaded Configuration File&quot;.  Once you find the file, edit it and look for the text &quot;extension=php_openssl.dll&quot;.  If the text is not found in your file, add a new line at the end of the file with the above text.&lt;br /&gt;
&lt;blockquote&gt;&lt;?PHP
require_once(&#39;./include/class.phpmailer.php&#39;);
$mail = new PHPMailer();
$mail-&gt;IsSMTP();&lt;br /&gt;
$mail-&gt;SMTPDebug = 1; // 1 tells it to display SMTP errors and messages, 0 turns off all errors and messages, 2 prints messages only.&lt;br /&gt;
&lt;br /&gt;
$mail-&gt;Host = &quot;ssl://smtp.gmail.com&quot;; // specify main and backup server&lt;br /&gt;
$mail-&gt;Port = 465; // set the port to use&lt;br /&gt;
$mail-&gt;SMTPAuth = true; // turn on SMTP authentication&lt;br /&gt;
&lt;br /&gt;
$mail-&gt;Username = &#39;user@gmail.com&#39;; // replace this with your email acct&lt;br /&gt;
$mail-&gt;Password = &#39;userPassword&#39;; // replace this with your password&lt;br /&gt;
&lt;br /&gt;
$mail-&gt;From = &#39;jmeslie@gmail.com&#39;;&lt;br /&gt;
$mail-&gt;FromName = &#39;Jean Meslie&#39;;&lt;br /&gt;
$mail-&gt;AddAddress(&#39;receipient@yahoo.com&#39;, &#39;Receiver&#39;);&lt;br /&gt;
$mail-&gt;AddReplyTo(&#39;user@gmail.com&#39;); // Adds a “Reply-to&#39; address. Un-comment this to use it.&lt;br /&gt;
$mail-&gt;Subject = &#39;test message&#39;;&lt;br /&gt;
$mail-&gt;Body = &#39;message body goes here. This message was sent at &#39;. time();&lt;br /&gt;
&lt;br /&gt;
if ($mail-&gt;Send() == true) {&lt;br /&gt;
echo &#39;The message has been sent at &#39;. time();&lt;br /&gt;
}&lt;br /&gt;
else {&lt;br /&gt;
echo &#39;The email message has NOT been sent for some reason. Please try again later.&#39;;&lt;br /&gt;
echo &#39;Mailer error: &#39; . $mail-&gt;ErrorInfo;&lt;br /&gt;
}&lt;br /&gt;
?&gt;&lt;br /&gt;
&lt;/blockquote&gt;</description><link>http://blog.technogemsinc.com/2011/10/using-phpmailer-and-gmail-to-send-email.html</link><author>noreply@blogger.com (jean)</author><thr:total>27</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-1567344478292252056</guid><pubDate>Tue, 04 Oct 2011 02:00:00 +0000</pubDate><atom:updated>2011-10-03T22:03:32.265-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">grant</category><category domain="http://www.blogger.com/atom/ns#">oracle</category><category domain="http://www.blogger.com/atom/ns#">recreate</category><category domain="http://www.blogger.com/atom/ns#">role</category><category domain="http://www.blogger.com/atom/ns#">sql</category><title>Recreate GRANTS to user in oracle without dba privilege</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
If you want to get list of grants made to tables and you want to recreate the user permissions in a different environment, the easy way to generate a script is to use the &lt;a href=&quot;http://psoug.org/reference/dbms_metadata.html&quot;&gt;dbms_metadata.get_granted_ddl&lt;/a&gt; function as described &lt;a href=&quot;https://kr.forums.oracle.com/forums/thread.jspa?threadID=940742&quot;&gt;here&lt;/a&gt;.  However, if you do not have DBA privilege on the database you will not be able to use that method.   

Here is a simple sql that you can use to generate a script that will work in most common situations.  This just relies on the &lt;a href=&quot;http://download.oracle.com/docs/cd/B28359_01/gateways.111/b31046/a_db2dd.htm#autoId18&quot;&gt;TABLE_PRIVILEGES&lt;/a&gt; table.
&lt;br /&gt;
&lt;blockquote&gt;
select replace(&#39;GRANT &#39; || decode(select_priv,&#39;Y&#39;,&#39;SELECT&#39;,&#39;&#39;) || decode(insert_priv,&#39;A&#39;,&#39;,INSERT&#39;,&#39;&#39;) || decode(delete_priv,&#39;Y&#39;,&#39;,DELETE&#39;,&#39;&#39;) ||  decode(update_priv,&#39;Y&#39;,&#39;,UPDATE&#39;,&#39;&#39;) || decode(references_priv,&#39;Y&#39;,&#39;,REFERENCES&#39;,&#39;&#39;)  || decode(alter_priv,&#39;Y&#39;,&#39;,ALTER&#39;,&#39;&#39;) ||&#39; ON &#39;|| owner || &#39;.&#39; || table_name || &#39; TO &#39; || GRANTEE ||&#39;;&#39;,&#39;GRANT ,&#39;,&#39;GRANT &#39;)
from TABLE_PRIVILEGES where owner= &#39;OWNER&#39; order by table_name, grantee;&lt;/blockquote&gt;
&lt;/div&gt;
</description><link>http://blog.technogemsinc.com/2011/10/recreate-grants-to-user-in-oracle.html</link><author>noreply@blogger.com (jean)</author><thr:total>15</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-7465589678700740303</guid><pubDate>Tue, 27 Sep 2011 18:05:00 +0000</pubDate><atom:updated>2011-09-27T18:47:28.280-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">window.onload cookie object</category><title>window.onload being used in multiple places within the same application included</title><description>&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val=&quot;Cambria Math&quot;&gt;    &lt;m:brkbin val=&quot;before&quot;&gt;    &lt;m:brkbinsub val=&quot;&amp;#45;-&quot;&gt;    &lt;m:smallfrac val=&quot;off&quot;&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val=&quot;0&quot;&gt;    &lt;m:rmargin val=&quot;0&quot;&gt;    &lt;m:defjc val=&quot;centerGroup&quot;&gt;    &lt;m:wrapindent val=&quot;1440&quot;&gt;    &lt;m:intlim val=&quot;subSup&quot;&gt;    &lt;m:narylim val=&quot;undOvr&quot;&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate=&quot;false&quot; defunhidewhenused=&quot;true&quot; defsemihidden=&quot;true&quot; defqformat=&quot;false&quot; defpriority=&quot;99&quot; latentstylecount=&quot;267&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;0&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Normal&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;heading 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 7&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 8&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 9&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 7&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 8&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 9&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;35&quot; qformat=&quot;true&quot; name=&quot;caption&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;10&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Title&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;1&quot; name=&quot;Default Paragraph Font&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;11&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Subtitle&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;22&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Strong&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;20&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Emphasis&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;59&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Table Grid&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Placeholder Text&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;1&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;No Spacing&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Revision&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;34&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;List Paragraph&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;29&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Quote&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;30&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Intense Quote&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;19&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Subtle Emphasis&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;21&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Intense Emphasis&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;31&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Subtle Reference&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;32&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Intense Reference&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;33&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Book Title&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;37&quot; name=&quot;Bibliography&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; qformat=&quot;true&quot; name=&quot;TOC Heading&quot;&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:&quot;Table Normal&quot;;  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-qformat:yes;  mso-style-parent:&quot;&quot;;  mso-padding-alt:0in 5.4pt 0in 5.4pt;  mso-para-margin-top:0in;  mso-para-margin-right:0in;  mso-para-margin-bottom:10.0pt;  mso-para-margin-left:0in;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:&quot;Times New Roman&quot;;  mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:&quot;Times New Roman&quot;;  mso-bidi-theme-font:minor-bidi;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-bottom:0in;margin-bottom:.0001pt;line-height: normal&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-Times New Roman&amp;quot;font-family:&amp;quot;;font-size:10.0pt;&quot;  &gt;Recently one of my team members ran into an issue where we had used&lt;br /&gt;the window.onload to dynamically set some values in a cookie object.&lt;br /&gt;Our application handles multiple javascript files and we had used&lt;br /&gt;window.onload in another jsp also for another reason. &lt;/span&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-bottom:0in;margin-bottom:.0001pt;line-height: normal&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-Times New Roman&amp;quot;font-family:&amp;quot;;font-size:10.0pt;&quot;  &gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-bottom:0in;margin-bottom:.0001pt;line-height: normal&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-Times New Roman&amp;quot;; color:black;mso-themebackground:#FFFF66font-family:&amp;quot;;font-size:10.0pt;color:text1;&quot;   &gt;So,when multiple jsp files are trying to add different functions to the window.onload event, only the last function was executing.  We developed a workaround by adding the function that chains the onload event functions.  Below snippet gives an example of how we solved it. &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-Times New Roman&amp;quot;; color:black;mso-themefont-family:&amp;quot;;font-size:10.0pt;color:text1;&quot;   &gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-bottom:0in;margin-bottom:.0001pt;line-height: normal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:text1;&quot;   &gt;-&lt;br /&gt;function addLoadEvent(functionName) {&lt;br /&gt;var firstonload = window.onload;&lt;br /&gt;&lt;br /&gt;if (typeof window.onload != &#39;function&#39;) {&lt;br /&gt; window.onload = &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-Times New Roman&amp;quot;; color:black;mso-themefont-family:&amp;quot;;font-size:10.0pt;color:text1;&quot;   &gt;functionName&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:text1;&quot;   &gt;;&lt;br /&gt;}&lt;br /&gt;else {&lt;br /&gt; window.onload = function() {&lt;br /&gt;   if (&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:text1;&quot;   &gt;firstonload &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:text1;&quot;   &gt;) {&lt;br /&gt;     &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:text1;&quot;   &gt;firstonload&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:text1;&quot;   &gt;();&lt;br /&gt;   }&lt;br /&gt;   &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-Times New Roman&amp;quot;; color:black;mso-themefont-family:&amp;quot;;font-size:10.0pt;color:text1;&quot;   &gt;functionName&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-Times New Roman&amp;quot;; color:black;mso-themefont-family:&amp;quot;;font-size:10.0pt;color:text1;&quot;   &gt;();&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;mso-bidi-Times New Roman&amp;quot;font-family:&amp;quot;;font-size:10.0pt;&quot;  &gt;  &lt;br /&gt;&lt;br /&gt;and the actual function definition is in the original jsp and this&lt;br /&gt;function is called from there. So the first time window.onload may&lt;br /&gt;not be a function so we are setting it, On subsequent  assignments,&lt;br /&gt;window.onload exists, so whatever it holds will be wrapped up with the&lt;br /&gt;new function.  the list grows like that...&lt;/span&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;line-height:115%;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;font-family:&amp;quot;;font-size:10.0pt;&quot;  &gt; &lt;/span&gt;&lt;/p&gt;</description><link>http://blog.technogemsinc.com/2011/09/windowonload-being-used-in-multiple.html</link><author>noreply@blogger.com (Anita Selwyn)</author><thr:total>17</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-7090597418634015791</guid><pubDate>Tue, 07 Jun 2011 05:00:00 +0000</pubDate><atom:updated>2012-09-05T13:43:57.494-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">struts2</category><title>Struts2 navigate away from error pages</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Struts 2 provides a nice &lt;a href=&quot;http://struts.apache.org/2.0.14/docs/workflow-interceptor.html&quot;&gt;workflow&lt;/a&gt; interceptor that makes sure there are no validation errors before allowing the interceptor chain to continue.&lt;br /&gt;
&lt;br /&gt;
This will also prevent the user from navigating away to a different method in the same action.  Sometimes that is not the desired behavior we like.  For example, if the user is editing an item and there is a validation error and the user does not want to fix the validation error, however they choose to navigate to a different page on the same action, the workflow interceptor will prevent the user and put them back to the edit page.  &lt;br /&gt;
&lt;br /&gt;
If the desired behavior is to let them proceed to to another page, you can exclude those methods in the interceptor configuration similar to the following example.&lt;br /&gt;
&lt;pre&gt;&amp;lt;interceptor-ref name=&quot;defaultLoginStack&quot; &amp;gt;
         &amp;lt;param name=&quot;validation.excludeMethods&quot;&amp;gt;doInput,doList&amp;lt;/param&amp;gt;
         &amp;lt;param name=&quot;workflow.excludeMethods&quot;&amp;gt;doInput,doList&amp;lt;/param&amp;gt;
&amp;lt;/interceptor-ref&amp;gt;
&lt;/pre&gt;
In the above example, if the user tries to access the doList or doInput methods the validation will be skipped and the workflow will allow to continue even if the previous page had errors.&lt;/div&gt;
</description><link>http://blog.technogemsinc.com/2011/06/struts2-navigate-away-from-error-pages.html</link><author>noreply@blogger.com (jean)</author><thr:total>12</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-201628391537625004</guid><pubDate>Fri, 13 May 2011 18:39:00 +0000</pubDate><atom:updated>2011-05-13T22:17:39.504-04:00</atom:updated><title>Tomcat Resource Configuration for Oracle Database Connection</title><description>Tomcat has a &lt;a href=&quot;http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html#Database_Connection_Pool_(DBCP)_Configurations&quot;&gt;Database Connection Pool&lt;/a&gt; mechanism that will work for most of the database including Oracle.  The mechanism described in the tomcat web site will work for most situations.  Using the above method will make the code not depend on a specific database. &lt;br /&gt;
&lt;br /&gt;
However there are situations where the application code is dependent on Oracle database.  One such example is when you use Oracle Stored procedures and you need to use Oracle Cursor as on output parameter.  In such case you will have to cast the Statement to Oracle specific oracle.jdbc.OracleCallableStatement class to get the cursor. &lt;br /&gt;
&lt;br /&gt;
However if you simply cast the java.sql.CallableStatement to oracle.jdbc.OracleCallableStatement you may notice that you get a class cast exception if you configured your DataSource using the above method.  &lt;br /&gt;
&lt;br /&gt;
To overcome the class cast exception, you need to configure the data source using a Oracle specific connection factory.   The following example will server that purpose.  The text in bold are the changes pertaining to the Oracle connection factory. &lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&amp;lt;Resource name=&quot;jdbc/OracleDS&quot; auth=&quot;Container&quot; type=&quot;&lt;b&gt;oracle.jdbc.pool.OracleDataSource&lt;/b&gt;&quot;&lt;br /&gt;
&lt;b&gt;user=&quot;DBUser&quot;&lt;/b&gt;&lt;br /&gt;
password=&quot;xxxxxx&quot;&lt;br /&gt;
&lt;b&gt;driverClassName=&quot;oracle.jdbc.OracleDriver&quot;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;factory=&quot;oracle.jdbc.pool.OracleDataSourceFactory&quot;&lt;/b&gt;&lt;br /&gt;
url=&quot;jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=your.db.host)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=serviceName)))&quot;&lt;br /&gt;
maxActive=&quot;?&quot;&lt;br /&gt;
maxIdle=&quot;?&quot;&lt;br /&gt;
maxWait=&quot;-1&quot;/&gt;&lt;br /&gt;
&lt;/blockquote&gt;</description><link>http://blog.technogemsinc.com/2011/05/tomcat-resource-configuration-for.html</link><author>noreply@blogger.com (jean)</author><thr:total>6</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-3027920389439689266</guid><pubDate>Tue, 05 Oct 2010 05:21:00 +0000</pubDate><atom:updated>2010-10-05T01:24:30.273-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">apache</category><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">properties</category><category domain="http://www.blogger.com/atom/ns#">spring</category><title>spring apache commons configuration</title><description>I was surprised to find out that integrating the apache commons configuration with the spring framework is not trivial.&amp;nbsp; I was hoping that there will be one bean that we can use out of the box within the spring framework or the apache commons framework and we set that as a property in the bean and we can go on.&amp;nbsp; Unfortunately it was not that easy.&amp;nbsp;&amp;nbsp; It takes a few steps to get this working.&amp;nbsp; Here are the steps that you need to follow to get this integration working:&lt;br /&gt;
&lt;br /&gt;
1) Define the properties beans in spring xml file (typically ApplicationConfiguration.xml file)&lt;br /&gt;
&amp;nbsp;as follows:&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: small;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: small;&quot;&gt;&amp;nbsp;&amp;lt;!-- Apache Commons Configuration Composite configuration --&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bean id=&quot;configurations&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; class=&quot;org.springmodules.commons.configuration.CommonsConfigurationFactoryBean&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name=&quot;configurations&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;list&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bean class=&quot;org.apache.commons.configuration.PropertiesConfiguration&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;constructor-arg type=&quot;java.net.URL&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value=&quot;classpath:myconfiguration.properties&quot; /&amp;gt;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name=&quot;reloadingStrategy&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bean class=&quot;org.apache.commons.configuration.reloading.FileChangedReloadingStrategy&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bean&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bean class=&quot;org.apache.commons.configuration.SystemConfiguration&quot;/&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/list&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- define configuration as a set of spring resources --&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bean&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bean id=&quot;configuration&quot; class=&quot;org.apache.commons.configuration.Configuration&quot; factory-bean=&quot;&amp;amp;amp;configurations&quot; factory-method=&quot;getConfigurations&quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;bean class=&quot;org.springmodules.commons.configuration.CommonsConfigurationFactoryBean&quot; id=&quot;configurations&quot;&gt;&lt;property name=&quot;configurations&quot;&gt;&lt;list&gt;&lt;bean class=&quot;org.apache.commons.configuration.Configuration&quot; factory-bean=&quot;&amp;amp;configurations&quot; factory-method=&quot;getConfigurations&quot; id=&quot;configuration&quot;&gt;&lt;/bean&gt;&lt;/list&gt;&lt;/property&gt;&lt;/bean&gt;&lt;/span&gt;&lt;/blockquote&gt;2) Define a bean with the getter and setter that returns/accepts an array of org.apache.commons.configuration.Configuration class.&amp;nbsp; To make it easier for the rest of the code to get the configuration easy, you may want to add a utility method in there to return the combined Configutaion.&amp;nbsp; Here is an example:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;private Configuration configs[] ;&lt;br /&gt;
private ConfigurationBuilder cfgBuilder ;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Configuration[] getConfigs() {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return configs;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setConfigs(Configuration[] configs) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; this.configs = configs;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; cfgBuilder = new ConfigurationBuilder();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for (Configuration cgf: configs) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; cfgBuilder.addConfiguration(cgf);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Configuration getConfig() {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return cfgBuilder.getConfiguration();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;/blockquote&gt;3) Define the bean properties in the spring xml file.&amp;nbsp; I suggest, that you may want to define the above method in a base class of all your beans and define it as an abstract bean.&amp;nbsp; This will enable you to use the properties in all your beans without having to define the properties in every bean.&amp;nbsp; Here is an example:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;lt;bean id=&quot;baseActionBean&quot;&amp;nbsp; class=&quot;com.my.company.BaseAction&quot;&amp;nbsp; abstract=&quot;true&quot; &amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name=&quot;configs&quot; ref=&quot;configuration&quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bean&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bean id=&quot;logonClass&quot; class=&quot;com.my.company.UsefulAction&quot;&amp;nbsp; parent=&quot;baseActionBean&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/bean&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;4)&amp;nbsp; Add the necessary libraries if you do not have them already.&amp;nbsp; Here is the list of jars you will need.&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;commons-lang-*.jar&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;commons-configuration*.jar&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;spring-modules-jakarta-commons*.jar&lt;/span&gt;&lt;/blockquote&gt;&amp;nbsp;With these changes, you should be able to use the properties in your beans with a code as simple as getConfig().getString(&quot;propertyKey&quot;)</description><link>http://blog.technogemsinc.com/2010/10/spring-apache-commons-configuration.html</link><author>noreply@blogger.com (jean)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-7154526341838428358</guid><pubDate>Sat, 25 Sep 2010 02:47:00 +0000</pubDate><atom:updated>2010-09-24T22:48:57.871-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">logging</category><title>Deleting old log files based on size and time</title><description>There are times when the log files take up too much space in the system and bring the system to run out of space.&amp;nbsp; Fortunately there are few steps you can take to keep the log files under control for development servers.&amp;nbsp; Here I have listed a simple strategy:&lt;br /&gt;
1) Create a dedicated partition for the log files so if the log files grow out of space, that still does not crash the system by making no space left for your data and configuration files.&lt;br /&gt;
2) Keep all log files for all applications under a common directory dedicated for logs.&amp;nbsp; Replace the location of the log files within your application with symbolic links to the common logs folder or change the log configuration files to directly point them to the log directory.&lt;br /&gt;
3) Create a simple script to delete files that are older than certain number of days.&lt;br /&gt;
4) For files that does not get rolled over by the application, have a script that trims the head of the file by certain percentage of their size when the file size grows over a certain size limit.&lt;br /&gt;
&lt;br /&gt;
If you follow these simple steps, your log files and directories will stay tidy and you still have logs left when you need them to debug issues.&amp;nbsp;&amp;nbsp; Here is a sample script that you can use to cleanup old files and trim larger files.&lt;br /&gt;
&lt;blockquote style=&quot;background-color: white; color: blue;&quot;&gt;&lt;b style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;logdir=&quot;/tmp/test&quot;&lt;br /&gt;
trimAmt=50&lt;br /&gt;
tempFile=/tmp/trimedfile.$$&lt;br /&gt;
sizeLimit=+1G&lt;br /&gt;
fileAge= +30&lt;br /&gt;
&lt;br /&gt;
cd $logdir&lt;br /&gt;
&lt;br /&gt;
find . -mtime $fileAge -exec rm -f {} \;&lt;br /&gt;
&lt;br /&gt;
for FILENAME in $(find . -size $sizeLimit -print )&lt;br /&gt;
do&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; filesize=$(wc -l $FILENAME |&amp;nbsp; awk &#39;{print $1}&#39;)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; trimsize=$(( $filesize -($filesize / $trimAmt)))&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; echo &quot; $FILENAME $filesize $trimsize &quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; tail -$trimsize $FILENAME &amp;gt; /tmp/trimedfile.$$&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cat $tempFile &amp;gt; $FILENAME&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; rm&amp;nbsp; $tempFile&lt;br /&gt;
done&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/blockquote&gt;</description><link>http://blog.technogemsinc.com/2010/09/deleting-old-log-files-based-on-size.html</link><author>noreply@blogger.com (jean)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-8185656687125684504</guid><pubDate>Wed, 25 Aug 2010 17:27:00 +0000</pubDate><atom:updated>2010-08-25T13:27:55.752-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">java url connection</category><title>Java URL connection timeout - default timeout might save you from hanging</title><description>Many times, when you make a url connection or any connection that works over tcp ip (ftp, http etc) protocol, it is possible that your client just hangs.&amp;nbsp; It is frustrating to debug this kind of issue because, you do not get any exception from your application except it just hangs.&amp;nbsp; This can be a problem especially in production environments where there are firewalls between every single component and it is hard to trace network traffic.&amp;nbsp; &amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
If you are using sun jdk.1.4 or above there is a way you can prevent your code from just hanging.&amp;nbsp; Best of all, you do not even have to make a code change.&amp;nbsp; The sun jvm has a way to specify default timeout values for the net client. &amp;nbsp; All you have to do is just add the following java parameters to the command line that starts your application. &amp;nbsp;&lt;br /&gt;
&lt;div style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;-D&lt;/b&gt;&lt;b&gt;sun.net.client.defaultConnectTimeout=TimeoutInMiliSec -D&lt;/b&gt;&lt;b&gt;sun.net.client.defaultReadTimeout=&lt;/b&gt;&lt;b&gt;TimeoutInMiliSec&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt; &lt;br /&gt;
This will force the client to timeout and hopefully your application logs the exception that gives enough clue to debug the issue. &amp;nbsp; For more information about specifying network properties in java check out the &lt;a href=&quot;http://download.oracle.com/javase/1.4.2/docs/guide/net/properties.html&quot;&gt;Networking Properties&lt;/a&gt; guide from sun/oracle.</description><link>http://blog.technogemsinc.com/2010/08/java-url-connection-timeout-default.html</link><author>noreply@blogger.com (jean)</author><thr:total>6</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-2630641809141756587</guid><pubDate>Mon, 23 Aug 2010 20:43:00 +0000</pubDate><atom:updated>2010-08-24T10:11:57.023-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">clearquest</category><category domain="http://www.blogger.com/atom/ns#">xml</category><title>Exporting ClearQuest records to Excel</title><description>If you need to export clearquest records to excel, the easy option is to use CSV format.&amp;nbsp; You can do that by using the &quot;Save result set to file&quot; option and select a delimiter of your choice.&amp;nbsp; Hoqwever, if one of your exported column is a multi line text, this may not provide the results you expect when you open the file in excel.&lt;br /&gt;
&lt;br /&gt;
In that case you may want to export the data as xml file.&amp;nbsp; Use the &quot;Rational ClearQuest Client&quot;&amp;nbsp; (not the windows client) and click on the &quot;export query results&quot; icon above the query results pane.&amp;nbsp; This will open a window where you can select the export format.&amp;nbsp;&amp;nbsp; In this window select the xml format and you can get the results as an xml file. (You can find detailed instruction on how to import &lt;a href=&quot;http://publib.boulder.ibm.com/infocenter/ieduasst/rtnv1r0/index.jsp?topic=/com.ibm.iea.rcq/rcq/7.0/Operations/RCQ_Module2_Exporting/player.html&quot;&gt;here&lt;/a&gt;) However, the xml file is not very friendly to read.&amp;nbsp;&amp;nbsp; You can create a simple xsl file and add a single line to the xml file to use the xsl file you just created to make the file more reader friendly.&lt;br /&gt;
&lt;br /&gt;
Here is a sample xsl file you can use: (You can download a copy from &lt;a href=&quot;http://www.technogemsinc.com/demos/cqTransform.xsl&quot;&gt;here&lt;/a&gt;)&lt;br /&gt;
&lt;div style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&lt;br /&gt;
&amp;gt; &amp;lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&quot;/&quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt; &amp;lt;body&amp;gt; &amp;lt;h2&amp;gt;My ClearQuest Results &amp;lt;/h2&amp;gt; &amp;lt;table&amp;gt; &amp;lt;xsl:for-each select=&quot;exportedResults/columnNames&quot;&amp;gt; &amp;lt;tr bgcolor=&quot;gray&quot;&amp;gt; &amp;lt;xsl:for-each select=&quot;columnName&quot;&amp;gt; &amp;lt;th&amp;gt;&amp;lt;xsl:value-of select=&quot;.&quot;/&amp;gt; &amp;lt;/th&amp;gt; &amp;lt;/xsl:for-each&amp;gt; &amp;lt;/tr&amp;gt; &amp;lt;/xsl:for-each&amp;gt; &amp;lt;xsl:for-each select=&quot;exportedResults/records/record&quot;&amp;gt; &amp;lt;tr&amp;gt; &amp;lt;xsl:for-each select=&quot;field&quot;&amp;gt; &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&quot;.&quot;/&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/xsl:for-each&amp;gt; &amp;lt;/tr&amp;gt; &amp;lt;/xsl:for-each&amp;gt; &amp;lt;/table&amp;gt; &amp;lt;/body&amp;gt; &amp;lt;/html&amp;gt; &amp;lt;/xsl:template&amp;gt; &amp;lt;/xsl:stylesheet&amp;gt; &lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;color: black;&quot;&gt;You can add the following line to the generated xml so you tell the browser to use the xsl.&amp;nbsp; Make sure that the xsl and xml fiels are in the same directory.&lt;/div&gt;&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;color: red; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;?xml-stylesheet type=&quot;text/xsl&quot; href=&quot;cqTransform.xsl&quot;?&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;!--Generated by ClearQuest Eclipse client&amp;nbsp; Mon Aug 23 14:43:15 EDT 2010--&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;/span&gt;</description><link>http://blog.technogemsinc.com/2010/08/exporting-clearquest-records-to-excel.html</link><author>noreply@blogger.com (jean)</author><thr:total>5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-6617180297872602055</guid><pubDate>Fri, 25 Jun 2010 02:53:00 +0000</pubDate><atom:updated>2010-06-24T22:53:06.915-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java url connection EOFException</category><title>java urlconnection difference between jdk 1.4 vs 1.5</title><description>Recently, I ran in to an issue when trying to do some maintenance on an application that was last compiled using java 1.4 compiler.&amp;nbsp; After compiling with java 1.5 or 1.6 compiler, the application stopped working.&amp;nbsp; The part that was failing was when the application is making a URLConnection and posting a bytestream to the URL.&amp;nbsp; It appears that from the client&#39;s perspective it wrote the entire bytestream.&amp;nbsp; However, when the server is attempting to read the bytestream, it would get a EndOfFile exception.&amp;nbsp;&amp;nbsp; After scratching my head for a day, I noticed that one of my colleague had the same application working on his machine.&amp;nbsp; The only difference is the URL he is using has a backslash at the end and mine did not.&amp;nbsp; I tried changing the url by adding a backslash at the end, and the application starts working. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I have not seen any official documentation regarding this difference in the behavior between the same code compiled by jdk 1.4 and the newer ones.&amp;nbsp; But, it seem to be the case as few others also experienced similar issue. &lt;br /&gt;
&lt;br /&gt;
I will update this blog entry if I ever find more details on this issue.&amp;nbsp; Meanwhile, if you run in to this issue, you may want to try adding a backslash to the end of your url.</description><link>http://blog.technogemsinc.com/2010/06/java-urlconnection-difference-between.html</link><author>noreply@blogger.com (jean)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-7573027983436902847</guid><pubDate>Tue, 20 Apr 2010 00:49:00 +0000</pubDate><atom:updated>2010-04-19T20:50:13.919-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ibatis</category><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">sql</category><title>Pagination using sql</title><description>If you have a complex query that returns lot of rows from the database and you are displaying the results in a table,&amp;nbsp; you may want to add some pagination logic to your application.&amp;nbsp; However, most people add pagination to the application layer, but retrieve all the rows back from the database.&amp;nbsp; Java programming frameworks/API such as IBatis, JPA etc provides a mechanism to limit the number of rows retrieved or skip a number of rows.&amp;nbsp;&amp;nbsp; However, the implementation of those framework is left behind the jdbc driver and often results in the data still retrieved to the application server and then discarded.&amp;nbsp;&amp;nbsp; You could avoid this resource wastage by changing your query to limit the rows.&amp;nbsp; The following is an example of how you can do just that.&lt;br /&gt;
&lt;blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #20124d;&quot;&gt; &lt;b style=&quot;color: blue;&quot;&gt;select * from (  select rownum rnum, a.* from ( &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt; &lt;span style=&quot;color: orange;&quot;&gt;select columns from your_complex_table order by  someField&lt;/span&gt;&lt;/span&gt; &lt;b style=&quot;color: blue;&quot;&gt;)&amp;nbsp; a&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where rownum &amp;lt;&amp;nbsp; #UPPER_LIMIT ) &amp;nbsp;&amp;nbsp;&amp;nbsp; where rnum &amp;gt;= #LOWER_LIMIT &lt;/b&gt;&lt;/blockquote&gt;&lt;span style=&quot;color: #073763;&quot;&gt;&lt;/span&gt;In this example, you can change the values of #UPPER_LIMIT and #LOWER_LIMIT as parameters to your query limit the results to just the rows you want to deal with.&amp;nbsp; If you are using a&amp;nbsp; iBATIS you can make your actual query (the one does fetches all the records) in to an sql fragment and reuse it for the paginated query and get row counts.&amp;nbsp;&amp;nbsp; It also helps to get all the records in case of exporting all the data to some external format.&amp;nbsp; The following example shows how you can reuse the sql fragment within your sqlMapping.&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;sql id=&quot;&lt;span style=&quot;color: black;&quot;&gt;selectItems&lt;/span&gt;&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;
select columns from your_complex_table order by someField &lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/sql&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;select id=&quot;&lt;span style=&quot;color: black;&quot;&gt;selectItemCount&lt;/span&gt;&quot; resultClass=&quot;&lt;span style=&quot;color: black;&quot;&gt;int&lt;/span&gt;&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;
SELECT COUNT(*) AS total&lt;br /&gt;
&amp;lt;include refid=&quot;selectItems&quot;/&amp;gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/select&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;select id=&quot;&lt;span style=&quot;color: black;&quot;&gt;selectPaginated&lt;/span&gt;&quot; resultClass=&quot;&lt;span style=&quot;color: black;&quot;&gt;Item&lt;/span&gt;&quot; parameterClass=&quot;&lt;span style=&quot;color: black;&quot;&gt;map&lt;/span&gt;&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;select * from ( select rownum rnum, a.* from (&lt;br /&gt;
&amp;lt;include refid=&quot;selectItems&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ) a&amp;nbsp; where rownum &amp;lt;&amp;nbsp; #UPPER_LIMIT ) &lt;br /&gt;
&amp;nbsp;&amp;nbsp; where rnum &amp;gt;= #LOWER_LIMIT&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/select&amp;gt;&lt;/span&gt;&lt;/blockquote&gt;</description><link>http://blog.technogemsinc.com/2010/04/pagination-using-sql.html</link><author>noreply@blogger.com (jean)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-6765469904090245316</guid><pubDate>Thu, 11 Feb 2010 21:12:00 +0000</pubDate><atom:updated>2010-02-11T16:12:04.721-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">geocoding</category><category domain="http://www.blogger.com/atom/ns#">oracle</category><title>How to get UTM/MGRS from Latitude/Longitude using Oracle</title><description>Oracle Spatial queries can be used to derive the UTM/MGRS from a given Latitude and Longitude.&lt;br /&gt;
The following sql provides an example on how to get the UTM/MGRS&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Select SDO_CS.to_USNG( SDO_GEOMETRY(2001,8307,SDO_POINT_TYPE(41.98,33.23,NULL),NULL,NULL), 1) UTM_MGRS from dual; &lt;/span&gt;&lt;/blockquote&gt;&amp;nbsp;For more information on oracle spatial features, refer to http://www.oracle.com/technology/products/spatial/pdf/10gr2_collateral/locator_twp_10gr2.pdf</description><link>http://blog.technogemsinc.com/2010/02/how-to-get-utmmgrs-from.html</link><author>noreply@blogger.com (jean)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-8409448059114512211</guid><pubDate>Thu, 11 Feb 2010 20:48:00 +0000</pubDate><atom:updated>2010-02-13T11:44:54.063-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">geocoding</category><category domain="http://www.blogger.com/atom/ns#">oracle</category><title>Oracle Locator vs Spatial</title><description>&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;th style=&quot;font-weight: normal;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: x-large;&quot;&gt;Oracle Locator&lt;/span&gt;&lt;/b&gt;&lt;/th&gt; &lt;th style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: x-large;&quot;&gt;&lt;b&gt;Oracle Spatial &lt;/b&gt;&lt;/span&gt;&lt;/th&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;br /&gt;
&lt;div style=&quot;direction: ltr; margin-bottom: 0pt; margin-left: 0.38in; margin-top: 4.8pt; text-align: left; text-indent: -0.38in; unicode-bidi: embed;&quot;&gt;Free&amp;nbsp; included in oracle 10G onwards&lt;br /&gt;
What Can Oracle Locator Do for You?&lt;br /&gt;
Query nearest neighbor and other spatial relationships between geometries&lt;br /&gt;
Perform location queries on relational information not stored in Oracle Spatial geometry&lt;br /&gt;
Support long transactions&lt;br /&gt;
Store and index vector geometries in the database&lt;br /&gt;
Enhance application performance&lt;br /&gt;
http://www.oracle.com/technology/products/spatial/pdf/10gr2_collateral/locator_twp_10gr2.pd&lt;br /&gt;
&lt;ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Additional option on top of oracle database&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;/ul&gt;&lt;div style=&quot;direction: ltr; margin-bottom: 0pt; margin-left: 0.38in; margin-top: 4.8pt; text-align: left; text-indent: -0.38in; unicode-bidi: embed;&quot;&gt;What Can Oracle Spatial Do for You?&lt;br /&gt;
Everything that Oracle Locator does, and:&lt;br /&gt;
Perform length and area calculations on geometries&lt;br /&gt;
Generate new geometries such as buffers and unions&lt;br /&gt;
Perform coordinate systems transformations, for individual geometries or entire layers&lt;br /&gt;
Store linear measure information&lt;br /&gt;
http://www.oracle.com/technology/products/spatial/pdf/10gr2_collateral/spatial_twp_10gr2.pdf&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</description><link>http://blog.technogemsinc.com/2010/02/oracle-locator-vs-spatial.html</link><author>noreply@blogger.com (jean)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-5023944140043591227</guid><pubDate>Wed, 10 Feb 2010 15:47:00 +0000</pubDate><atom:updated>2010-02-10T11:04:50.890-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ESB</category><category domain="http://www.blogger.com/atom/ns#">oracle</category><category domain="http://www.blogger.com/atom/ns#">webservices</category><title>Using Oracle ESB as a web service client to pull data periodically</title><description>In this article we will cover the detailed steps to create an ESB service that invokes a web service periodically and write the response to a file.&amp;nbsp; The web service in this case takes an input parameter and returns some response based on the input.&amp;nbsp; The client is expected to parse the response and take an element from the response and supply that as the input for the next call. &lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV8Hjo4qsartV5OmmwT6urNt_88JnZsZ5pZPDvfsPiDA3O7vz1hfoy-kZrYG-WxwBDnSESf-9x3gGGIIjrCvUegprqTtGBlYlCehSOilFkMKWtvk4BYDEUfpuoXlDSUJeCpkENVo6pgH_5/s1600-h/esbWebServiceClientDiagram.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV8Hjo4qsartV5OmmwT6urNt_88JnZsZ5pZPDvfsPiDA3O7vz1hfoy-kZrYG-WxwBDnSESf-9x3gGGIIjrCvUegprqTtGBlYlCehSOilFkMKWtvk4BYDEUfpuoXlDSUJeCpkENVo6pgH_5/s640/esbWebServiceClientDiagram.gif&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
1.&amp;nbsp;&amp;nbsp;&amp;nbsp; Create a service group. Lets call it EsbWebServiceClient&lt;br /&gt;
2.&amp;nbsp;&amp;nbsp;&amp;nbsp; Create a xsd file to represent the configuration information that we will use to pass to the webservice. &lt;br /&gt;
3.&amp;nbsp;&amp;nbsp;&amp;nbsp; Create a xml file that complies with the schema and the initial parameters for invoking the web service. The ESB adaptor will update this file after each invocation.&lt;br /&gt;
4.&amp;nbsp;&amp;nbsp;&amp;nbsp; Create a file adaptor to read a file.&amp;nbsp; Don’t check the mark that says delete file after reading.&amp;nbsp; Specify the schema that you created in step 2 for the schema of the file. When you are done with step you should end up with boxes 1 &amp;amp; 2 shown in the diagram with the line connecting them.&lt;br /&gt;
5.&amp;nbsp;&amp;nbsp;&amp;nbsp; Create a ESB Service&amp;nbsp; for Soap service (Right click on design pane-&amp;gt; Create ESB Service-&amp;gt;Soap Service)&amp;nbsp; On the pop up window, select the WSDL file representing the service.&amp;nbsp; For this demo, the web service is a simple service that takes a string as input and returns a string. This creates Box 3.with no lines connected.&lt;br /&gt;
6.&amp;nbsp;&amp;nbsp;&amp;nbsp; Now create a schema that represents the input elements to the webservice and the output of the webservice.&amp;nbsp; We will use this as the holding area to have both the request and response so we can write the output to a file and update the config file with the updated information.&amp;nbsp; In the example the schema is called serviceParameterAndResponse.&lt;br /&gt;
7.&amp;nbsp;&amp;nbsp;&amp;nbsp; Create a ESB routing Service and name it ConfigMapper.(Right click on design pane-&amp;gt; Create ESB Service-&amp;gt;Routing Service)&amp;nbsp; On the pop up window, select the serviceParameterAndResponse schema for both request and response formats.. This creates Box 4.with no lines connected. This routing service provides the framework for us to merge the input parameters and the webservice output.&lt;br /&gt;
8.&amp;nbsp;&amp;nbsp;&amp;nbsp; Now create a file adaptor that can write an output file and name it WsResponseWriter. To keep it simple, specify the schema for the file as the same as the response from the webservice&amp;nbsp; This should create Box 5 with no lines connected. &lt;br /&gt;
9.&amp;nbsp;&amp;nbsp;&amp;nbsp; Now create a file adaptor that can write the config file and name that ConfigFileWriter.. Specify the schema and the location for the file as the same as the schema created in step 2. This should create Box 6 with no connector lines&lt;br /&gt;
10.&amp;nbsp;&amp;nbsp;&amp;nbsp; Double click box 2 and add a routing rule to invoke the method on the webservice.&amp;nbsp; This should create a reply line.&amp;nbsp; Now point the reply to the execute method on the routing service created on step 7.&amp;nbsp; This should create lines 8 &amp;amp; 9 on the esb diagram..&lt;br /&gt;
11.&amp;nbsp;&amp;nbsp;&amp;nbsp; Double click box 4 and add two routing rules.&amp;nbsp; One pointing to WsResponseWriter and the second one pointing to ConfigFileWriter.&amp;nbsp; This should create the lines 10 &amp;amp; 11 in the diagram.&lt;br /&gt;
12.&amp;nbsp;&amp;nbsp;&amp;nbsp; Now the diagram is almost complete.&amp;nbsp; You will see the mappings are still gray. We will add the mappings which will make them yellow.&lt;br /&gt;
13.&amp;nbsp;&amp;nbsp;&amp;nbsp; Double click on the top &quot;X&quot; and create a new mapping.&amp;nbsp; When the designed is displayed, drag a line from the config parameter to the input parameter of the web service.&lt;br /&gt;
14.&amp;nbsp;&amp;nbsp;&amp;nbsp; Double click of the bottom &quot;X&quot; of box 2.&amp;nbsp; Create a new mapping.&amp;nbsp; You will notice there is an option to &quot;include the request in reply play load&quot;.&amp;nbsp; Make sure you select this option.&amp;nbsp; When the designer panel is displayed you should see a new node called “ESBREQUEST” on the left hand side.&amp;nbsp; To learn more about the $ESBREQUEST parameter refer to this article (http://www.soastation.org/2007/05/esbrequest-in-oracle-esb-routing.html)&lt;br /&gt;
15.&amp;nbsp;&amp;nbsp;&amp;nbsp; Now select the source view of the xslt and add a function to parse the required fields from the request to map to the output. In the example below, I have mapped the string after the pipe symbol to be stored as the parameter for the next call. And for the response, I have concatenated the input and the output to be written out to the file.&amp;nbsp; Please note that you will not be able to drat lines to or from the $ESBREQUEST variable on the designer view.&lt;br /&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;xsl:param name=&quot;ESBREQUEST&quot;/&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;lt;xsl:template match=&quot;/&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;lt;out1:serviceParameterAndResponse&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;out1:param1&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:value-of select=&#39;substring-after(/tns:getElapsedTimeSinceResponse/tns:return,&quot;|&quot;)&#39;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/out1:param1&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;out1:response&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:value-of select=&#39;concat(substring-after(/tns:getElapsedTimeSinceResponse/tns:return,&quot;|&quot;),substring(&lt;b&gt;$ESBREQUEST&lt;/b&gt;/tns:lastTime,1.0,2.0))&#39;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/out1:response&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/out1:serviceParameterAndResponse&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;lt;/xsl:template&amp;gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;div style=&quot;color: red;&quot;&gt;&lt;/div&gt;&amp;nbsp;16.&amp;nbsp;&amp;nbsp;&amp;nbsp; Now double click on the &quot;X&quot; on box 4 and create new mappings.&amp;nbsp;&amp;nbsp; These mappings should be straightforward as all the manipulation is done on the previous step.&amp;nbsp;&amp;nbsp; Just draw a straight line from the corresponding field on the left to right.&amp;nbsp; Repeat this for both the ‘X” on the box.&lt;br /&gt;
17.&amp;nbsp;&amp;nbsp;&amp;nbsp; Now your diagram should look similar to the one shown above.&amp;nbsp; You can register the service to your ESB and test it. &lt;br /&gt;
&lt;br /&gt;
If you like see a copy of the project that I used to create the demo, feel free to drop me an email.&amp;nbsp; My email address is jmeslie at gmail dot com.</description><link>http://blog.technogemsinc.com/2010/02/using-oracle-esb-as-web-service-client.html</link><author>noreply@blogger.com (jean)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV8Hjo4qsartV5OmmwT6urNt_88JnZsZ5pZPDvfsPiDA3O7vz1hfoy-kZrYG-WxwBDnSESf-9x3gGGIIjrCvUegprqTtGBlYlCehSOilFkMKWtvk4BYDEUfpuoXlDSUJeCpkENVo6pgH_5/s72-c/esbWebServiceClientDiagram.gif" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-1359741257203368894</guid><pubDate>Thu, 14 Jan 2010 16:12:00 +0000</pubDate><atom:updated>2010-01-14T11:14:26.106-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">windows</category><title>How to set Vista to allow inbound web traffic?</title><description>If your organization uses Group Policy, use the Windows Firewall Group Policy settings to configure Windows Firewall. If you have set exceptions in the windows firewall too to allow trafic and you are still not able to access your computer from a remote machine, most likely cause is the group policy is set on your computer. The Group Policy Object Editor (type &lt;span style=&quot;color: blue;&quot;&gt;Gpedit.msc&lt;/span&gt; on the windows search bar) provides access to the Windows Firewall settings. The settings are stored within the Group Policy Object Editor at Computer Configuration/Administrative Templates/Network/Network Connections/Windows Firewall.&lt;br /&gt;
&lt;br /&gt;
Once you are in the group policy editor, navigate to Local Computer Policy -&amp;gt; Windows Setting -&amp;gt; Security Seting -&amp;gt; Windows Firewall with advanced security -&amp;gt; Inbound rules</description><link>http://blog.technogemsinc.com/2010/01/how-to-set-vista-to-allow-inbound-web.html</link><author>noreply@blogger.com (jean)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-5980342770248660130</guid><pubDate>Thu, 22 Oct 2009 14:15:00 +0000</pubDate><atom:updated>2009-10-22T10:35:39.953-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">subversion</category><title>How to add version info to subversion files automatically</title><description>&lt;span style=&quot;font-weight: bold;&quot;&gt;Adding version info to subversion files&lt;/span&gt;&lt;br /&gt;
You can configure Subversion and TortoiseSVN to update the version information on the files checked in to subversion by adding subversion keywords to your file and setting the subversion properties.   To automatically add the version number, the user who changed the file and the date in which the file was changed, follow these steps:&lt;br /&gt;
&lt;br /&gt;
Add the subversion keywords to the file. These properties and keywords are case sensitive.    To ensure that you are using the correct value of the keyword, I suggest copy the following text to your file and make the changes necessary to make it a valid comment:&lt;br /&gt;
&lt;pre&gt;/**
**  Last Changed by    : $LastChangedBy$
**  Last Changed Rev   : $Rev$
**  Last Changed Date  : $LastChangedDate$
**/
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
The next step is to add the subversion properties to the file.  It can be done by one file at a time or at a folder level to add the properties to all the files in the folder and its sub folders.   To do this, right click on the file/folder, select TortoiseSVN-&amp;gt;Properties.  Click “New” and in the properties window select “svn:keywords” and enter  “LastChangedBy Rev LastChangedDate” as the value as shown below:&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5wl0A_QNRb7RE-S142UY8SGmaNQz0Kx-RIXMUF4_kR6oy532E5LuWGQRn-EMNSXADmgCGzEWMW2osfXlroNKgYsLHU5Ttp0EyAM1ejTPZVeLuZ6kcVTFKNLBr1ahNxibQeWy15uJILbom/s1600-h/image001.jpg&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5395431259944326898&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5wl0A_QNRb7RE-S142UY8SGmaNQz0Kx-RIXMUF4_kR6oy532E5LuWGQRn-EMNSXADmgCGzEWMW2osfXlroNKgYsLHU5Ttp0EyAM1ejTPZVeLuZ6kcVTFKNLBr1ahNxibQeWy15uJILbom/s320/image001.jpg&quot; style=&quot;cursor: pointer; height: 179px; width: 320px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
To avoid making errors, I would suggest that you use the import/export functionality to add these properties.   Select a file that already has this property and you know it is working and click on export as shown below.  Save the property to a file and close the properties window.  Now go to the TortoiseSVN properties window of the new file and select import and select the properties file you saved before.  This will ensure that you have set the properties correctly for that file.&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCRMNAST6kI4aat0decQVdADdF1g7wreZXaAjBE68LJBTjJYrnEfwN3oaBUonkeCSrPYUKaRctL5RpzL0pAztcWC5gkF04aq2Kv_FB_XOihrkgzPZSWkjjZFwoXXZqoLYLHtBE9CsJ5ssF/s1600-h/image003.jpg&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5395431708261496082&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCRMNAST6kI4aat0decQVdADdF1g7wreZXaAjBE68LJBTjJYrnEfwN3oaBUonkeCSrPYUKaRctL5RpzL0pAztcWC5gkF04aq2Kv_FB_XOihrkgzPZSWkjjZFwoXXZqoLYLHtBE9CsJ5ssF/s320/image003.jpg&quot; style=&quot;cursor: pointer; height: 179px; width: 320px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Subversion automatic property setting&lt;/span&gt;&lt;br /&gt;
You can configure Subversion and TortoiseSVN to set properties automatically on files and folders when they are added to the repository. There are two ways of doing this.&lt;br /&gt;
You can edit the subversion configuration file to enable this feature on your client. The General page of TortoiseSVN&#39;s settings dialog has an edit button to take you there directly.  (Right click anywhere within the right pane of windows explorer, Highlight the TortoiseSVN menu and click on the settings tab to bring up the General settings page of Tortoise SVN )&lt;br /&gt;
The config file is a simple text file which controls some of subversion&#39;s workings. You need to change two things: First, in the section headed miscellany uncomment the line enable-auto-props = yes. Secondly you need to edit the section below to define which properties you want added to which file types. This method is a standard subversion feature and works with any subversion client. However it has to be defined on each client individually - there is no way to propagate these settings from the repository.   Table 1 shows a sample snippet of the config file with the changes that adds the properties for the file types .txt, .java, .jsp, .htm*, *.properties, *.xml and *.xml.   You can add more lines as needed to add more file types.&lt;br /&gt;
An alternative method is to set the tsvn:autoprops property on folders.  I recommend that we use this method as all of us are using TortoiseSVN  client.  This method only works for TortoiseSVN clients, but it does get propagated to all working copies on update.  The advantage is if even if one user did not have the correct settings on their PC, these properties will get propagated as long as the top folder was created from a pc with the right setting.  To do this right click on a top level folder for the project,  select tortisSVN properties and select add property and select the tsvn:autoprops property name and add the values as shown below: &lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-bosJ0Nf_o-G0M9ru7DTtOjCxf0mmpDKsIy4TEGtA-gPRdYKyuk1Mm1lpiL2QO8l67iMGbNo4dTlD7YcaIk2flGjtZo2uLdYmEvn2zefVRYO0jFt0HZXRhxBFhjXGCRP1jZiksvDDke5e/s1600-h/image002.jpg&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5395431703254796466&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-bosJ0Nf_o-G0M9ru7DTtOjCxf0mmpDKsIy4TEGtA-gPRdYKyuk1Mm1lpiL2QO8l67iMGbNo4dTlD7YcaIk2flGjtZo2uLdYmEvn2zefVRYO0jFt0HZXRhxBFhjXGCRP1jZiksvDDke5e/s320/image002.jpg&quot; style=&quot;cursor: pointer; height: 161px; width: 320px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Whichever method you choose, you should note that auto-props are only applied to files at the time they are added to the repository. Auto-props will never change the properties of files which are already versioned.  If you want to add the properties to files that are already committed to subversion, you may want to select the top level folder and add the subversion property.&lt;br /&gt;
&lt;br /&gt;
Table 1: Partial Text of the Subversion config file &lt;br /&gt;
&lt;pre&gt;### Section for configuring miscelleneous Subversion options.
[miscellany]
.
.
.
### Automatic properties are defined in the section &#39;auto-props&#39;.
&lt;span style=&quot;color: red;&quot;&gt;enable-auto-props = yes&lt;/span&gt;
### Set interactive-conflicts to &#39;no&#39; to disable interactive
### conflict resolution prompting.  It defaults to &#39;yes&#39;.
# interactive-conflicts = no

### Section for configuring automatic properties.
[auto-props]
### The format of the entries is:
###   file-name-pattern = propname[=value][;propname[=value]...]
### The file-name-pattern can contain wildcards (such as &#39;*&#39; and
### &#39;?&#39;).  All entries which match (case-insensitively) will be
### applied to the file.  Note that auto-props functionality
### must be enabled, which is typically done by setting the
### &#39;enable-auto-props&#39; option.
&lt;span style=&quot;color: red;&quot;&gt;*.txt = svn:eol-style=native;svn:keywords=LastChangedBy Rev LastChangedDate
*.java = svn:eol-style=native;svn:keywords=LastChangedBy Rev LastChangedDate
*.jsp = svn:eol-style=native;svn:keywords=LastChangedBy Rev LastChangedDate
*.htm* = svn:eol-style=native;svn:keywords=LastChangedBy Rev LastChangedDate
*.properties* = svn:eol-style=native;svn:keywords=LastChangedBy Rev LastChangedDate
*.xml = svn:eol-style=native;svn:keywords=LastChangedBy Rev LastChangedDate
*.sql = svn:eol-style=native;svn:keywords=LastChangedBy Rev LastChangedDate
&lt;/span&gt;# *.png = svn:mime-type=image/png
# *.jpg = svn:mime-type=image/jpeg
# Makefile = svn:eol-style=native
&lt;/pre&gt;</description><link>http://blog.technogemsinc.com/2009/10/how-to-add-version-info-to-subversion.html</link><author>noreply@blogger.com (jean)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5wl0A_QNRb7RE-S142UY8SGmaNQz0Kx-RIXMUF4_kR6oy532E5LuWGQRn-EMNSXADmgCGzEWMW2osfXlroNKgYsLHU5Ttp0EyAM1ejTPZVeLuZ6kcVTFKNLBr1ahNxibQeWy15uJILbom/s72-c/image001.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-9046313942039296600</guid><pubDate>Mon, 19 Oct 2009 20:40:00 +0000</pubDate><atom:updated>2009-10-19T20:42:04.060-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">oracle</category><category domain="http://www.blogger.com/atom/ns#">sql</category><title>Oracle - Generate a list of dates with time</title><description>I had to create a report that had to have a line for each date/time within the given range, even if the actual data did not have value for that date.  Say, web trafic count for each 5 minutes for a given day. The simple full join of the date will not work for this because, there might be periods during the day there was no user activity, and it is expected to have zeroes in that case. &lt;br /&gt;&lt;br /&gt;A simple approach would be to use the hirerical query used in &lt;a href=&quot;http://consultingblogs.emc.com/jamespipe/archive/2007/01/15/Oracle-SQL-_2D00_-Generate-a-list-of-dates.aspx&quot;&gt;this blog&lt;/a&gt; if you only need one row per date.   But if you need date entries for multiple times per day, say a row for every 5 minutes,  the following function will come in handy. It uses a Pipelined Table Function.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;CREATE OR REPLACE TYPE date_array AS TABLE OF DATE;&lt;br /&gt;/&lt;br /&gt;CREATE OR REPLACE FUNCTION MPI2.date_table(sdate DATE, edate DATE, mi_interval integer   )&lt;br /&gt;&lt;br /&gt;RETURN date_array PIPELINED is&lt;br /&gt; fDate date ;&lt;br /&gt;BEGIN&lt;br /&gt;  fDate := sdate;&lt;br /&gt;  while fDate &lt; edate LOOP&lt;br /&gt;    PIPE ROW(fDate );&lt;br /&gt;    fDate := fDate +  mi_interval / 1440;  &lt;br /&gt;  END LOOP;&lt;br /&gt;  RETURN;&lt;br /&gt;END date_table;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now you may query this function just like you query a table, as follows&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SELECT to_char(column_value,&#39;DD-MON-YYYY HH24:MI&#39;)  FROM TABLE(CAST(MPI2.DATE_TABLE(trunc(sysdate-1),sysdate,5) AS date_array));&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The above query will return a row for every 5 minutes.  You can do a full join of this table with your actual tables to get the result you wanted.</description><link>http://blog.technogemsinc.com/2009/10/oracle-generate-list-of-dates-with-time.html</link><author>noreply@blogger.com (jean)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-1905750497412291687</guid><pubDate>Fri, 09 Oct 2009 17:27:00 +0000</pubDate><atom:updated>2009-10-09T13:42:08.894-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">windows service</category><title>How to create your own Windows Service Monitor? - A scheduled task</title><description>There are times when a windows service just stops running without any error.  The following script provides a brute force script that will help monitor the service and restart it if the service is down.&lt;br /&gt;&lt;br /&gt;To create this service, copy the following code to a cmd file and setup a schedule task. (Replace YourServiceName with the actual name of your service)&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;@ECHO OFF&lt;br /&gt;set logFile=c:\temp\svcmonitor.log&lt;br /&gt;set tempFile=c:\temp\tmp.txt&lt;br /&gt;set serviceName=YourServiceName&lt;br /&gt;sc query %serviceName% &gt;  %tempFile%&lt;br /&gt;for /F &quot;skip=3 tokens=1,4&quot; %%i in (%tempFile%) do if %%i equ STATE  (&lt;br /&gt;if  %%j equ STOPPED (&lt;br /&gt;echo %date% %time%  %serviceName% service is stopped. Trying to restart. &gt;&gt; %logFile%&lt;br /&gt;sc start %serviceName% &gt;&gt;  %logFile%&lt;br /&gt;echo %date% %time%  %serviceName% restarted &gt;&gt; %logFile%&lt;br /&gt;) else (&lt;br /&gt;echo %date% %time%  %serviceName% service is %%j &gt;&gt; %logFile%&lt;br /&gt;)&lt;br /&gt;)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now update the scheduled task in to run every day.  Then go to the advanced scheduling options menu and set to repeat the task every 10 minutes(or what ever frequency deemed appropriate for your task) as shown below.  Now you have a poor man&#39;s version of a windows service monitor.&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4sfV6pezLnYNVEOU4UtpLllo-cWzNmE41YmcnQJ0skZkcYq0dUt0GDdUPMCS7i7ehgWp-XTaJHC9RJ2UCz9MN174yd0AoJozANYxi9GxKtUXN3CAK5DQxqVDPv2O1HmvTgKg1p5OrHwJb/s1600-h/scheduler.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 240px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4sfV6pezLnYNVEOU4UtpLllo-cWzNmE41YmcnQJ0skZkcYq0dUt0GDdUPMCS7i7ehgWp-XTaJHC9RJ2UCz9MN174yd0AoJozANYxi9GxKtUXN3CAK5DQxqVDPv2O1HmvTgKg1p5OrHwJb/s320/scheduler.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5390655243944060546&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</description><link>http://blog.technogemsinc.com/2009/10/windows-service-monitor-scheduled-task.html</link><author>noreply@blogger.com (jean)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4sfV6pezLnYNVEOU4UtpLllo-cWzNmE41YmcnQJ0skZkcYq0dUt0GDdUPMCS7i7ehgWp-XTaJHC9RJ2UCz9MN174yd0AoJozANYxi9GxKtUXN3CAK5DQxqVDPv2O1HmvTgKg1p5OrHwJb/s72-c/scheduler.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-8780295298879484675</guid><pubDate>Thu, 08 Oct 2009 14:36:00 +0000</pubDate><atom:updated>2009-10-08T11:22:40.692-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Axis</category><category domain="http://www.blogger.com/atom/ns#">logging</category><category domain="http://www.blogger.com/atom/ns#">oc4j</category><category domain="http://www.blogger.com/atom/ns#">webservices</category><title>Debugging Webservice clients - Log HTTP transport content</title><description>Many times it is useful to see the actual content that is send and received through the wire in order to troubleshoot webservice clients.  Unfortunately, there does not seem to be a standard way to enable logging across all the webservice clients.  Depending on the client you use for accessing the webservice, the debugging method varies.    Here are a few tips that will help.&lt;br /&gt;&lt;br /&gt;If you are using Axis client to access a webservice and using log4j for logging, you can enable printing of the http request and response contents by setting the &quot;httpclient.wire.content&quot;  property to &quot;debug&quot;.  For example if using the log4j.properties file set the following property:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;log4j.category.httpclient.wire.content=debug,stdout&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;If the webservice is connecting to a secure url using https protocol,  setting the java system property &quot;javax.net.debug&quot; to &quot;plaintext&quot; will provide a hex dump of the content send and received. &lt;br /&gt;&lt;br /&gt;If you are using the web service proxy provided by oc4j within jdeveloper or the oc4j container,  you can enable the java logging property &quot;oracle.webservices.client&quot; in logging.properties file to FINE&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;oracle.webservices.client.level=FINE&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Setting this option will allow a standalone client to log the request and response content to the log file specified by the logging.properties file.&lt;br /&gt;&lt;br /&gt;If the client is running within the oc4j container, you can enable the oracle diagnostics logging for  &quot;oracle.webservices.client&quot;.   This can be done by navigating to the &amp;lt;oc4j container&gt; -&gt; Administration --&gt; Logger Configuration page and setting the log level as &quot;FINE&quot; for &quot;oracle.webservices.client&quot; property. &lt;br /&gt;You can view the request and response contents in the log.xml file.</description><link>http://blog.technogemsinc.com/2009/10/debugging-webservice-clients-log-http.html</link><author>noreply@blogger.com (jean)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-734099227636767063</guid><pubDate>Wed, 07 Oct 2009 13:27:00 +0000</pubDate><atom:updated>2009-10-07T09:33:59.324-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">oas</category><category domain="http://www.blogger.com/atom/ns#">SOA suite</category><title>Failed to set the internal configuration of the OC4J JMS Server with: XMLJMSServerConfig</title><description>After setting up a few jms queues, if the oc4j did not shutdown properly, (ie) shutting down the machine without issuing &quot;opmnctl stopall&quot;, the above error is very likely to occur.&lt;br /&gt;&lt;br /&gt;To fix this just rename the &amp;lt;ORACLE_HOME&gt;/j2ee/&amp;lt;soa_instance&gt;/persistence folder and create an empty folder in its place. &lt;br /&gt;&lt;br /&gt;Now if you start the server, it should startup fine.</description><link>http://blog.technogemsinc.com/2009/10/failed-to-set-internal-configuration-of.html</link><author>noreply@blogger.com (jean)</author><thr:total>8</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-6265717540867986594</guid><pubDate>Thu, 17 Sep 2009 15:49:00 +0000</pubDate><atom:updated>2009-09-18T11:28:41.185-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ESB</category><category domain="http://www.blogger.com/atom/ns#">j2ee</category><category domain="http://www.blogger.com/atom/ns#">jdeveloper</category><category domain="http://www.blogger.com/atom/ns#">jms</category><category domain="http://www.blogger.com/atom/ns#">soa</category><category domain="http://www.blogger.com/atom/ns#">webservices</category><title>Asynchronous Web Service Calls over HTTP using Oracle ESB and JMS</title><description>&lt;h1&gt;How to create an asynchronous webservice that supports failover using Oracle ESB?&lt;/h1&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;This article describes a general design for invoking web services in an asynchronous fashion even if the web service provider only supports synchronous invocation. &lt;span style=&quot;&quot;&gt; &lt;/span&gt;I have used JDeveloper to create this service however the same principles can be used for any development tool.&lt;/p&gt;  &lt;h2&gt;Use case:&lt;/h2&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;Generally there are 3 different scenarios of using a web services. &lt;/p&gt;  &lt;ol style=&quot;margin-top: 0in;&quot; start=&quot;1&quot; type=&quot;1&quot;&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;&lt;span class=&quot;Heading3Char&quot;&gt;&lt;span style=&quot;font-size:13pt;&quot;&gt;Request/Response Real      Time: .&lt;/span&gt;&lt;/span&gt;Here the response from the web service is critical      for the application to proceed to the next step.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;If the web service is not available,      user needs to know right away.&lt;span style=&quot;&quot;&gt;       &lt;/span&gt;Example: An application depends on a web service to display a list of accounts they can manage. In this case invoking the web service in an asynchronous fashion is not going to help much. A simple synchronous web service call will do the work without adding any complexity.&lt;/li&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;&lt;span class=&quot;Heading3Char&quot;&gt;&lt;span style=&quot;font-size:13pt;&quot;&gt;Request only – (delivery      critical):&lt;/span&gt;&lt;/span&gt; Here, the client application needs to send a message to a web service, but it is not expecting any response from the service.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;The client wants to make sure that the message will be delivered to the service even if the service was down at the time of invocation.&lt;/li&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;&lt;span class=&quot;Heading3Char&quot;&gt;&lt;span style=&quot;font-size:13pt;&quot;&gt;Request/Response time (not      critical, delivery critical):&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;Here, the client application needs to      send a message and receive response from the web service.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;The client wants to make sure that the message will be delivered to the service even if the service was down at the time of invocation.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;The client is not waiting for the response from the service. Instead, the client has provided a callback mechanism to receive the response. &lt;/li&gt;&lt;/ol&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;The design described here suites for the third scenario and the second scenario.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;For the second scenario, only part of the design is needed.&lt;/p&gt;  &lt;h2&gt;The approach:&lt;/h2&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;The idea here is to use JMS queues to receive the request and response messages to and from the web service.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;Clients will access the web service through a JMS-WebService adaptor.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;JMS listeners will invoke the web service and the callback service when messages are received in the request or response queues. &lt;span style=&quot;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;The following diagram describes the approach. &lt;/p&gt;  &lt;!--[if gte vml 1]&gt;&lt;v:shapetype id=&quot;_x0000_t75&quot; coordsize=&quot;21600,21600&quot; spt=&quot;75&quot; preferrelative=&quot;t&quot; path=&quot;m@4@5l@4@11@9@11@9@5xe&quot; filled=&quot;f&quot; stroked=&quot;f&quot;&gt;  &lt;v:stroke joinstyle=&quot;miter&quot;&gt;  &lt;v:formulas&gt;   &lt;v:f eqn=&quot;if lineDrawn pixelLineWidth 0&quot;&gt;   &lt;v:f eqn=&quot;sum @0 1 0&quot;&gt;   &lt;v:f eqn=&quot;sum 0 0 @1&quot;&gt;   &lt;v:f eqn=&quot;prod @2 1 2&quot;&gt;   &lt;v:f eqn=&quot;prod @3 21600 pixelWidth&quot;&gt;   &lt;v:f eqn=&quot;prod @3 21600 pixelHeight&quot;&gt;   &lt;v:f eqn=&quot;sum @0 0 1&quot;&gt;   &lt;v:f eqn=&quot;prod @6 1 2&quot;&gt;   &lt;v:f eqn=&quot;prod @7 21600 pixelWidth&quot;&gt;   &lt;v:f eqn=&quot;sum @8 21600 0&quot;&gt;   &lt;v:f eqn=&quot;prod @7 21600 pixelHeight&quot;&gt;   &lt;v:f eqn=&quot;sum @10 21600 0&quot;&gt;  &lt;/v:formulas&gt;  &lt;v:path extrusionok=&quot;f&quot; gradientshapeok=&quot;t&quot; connecttype=&quot;rect&quot;&gt;  &lt;o:lock ext=&quot;edit&quot; aspectratio=&quot;t&quot;&gt; &lt;/v:shapetype&gt;&lt;v:shape id=&quot;_x0000_i1025&quot; type=&quot;#_x0000_t75&quot; style=&quot;&#39;width:6in;&quot;&gt;  &lt;v:imagedata src=&quot;file:///C:\DOCUME~1\MeslieJ\LOCALS~1\Temp\msohtml1\01\clip_image001.png&quot; title=&quot;&quot;&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqPT9Ymd4BxOH4GRyNvkQWd2k9C6V9bvrOWxYBDF4px5pN-l0MvrbxlwKrEgTF62jtRsUIpiedyDmGQ9PCT_tJ_5NUyB-b8DBOrdgWxMwDkIPwV8Jr9tlVnL13t2wo5pL7qA0Lk1fwKVXT/s1600-h/internalwebserviceesbdiagram1.gif&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 242px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqPT9Ymd4BxOH4GRyNvkQWd2k9C6V9bvrOWxYBDF4px5pN-l0MvrbxlwKrEgTF62jtRsUIpiedyDmGQ9PCT_tJ_5NUyB-b8DBOrdgWxMwDkIPwV8Jr9tlVnL13t2wo5pL7qA0Lk1fwKVXT/s320/internalwebserviceesbdiagram1.gif&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5382466304873018674&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;meta equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;&lt;meta name=&quot;ProgId&quot; content=&quot;Word.Document&quot;&gt;&lt;meta name=&quot;Generator&quot; content=&quot;Microsoft Word 11&quot;&gt;&lt;meta name=&quot;Originator&quot; content=&quot;Microsoft Word 11&quot;&gt;&lt;link rel=&quot;File-List&quot; href=&quot;file:///C:%5CDOCUME%7E1%5CMeslieJ%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml&quot;&gt;&lt;link rel=&quot;Edit-Time-Data&quot; href=&quot;file:///C:%5CDOCUME%7E1%5CMeslieJ%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_editdata.mso&quot;&gt;&lt;!--[if !mso]&gt; &lt;style&gt; v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} &lt;/style&gt; &lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate=&quot;false&quot; latentstylecount=&quot;156&quot;&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:Wingdings; 	panose-1:5 0 0 0 0 0 0 0 0 0; 	mso-font-charset:2; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:0 268435456 0 0 -2147483648 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:&quot;&quot;; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:&quot;Times New Roman&quot;; 	mso-fareast-font-family:&quot;Times New Roman&quot;;} h1 	{mso-style-next:Normal; 	margin-top:12.0pt; 	margin-right:0in; 	margin-bottom:3.0pt; 	margin-left:0in; 	mso-pagination:widow-orphan; 	page-break-after:avoid; 	mso-outline-level:1; 	font-size:16.0pt; 	font-family:Arial; 	mso-font-kerning:16.0pt;} h2 	{mso-style-link:&quot;Heading 2 Char&quot;; 	mso-style-next:Normal; 	margin-top:12.0pt; 	margin-right:0in; 	margin-bottom:3.0pt; 	margin-left:0in; 	mso-pagination:widow-orphan; 	page-break-after:avoid; 	mso-outline-level:2; 	font-size:14.0pt; 	font-family:Arial; 	font-style:italic;} h3 	{mso-style-link:&quot;Heading 3 Char&quot;; 	mso-style-next:Normal; 	margin-top:12.0pt; 	margin-right:0in; 	margin-bottom:3.0pt; 	margin-left:0in; 	mso-pagination:widow-orphan; 	page-break-after:avoid; 	mso-outline-level:3; 	font-size:13.0pt; 	font-family:Arial;} span.Heading3Char 	{mso-style-name:&quot;Heading 3 Char&quot;; 	mso-style-locked:yes; 	mso-style-link:&quot;Heading 3&quot;; 	mso-ansi-font-size:13.0pt; 	mso-bidi-font-size:13.0pt; 	font-family:Arial; 	mso-ascii-font-family:Arial; 	mso-hansi-font-family:Arial; 	mso-bidi-font-family:Arial; 	mso-ansi-language:EN-US; 	mso-fareast-language:EN-US; 	mso-bidi-language:AR-SA; 	font-weight:bold;} span.Heading2Char 	{mso-style-name:&quot;Heading 2 Char&quot;; 	mso-style-locked:yes; 	mso-style-link:&quot;Heading 2&quot;; 	mso-ansi-font-size:14.0pt; 	mso-bidi-font-size:14.0pt; 	font-family:Arial; 	mso-ascii-font-family:Arial; 	mso-hansi-font-family:Arial; 	mso-bidi-font-family:Arial; 	mso-ansi-language:EN-US; 	mso-fareast-language:EN-US; 	mso-bidi-language:AR-SA; 	font-weight:bold; 	font-style:italic;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.25in 1.0in 1.25in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:599030486; 	mso-list-type:hybrid; 	mso-list-template-ids:1668679600 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 	{mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in;} @list l1 	{mso-list-id:1709140561; 	mso-list-type:hybrid; 	mso-list-template-ids:-285332032 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l1:level1 	{mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in;} @list l2 	{mso-list-id:1734961406; 	mso-list-type:hybrid; 	mso-list-template-ids:860105592 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l2:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	font-family:Symbol;} ol 	{margin-bottom:0in;} ul 	{margin-bottom:0in;} --&gt; &lt;/style&gt;&lt;br /&gt;&lt;!--[endif]--&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;The web service is created and deployed in a remote server.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;In many cases this might be an external web service provided by a third party hosted outside your firewall. The client provides its callback mechanism as a web service and it is deployed locally. JMS queues are created in the local server for receiving the request and response messages.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;A JMS adaptor is created that exposes the request queue as a web service. Using JMS adaptor provides the following benefits:&lt;/p&gt;  &lt;ul style=&quot;margin-top: 0in;&quot; type=&quot;disc&quot;&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;The      client can communicate with the service using SOAP/HTTP(S) which is well      supported by most tools than the SOAP/JMS.&lt;/li&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;It      hides the dirty details of the JMS details from the web service client      developer.&lt;/li&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;&lt;span style=&quot;&quot;&gt; &lt;/span&gt;The web service client developer is using      the same protocol to access the service if he has to call the service      directly. (except for the return value)&lt;/li&gt;&lt;/ul&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;A JMS listener is created to monitor the request queue and invoke the actual web service using a SOAP adaptor.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;The response from the web service will be written to the response queue.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;The listener and the adaptor can be configured to retry the service invocation if the service is down.&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;Another JMS listener is created to monitor the response queue and invoke the callback web service using a SOAP adaptor.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;The listener and the adaptor can be configured to retry the service invocation if the callback service is down when the actual web service responded.&lt;/p&gt;  &lt;h2&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/h2&gt;  &lt;h2&gt;Benefits:&lt;/h2&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;This approach allows you to develop an asynchronous callback mechanism to your web service, even if the original service did not provide one.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;Most web services that are request/response provides only synchronous calling mechanism only.&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;It provides a way to decouple the dependency on the external web service without adding any custom client code.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;These days most application server vendors provide JMS and SOAP adaptor widgets that let you create these without having to write them yourself.&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;If you are using a web service that does not return and response back (one way request only), this approach can still work just be not creating the response queue and the related components (step 5 and beyond in the above diagram).&lt;/p&gt;  &lt;h2&gt;Limitation:&lt;/h2&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;This approach assumes that you have enterprise grade tools such as JMS/SOAP Adaptors in your production environment. &lt;span style=&quot;&quot;&gt;  &lt;/span&gt;If such tools are not available, you may have to create these adaptors yourself. &lt;span style=&quot;&quot;&gt; &lt;/span&gt;If you are developing them yourself, the time spent creating these generic services might be higher than adding failover logic to the application itself.&lt;/p&gt;  &lt;h2&gt;Creating the service &lt;/h2&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;The instructions assume you are using Oracle application server 10.1.3.x and jDeveloper 10.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;The exact steps will be different for other application server and IDEs. &lt;span style=&quot;&quot;&gt; &lt;/span&gt;Please note that these instructions assume that you are familiar with the above tools and does not provide step by step details of each widget. &lt;/p&gt;  &lt;ol style=&quot;margin-top: 0in;&quot; start=&quot;1&quot; type=&quot;1&quot;&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;Create      and deploy the ‘actual WebService. If the service is provided to you by a      third party you can skip this step.&lt;/li&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;Create      and deploy the web service response receiver web service to your local      server. &lt;span style=&quot;&quot;&gt; &lt;/span&gt;If you are creating only a      one way web service call you can skip this step. &lt;/li&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;Create      JMS queues for request and response queues.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;This can be done through the Enterprise      Manager application by navigating to &lt;your oc4j=&quot;&quot; instance=&quot;&quot;&gt; &lt;span style=&quot;font-family:Wingdings;&quot;&gt;&lt;span style=&quot;&quot;&gt;à&lt;/span&gt;&lt;/span&gt;      Administration &lt;span style=&quot;font-family:Wingdings;&quot;&gt;&lt;span style=&quot;&quot;&gt;à&lt;/span&gt;&lt;/span&gt; Enterprise Messaging      Service &lt;span style=&quot;font-family:Wingdings;&quot;&gt;&lt;span style=&quot;&quot;&gt;à&lt;/span&gt;&lt;/span&gt;      Create/delete/edit JMS destinations. &lt;span style=&quot;&quot;&gt; &lt;/span&gt;Since we are going through this exercise      to create a failover mechanism, I would suggest create these queues with      File/Database persistence.&lt;/your&gt;&lt;/li&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;Create      separate JMS Connection factories for each of these queues so we don’t get      in to any resource contentions.&lt;/li&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;Create      a new jDeveloper ESB project &lt;/li&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;Copy      the WSDL for step 1 and 2 in to the project so we can reuse the schema      elements.&lt;/li&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;Create      JMS adaptor for writing to the request queue (produce message). Check the      box that says “Invocable from external service”.&lt;/li&gt;&lt;/ol&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left: 0.5in;&quot;&gt;If you selected Oracle Enterprise Messaging Service in the adaptor configuration widget, select Produce Message as the operation type and specify a meaningful name (similar to the original service’s method name) for the operation.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;The WSDL exposed by this adaptor will be later used by the web service client. Select the request queue and the appropriate connection factory. Specify a large time out so if the external service is down, the message will not expire before the ESB exhausts all retry attempts. On the schema selection screen, select the message element that corresponds to the input message to the external web service from the WSDL.&lt;/p&gt;  &lt;ol style=&quot;margin-top: 0in;&quot; start=&quot;8&quot; type=&quot;1&quot;&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;Create      an ESB Soap service (Create ESB Service &lt;span style=&quot;font-family:Wingdings;&quot;&gt;&lt;span style=&quot;&quot;&gt;à&lt;/span&gt;&lt;/span&gt;      SOAP Service) and specify the WSDL for the actual web service.&lt;/li&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;Create      JMS adaptor for reading from the request queue (consume message). If you      selected Oracle Enterprise Messaging Service in the adaptor configuration      widget, select Consume Message as the operation type.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;Select the request queue and the      appropriate connection factory.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;On      the schema selection screen, select the message element that corresponds      to the input message to the external web service from the WSDL (schema and      queue names same as previous step).&lt;span style=&quot;&quot;&gt;       &lt;/span&gt;JDeveloper should have created the adaptor service icon and the      routing service.&lt;/li&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;Edit      the routing service by double clicking and add a routing rule. For the      consume message operation.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;Wire it      to point to the appropriate operation of the SOAP adaptor from step 8.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;Create a transformation map to map the      elements from the request to response. Also, you may want to make this      execution asynchronous. &lt;/li&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;Create      JMS adaptor for writing to the response queue (produce message).&lt;/li&gt;&lt;/ol&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left: 0.5in;&quot;&gt;If you selected Oracle Enterprise Messaging Service in the adaptor configuration widget, select Produce Message as the operation type. Select the response queue and the appropriate connection factory. Specify a large time out so if the callback service is down, the message will not expire before the ESB exhausts all retry attempts. On the schema selection screen, select the message element that corresponds to the input message to the callback web service from the WSDL (or the output message from the external web service).&lt;/p&gt;  &lt;ol style=&quot;margin-top: 0in;&quot; start=&quot;12&quot; type=&quot;1&quot;&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;Create      an ESB Soap service (Create ESB Service &lt;span style=&quot;font-family:Wingdings;&quot;&gt;&lt;span style=&quot;&quot;&gt;à&lt;/span&gt;&lt;/span&gt;      SOAP Service) and specify the WSDL for the callback web service.&lt;/li&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;Create      JMS adaptor for reading from the response queue (consume message). If you      selected Oracle Enterprise Messaging Service in the adaptor configuration      widget, select Consume Message as the operation type.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;Select the response queue and the      appropriate connection factory.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;On      the schema selection screen, select the message element that corresponds      to the input message to the callback web service from the WSDL.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;JDeveloper should have created the      adaptor service icon and the routing service.&lt;/li&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;Edit      the routing service by double clicking and add a routing rule. For the      consume message operation. &lt;span style=&quot;&quot;&gt; &lt;/span&gt;Wire it      to point to the appropriate operation of the SOAP adaptor from step 12.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;Create a transformation map to map the      elements from the request to response. Also, you may want to make this      execution asynchronous.&lt;/li&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;Edit      the routing service created in step 10, by double clicking and expand the      routing rule for the consume message operation.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;Wire the response message from the      service to point to the produce message operation of the JMS adaptor for      the response queue. Create a transformation map to map the elements from      the request to response. Also, you may want to make this execution      asynchronous. The following diagram represents the ESB diagram for a      project with these settings.&lt;/li&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmIvozofN3rOeEfFsEdsjqhyMzCoAVW-ccVPhDHS6F511jMkyWrB1azepFZqNwDB1C3OXCqDCLBSv18hyphenhyphenrBf97EYrbOVQXxEenras7D2cSSXpRILiiCsZLtOo9l587lXlV-MKAdsX-q6xG/s1600-h/internalwebserviceesbdiagram.gif&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 240px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmIvozofN3rOeEfFsEdsjqhyMzCoAVW-ccVPhDHS6F511jMkyWrB1azepFZqNwDB1C3OXCqDCLBSv18hyphenhyphenrBf97EYrbOVQXxEenras7D2cSSXpRILiiCsZLtOo9l587lXlV-MKAdsX-q6xG/s320/internalwebserviceesbdiagram.gif&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5382466535373806418&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;Deploy/Register      the ESB project to the OC4J container. &lt;/li&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;Create      a web service proxy for the WSDL exposed in step 7. Invoke the service      using the generated proxy.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;If      everything went well you should notice the response came back through your      callback service. &lt;/li&gt;&lt;/ol&gt;  </description><link>http://blog.technogemsinc.com/2009/09/creating-asynchronous-webservice-that.html</link><author>noreply@blogger.com (jean)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqPT9Ymd4BxOH4GRyNvkQWd2k9C6V9bvrOWxYBDF4px5pN-l0MvrbxlwKrEgTF62jtRsUIpiedyDmGQ9PCT_tJ_5NUyB-b8DBOrdgWxMwDkIPwV8Jr9tlVnL13t2wo5pL7qA0Lk1fwKVXT/s72-c/internalwebserviceesbdiagram1.gif" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6873099295148794773.post-5534115261434192642</guid><pubDate>Tue, 21 Apr 2009 18:33:00 +0000</pubDate><atom:updated>2009-04-22T09:19:38.697-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">oas</category><category domain="http://www.blogger.com/atom/ns#">soa</category><category domain="http://www.blogger.com/atom/ns#">WSM</category><title>How to Change Oracle ORAWSM Database Password</title><description>If you are reading this you already know that the WSM uses the ORAWSM user in the infra database.  If you need to change the Oracle database password for the ORAWSM user, you would guess that you will may have to change the password in some configuration files for the webservices manager to use the new password.   However that process is not that simple.   Here are the steps you need to follow. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step 1: Change the password directly in the database.&lt;br /&gt;&lt;br /&gt;Login as sysdba and change the password of orawsm.&lt;br /&gt;&lt;br /&gt;Step 2: Change the password in WSM configuration files&lt;br /&gt;Reffer to steps described in the following url.  (Content copied here for your reference.)&lt;br /&gt;http://download.oracle.com/docs/cd/B31017_01/integrate.1013/b31007.pdf (appendix C - Changing Passwords) &lt;br /&gt;&lt;br /&gt;The following procedure describes how to change a database password for a single instance of an Oracle WSM Database.&lt;br /&gt;To change a password for a single database instance&lt;br /&gt;1. Edit the attribute db.password in the ORACLE_HOME/owsm/bin/coresv.properties file.&lt;br /&gt;2. From the command prompt, execute the following command:&lt;br /&gt;wsmadmin encodePasswords coresv.properties dataload.messagelog.db.password&lt;br /&gt;3. From the command prompt, execute the wsmadmin copyDBConfig command:&lt;br /&gt;wsmadmin copyDBConfig&lt;br /&gt;4. From the command prompt, execute the wsmadmin deploy command: &lt;br /&gt;wsmadmin deploy application_server_password component&lt;br /&gt;See Appendix B, &quot;Oracle Web Services Manager WSMADMIN Commands&quot; for more information.&lt;br /&gt;&lt;br /&gt;The following procedure describes how to change your database password when you have multiple instances of Oracle WSM Database.&lt;br /&gt;&lt;br /&gt;To update and reconcile a password for multiple database instances&lt;br /&gt;1. Update the relevant attribute in the application properties file for each application.&lt;br /&gt;These are located under ORACLE_HOME/owsm/config/application_name.&lt;br /&gt;2. Update and reconcile the passwords for all the database instances.&lt;br /&gt;3. From the command prompt, execute the wsmadmin encodePassword command&lt;br /&gt;for each affected file:&lt;br /&gt;wsmadmin encodePasswords path_to_file properties&lt;br /&gt;4. From the command prompt, execute the wsmadmin deploy command:&lt;br /&gt;wsmadmin deploy application_server_password component&lt;br /&gt;See Appendix B, &quot;Oracle Web Services Manager WSMADMIN Commands&quot; for more&lt;br /&gt;information.&lt;br /&gt;&lt;br /&gt;Step 3: Change the password in the policy configuration for each gateway defined.  &lt;br /&gt;&lt;br /&gt;For each gateway and agent in your system, there is a property - cfluent.messagelog.db.password - which has to be manually changed to the correct password value for your OWSM schema, as it is left unaffected by the redeployment of the OWSM applications. &lt;br /&gt;This is handled through the OWSM console by accessing the properties screen for each gateway and agent (Policy Management &gt; Manage Policies &gt; Edit Component Properties).&lt;br /&gt;The password that you enter should be the actual password with no encryption.  The value will be encrypted before it is stored in to the orawsm.policy_manager_objects  table.</description><link>http://blog.technogemsinc.com/2009/04/how-to-change-oracle-orawsm-database.html</link><author>noreply@blogger.com (jean)</author><thr:total>3</thr:total></item></channel></rss>