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

<channel>
	<title>Bairdblog</title>
	<atom:link href="http://bairdblog.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://bairdblog.wordpress.com</link>
	<description></description>
	<lastBuildDate>Sat, 22 Oct 2011 07:47:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='bairdblog.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Bairdblog</title>
		<link>http://bairdblog.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://bairdblog.wordpress.com/osd.xml" title="Bairdblog" />
	<atom:link rel='hub' href='http://bairdblog.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Using Liferay (6.0.x) Service Builder with External Databases</title>
		<link>http://bairdblog.wordpress.com/2011/02/11/using-liferay-6-0-x-service-builder-with-external-databases/</link>
		<comments>http://bairdblog.wordpress.com/2011/02/11/using-liferay-6-0-x-service-builder-with-external-databases/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 04:02:52 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[liferay]]></category>
		<category><![CDATA[service builder]]></category>

		<guid isPermaLink="false">http://bairdblog.wordpress.com/?p=111</guid>
		<description><![CDATA[If you are looking to create a portlet that accesses a non-liferay database, follow these instructions. I am using the Liferay 6.0.x Tomcat bundle with the eclipse ide plugin to create a portlet that accesses a db2 database. The main lportal database is living in mysql. My service.xml file looks like this: &#60;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&#62; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bairdblog.wordpress.com&amp;blog=652819&amp;post=111&amp;subd=bairdblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you are looking to create a portlet that accesses a non-liferay database, follow these instructions.  I am using the Liferay 6.0.x Tomcat bundle with the eclipse ide plugin to create a portlet that accesses a db2 database.  The main lportal database is living in mysql.</p>
<p>My service.xml file looks like this:</p>
<p style="padding-left:30px;">&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;<br />
&lt;!DOCTYPE service-builder PUBLIC &#8220;-//Liferay//DTD Service Builder 6.0.0//EN&#8221; &#8220;http://www.liferay.com/dtd/liferay-service-builder_6_0_0.dtd&#8221;&gt;<br />
&lt;service-builder package-path=&#8221;com.aonhewitt.benit.gmc.services&#8221;&gt;<br />
&lt;author&gt;Rtbaird&lt;/author&gt;<br />
&lt;namespace&gt;mynamespace&lt;/namespace&gt;<br />
&lt;entity name=&#8221;MailboxItem&#8221; local-service=&#8221;true&#8221; remote-service=&#8221;false&#8221; data-source=&#8221;zzzDataSource&#8221; table=&#8221;mailboxitem&#8221;&gt;<br />
&lt;column name=&#8221;mailboxitemid&#8221; type=&#8221;String&#8221; primary=&#8221;true&#8221; /&gt;<br />
&lt;column name=&#8221;mailboxid&#8221; type=&#8221;String&#8221; /&gt;<br />
&lt;column name=&#8221;publicationdate&#8221; type=&#8221;Date&#8221; /&gt;<br />
&lt;column name=&#8221;docdesc&#8221; type=&#8221;String&#8221; /&gt;<br />
&lt;order by=&#8221;asc&#8221;&gt;<br />
&lt;order-column name=&#8221;publicationdate&#8221; /&gt;<br />
&lt;/order&gt;<br />
&lt;finder name=&#8221;MailboxId&#8221; return-type=&#8221;Collection&#8221; &gt;<br />
&lt;finder-column name=&#8221;mailboxid&#8221; /&gt;<br />
&lt;/finder&gt;<br />
&lt;/entity&gt;<br />
&lt;/service-builder&gt;</p>
<p>The key here is the data-source attribute on the entity.  I will need to define this datasource in spring files.  Once you run the service builder, take a look at the service.properties file generated in your source directory.  You&#8217;ll see references to all the spring-configs files which includes an extension file listed at the end for WEB-INF/classes/META-INF/ext-spring.xml.  This is where you will put your spring file overrides.  You&#8217;ll need to define your data source here as well as override the hibernate session bean.</p>
<p style="padding-left:30px;">&lt;bean&gt;<br />
&lt;property name=&#8221;location&#8221;&gt;<br />
&lt;value&gt;/WEB-INF/jdbc.properties&lt;/value&gt;<br />
&lt;/property&gt;<br />
&lt;property name=&#8221;placeholderPrefix&#8221; value=&#8221;${jdbc.&#8221; /&gt;<br />
&lt;/bean&gt;<br />
&lt;bean id=&#8221;zzzDataSource&#8221;&gt;<br />
&lt;property name=&#8221;driverClassName&#8221; value=&#8221;${jdbc.xxx.driverClassName}&#8221; /&gt;<br />
&lt;property name=&#8221;url&#8221; value=&#8221;${jdbc.xxx.url}&#8221; /&gt;<br />
&lt;property name=&#8221;username&#8221; value=&#8221;${jdbc.xxx.username}&#8221; /&gt;<br />
&lt;property name=&#8221;password&#8221; value=&#8221;${jdbc.xxx.password}&#8221; /&gt;<br />
&lt;/bean&gt;<br />
&lt;bean id=&#8221;liferayHibernateSessionFactory&#8221; class=&#8221;com.liferay.portal.spring.hibernate.PortletHibernateConfiguration&#8221;&gt;<br />
&lt;property name=&#8221;dataSource&#8221; ref=&#8221;zzzDataSource&#8221; /&gt;<br />
&lt;/bean&gt;</p>
<p>Here I&#8217;ve defined a property placeholder which allows you to specify the jdbc properties in a file called jdbc.properties.  This file should be created in the WEB-INF directory and look like this.  Notice &#8220;jdbc&#8221; was left off (since the property placeholder defined the prefix):</p>
<p style="padding-left:30px;">xxx.driverClassName=com.ibm.db2.jcc.DB2Driver<br />
xxx.url=jdbc:db2:///SCHEMA<br />
xxx.username=username<br />
xxx.password=password<br />
xxx.defaultAutoCommit=false</p>
<p>Now you&#8217;ve defined the datasource, defined the database connection properties, and overrode the hibernateSessionFactory to use this data source (main session factory definition is in the hibernate-spring.xml file).</p>
<p>So to recap:</p>
<ul>
<li>service.xml defines your service and what datasource to use for a given entity/table</li>
<li>[run service builder]</li>
<li>service.properties defines your spring override file &#8211; you shouldn&#8217;t need to change this</li>
<li>ext-spring.xml (you need to create) defines the spring overrides including the hibernateSessionFactory, datasource bean, and property placeholder bean</li>
<li>jdbc.properties defines the database connection properties</li>
</ul>
<p>After publishing my portlet to Tomcat, it is pulling data from an external DB2 database.  Notice I&#8217;ve said nothing about creating a datasource inside of Tomcat itself for this database connection.  As surprising as that is, it doesn&#8217;t seem to be needed.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bairdblog.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bairdblog.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bairdblog.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bairdblog.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bairdblog.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bairdblog.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bairdblog.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bairdblog.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bairdblog.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bairdblog.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bairdblog.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bairdblog.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bairdblog.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bairdblog.wordpress.com/111/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bairdblog.wordpress.com&amp;blog=652819&amp;post=111&amp;subd=bairdblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bairdblog.wordpress.com/2011/02/11/using-liferay-6-0-x-service-builder-with-external-databases/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/06d90b0d13691129238192eb82771f4d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neo</media:title>
		</media:content>
	</item>
		<item>
		<title>Websphere 7.0 Server Side SSL Tracing</title>
		<link>http://bairdblog.wordpress.com/2011/01/24/websphere-7-0-server-side-ssl-tracing/</link>
		<comments>http://bairdblog.wordpress.com/2011/01/24/websphere-7-0-server-side-ssl-tracing/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 02:32:46 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://bairdblog.wordpress.com/?p=101</guid>
		<description><![CDATA[If you need to capture SSL trace information when making an HTTPS call from your web application running under Websphere 7, add a jvm -D property for javax.net.debug with a value of ssl and any other additional tracing levels as defined in the link below. For example: -Djavax.net.debug=ssl,handshake,data,trustmanager Refer to this link: JSSE Reference Guide [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bairdblog.wordpress.com&amp;blog=652819&amp;post=101&amp;subd=bairdblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you need to capture SSL trace information when making an HTTPS call from your web application running under Websphere 7, add a jvm -D property for javax.net.debug with a value of ssl and any other additional tracing levels as defined in the link below.  For example:</p>
<p>-Djavax.net.debug=ssl,handshake,data,trustmanager</p>
<p>Refer to this link:<br />
<a href="http://download.oracle.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html#Debug">JSSE Reference Guide</a></p>
<p>This will allow you to see trust store information, certificate chaining details and other information that should help you debug issues with making https calls from your server.  If you are trying to connect to a web server that has a self-signed certificate, you&#8217;ll need the signer cert added to the \java\jre\lib\security\cacerts keystore within the Websphere install directory.  Note &#8211; the default password for keystores is &#8220;changeit&#8221;.</p>
<p>Here&#8217;s an example of the output from the tracing.  You can see the trace tells you the location of the cacerts file used for cert lookup:</p>
<p>[1/23/11 20:23:32:578 CST] 00000023 SystemOut     O setting up default SSLSocketFactory<br />
[1/23/11 20:23:32:578 CST] 00000023 SystemOut     O class com.ibm.jsse2.SSLSocketFactoryImpl is loaded<br />
[1/23/11 20:23:32:593 CST] 00000023 SystemOut     O Installed Providers =<br />
[1/23/11 20:23:32:593 CST] 00000023 SystemOut     O 	IBMJCE<br />
[1/23/11 20:23:32:593 CST] 00000023 SystemOut     O 	BC<br />
[1/23/11 20:23:32:593 CST] 00000023 SystemOut     O 	IBMJSSE<br />
[1/23/11 20:23:32:593 CST] 00000023 SystemOut     O 	IBMJSSE2<br />
[1/23/11 20:23:32:593 CST] 00000023 SystemOut     O 	IBMJGSSProvider<br />
[1/23/11 20:23:32:593 CST] 00000023 SystemOut     O 	IBMCertPath<br />
[1/23/11 20:23:32:593 CST] 00000023 SystemOut     O 	IBMPKCS11Impl<br />
[1/23/11 20:23:32:593 CST] 00000023 SystemOut     O 	IBMCMSProvider<br />
[1/23/11 20:23:32:593 CST] 00000023 SystemOut     O 	IBMSPNEGO<br />
[1/23/11 20:23:32:593 CST] 00000023 SystemOut     O 	IBMSASL<br />
[1/23/11 20:23:32:593 CST] 00000023 SystemOut     O 	IBMXMLCRYPTO<br />
[1/23/11 20:23:32:593 CST] 00000023 SystemOut     O 	IBMXMLEnc<br />
[1/23/11 20:23:32:593 CST] 00000023 SystemOut     O 	Policy<br />
<strong>[1/23/11 20:23:32:593 CST] 00000023 SystemOut     O keyStore is: C:\Program Files\IBM\SDP75\runtimes\base_v7\java\jre\lib\security\cacerts</strong><br />
[1/23/11 20:23:32:593 CST] 00000023 SystemOut     O keyStore type is: jks<br />
[1/23/11 20:23:32:593 CST] 00000023 SystemOut     O keyStore provider is:<br />
[1/23/11 20:23:32:593 CST] 00000023 SystemOut     O init keystore<br />
[1/23/11 20:23:32:640 CST] 00000023 SystemOut     O init keymanager of type IbmX509<br />
[1/23/11 20:23:32:640 CST] 00000023 SystemOut     O trustStore is: C:\Program Files\IBM\SDP75\runtimes\base_v7\java\jre\lib\security\cacerts<br />
[1/23/11 20:23:32:640 CST] 00000023 SystemOut     O trustStore type is: jks<br />
[1/23/11 20:23:32:640 CST] 00000023 SystemOut     O trustStore provider is:<br />
[1/23/11 20:23:32:640 CST] 00000023 SystemOut     O init truststore<br />
[1/23/11 20:23:32:656 CST] 00000023 SystemOut     O adding as trusted cert:<br />
[1/23/11 20:23:32:656 CST] 00000023 SystemOut     O   Subject: CN=Certum Trusted Network CA, OU=Certum Certification Authority, O=Unizeto Technologies S.A., C=PL<br />
[1/23/11 20:23:32:656 CST] 00000023 SystemOut     O   Issuer:  CN=Certum Trusted Network CA, OU=Certum Certification Authority, O=Unizeto Technologies S.A., C=PL<br />
[1/23/11 20:23:32:656 CST] 00000023 SystemOut     O   Algorithm: RSA; Serial number: 0x444c0<br />
[1/23/11 20:23:32:656 CST] 00000023 SystemOut     O   Valid from Wed Oct 22 12:07:37 GMT 2008 until Mon Dec 31 12:07:37 GMT 2029</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bairdblog.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bairdblog.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bairdblog.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bairdblog.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bairdblog.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bairdblog.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bairdblog.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bairdblog.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bairdblog.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bairdblog.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bairdblog.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bairdblog.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bairdblog.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bairdblog.wordpress.com/101/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bairdblog.wordpress.com&amp;blog=652819&amp;post=101&amp;subd=bairdblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bairdblog.wordpress.com/2011/01/24/websphere-7-0-server-side-ssl-tracing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/06d90b0d13691129238192eb82771f4d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neo</media:title>
		</media:content>
	</item>
		<item>
		<title>Naperville Turkey Trot 2010</title>
		<link>http://bairdblog.wordpress.com/2010/11/29/naperville-turkey-trot/</link>
		<comments>http://bairdblog.wordpress.com/2010/11/29/naperville-turkey-trot/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 04:28:07 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://bairdblog.wordpress.com/?p=76</guid>
		<description><![CDATA[We ran the Turkey Trot in Naperville on Thanksgiving day. First time ever for any of us running a 5K. No training, no working out prior. Just get up at 7am and run. It was a little cold and wet, but wasn&#8217;t raining when we ran. I couldn&#8217;t believe how great the boys did. It [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bairdblog.wordpress.com&amp;blog=652819&amp;post=76&amp;subd=bairdblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We ran the Turkey Trot in Naperville on Thanksgiving day.  First time ever for any of us running a 5K.  No training, no working out prior.  Just get up at 7am and run.  It was a little cold and wet, but wasn&#8217;t raining when we ran.  I couldn&#8217;t believe how great the boys did.  It just seemed so effortless for them, especially when afterwords they said it wasn&#8217;t that hard.  I&#8217;d love to see them actually push themselves the whole race!  Out of 105 kids in the 1-9 age group, Braden was 18th, Logan was 24th and Jake was 25th.  There were 7000 people running total.</p>
<p>
Results:</p>
<table border="1">
<tr>
<td width="50">Braden</td>
<td>29:27</td>
<tr>
<tr>
<td>Bob</td>
<td>30:22</td>
<tr>
<tr>
<td>Logan</td>
<td>30:23</td>
<tr>
<tr>
<td>Jake</td>
<td>30:32</td>
<tr>
<tr>
<td>Tasha</td>
<td>30:32</td>
<tr>
</table></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bairdblog.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bairdblog.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bairdblog.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bairdblog.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bairdblog.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bairdblog.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bairdblog.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bairdblog.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bairdblog.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bairdblog.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bairdblog.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bairdblog.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bairdblog.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bairdblog.wordpress.com/76/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bairdblog.wordpress.com&amp;blog=652819&amp;post=76&amp;subd=bairdblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bairdblog.wordpress.com/2010/11/29/naperville-turkey-trot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/06d90b0d13691129238192eb82771f4d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neo</media:title>
		</media:content>
	</item>
		<item>
		<title>Migrating to Websphere 7.0 &#8211; Part 2</title>
		<link>http://bairdblog.wordpress.com/2010/03/24/migrating-to-websphere-7-0-part-2/</link>
		<comments>http://bairdblog.wordpress.com/2010/03/24/migrating-to-websphere-7-0-part-2/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 15:16:44 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://bairdblog.wordpress.com/?p=64</guid>
		<description><![CDATA[I&#8217;ve received a couple questions regarding the overall process/steps to follow to migrate.  Hopefully this will help clarify the overall process one should follow to get your apps running on Websphere 7.0. First, review this developerworks migration guide.  It covers most of what you&#8217;ll need to do. I&#8217;ll supplement this with calling out the following [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bairdblog.wordpress.com&amp;blog=652819&amp;post=64&amp;subd=bairdblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve received a couple questions regarding the overall process/steps to follow to migrate.  Hopefully this will help clarify the overall process one should follow to get your apps running on Websphere 7.0.</p>
<p>First, review this <a href="http://www.ibm.com/developerworks/websphere/library/techarticles/0812_luchini/0812_luchini.html?S_TACT=105AGX01&amp;S_CMP=HP" target="_blank">developerworks migration guide</a>.  It covers most of what you&#8217;ll need to do.</p>
<p>I&#8217;ll supplement this with calling out the following steps specifically:</p>
<ol>
<li>If you&#8217;re using WSAD/RAD as your IDE, you&#8217;ll need to migrate your J2EE projects.  There is a migration guide within  RAD 7.5.  Read it, make sure you understand it, and follow it.</li>
<li>Understand what <a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/rovr_specs.html" target="_blank">specifications</a> are supported by WAS7. A big difference is JDK 1.6 for example.</li>
<li>Read and understand the specs you are using.  If you have a basic web app, understand the servlet spec.  If you use EJBs, read the EJB spec.  JMS?  Same.  A basic understand of how a servlet or jsp works is not a replacement for understanding the entire specification.  There are many details that should be understood beyond the basics, if nothing else for educational purposes.  If you don&#8217;t understand the &#8220;rules&#8221;, it&#8217;s hard to play the game.</li>
<li>Understand your application.  This refers to what pieces of the J2EE specification your application uses, and if you are doing anything in your application that isn&#8217;t supported by the specification(s).  I ran into this with creating threads to process work in parallel.  I&#8217;ve posted details below.  This will help you identify what areas of your application you need to change.  If you follow the specs, deploying is much easier.</li>
<li>Understand your dependencies.  For example, if you rely on a specific version of some open source libraries, make sure they are supported by JDK 1.6.  Some libraries (bouncycastle for example) have different versions depending on the JDK you&#8217;re using.</li>
<li>Redesign/code anything you need to change per the specs.  Rebuild your app using JDK 1.6.</li>
<li>If you are using RAD, create and configure a local test server.  If you are not, download, install, and setup <a href="http://www.ibm.com/developerworks/downloads/ws/wasdevelopers/" target="_blank">Websphere Developers Edition</a>.</li>
<li>Deploy your app to the server</li>
<li>Thoroughly test every part of your application.  If your app is complex, the odds are good you&#8217;ll have missed something.  The only way to ensure it works is to run it.</li>
</ol>
<p>One thing I ran into mentioned above was an issue related to creating our own threads to process work in parallel, or fire off background processes to load data the application uses.  The servlet spec prohibits applications from creating their own threads and accessing JNDI resources.  Websphere 6 (and prior) allows this.  Websphere 7 now enforces it, so some of our processes would fail because the threads performing work (JDBC calls for example) weren&#8217;t managed by websphere. Here&#8217;s the exception:</p>
<blockquote><p>[3/22/10 10:18:51:968 CDT] 00000034 SystemOut     O javax.naming.ConfigurationException: A JNDI operation on a &#8220;java:&#8221; name cannot be completed because the server runtime is not able to associate the operation&#8217;s thread with any J2EE application component.  This condition can occur when the JNDI client using the &#8220;java:&#8221; name is not executed on the thread of a server application request.  Make sure that a J2EE application does not execute JNDI operations on &#8220;java:&#8221; names within static code blocks or in threads created by that J2EE application.  Such code does not necessarily run on the thread of a server application request and therefore is not supported by JNDI operations on &#8220;java:&#8221; names. [Root exception is javax.naming.NameNotFoundException: Name comp/env/jdbc not found in context "java:".]</p></blockquote>
<p>Websphere allows you to process parallel work by using it&#8217;s Asynchronous Beans facility.  To get our app to work, we created a <a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/asyncbns/concepts/casb_workmgr.html" target="_blank">work manager</a> utility class to manage the threaded work within the container&#8217;s context.  Instead of calling Thread.start(), call MyWorkManager.start(&lt;runnable&gt;,).  This will submit the runnable work to the Websphere work manager for execution on a separate thread pool thread.  That work manager will need to be configured in the Websphere admin console.  Here&#8217;s the code for our utility class:<br />
<code>import javax.naming.InitialContext;<br />
import com.ibm.websphere.asynchbeans.Work;<br />
import com.ibm.websphere.asynchbeans.WorkItem;<br />
import com.ibm.websphere.asynchbeans.WorkManager;</code></p>
<p>public class MyWorkManager<br />
{<br />
/**<br />
* static reference to work manager<br />
*/<br />
private static WorkManager sManager = null;</p>
<p>/**<br />
* Indicator for initialized<br />
*/<br />
private static boolean sInitialized = false;</p>
<p>/**<br />
* Only public entity. Send Thread/Runnable to this method to launch<br />
*<br />
* @param aRunnable Thread to run<br />
* @throws Exception<br />
*/<br />
public static void start(Runnable aRunnable) throws Exception<br />
{<br />
new MyWorkManager(aRunnable, false);<br />
}</p>
<p>public static void start(Runnable aRunnable, boolean isDaemon) throws Exception<br />
{<br />
new MyWorkManager(aRunnable, isDaemon);<br />
}</p>
<p>/**<br />
* Returns/initialized reference to WorkManager<br />
*<br />
* @return WorkManager<br />
*/<br />
private static WorkManager getWorkManager()<br />
{<br />
if ( sInitialized == false )<br />
{<br />
sInitialized = true;<br />
if(sManager == null)<br />
{<br />
try<br />
{<br />
InitialContext ctx = new InitialContext();<br />
String jndiName = &#8220;wm/myworkmanager&#8221;;<br />
if ( jndiName != null &amp;&amp; jndiName.length() &gt; 0 )<br />
{<br />
sManager = (WorkManager)ctx.lookup(jndiName);<br />
}<br />
else<br />
{<br />
//log error<br />
}<br />
}<br />
catch(Exception ex)<br />
{<br />
throw ex;<br />
}<br />
}<br />
}<br />
return sManager;<br />
}</p>
<p>/**<br />
* Private constructor. Calling this starts the thread in the appropriate manner<br />
*<br />
* @param aRunnable<br />
* @throws Exception<br />
*/<br />
private MyWorkManager(Runnable aRunnable, boolean isDaemon) throws Exception<br />
{<br />
WorkManager wm = getWorkManager();<br />
if ( wm != null )<br />
{<br />
ThreadWorker tw = new ThreadWorker(aRunnable);<br />
WorkItem wi = wm.startWork(tw, isDaemon);<br />
}<br />
else<br />
{<br />
throw new Exception(&#8220;Unable to retrieve WorkManager&#8221;);<br />
}</p>
<p>}</p>
<p>/**<br />
* Work wrapper for the underlying Runnable thread<br />
*<br />
*/<br />
public class ThreadWorker implements Work<br />
{<br />
/**<br />
*  Reference to Runnable object<br />
*/<br />
private Runnable mChild;</p>
<p>/**<br />
* Constructor<br />
*<br />
* @param aRunnable Runnable object<br />
*/<br />
public ThreadWorker(Runnable aRunnable)<br />
{<br />
mChild = aRunnable;<br />
}</p>
<p>/* (non-Javadoc)<br />
* @see javax.resource.spi.work.Work#release()<br />
*/<br />
public void release()<br />
{</p>
<p>}</p>
<p>/* (non-Javadoc)<br />
* @see java.lang.Runnable#run()<br />
*/<br />
public void run()<br />
{<br />
if ( mChild != null )<br />
{<br />
mChild.run();<br />
}<br />
}</p>
<p>};<br />
}</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bairdblog.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bairdblog.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bairdblog.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bairdblog.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bairdblog.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bairdblog.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bairdblog.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bairdblog.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bairdblog.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bairdblog.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bairdblog.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bairdblog.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bairdblog.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bairdblog.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bairdblog.wordpress.com&amp;blog=652819&amp;post=64&amp;subd=bairdblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bairdblog.wordpress.com/2010/03/24/migrating-to-websphere-7-0-part-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/06d90b0d13691129238192eb82771f4d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neo</media:title>
		</media:content>
	</item>
		<item>
		<title>Migrating from Websphere 6.0 to Websphere 7.0</title>
		<link>http://bairdblog.wordpress.com/2009/11/20/migrating-from-websphere-6-0-to-websphere-7-0/</link>
		<comments>http://bairdblog.wordpress.com/2009/11/20/migrating-from-websphere-6-0-to-websphere-7-0/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 04:00:54 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://bairdblog.wordpress.com/?p=53</guid>
		<description><![CDATA[The application I manage at work is a client/server application written entirely in java.  My company for years has been an IBM shop, so we have a large Websphere presence which is where the server is deployed.  The application had been running on Websphere 5.1 for a few years and was fairly recently migrated to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bairdblog.wordpress.com&amp;blog=652819&amp;post=53&amp;subd=bairdblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The application I manage at work is a client/server application written entirely in java.  My company for years has been an IBM shop, so we have a large Websphere presence which is where the server is deployed.  The application had been running on Websphere 5.1 for a few years and was fairly recently migrated to Websphere 6.0 to remain on a supported version of Websphere.  Because the end of life for Websphere 6.0 is September 2010, we&#8217;re starting to plan for another upgrade now (we have major releases in January and June, so we&#8217;re targeting the June &#8217;10 release for the upgrade).  Websphere 6.1, if IBM holds to it&#8217;s pattern of every 2 years or so will remain supported until September 2012, however there&#8217;s no current end of life date documented yet (<a title="IBM Software Support" href="http://www-01.ibm.com/software/websphere/support/lifecycle/" target="_blank">link</a>).  To get the longest life possible, I&#8217;m looking at Websphere 7.0 as the target platform for our June &#8217;10 upgrade.</p>
<p>We have RAD 7.5 in house and a couple members of my team have installed it.  I&#8217;ve been working on getting a local WAS 7.0 server up and running and getting our app deployed on it.  There are some major differences between Websphere 5.1/6.0 and 7.0.  I won&#8217;t go into details as those are readily available on IBM&#8217;s website, but would like to share some of my observations and pain so far.</p>
<p><strong>Application Background: </strong>The server side of our application is effectively broken down into 2 pieces.  One component is what we call a provision server that is essentially a cache of configuration data read from DB2.  This configuration information contains rules which drive how the second component operates.  The second component is the main workhorse app which receives a request, and creates a response based on configuration data retrieved from the provision server (if necessary) and data retrieved from any number of other applications we interface with.  We have 2 provision server jvms for load balancing and fail over and roughly 20 app engine jvms spread across 2 data centers (the app engine hosts roughly 3500 end users and we target 200 users per jvm&#8230;roughly).</p>
<p><strong>Unsolved Problem 1 &#8211; Remote EJB calls across separate local jvm/profiles doesn&#8217;t work: </strong>Now that you have a high level view of our applications architecture, here&#8217;s my first dilema which I haven&#8217;t found a solution to.  Websphere now has the concept of <a title="Profiles" href="http://www.google.com/search?q=websphere+profiles" target="_blank">profiles</a>.  Basically a profile equates to a jvm instance.  It&#8217;s a little more than that, but that&#8217;s a good enough understanding for now.  So if you want 2 distinct/separate JVMs configured differently, you would need to create 2 profiles and create servers associated with each profile.  In all our lifecycles, we have distinct jvms setup for provision and app engine &#8211; we don&#8217;t cluster the app engine with the provision server because we want our dev/test lifecycles to mirror production, and production is separate because we don&#8217;t want a 1:1 correlation of provision server to app engine as the provision server is memory intensive and 2 jvms can handle the entire app engine load very effectively.  So I want to replicate that with my RAD 7.5 setup &#8211; 1 app engine jvm and 1 provision server jvm running locally within RAD 7.5.  That requires 2 separate profiles to be created, then a server defined and associated for each one.  No problem.  Where I run into problems is at runtime.  The app engine makes remote (cross-jvm) EJB calls to the provision server.  That requires a JNDI lookup of an EJB remote home object.  For some reason, jvm 1 cannot see any JNDI objects that are stored in jvm 2.  When I do an initial context and dump out the contents, all I ever get are the local JVM&#8217;s name server items.  But if I point the local server at one of our test lifecycle provision servers, it sees those just fine.  I have no idea why 1 local jvm can&#8217;t access another local jvm&#8217;s name server.  I&#8217;m not sure if it&#8217;s because of the base version of Websphere that&#8217;s running, or some other limitation of the development environment, but that is one hurdle I can&#8217;t get over.  So my workaround is to just deploy the provision server and app engine in the same jvm as local ejb calls work just fine.</p>
<p><strong>Solved Problem 2 &#8211; creating a secure socket for an outbound ssl SOAP request: </strong>The app engine is a portal of sorts.  It will call any number of external systems to retrieve data and aggregate that data as needed based on the request.  There are several system we currently interface and several protocols we use to do so&#8230;SOAP over SSL, EJB, JDBD for example.  We use apache soap (old, but still works) to call several external systems, one of which is the main system we interface with.  In Websphere 5.1 and 6.0, we set our own JKS truststore for the request using the javax.net.ssl.truststore property.  This truststore contains the SSL certificates of our target URL.  It just worked.  Now we move to Websphere 7.0 and the same requests which work in a local WAS 6.o server no longer work.  After much digging and reading of documentation, it turns out WAS 6.1 (and 7.0) changed how SSL security was handled.  Long story short, when WAS sees a secure socket being created, it assumes responsibility for securing that connection (Big Brother?) instead of letting you do your own thing.  Now, there are ways around it, but the point is it is NOT backwards compatible.  The quick fix for this was to put the SSL certs in Websphere&#8217;s default truststore (go to the admin console, under security and then ssl configuration and you can find a whole bunch of related config).  There are several articles on this and I highly recommend reading the Websphere Application Server V7.0  Security Guide for background on this.  It is extremely helpful.</p>
<p>These are 2 of the biggest pain points I&#8217;ve hit so far, but I have a ways to go before I can say the app is fully certified on Websphere 7.0.  If I run into any more issues, I&#8217;ll update this post.</p>
<p>Oh, and before I forget to mention, when migrating from RAD 6 to RAD 7+, don&#8217;t forget to MIGRATE your JEE projects.  There are project metadata differences between the 2 which aren&#8217;t compatible.  Found this out the hard way.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bairdblog.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bairdblog.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bairdblog.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bairdblog.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bairdblog.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bairdblog.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bairdblog.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bairdblog.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bairdblog.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bairdblog.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bairdblog.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bairdblog.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bairdblog.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bairdblog.wordpress.com/53/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bairdblog.wordpress.com&amp;blog=652819&amp;post=53&amp;subd=bairdblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bairdblog.wordpress.com/2009/11/20/migrating-from-websphere-6-0-to-websphere-7-0/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/06d90b0d13691129238192eb82771f4d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neo</media:title>
		</media:content>
	</item>
		<item>
		<title>2009 TCYFL American Division Runner Up</title>
		<link>http://bairdblog.wordpress.com/2009/11/19/2009-tcyfl-american-division-runner-up/</link>
		<comments>http://bairdblog.wordpress.com/2009/11/19/2009-tcyfl-american-division-runner-up/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 01:18:33 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://bairdblog.wordpress.com/?p=36</guid>
		<description><![CDATA[The 2009 Cary Jr Trojans season is over.  Last week was superbowl weekend.  4 out of 5 Cary bantam teams made the playoffs, and 3 out of those 4 made the superbowl.  Truly a fantastic group of 7 &#38; 8 year olds who should continue to be successful as they move through the levels and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bairdblog.wordpress.com&amp;blog=652819&amp;post=36&amp;subd=bairdblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The 2009 Cary Jr Trojans season is over.  Last week was superbowl weekend.  4 out of 5 Cary bantam teams made the playoffs, and 3 out of those 4 made the superbowl.  Truly a fantastic group of 7 &amp; 8 year olds who should continue to be successful as they move through the levels and into high school.  Some say the current Cary Grove high school team had the same success when they were bantams.  Let&#8217;s hope as a group our bantams can be just as successful.</p>
<p>Oh, guess which of the 3 teams lost?  Yeah, mine.  It was a heartbreaking loss.  We beat ourselves.  Mistakes, penalties, and a fumble on the 3 yard line.  We lost 0-7 to Woodstock.  I wouldn&#8217;t feel so bad if they dominated us, but we really should have won that game.  Our defense held their own again, with the only big play for Woodstock coming with our middle linebacker on the sidelines recovering from a hit.  11-1 is a fantastic season, but the loss is a bitter pill to swallow.  Only 7 months to wait for next season.
<a href='http://bairdblog.wordpress.com/2009/11/19/2009-tcyfl-american-division-runner-up/teamdivchamp-2/' title='Cary Bantam White'><img width="150" height="99" src="http://bairdblog.files.wordpress.com/2009/11/teamdivchamp1.jpg?w=150&#038;h=99" class="attachment-thumbnail" alt="2009 TCYFL Pac 10 American Wilson Division Champions" title="Cary Bantam White" /></a>
<a href='http://bairdblog.wordpress.com/2009/11/19/2009-tcyfl-american-division-runner-up/bobboysdivchamp/' title='Division Champs'><img width="150" height="100" src="http://bairdblog.files.wordpress.com/2009/11/bobboysdivchamp.jpg?w=150&#038;h=100" class="attachment-thumbnail" alt="The Boys and Their Trophy" title="Division Champs" /></a>
</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bairdblog.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bairdblog.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bairdblog.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bairdblog.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bairdblog.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bairdblog.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bairdblog.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bairdblog.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bairdblog.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bairdblog.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bairdblog.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bairdblog.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bairdblog.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bairdblog.wordpress.com/36/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bairdblog.wordpress.com&amp;blog=652819&amp;post=36&amp;subd=bairdblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bairdblog.wordpress.com/2009/11/19/2009-tcyfl-american-division-runner-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/06d90b0d13691129238192eb82771f4d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neo</media:title>
		</media:content>

		<media:content url="http://bairdblog.files.wordpress.com/2009/11/teamdivchamp1.jpg?w=150" medium="image">
			<media:title type="html">Cary Bantam White</media:title>
		</media:content>

		<media:content url="http://bairdblog.files.wordpress.com/2009/11/bobboysdivchamp.jpg?w=150" medium="image">
			<media:title type="html">Division Champs</media:title>
		</media:content>
	</item>
		<item>
		<title>Javascript to stop IE from closing</title>
		<link>http://bairdblog.wordpress.com/2008/07/22/javascript-to-stop-ie-from-closing/</link>
		<comments>http://bairdblog.wordpress.com/2008/07/22/javascript-to-stop-ie-from-closing/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 14:28:02 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://bairdblog.wordpress.com/?p=25</guid>
		<description><![CDATA[I have a project at work where we&#8217;re looking to present a user with an edit message if they&#8217;ve changed anything within a web page and haven&#8217;t saved the form before closing the page to stop them from losing changes.  The following example works with IE 6 (which is our corporate browser).  It does not [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bairdblog.wordpress.com&amp;blog=652819&amp;post=25&amp;subd=bairdblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have a project at work where we&#8217;re looking to present a user with an edit message if they&#8217;ve changed anything within a web page and haven&#8217;t saved the form before closing the page to stop them from losing changes.  The following example works with IE 6 (which is our corporate browser).  It does not seem to work with firefox, and I haven&#8217;t checked with any other browser since our need is isolated to IE.</p>
<blockquote><p>&lt;html&gt;<br />
&lt;body&gt;<br />
&lt;script type=&#8221;text/javascript&#8221;&gt;<br />
document.write(&#8220;Hello World!&#8221;);<br />
var needToConfirm = false;<br />
//Call this function if some changes is made to the web page and requires an alert<br />
//you could call this is Keypress event of a text box or so&#8230;<br />
function setDirtyFlag()<br />
{<br />
needToConfirm = true;<br />
}</p>
<p>//this could be called when save button is clicked<br />
function releaseDirtyFlag()<br />
{<br />
needToConfirm = false; //Call this function if dosent requires an alert.<br />
}<br />
window.onbeforeunload = confirmExit;<br />
function confirmExit()<br />
{<br />
if (needToConfirm)<br />
return &#8220;You have attempted to leave this page. If you have made any changes to the fields without clicking the Save button, your changes will be lost. Are you sure you want to exit this page?&#8221;;<br />
}<br />
&lt;/script&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</p></blockquote>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bairdblog.wordpress.com/25/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bairdblog.wordpress.com/25/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bairdblog.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bairdblog.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bairdblog.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bairdblog.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bairdblog.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bairdblog.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bairdblog.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bairdblog.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bairdblog.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bairdblog.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bairdblog.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bairdblog.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bairdblog.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bairdblog.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bairdblog.wordpress.com&amp;blog=652819&amp;post=25&amp;subd=bairdblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bairdblog.wordpress.com/2008/07/22/javascript-to-stop-ie-from-closing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/06d90b0d13691129238192eb82771f4d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neo</media:title>
		</media:content>
	</item>
		<item>
		<title>A&#8217;s Come From Behind to Win!</title>
		<link>http://bairdblog.wordpress.com/2008/04/27/as-come-from-behind-to-win/</link>
		<comments>http://bairdblog.wordpress.com/2008/04/27/as-come-from-behind-to-win/#comments</comments>
		<pubDate>Sun, 27 Apr 2008 02:39:27 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://bairdblog.wordpress.com/?p=23</guid>
		<description><![CDATA[The game was back and forth for a while. Then in the top of the last inning, the Braves scored 8 runs to go ahead 23-16. The A&#8217;s determined not to give up answered with 8 runs of their own to win the game.  It was a great come from behind victory to end an [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bairdblog.wordpress.com&amp;blog=652819&amp;post=23&amp;subd=bairdblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The game was back and forth for a while.  Then in the top of the last inning, the Braves scored 8 runs to go ahead 23-16.  The A&#8217;s determined not to give up answered with 8 runs of their own to win the game.   It was a great come from behind victory to end an exciting game.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bairdblog.wordpress.com/23/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bairdblog.wordpress.com/23/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bairdblog.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bairdblog.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bairdblog.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bairdblog.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bairdblog.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bairdblog.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bairdblog.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bairdblog.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bairdblog.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bairdblog.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bairdblog.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bairdblog.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bairdblog.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bairdblog.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bairdblog.wordpress.com&amp;blog=652819&amp;post=23&amp;subd=bairdblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bairdblog.wordpress.com/2008/04/27/as-come-from-behind-to-win/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/06d90b0d13691129238192eb82771f4d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neo</media:title>
		</media:content>
	</item>
		<item>
		<title>Chin vs. Toilet&#8230;Toilet Wins</title>
		<link>http://bairdblog.wordpress.com/2008/04/26/chin-vs-toilettoilet-wins/</link>
		<comments>http://bairdblog.wordpress.com/2008/04/26/chin-vs-toilettoilet-wins/#comments</comments>
		<pubDate>Sat, 26 Apr 2008 18:10:33 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://bairdblog.wordpress.com/?p=22</guid>
		<description><![CDATA[We&#8217;ve heard blood curling screams following a big loud crash enough from the boys that we don&#8217;t tend to overreact anymore, but something in the scream this morning sounded a little more convincing. All three boys have been wearing their brand new Crocs around the house which they tend to do when they get new [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bairdblog.wordpress.com&amp;blog=652819&amp;post=22&amp;subd=bairdblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve heard blood curling screams following a big loud crash enough from the boys that we don&#8217;t tend to overreact anymore, but something in the scream this morning sounded a little more convincing.  All three boys have been wearing their brand new Crocs around the house which they tend to do when they get new clothes or shoes.   Tooling around in nothing but underwear and Crocs is a sight to behold.</p>
<p>So we&#8217;re eating breakfast, and Jake gets up to go to the bathroom.  He takes off down the hall like he just broke through a gaping hole off-tackle and somewhere in between juking the wall and stiff-arming the door, his Croc stuck to the floor and he got tripped up and and landed chin first on top of the toilet.  Loud crash followed immediately by horrific scream.</p>
<p>I wish I took the picture anyway, but he wasn&#8217;t interested in documenting the gash for posterity.  It was the shape of a football and as deep a wound as I&#8217;ve ever seen.  I&#8217;m pretty sure I could see his chin bone through the blood.  After sending Braden and Logan to the neighbor&#8217;s to play, we took a trip to the emergency room.  An hour and a half and 9 stitches later, we&#8217;re back to getting ready for our baseball game.</p>
<p>This isn&#8217;t the first time we&#8217;ve had issues where running with Crocs on has produced a boy-on-floor scenario, but is the first time where a toilet got in the way.  I guess toilets are a lot like middle linebackers &#8211; you&#8217;re better off avoiding them than trying to take them head on.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bairdblog.wordpress.com/22/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bairdblog.wordpress.com/22/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bairdblog.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bairdblog.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bairdblog.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bairdblog.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bairdblog.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bairdblog.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bairdblog.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bairdblog.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bairdblog.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bairdblog.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bairdblog.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bairdblog.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bairdblog.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bairdblog.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bairdblog.wordpress.com&amp;blog=652819&amp;post=22&amp;subd=bairdblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bairdblog.wordpress.com/2008/04/26/chin-vs-toilettoilet-wins/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/06d90b0d13691129238192eb82771f4d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neo</media:title>
		</media:content>
	</item>
		<item>
		<title>Javamail SMTP over TLS using SSLv3</title>
		<link>http://bairdblog.wordpress.com/2008/04/14/javamail-smtp-over-sshtls/</link>
		<comments>http://bairdblog.wordpress.com/2008/04/14/javamail-smtp-over-sshtls/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 03:57:54 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://bairdblog.wordpress.com/?p=20</guid>
		<description><![CDATA[One of the projects I&#8217;m working on requires the securing of all the servers and transports used in a message flow involving a JEE/Websphere MQ/Lotus Notes SMTP server infrastructure.  The javamail portion is a standalone java app running on Solaris which is triggered by MQ (not running within Websphere).  The message flow looks something like [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bairdblog.wordpress.com&amp;blog=652819&amp;post=20&amp;subd=bairdblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>One of the projects I&#8217;m working on requires the securing of all the servers and transports used in a message flow involving a JEE/Websphere MQ/Lotus Notes SMTP server infrastructure.  The javamail portion is a standalone java app running on Solaris which is triggered by MQ (not running within Websphere).   The message flow looks something like this:</p>
<p>Webapp running on websphere 5.1 -&gt; MQ -&gt; Transformation (MQ triggered standalone java app on Solaris) -&gt; MQ -&gt; Javamail (MQ triggered standalone java app on Solaris) -&gt; SMTP -&gt; external</p>
<p>The Javamail to SMTP server hop is secured via TLS (Transport Layer Security) using the SSLv3 protocol.</p>
<p>At first it seemed fairly straightforward.  The documentation for javamail states that it does support SSL and TLS, however another developer on my team spent 2 days trying to get it to work, we discovered how poorly javamail is documented, in particular getting a secured connection using TLS and SSLv3 to work.  Several websites found via google searches discuss it, but none seem to have a working example.  One site talks about creating a custom SSLSocketFactory (not needed), and a couple others simply recommend reading the <a title="Javamail FAQ" href="http://java.sun.com/products/javamail/FAQ.html" target="_blank">Javamail FAQ</a> and SSLNOTES.txt that come with the javamail download.  I found the SSLNOTES.txt to be most helpful, but did not provide working examples or the detail necessary to allow for a quick implementation.  It still took a lot of tweaking to get a working solution, so I am posting it here for future reference as well as to help others who need to provide similar capabilities.</p>
<p>The key was setting the correct properties and specifying the correct protocols to use.</p>
<p><code><br />
/**<br />
* This method sends an email using TLS<br />
*<br />
* @param strTo To Addresses<br />
* @param strCc CC Addresses<br />
* @param strFrom From Address<br />
* @param strSub Subject<br />
* @param strMsg Message<br />
*<br />
* @throws IOException Description<br />
*/<br />
public void SendMailTLS(String strTo, String strCc, String strFrom,<br />
String strSub, String strMsg)<br />
throws IOException<br />
{</code></p>
<p>//Set the properties required for TLS/SSL handshake<br />
Properties props = new Properties();<br />
System.setProperty(&#8220;javax.net.debug&#8221;, &#8220;ssl,handshake&#8221;);<br />
props.put(&#8220;mail.smtp.host&#8221;, &#8220;&lt;put your smtp server here&gt;&#8221;);<br />
props.put(&#8220;mail.smtp.starttls.enable&#8221;, &#8220;true&#8221;);<br />
props.put(&#8220;mail.smtp.ssl.protocols&#8221;,&#8221;SSLv3 TLSv1&#8243;);</p>
<p>Session session = Session.getInstance(props);</p>
<p>session.setDebug(true);</p>
<p>//start sending the messages<br />
try<br />
{<br />
//Instantiate new mime message and fill it with the required info<br />
Message msg = new MimeMessage(session);</p>
<p>//set From<br />
msg.setFrom(new InternetAddress(strFrom.trim()));</p>
<p>//set To<br />
InternetAddress address[] = { new InternetAddress(strTo.trim()) };<br />
msg.setRecipients(Message.RecipientType.TO, address); //To Recipients<br />
msg.reply(false);</p>
<p>//set CC<br />
if (!strCc.equals(&#8220;&#8221;))<br />
{<br />
InternetAddress address1[] = { new InternetAddress(strCc) };<br />
msg.setRecipients(Message.RecipientType.CC, address1); //CC Recipients<br />
}</p>
<p>//set Subject<br />
msg.setSubject(strSub);</p>
<p>//setDate<br />
msg.setSentDate(new java.util.Date());</p>
<p>//set Text<br />
msg.setContent(strMsg, &#8220;text/html&#8221;);</p>
<p>// hand the message for delivery<br />
Transport.send(msg);</p>
<p>}<br />
catch (MessagingException mex)<br />
{<br />
System.out.println(&#8220;Mail Couldn&#8217;t Send to : &#8221; + strTo + &#8220;ERROR: &#8221; + mex.toString());<br />
mex.printStackTrace();<br />
}<br />
}</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bairdblog.wordpress.com/20/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bairdblog.wordpress.com/20/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bairdblog.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bairdblog.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bairdblog.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bairdblog.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bairdblog.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bairdblog.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bairdblog.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bairdblog.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bairdblog.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bairdblog.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bairdblog.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bairdblog.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bairdblog.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bairdblog.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bairdblog.wordpress.com&amp;blog=652819&amp;post=20&amp;subd=bairdblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bairdblog.wordpress.com/2008/04/14/javamail-smtp-over-sshtls/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/06d90b0d13691129238192eb82771f4d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neo</media:title>
		</media:content>
	</item>
	</channel>
</rss>
