<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mission Data Blog &#187; Rich Rodriguez</title>
	<atom:link href="http://www.missiondata.com/blog/author/richier/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.missiondata.com/blog</link>
	<description>Louisville-based Web Development &#038; Software Engineering</description>
	<lastBuildDate>Tue, 18 May 2010 14:24:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>iSeries SQL Performance</title>
		<link>http://www.missiondata.com/blog/system-administration/68/iseries-sql-performance/</link>
		<comments>http://www.missiondata.com/blog/system-administration/68/iseries-sql-performance/#comments</comments>
		<pubDate>Mon, 12 Mar 2007 01:08:10 +0000</pubDate>
		<dc:creator>Rich Rodriguez</dc:creator>
				<category><![CDATA[System Administration]]></category>
		<category><![CDATA[as400]]></category>
		<category><![CDATA[Utilities]]></category>

		<guid isPermaLink="false">http://www.missiondata.com/blog/utilities/68/iseries-sql-performance/</guid>
		<description><![CDATA[Our project has entered the stage where we start tuning the data access to improve performance. This project uses Hibernate to access a AS400/iSeries system via the JT400 JDBC driver.  My prior experience using the SQL Server
database introduced me to Microsoft&#8217;s Query Analyzer, which is a nice tool for identifying where you need to [...]]]></description>
			<content:encoded><![CDATA[<p>Our project has entered the stage where we start tuning the data access to improve performance. This project uses Hibernate to access a AS400/iSeries system via the JT400 JDBC driver.  My prior experience using the SQL Server<br />
database introduced me to Microsoft&#8217;s Query Analyzer, which is a nice tool for identifying where you need to index the database. A bit of searching turned up an IBM tool called <a title="Visual Explain" href="https://publib.boulder.ibm.com/iseries/v5r2/ic2924/index.htm?info/rzajq/rzajqmstvisexpl.htm">Visual Explain</a> that fits the same need. The sysadmin started the profiling tool against my connection, and I ran through a standard usage scenario in our application. Visual Explain showed each query, how long it took, the access strategy, and recommended indexes. This kind of tool is absolutely essential for database performance tuning.</p>
<p>The second important item we learned from this process is the performance difference between a true SQL index on the iSeries and a keyed logical index. From iSeries V4R2 on, SQL indexes have page sizes of 64k. By comparison, a DDS logical will max out at 32k, and will typically be much smaller. The performance is so much better that our customer is converting all all their DDS logical indexes to SQL, even if only their legacy RPG applications use it. <a title="DDS and SQL Performance" href="http://www-03.ibm.com/servers/eserver/iseries/db2/pdf/Performance_DDS_SQL.pdf">This IBM document</a> has a good discussion of this issue.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.missiondata.com/blog/system-administration/68/iseries-sql-performance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cleaning Up Rails Sessions, Revisited</title>
		<link>http://www.missiondata.com/blog/web-development/63/cleaning-up-rails-sessions-revisited/</link>
		<comments>http://www.missiondata.com/blog/web-development/63/cleaning-up-rails-sessions-revisited/#comments</comments>
		<pubDate>Sat, 16 Sep 2006 16:15:30 +0000</pubDate>
		<dc:creator>Rich Rodriguez</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blogs.missiondata.com/?p=63</guid>
		<description><![CDATA[In an earlier post, we detailed a method for removing stale Rails session files. In more recent version of Rails, there is a Rake task built in for this administration task.
rake tmp:sessions:clear # Clears all files in tmp/sessions
]]></description>
			<content:encoded><![CDATA[<p>In an earlier <a href="http://blogs.missiondata.com/?p=58">post</a>, we detailed a method for removing stale Rails session files. In more recent version of Rails, there is a Rake task built in for this administration task.</p>
<p><code class="console">rake tmp:sessions:clear # Clears all files in tmp/sessions</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.missiondata.com/blog/web-development/63/cleaning-up-rails-sessions-revisited/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using the Hibernate API to Inspect Mapped Classes</title>
		<link>http://www.missiondata.com/blog/software-development/60/using-the-hibernate-api-to-inspect-mapped-classes/</link>
		<comments>http://www.missiondata.com/blog/software-development/60/using-the-hibernate-api-to-inspect-mapped-classes/#comments</comments>
		<pubDate>Thu, 03 Aug 2006 02:21:11 +0000</pubDate>
		<dc:creator>Rich Rodriguez</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[hibernate]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Utilities]]></category>

		<guid isPermaLink="false">http://blogs.missiondata.com/?p=60</guid>
		<description><![CDATA[For my current project we needed to audit the property setters Hibernate was using on our objects to make sure that any logic in them was not overly state dependent. More about this issue in Hibernate is available here. We have fairly rich object models, and a lot of methods, including setters, are never used [...]]]></description>
			<content:encoded><![CDATA[<p>For my current project we needed to audit the property setters Hibernate was using on our objects to make sure that any logic in them was not overly state dependent. More about this issue in Hibernate is available <a title="Hibernate Forums" href="http://forum.hibernate.org/viewtopic.php?t=937664">here</a>. We have fairly rich object models, and a lot of methods, including setters, are never used by Hibernate. We wanted a report of the setters actually used by Hibernate to limit the amount of code we had to examine.</p>
<p>The Hibernate API allows you a lot of access to its configuration object model, and this is ideal for finding out how Hibernate is interacting with your code. I wrote a small class to do this inspection. The method below is run after a Hibernate Configuration object named creatively as &#8220;configuration&#8221; has been built with mapping files:</p>
<pre><code>public Map findSetters() throws MappingException
{
  Map classToSetters = new HashMap();
  Iterator classMappingIterator =   configuration.getClassMappings();

  while(classMappingIterator.hasNext())
  {
    PersistentClass persistentClass = (PersistentClass)classMappingIterator.next();
    Class mappedClass = persistentClass.getMappedClass();
    Iterator propertyIt = persistentClass.getPropertyIterator();
    List classSetters = new LinkedList();

    classToSetters.put(mappedClass, classSetters);

    while(propertyIt.hasNext())
    {
      Property property = (Property)propertyIt.next();
      Setter setter = property.getSetter(mappedClass);

      classSetters.add(setter.getMethodName());
    }
  }
  return classToSetters;
}</code></pre>
<p>I have uploaded <a id="p61" onmousedown="selectLink(61);" href="http://blogs.missiondata.com/wp-content/uploads/2006/08/HibernateTools.tar.gz">a Java project</a> that contains the full HibernateInspector class, as well as some sample classes and mappings. Un-tar it, and run</p>
<pre><code class="console">ant -Dhibernate.home="path to hibernate 3" </code></pre>
<p>to build and run the example.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.missiondata.com/blog/software-development/60/using-the-hibernate-api-to-inspect-mapped-classes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
