<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
	<channel>
<title>dominicgiles.com RSS Feed</title><link>http://www.dominicgiles.com/index.html</link><description>Mindless ramblings from Dominic Giles</description><dc:language>en</dc:language><dc:creator>Dominic Giles</dc:creator><dc:rights>Copyright 2005 Dominic Giles</dc:rights><dc:date>2010-06-07T21:42:03+01:00</dc:date><admin:generatorAgent rdf:resource="http://www.realmacsoftware.com/" />
<admin:errorReportsTo rdf:resource="mailto:Dominic Giles" /><sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>
<lastBuildDate>Mon, 07 Jun 2010 21:49:02 +0100</lastBuildDate><item><title>TraceAnalyzer Update</title><dc:creator>Dominic Giles</dc:creator><category>TraceAnalyzer</category><dc:date>2010-06-07T21:42:03+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/71c2e2515f7a2667899ef871ac4907a7-103.html#unique-entry-id-103</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/71c2e2515f7a2667899ef871ac4907a7-103.html#unique-entry-id-103</guid><content:encoded><![CDATA[I&rsquo;ve uploaded a new build of TraceAnalyzer that fixes a few issues. You can download it from <a href="../downloads.html" rel="self" title="Downloads">here</a>]]></content:encoded></item><item><title>Minor update to swingbench</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2010-05-24T15:35:30+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/e0b8cf1d7099675bad85fc787ca487bc-102.html#unique-entry-id-102</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/e0b8cf1d7099675bad85fc787ca487bc-102.html#unique-entry-id-102</guid><content:encoded><![CDATA[I&rsquo;ve just uploaded a minor update to swingbench to solve a few minor bugs.<br /><br />You can download it <a href="../downloads.html" rel="self" title="Downloads">here</a>]]></content:encoded></item><item><title>CPUMonitor 0.2 just released</title><dc:creator>Dominic Giles</dc:creator><category>cpumonitor</category><dc:date>2010-05-20T18:48:02+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/396afa4459750424fd66d455cec5ec44-101.html#unique-entry-id-101</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/396afa4459750424fd66d455cec5ec44-101.html#unique-entry-id-101</guid><content:encoded><![CDATA[I&rsquo;ve just released 0.2 of cpumonitor. Its got a few nice features in it.<br /><ul class="disc"><li>Support for Solaris</li><li>A Mini view (use the -md option on the command line)</li><li>New charting engine (a bit punchier)</li><li>Encrypted passwords in config file</li><li>Fixes for rendering on Linux and Unix</li><li>Reports errors for failed connections</li></ul>It will require Java 6 to run and you will need to make sure that you enable &ldquo;Password Authentication&rdquo; in your sshd_config file (enabled by default on Linux) i.e in sshd_config add or uncomment the following line on the target server<br /># To disable tunneled clear text passwords, change to no here!PasswordAuthentication yes<br /><br />You can download it from <a href="../downloads.html" rel="self" title="Downloads">here</a> as usual.<br /><br />The following are a few screen shots of the mini mode and the max mode (default)<br /><br /><img class="imageStyle" alt="screenshot_10" src="http://www.dominicgiles.com/blog/files/screenshot_10.jpg" width="611" height="213"/><br /><br /><img class="imageStyle" alt="screenshot_11" src="http://www.dominicgiles.com/blog/files/screenshot_11.jpg" width="708" height="610"/>]]></content:encoded></item><item><title>And another update to 2.4...</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2010-05-13T20:45:15+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/07d06f6e791c839261967d1d7c4130ca-100.html#unique-entry-id-100</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/07d06f6e791c839261967d1d7c4130ca-100.html#unique-entry-id-100</guid><content:encoded><![CDATA[Another minor update incoming to 2.4.0.639.... minor fixes. You can download it <a href="../downloads.html" rel="self" title="Downloads">here</a>]]></content:encoded></item><item><title>Update to swingbench 2.4</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2010-04-15T21:05:07+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/270299f63b0d91f29affbf0527b2aad8-99.html#unique-entry-id-99</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/270299f63b0d91f29affbf0527b2aad8-99.html#unique-entry-id-99</guid><content:encoded><![CDATA[I&rsquo;ve updated swingbench to build 628 which includes the following fixes<br /><ul class="disc"><li>Updates to the &ldquo;order entry&rdquo; benchmark</li><li>Wizards now use user selected thread count</li><li>Swingbench now correctly loads new config files from the menu</li><li>Feedback on wizard builds (metrics such as MB/sec generated etc)</li></ul>They&rsquo;ll be a new update again shortly with<br /><ul class="disc"><li>Checks at start and end of wizard builds</li><li>New benchmark run summaries</li></ul>As usual you can download it <a href="../downloads.html" rel="self" title="Downloads">here</a>. Let me now what you think <a href="../comments.php" rel="self" title="Comments">here</a><br />]]></content:encoded></item><item><title>Large SOE builds... things to watch for</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2010-03-25T10:57:04+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/0effe1f17559617356804b3642af3c9f-98.html#unique-entry-id-98</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/0effe1f17559617356804b3642af3c9f-98.html#unique-entry-id-98</guid><content:encoded><![CDATA[A couple of things to watch for if you are building a large SOE schema. The first is temp space. I guess its obvious but if you are building a 1TB schema with 100GB+ tables the indexes are going to be pretty big as well. If you are creating big indexes you need plenty of TEMP. The number of schema&rsquo;s I&rsquo;ve looked at that haven&rsquo;t had their indexes build is amazing. I guess this is partly my fault as well. I&rsquo;ll include a start and end validation process in the next build. Should have done this before but I guess people weren&rsquo;t building such big schema&rsquo;s<br /><br />As a guide line for a schema of size &ldquo;x&rdquo; I&rsquo;d have at least &ldquo;x/6&rdquo; worth of temp space i.e. 1TB schema needs about 180GB of temp. You can resize it after the build to what ever you decide is appropriate.<br /><br />As to what it should look like on completion... well something like this<br />SOE@//localhost/orcl > @tables;Tables======Table                   Rows    Blocks   Size   Compression &nbsp;Indexes Partitions Analyzed-------------------- ---------- -----    ------ -----------  ------- ---------- ----------WAREHOUSES          &nbsp; &nbsp; &nbsp; 1,000 &nbsp; &nbsp; 60 &nbsp; &nbsp;1024k Disabled    &nbsp; &nbsp;2    &nbsp; &nbsp; &nbsp; 0     < WeekORDERS              &nbsp; &nbsp; 225,000 &nbsp;1,636 &nbsp; &nbsp; &nbsp;13M Disabled    &nbsp; &nbsp;5    &nbsp; &nbsp; &nbsp; 0     < WeekINVENTORIES         &nbsp; &nbsp; 924,859 10,996 &nbsp; &nbsp; &nbsp;87M Disabled    &nbsp; &nbsp;3    &nbsp; &nbsp; &nbsp; 0     < WeekORDER_ITEMS         &nbsp; &nbsp; 587,151 &nbsp;2,392 &nbsp; &nbsp; &nbsp;19M Disabled    &nbsp; &nbsp;3    &nbsp; &nbsp; &nbsp; 0     < WeekPRODUCT_DESCRIPTIONS      1,000 &nbsp; &nbsp; 60 &nbsp; &nbsp;1024k Disabled    &nbsp; &nbsp;2    &nbsp; &nbsp; &nbsp; 0     < WeekLOGON               &nbsp; &nbsp; &nbsp;50,000 &nbsp; &nbsp;250 &nbsp; &nbsp; &nbsp; 2M Disabled    &nbsp; &nbsp;0    &nbsp; &nbsp; &nbsp; 0     < WeekPRODUCT_INFORMATION     &nbsp; 1,000 &nbsp; &nbsp; 60 &nbsp; &nbsp;1024k Disabled    &nbsp; &nbsp;3    &nbsp; &nbsp; &nbsp; 0     < WeekCUSTOMERS           &nbsp; &nbsp; 200,000 &nbsp;2,014 &nbsp; &nbsp; &nbsp;16M Disabled    &nbsp; &nbsp;5    &nbsp; &nbsp; &nbsp; 0     < Week<br /><br /><br />Another really important thing is to include the SOE_MIN_CUSTOMER_ID and SOE_MAX_CUSTOMER_ID in the environment variables within the config file. This will reduce the startup time of the benchmark. Follow the instructions below or edit the config file<br /><br />Select the Environment Variables tab and press the <img class="imageStyle" alt="screenshot_02" src="http://www.dominicgiles.com/blog/files/page4_blog_entry98_1.jpg" width="21" height="19"/> button (you&rsquo;ll need to do this for each environment variable).<br /><br /><img class="imageStyle" alt="screenshot_04" src="http://www.dominicgiles.com/blog/files/page4_blog_entry98_2.jpg" width="431" height="81"/><br /><br />Add two Enviroment variables <br /><ul class="disc"><li>SOE_MIN_CUSTOMER_ID : The value equals the smallest customer id in the data set, usually 1</li><li>SOE_MAX_CUSTOMER_ID : The largerst customer id found in the data set</li></ul><br />You can determine what thes values are by running a piece of SQL similar to this when logged into the SOE schema<br /><br /> SELECT  /*+ PARALLEL(CUSTOMERS, 8) */  MIN(customer_id) SOE_MIN_CUSTOMER_ID,  MAX(customer_id) SOE_MAX_CUSTOMER_ID   FROM customers<br /><br />After adding the variables you should end up with something that looks similar to this<br /><br /><img class="imageStyle" alt="screenshot_06" src="http://www.dominicgiles.com/blog/files/page4_blog_entry98_3.jpg" width="429" height="238"/><br /><br /><br /><br /><br />]]></content:encoded></item><item><title>Swingbench 2.4 Beta Released</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2010-03-23T20:03:43+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/1264af4df21a68b63ad97fc1eaf90bfd-97.html#unique-entry-id-97</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/1264af4df21a68b63ad97fc1eaf90bfd-97.html#unique-entry-id-97</guid><content:encoded><![CDATA[I may regret this but it all seems to hang togther so I&rsquo;ve decided to release 2.4 of swingbench. It dosen&rsquo;t look significantly different from 2.3 but it has enough changes to warrant a point change. These include....<br /><ul class="disc"><li>New SH wizard</li><li>New highly threaded benchmark builds for the OE and SH benchmarks</li><li>New standard sizings for SOE and SH (1GB,10GB,100GB,1TB)</li><li>Improved scalability of the SOE benchmark</li><li>Oracle UCP connections</li><li>New CPU monitor architecture (uses ssh instead of agent)</li><li>Update look and feel on Overview charts (more coming)</li><li>Configuration free install (Simply ensure Java is your path)</li></ul>The first thing people are likely to notice is that you shouldn&rsquo;t need to edit any files. As long as a 1.5 JVM is in your path you should just be able to start swingbench and the wizards. I&rsquo;ve also tried to tidy things up in the directory structure and Im giving Apache launcher a go to try and centralise configuration. This may or may not work out Im already picking up a few issues.... But let me know how you find it. <br />The other big change is that I&rsquo;&rsquo;ve tried to standardise the benchmarks. You can now choose between 1GB,10GB,100GB or 1TB. The thing to watch out for is that this refers to the raw data size. The indexes add to this quite considerably. So a 1TB will require 3.2TB of disk space. The good news is that they are massively multi threaded now and so if you have the horse power (plenty of CPUs and IO) they should build relatively quickly (12 hours for a 1TB benchmark).<br />I&rsquo;ve also updated the look of the overview graphs to make them a little punchier... I&rsquo;ll be improving them still further shortly.<br />So now the stuff that&rsquo;s a little broken....<br /><ul class="disc"><li>Charbench&rsquo;s interactive mode seems to have cracked under the weight of all the updates. I have a fix for it but it requires a 1.6 JVM and Im trying to figure out if I can port it to 1.5. In the mean time you&rsquo;ll have to use timers (-rt option) until I have a workable fix.</li><li>Backgrounding tasks seems to be a little broken as well... I hope to have a fix for this shortly.</li></ul>Also the stuff thats planned but didn&rsquo;t quite make it.<br /><ul class="disc"><li>An end of run benchmark report. I&rsquo;ve got it sort of working but it&rsquo;s a little awkward looking.</li><li>Update to coodinator controls...</li><li>AIX cpu monitoring... I have the code. It just needs testing.</li></ul>Let me know what you think <a href="../comments.php" rel="self" title="Comments">here</a>. You can download it <a href="../downloads.html" rel="self" title="Downloads">here</a>.<br /><br /><img class="imageStyle" alt="screenshot_01" src="http://www.dominicgiles.com/blog/files/swingbench24.png" width="507" height="294"/>]]></content:encoded></item><item><title>Scalability fix for orderentry benchmark</title><dc:creator>Dominic Giles</dc:creator><dc:subject>My Blog</dc:subject><dc:date>2010-03-16T09:57:20+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/3ab1a19dd5df7f5da53688e04a8d6826-96.html#unique-entry-id-96</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/3ab1a19dd5df7f5da53688e04a8d6826-96.html#unique-entry-id-96</guid><content:encoded><![CDATA[I&rsquo;ve been doing some testing lately on some pretty fast servers of late, in particular Exadata V2. This has resulted in issues with the swingbench &ldquo;SOE&rdquo; benchmark that I hadn&rsquo;t seen before such as data and index block contention and even some deadlocks (yes shame on me). So I took a look at the way the code worked and have updated it to use more efficient (and arguably more up to date) approaches to the same processes. The code still does the same number of selects,inserts and updates but removes some silly none scalable operations as well. This code will ship in swinbench 2.4 (yes I&rsquo;ve decided to update to 2.4.... there&rsquo;s a lot of changes) but I thought some people might find the new V1.1 version of the benchmark useful today so Im making it available on the downloads page. It should just be a simple update to the schema... i.e.<br /><br />$> sqlplus soe/soe @soedgpackage.sql<br /><br />Whilst this will fix a large number of problems you may need to reverse key a few indexes as well... (This will be part of the full installation in 2.4)<br /><br />Let me know how you get on.... ]]></content:encoded></item><item><title>Why hasn&#x27;t here been an update lately?</title><dc:creator>Dominic Giles</dc:creator><category>General</category><dc:date>2010-02-22T17:20:04+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/257eb1fee8acf36f800f52d08c50f042-95.html#unique-entry-id-95</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/257eb1fee8acf36f800f52d08c50f042-95.html#unique-entry-id-95</guid><content:encoded><![CDATA[Best laid plans and all that.... I had hoped to release the new 2.4 build this week but work is insane at present and so I haven&rsquo;t had time to do the necessary testing. It&rsquo;s a pain I know. I have promised people releases a lot lately but work just gets busier and busier and since I can really only do swingbench development in my spare time Im struggling to keep up.<br /><br />Im hoping things will die down in the next few weeks and so I should be able to get it done then. So if I don&rsquo;t reply to emails it&rsquo;s not being rude its just that I don&rsquo;t have time... I&rsquo;ll make it up I promise.]]></content:encoded></item><item><title>CPU Monitor 0.1</title><dc:creator>Dominic Giles</dc:creator><dc:subject>My Blog</dc:subject><dc:date>2009-11-22T12:05:02+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/1e10c9f94e12a1f3bcea95f995979fad-94.html#unique-entry-id-94</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/1e10c9f94e12a1f3bcea95f995979fad-94.html#unique-entry-id-94</guid><content:encoded><![CDATA[I&rsquo;ve been pretty quiet lately but that&rsquo;s purely down to my current workload (my proper job). That&rsquo;s not to say I haven&rsquo;t been busy in my spare time and you should expect a flurry of releases in the near term. The first of these is a simply utility that I put together for some benchmarks I&rsquo;ve been doing, its called &ldquo;CPU Monitor&rdquo;. <br /><img class="imageStyle" alt="stacks_image_20_1" src="http://www.dominicgiles.com/blog/files/stacks_image_20_1.png" width="351" height="412"/><br />I know not an original title.... but it pretty much describes what its designed to do. I also know there are plenty of tools like these on the market but I wanted something that was trivial to set up and configure and could look at lots of machines at the same time. I intend to extend it in a number of directions.<br /><br />Its primary aim is to support monitoring clusters of machines (I&rsquo;ve been working on Exadata pretty much exclusively for the last 6 months) in near real time and record the stats for later analysis. <br /><br />I hope to make a few changes shortly<br /><br /><ul class="disc"><li>Removal of clear text passwords in the config file</li><li>Support for Solaris, and AIX.</li><li>A "Mini" mode</li><li>A Character mode</li><li>A Table Mode</li><li>Network Monitoring</li><li>Further statistics collection</li><li>Source code for information scraping. Allowing improvements on current statistic collection or support for new OS's </li></ul><br />You can find it <a href="../downloads.html" rel="self" title="Downloads">here</a> . Let me know if you find it useful. ]]></content:encoded></item><item><title>New build of swingbench</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2009-06-23T21:29:33+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/4fbd59626e080270f3aa2d0bb5a0dfd7-93.html#unique-entry-id-93</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/4fbd59626e080270f3aa2d0bb5a0dfd7-93.html#unique-entry-id-93</guid><content:encoded><![CDATA[I&rsquo;ve uploaded a new build of swingbench 422 to the <a href="../downloads.html" rel="self" title="Downloads">website</a>, I&rsquo;d recommend upgrading to this build its pretty stable and includes a lot of bug fixes. It includes some new functionality relating to specifying window sizes and positions for minibench and clusteroverview. This means its now possible to maximise the real estate used by swingbench without having to move things around after you&rsquo;ve started it up. The following example illustrates what&rsquo;s possible.<br /><br />./coordinator -g &sleep 2./minibench -co localhost -cm -pos 0,0 -dim 500,400 -min 300 -max 800 -a -cs //node1/rac1 -g RAC1 &./minibench -co localhost -cm -pos 500,0 -dim 500,400 -min 300 -max 800 -a -cs //node2/rac2 -g RAC2 &./minibench -co localhost -cm -pos 0,400 -dim 500,400 -min 300 -max 800 -a -cs //node3/rac3 -g RAC3 &./minibench -co localhost -cm -pos 500,400 -dim 500,400 -min 300 -max 800 -a -cs //node4/rac4 -g RAC4 &sleep 2./clusteroverview -pos 1000,0 -dim 400,800<span style="font:13px Arial, Verdana, Helvetica, sans-serif; "><br /></span><span style="font:13px Arial, Verdana, Helvetica, sans-serif; "><br />This script start swingbench in graphical mode, sleeps to let it start, then starts 4 minibenches at different postions on the screen. The new &ldquo;-cm&rdquo; maximises minibench&rsquo;s charts. The rest of the parameters describe what database they are connecting to and what load group they are in. The script then sleeps for 2 seconds before starting clusteroverview in a specific position. You end up with some thing that looks like this<br /><br /></span><img class="imageStyle" alt="filename" src="http://www.dominicgiles.com/blog/files/filename.jpg" width="800" height="500"/><br /><br />Hope you find this useful. I intend to shortly publish a new webcast on how to set up and use clusteroverview.]]></content:encoded></item><item><title>New Datagenerator Screencast</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2009-05-29T16:23:56+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/e34c1bbb97c22ac498b1f8ebe201b8fd-92.html#unique-entry-id-92</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/e34c1bbb97c22ac498b1f8ebe201b8fd-92.html#unique-entry-id-92</guid><content:encoded><![CDATA[I&rsquo;ve uploaded a datagenerator screen cast <a href="../screencasts.html" rel="self" title="Swingbench Screencasts">here</a> that explains its functionality and provides a quick walkthrough. Let me know if its useful.]]></content:encoded></item><item><title>New Swingbench Screencast</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2009-04-24T20:06:00+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/1a7b7a941b5f74a0501283227deea903-91.html#unique-entry-id-91</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/1a7b7a941b5f74a0501283227deea903-91.html#unique-entry-id-91</guid><content:encoded><![CDATA[I&rsquo;ve just uploaded a new <a href="../screencasts.html" rel="self" title="Swingbench Screencasts">screen cast</a> on defining your own transactions, I get asked a lot of questions about it. I&rsquo;ve also updated the website to enable me to do more of them quicker. I enjoy doing them I hope they help you.  ]]></content:encoded></item><item><title>Why wont it work...</title><dc:creator>Dominic Giles</dc:creator><category>Java</category><dc:date>2009-03-27T16:16:15+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/4455fdbe4830bbf79750a9a7c6b7a002-90.html#unique-entry-id-90</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/4455fdbe4830bbf79750a9a7c6b7a002-90.html#unique-entry-id-90</guid><content:encoded><![CDATA[Ok... So if your not interested in Java ignore what follows. <br /><br />So the problem can be summarized as follows. I have a call out to the operating system from Java to obtain the value of &ldquo;vmstat&rdquo; which returns a value from every &ldquo;x&rdquo; seconds based on the refresh rate. To do This I use a command similar to this <br /><br />Runtime rt = Runtime.getRuntime();String[] comm = new String[] {"vmstat","1"};Process proc = rt.exec(comm);<span style="font:12px Courier, mono; "><br /></span>I can then loop around capturing the output  and parsing it. Simple.... This approach works on Linux, Mac OS, HP-UX, AIX and Solaris however it fails under Windows. It sits there and simply waits. Now this appears to be a common problem based on the number of postings on it. This <a href="http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html" rel="self">article</a> suggests a number of approaches to solve the problem. I&rsquo;ve tried them all and the good news is that they appear to work for a single atomic call that returns all of its output then exits. However commands such as &ldquo;vmstat/iostat/sar&rdquo; etc. return output periodically based on their refresh rates and don&rsquo;t seem to work at all.<br /><br />There are plenty of hits in google but no one really seems to suggest a solution. Now Im sure this worked in the past and Im almost certain that I haven&rsquo;t changed the code.<br /><br />I&rsquo;ve tried calling<br /><br />java myexec cmd /c "c:\\cygwin\\bin\\ls.exe"<br /><span style="font:12px Courier, mono; "><br /></span>Which returns the first line of the directory and then exits.<br /><br />java myexec cmd /c "c:\\cygwin\\bin\\ls.exe"<br /><br />simply hangs.... whilst<br /><br />java myexec cmd /c dir<br /><span style="font:12px Courier, mono; "><br /></span>Works fine.... So my believe its the combination of java and cygwin and the way io is redirected. If anyone has a chance to look at it.... I&rsquo;ll be very grateful. Code for simple testcase below.<span style="font:12px Courier, mono; "><br /><br /></span>import java.util.*;import java.io.*;class StreamGobbler extends Thread {  InputStream is;  String type;  StreamGobbler(InputStream is, String type) {    this.is = is;    this.type = type;  }  public void run() {    try {      InputStreamReader isr = new InputStreamReader(is);      BufferedReader br = new BufferedReader(isr);      String line = null;      while (true) {        if (is.available() == 0) {          try {            Thread.sleep(10);          } catch (InterruptedException ie) {          }          continue;        }        line = br.readLine();        if (line == null) {          System.out.println("Error");        } else {          System.out.println(line);        }      }    } catch (IOException ioe) {      ioe.printStackTrace();    }  }}public class myexec {  public static void main(String[] args) {    try {      String osName = System.getProperty("os.name");      System.out.println(osName);      Runtime rt = Runtime.getRuntime();      Process proc = rt.exec(args);      // any error message?      StreamGobbler errorGobbler = new StreamGobbler(proc.getErrorStream(), "ERROR");      // any output?      StreamGobbler outputGobbler = new StreamGobbler(proc.getInputStream(), "OUTPUT");      // kick them off      errorGobbler.start();      outputGobbler.start();      // any error???      int exitVal = proc.waitFor();      System.out.println("ExitValue: " + exitVal);    } catch (Throwable t) {      t.printStackTrace();    }  }}]]></content:encoded></item><item><title>Busy&#x2c; Busy&#x2c; Busy</title><dc:creator>Dominic Giles</dc:creator><category>General</category><dc:date>2009-03-27T14:16:33+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/70a357f6609f0a86d08f4a228f2f89a8-89.html#unique-entry-id-89</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/70a357f6609f0a86d08f4a228f2f89a8-89.html#unique-entry-id-89</guid><content:encoded><![CDATA[Back again..... Hoping to get things moving again. Sadly I&rsquo;ve been so busy at work (and at home) that I&rsquo;ve had little or no time to update code. I&rsquo;ve been answering a lot of questions lately so the good news is that people are still using swingbench, Thankyou.<br /><br />I have come across one or two annoying features (read bugs if you wish :-)). The first of which appears to be that CPU monitoring on Windows (and solaris but Im fixing this) appears to be broken. Previously I had this working in conjunction with <a href="http://www.cygwin.com" rel="self">Cygwin</a> but even this is now broken. Windows appears to process a piece of code (used for calling out) differently than any other platform. I&rsquo;ll post some examples shortly so the Java heads amongst you can figure it out and I can get it working again. I can&rsquo;t promise anything other than my gratitude.<br /><br />I&rsquo;ve also started to twitter (very occasionally) but for those that want to follow me you can do it <a href="http://twitter.com/dominic_giles" rel="self">here</a>... <br /><br />For those on a Mac and are looking for an alternative iWeb... try out <a href="http://www.realmacsoftware.com/rapidweaver/" rel="self">RapidWeaver</a>. Its getting better every release. Also use the <a href="http://www.yourhead.com/stacks/" rel="self">Stacks</a> plugin... it rounds it off brilliantly.<br /><br />Back shortly with that darn Java problem....]]></content:encoded></item><item><title>New Comments Page</title><dc:creator>Dominic Giles</dc:creator><category>General</category><dc:date>2009-02-16T21:12:11+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/910a5fc4dc3df2ea6936b00fef48e4b9-88.html#unique-entry-id-88</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/910a5fc4dc3df2ea6936b00fef48e4b9-88.html#unique-entry-id-88</guid><content:encoded><![CDATA[I&rsquo;ve updated the <a href="../comments.php" rel="self" title="Comments">comments</a> page to add a little more security. I was being overrun by spam and so took advantage of the RapdWeaver&rsquo;s plugin &ldquo;FormLoom&rdquo; to try and stop it. It also allows me to support attachment uploads which is a big improvement.  Let me know what you think.<br /><br />I&rsquo;ll also be updating the website and adding some new screen casts.]]></content:encoded></item><item><title>Happy New Year... and a fix to datagenerator</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2009-01-09T19:02:51+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/85bdac59e36f7a027191e82b3b85f9e7-87.html#unique-entry-id-87</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/85bdac59e36f7a027191e82b3b85f9e7-87.html#unique-entry-id-87</guid><content:encoded><![CDATA[Sorry for the delay... My DSL router has been bust for the last week and so Im behind in everything. <br /><br />So first things first.... Happy new year.<br /><br />Second I&rsquo;ve uploaded a new build of datagenerator it appears that I had a broken link in the last build. This new version fixes a few minor bugs with dates. You can find it in the usual place <a href="../screencasts.html" rel="self" title="Downloads">here</a><br /><br />Thirdly stick with me over the coming months I&rsquo;ve got a big workload (my proper job) on at present and Im going to have to squeeze everything else in when I can. So this means delays in bug fixes and doc. Sorry.<br /><br />Dom]]></content:encoded></item><item><title>Datagenerator Fix</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2008-12-19T11:20:33+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/b2187315c1ff34c2489b519f15071434-86.html#unique-entry-id-86</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/b2187315c1ff34c2489b519f15071434-86.html#unique-entry-id-86</guid><content:encoded><![CDATA[I&rsquo;ve updated datagenerator to fix a few bugs, improve the perfromance and give a little more feedback when running from the commandline. You can find it in the usual <a href="../screencasts.html" rel="self" title="Downloads">place</a>.]]></content:encoded></item><item><title>Broken clusteroverview in later builds</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2008-10-17T17:43:32+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/2ba4a3f75fcb902006375d9d25359319-85.html#unique-entry-id-85</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/2ba4a3f75fcb902006375d9d25359319-85.html#unique-entry-id-85</guid><content:encoded><![CDATA[It appears that I&rsquo;ve broken some of the functionality in clusteroverview in the latest builds... In particular the scalability portion and the reporting of CPU.<br /><br />I&rsquo;ll fix this and get a new build out ASAP.<br /><br />Apologies <br /><br />Dom]]></content:encoded></item><item><title>Flash version of the screencast now available</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2008-10-05T15:49:36+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/ec46e1d29339cf0c620a5f1e0e5e055f-84.html#unique-entry-id-84</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/ec46e1d29339cf0c620a5f1e0e5e055f-84.html#unique-entry-id-84</guid><content:encoded><![CDATA[I&rsquo;ve just upload a flash version of the walkthrough screencast. Hope this helps the Linux users.]]></content:encoded></item><item><title>New builds of swingbench and datagenerator</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2008-10-01T16:38:54+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/0d6c58004a8548915110a83e757f7b65-83.html#unique-entry-id-83</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/0d6c58004a8548915110a83e757f7b65-83.html#unique-entry-id-83</guid><content:encoded><![CDATA[I&rsquo;ve uploaded new builds of swingbench and datagenerator to fix a few niggly bugs. You can download them from <a href="../screencasts.html" rel="self" title="Downloads">here</a>]]></content:encoded></item><item><title>New Swingbench Screencast</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2008-10-01T16:36:24+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/a0aa4298c37a8a2eb21a7f23c6880020-82.html#unique-entry-id-82</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/a0aa4298c37a8a2eb21a7f23c6880020-82.html#unique-entry-id-82</guid><content:encoded><![CDATA[Ive added a new swingbench screencast which is a complete walkthrough from the installation of swingbench to the running of a benchmark. I&rsquo;ve also provided a commentary. So if you ever wondered what I sound like try it out <a href="../cpumonitor.html" rel="self" title="Swingbench Screencasts">here</a>  ]]></content:encoded></item><item><title>Minor Change to the look and feel of the web site</title><dc:creator>Dominic Giles</dc:creator><category>General</category><dc:date>2008-10-01T16:05:17+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/22013dd78d3200ba8285118686211a46-81.html#unique-entry-id-81</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/22013dd78d3200ba8285118686211a46-81.html#unique-entry-id-81</guid><content:encoded><![CDATA[I&rsquo;ve taken the oppertunity to update the look and feel of the web site. Hopefully its made it a little cleaner and easier to navigate. Let me know if you think I should go back to the old style. I&rsquo;ll slowly update some of the content too.]]></content:encoded></item><item><title>Large scale data sets for &#x22;SOE&#x22; and &#x22;SH&#x22;</title><dc:creator>Dominic Giles</dc:creator><dc:subject>My Blog</dc:subject><dc:date>2008-09-02T22:16:33+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/1b7bf68479d057e234b9854520638bb9-80.html#unique-entry-id-80</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/1b7bf68479d057e234b9854520638bb9-80.html#unique-entry-id-80</guid><content:encoded><![CDATA[I&rsquo;ve added some new pages describing how to build large scale &ldquo;SOE&rdquo; and &ldquo;SH&rdquo; schemas. I&rsquo;ve tested them both to 500GB in size and will create larger scale versions as soon as I can borrow hardware to test them at multi terabyte levels. If you&rsquo;re interested in giving it ago let me know via the <a href="../page8/page8.html" rel="self" title="Comments">comments</a> page and I can try and assist. You can find the the instructions on how to do create 100GB+ schemas for &ldquo;SOE&rdquo; <a href="../largesoe.html" rel="self" title="Large Scale Order Entry Benchmark ">here</a>  and the how to create 100GB+ &ldquo;SH&rdquo; schemas <a href="../dss.html" rel="self" title="DSS benchmark">here</a> <br /><br />Update : I noticed that the scripts for SH use compression by default. This can slow down a load. and make the expected upload much smaller. I&rsquo;ll upload a new build shortly that fixes this and afew other issues.]]></content:encoded></item><item><title>Timing groups of SQL operations </title><dc:creator>Dominic Giles</dc:creator><category>Oracle</category><dc:date>2008-09-02T10:47:10+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/91ac189c9fcf15df997c5ee0457bbd92-79.html#unique-entry-id-79</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/91ac189c9fcf15df997c5ee0457bbd92-79.html#unique-entry-id-79</guid><content:encoded><![CDATA[Some times I feel like I&rsquo;ve missed out on a whole chunk on functionality in Oracle products. One little nugget is the &ldquo;timing&rdquo; function in SQL*Plus. This allows you to time groups of operations.<br /><br />Obviously turning on is achieved with the &ldquo;set timing on&rdquo; operation. i.e<br /><br /><span style="font:12px Courier, mono; ">SQL > set timing on<br /><br />SQL > select count(1) from all_objects; <br /><br />  COUNT(1)<br />----------<br />     68653<br /><br />Elapsed: 00:00:03.95<br /><br />SQL></span><br /><br />Which is great but what if want to time mulitiple operations. Use the timing function and simply give the timer a name, in this case statement timer.<br /><br /><span style="font:12px Courier, mono; ">SQL> timing start statement_timer<br />SQL> select count(1) from all_objects;<br /><br />  COUNT(1)<br />----------<br />     68653<br /><br />SYS@orcl > /<br /><br />  COUNT(1)<br />----------<br />     68653<br /><br />SQL> timing show statement_timer;<br />timing for: statement_timer<br />Elapsed: 00:00:30.85<br />SQL> </span><br /><br />Which times anything that went on in between the timer starting and finishing. In this case also my typing of the commands. Its a fantastic utility for timing stages in a batch job including call outs to os operations.<br />]]></content:encoded></item><item><title>Datagenerator 0.4</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2008-09-02T20:09:42+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/1a910277096ea82b71594983756fe3de-78.html#unique-entry-id-78</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/1a910277096ea82b71594983756fe3de-78.html#unique-entry-id-78</guid><content:encoded><![CDATA[I've uploaded a new build of datagenerator. New features include <br /><br /><ul class="disc"><li>Support for indexes and sequences</li><li>New command line options</li><li>Better multi threading support</li><li>New scaleable data builds</li><li>Number generators can reference row counts from other tables</li><li>Better database performance</li><li>Ability to generate only the DDL of a schema</li><li>Numerous bug fixes</li></ul><br />The new build can be downloaded <a href="../screencasts.html" rel="self" title="Downloads">here</a><br /><br />I&rsquo;ve also updated the install, and added some additional walk throughs (in the swingbench section)<br /><br />Lets go through some of the new features in a little more detail.<br /><br /><h4>Indexes and Sequences</h4><br />You can now include indexes and sequences inside of a datagenerator definition<br /><img class="imageStyle" alt="screenshot_02" src="http://www.dominicgiles.com/blog/files/page4_blog_entry78_1.jpg" width="257" height="449"/><br />This makes it easy to build an entire schema for a benchmark run removing the need to run additional scripts afterwards. Currently I don't support their reverse engineering but that will come. <br /><br /><h4>Better multithreading support</h4><br />Previously it was possible to specify multiple threads for a datageneration run but each table was allocated a single thread. In this version a user can soft partition a table and hence break the build into smaller units which can each have a thread allocated to them.<br /><img class="imageStyle" alt="screenshot_03" src="http://www.dominicgiles.com/blog/files/page4_blog_entry78_2.jpg" width="439" height="109"/><br />This means that if you have a 32 CPU server you'll be able to build a 10 billion row table much faster if you soft partition the table into 32 units and allocate 32 threads for the build. The partition key can be either a date or number. This is also useful to avoid resource contention when inserting data into a partitioned table.<br /><h4>New command line options</h4><br />Its now possible to run the entire data generation to file or database from the command line. These include<br /><span style="font:12px Courier, mono; ">[dgiles@macbook bin]$ ./datagenerator -h<br />usage: parameters:<br /> -async                 perform async commits<br /> -bs <batchSize>        batch size of inserts (defaults to 50)<br /> -c <filename>          specify config file<br /> -cl                    use command line interface<br /> -commit <commitSize>   number of inserts between commits<br /> -cs                    connectring for database insertion<br /> -d <directory>         output directory (defaults to "data")<br /> -db                    write data direct to database<br /> -ddl                   just generate the ddl to be used<br /> -debug                 turn on debug information<br /> -dt                    driver type (oci|thin)<br /> -f                     write data to file<br /> -g                     use graphical user interface<br /> -h,--help              print this message<br /> -ni                    don't create any indexes after data creation<br /> -nodrop                don't drop tables if they exist<br /> -p                     password for database insertion<br /> -s                     run silent<br /> -scale <scale>         mulitiplier for default config<br /> -tc                    number of generation threads (defaults to 2)<br /> -u                     username for database insertion<br /> -z                     compress the results file<br /><br /></span><h4>Scaleable data builds</h4><span style="font:12px Courier, mono; "><br /></span>The config files for the soe and sh schema are now by default configured for a 1GB build. These can be scaled up by using the -scale option.  To build a 100GB sh schema the following command can be used.<br /><br /><span style="font:12px Courier, mono; ">./datagenerator -c sh.xml -cl -scale 100<br /></span><br />This functionality is supplemented by a new flag on a table definition.<br /><br /><img class="imageStyle" alt="screenshot_04" src="http://www.dominicgiles.com/blog/files/page4_blog_entry78_3.jpg" width="144" height="86"/><br />Only tables with this flag enabled will be scaled up.<br /><br /><h4>Referenceable row counts</h4><br />It is now possible to use the row count of a table as the maximum value of a number generator. This is useful when scaling up/down a datageneration  and maintaining data coverage and referential integrity.<br /><br /><img class="imageStyle" alt="screenshot_05" src="http://www.dominicgiles.com/blog/files/page4_blog_entry78_4.jpg" width="439" height="80"/><br /><br />As the number of rows in the referenced table increase so does the the maximum value of the data generator.<br /><br /><h4>Better database performance</h4><br />This build supports the use of asynchronous commits. This results in performance increases of about 10-30% when this option is enabled. I&rsquo;ve also undergone several database <br /><br /><h4>Generate only DDL</h4><br />It is sometimes useful to only create the DDL that will used to create tables and indexes.<br /><br /><img class="imageStyle" alt="screenshot_07" src="http://www.dominicgiles.com/blog/files/page4_blog_entry78_5.jpg" width="372" height="59"/><br /><br />The files that are created can be edited and modified to include additional information such as storage definitions.<br />]]></content:encoded></item><item><title>New build and fixes in swingbench</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2008-07-22T12:29:41+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/08898fd01954b89d58e919657bc97a63-77.html#unique-entry-id-77</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/08898fd01954b89d58e919657bc97a63-77.html#unique-entry-id-77</guid><content:encoded><![CDATA[I've uploaded a new build of swingbench which includes a number of fixes (one that broke charbench). Apologies for this. I thought I released the fixes if the previous build. You can find it <a href="../screencasts.html" rel="self" title="Downloads">here</a>.<br /><br />As usual let me know if you find obvious bugs.]]></content:encoded></item><item><title>On the subject of ISCSI and udev</title><dc:creator>Dominic Giles</dc:creator><category>Linux</category><dc:date>2008-06-09T08:33:06+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/71c237af393fab9a51f479a0ffa72328-76.html#unique-entry-id-76</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/71c237af393fab9a51f479a0ffa72328-76.html#unique-entry-id-76</guid><content:encoded><![CDATA[Ok so I admit I haven't been updating the web site recently. Im pretty much overrun with work (and I took a weeks holiday) so updates to swingbench have had to be put on hold. That said I haven't been idle. I've been setting up a RAC cluster under Oracle Virtual Server (NOTE : This is not currently supported).<br /><br />The environrment is build using 3 Dell Lattitude notebooks and a 1Gb Netgear switch.  I've installed one notebook with <a href="http://www.openfiler.com" rel="self">OpenFiler</a>  as the storage server and two additional notebooks with Oracle Virtual Server. (NOTE : this really isn't advised as a production implementation ;-)). I've used the <a href="http://www.oracle.com/technology/software/products/virtualization/vm_templates_el.html" rel="self">Oracle Enterprise Template</a> to create the Linux Servers running Oracle11g. It was pretty straight sailing with a few notable exceptions<br /><ul class="disc"><li>Many of the shipping templates benefit (and some require) the activation of hardware acceleration. This can be done via the BIOS and will make a big difference to performance in most circumstances.</li><li>UDev and ISCSI. This sadly caused me real problems and Im still not sure why. I was under the impression that the devices presented from the Openfiler (the ISCSI Target) would have consistent ID's. Now I've no reason to make this claim it just seemed like a sensible thing to do. I originally used the ENV{ID} to uniquely identify the devices and create persistent links to the disks. However subsequent reboots showed these to change. We eventually ended up using a rule similar to the folowing</li></ul><span style="font:12px Courier, mono; ">ENV{ID_PATH}=="ip-10.167.176.217:3260-iscsi-iqn.2006-01.com.openfiler:iscsistorage.quorumdisk", OWNER="oracle", GROUP="dba", MODE="0640", SYMLINK+="disk/by-name/quorumdisk"<br /></span><ul class="disc"><li>We also encountered some library issues (rpm), Some of the openfiler devices couldn't be seen however upgrading to the very latest initiator libraries solved the problem (At the time of writing this <span style="font:12px Courier, mono; ">iscsi-initiator-utils-6.2.0.868-0.7.el5</span>).</li></ul>Other than that the Oracle install went very smoothly and the cluster appears stable and performs well given the hardware its running on.<span style="font:12px Courier, mono; "><br /></span><br />]]></content:encoded></item><item><title>Minor update to datagenerator</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2008-03-29T11:01:08+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/7a6a09498655161ca54e9efdc17b3f14-75.html#unique-entry-id-75</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/7a6a09498655161ca54e9efdc17b3f14-75.html#unique-entry-id-75</guid><content:encoded><![CDATA[Just a minor update to datagenerator to fix some scripts and config files. There's also a few fixes to the code. ]]></content:encoded></item><item><title>Swingbench with AWR support</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2008-03-25T21:25:46+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/2c402916791463a2ac0d1865d8b8b9a3-74.html#unique-entry-id-74</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/2c402916791463a2ac0d1865d8b8b9a3-74.html#unique-entry-id-74</guid><content:encoded><![CDATA[Im uploading a new build of swingbench that includes support for performing AWR snaps at the start and end  of of a benchmark run.<br /><br /><img class="imageStyle" alt="screenshot_01" src="http://www.dominicgiles.com/blog/files/page4_blog_entry74_1.jpg" width="436" height="121"/><br /><br />This is a common request and automates a task that a lot of people do. I've also included a new section in the stats that are generated which lists the top 10 (11 to be exact if you include CPU)  wait events for a run if you choose to collect database statistics.<br /><br />I've had a lot of requests about 9i support in swingbench which I appear to have broken. Can you let me know if you still think this is important (I guess its implied by the requests I've had). I need to know whether to focus on this of finish the 2.3 doc.<br /><br />I'd also appreciate if you could let me know if the wait events I report are in line with the stats you get from ARW... if they're not its down to me not AWR.<br /><br />Thanks...]]></content:encoded></item><item><title>New build of swingbench 2.3 (Build 370)</title><dc:creator>Dominic Giles</dc:creator><dc:subject>My Blog</dc:subject><dc:date>2008-03-06T14:57:45+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/913db80243a22a852ee6541031ad24ff-73.html#unique-entry-id-73</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/913db80243a22a852ee6541031ad24ff-73.html#unique-entry-id-73</guid><content:encoded><![CDATA[Just a quick build to fix cursors not being closed in ccwizard. Still looking into the "-be" and  "-bs" issue.<br /><br />You can get it <a href="../screencasts.html" rel="self" title="Downloads">here</a>]]></content:encoded></item><item><title>New build of swingbench 2.3</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2008-02-12T12:22:15+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/f5441e476e312a58a8b436e70dd5a22f-72.html#unique-entry-id-72</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/f5441e476e312a58a8b436e70dd5a22f-72.html#unique-entry-id-72</guid><content:encoded><![CDATA[I know things have been a little slow of late in terms of the releases of code but I've just had too much on both at work and at home. The good news is that I've found time to squeeze in a new build of swingbench. This has a number of bug fixes in and the following new functionality.<br /><ul class="disc"><li>Clusteroverview now uses the groupID attribute to determine members of a load generation group. This provides a lot more flexibility for clusteroverview to be used to test technologies such as Oracle Dataguard</li><li>The output from the command line option -v can now be directed to a named file with the -vo option</li></ul><br />I've also included a walk through of how to set up clusteroverview in 2.3 with the new GroupID functionality, you can find it <a href="../clusteroverviewwalkthough23.html" rel="self" title="Clusteroverview Scalability Walkthrough 2.3">here</a>.<br /><br />Any problems report them through the usual channels...<br /><br /><br />]]></content:encoded></item><item><title>Happy Christmas to Everyone</title><dc:creator>Dominic Giles</dc:creator><category>General</category><dc:date>2007-12-23T14:10:40+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/387dcb1b0aae8b55f699724dc464cb56-71.html#unique-entry-id-71</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/387dcb1b0aae8b55f699724dc464cb56-71.html#unique-entry-id-71</guid><content:encoded><![CDATA[As you've probably guessed things have been mad at work and home so I've had no chance to update the code or doc. I did update some of the online info (whilst having a coffee in Starbucks) which I'll carry on doing as time allows...<br /><br />Just wanted to take the chance to wish every one, and their families, a<strong> Happy Christmas and a Fantastic New Year</strong>....]]></content:encoded></item><item><title>Lets try that again</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2007-11-15T20:25:54+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/d03d2cb3f411035382a051c6fe9a04f7-70.html#unique-entry-id-70</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/d03d2cb3f411035382a051c6fe9a04f7-70.html#unique-entry-id-70</guid><content:encoded><![CDATA[Apologies....<br /><br />I've uploaded a new build with some of the fixes I thought I included in my last update .<br /><br />You can download it <a href="../screencasts.html" rel="self" title="Downloads">here</a>.<br /><br />And I really have started the documentation..... Expect a first cut shortly.]]></content:encoded></item><item><title>New build of swingbench (Build 341)</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2007-11-13T12:03:42+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/30d25bf6e0848e69eab5493fa5d642f5-69.html#unique-entry-id-69</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/30d25bf6e0848e69eab5493fa5d642f5-69.html#unique-entry-id-69</guid><content:encoded><![CDATA[Okay... Whilst this is mostly a bug fix release.... and thanks for those who are sending them in.... more welcome ;-)<br /><br />I introduced two new piece's of functionality eek.... sorry.<br /><br />The first enables to choose which charts to display in the overview chart. It can only currently be enabled by editing the config file. (Im not going to change the UI any further in this build). To enable it simply save any config file and edit the file... There's a new xml list in the Preferences section which should look like<br /><samp><pre><br />       <span style="font:12px Courier, mono; ">&#60;OverviewCharts&#62;<br />         &#60;OverviewChart&#62;<br />            &#60;Name&#62;Disk&#60;/Name&#62;<br />            &#60;MaximumValue&#62;2.147483647E9&#60;/MaximumValue&#62;<br />         &#60;/OverviewChart&#62;<br />         &#60;OverviewChart&#62;<br />            &#60;Name&#62;CPU&#60;/Name&#62;<br />            &#60;MaximumValue&#62;2.147483647E9&#60;/MaximumValue&#62;<br />         &#60;/OverviewChart&#62;<br />         &#60;OverviewChart&#62;<br />            &#60;Name&#62;Response Time&#60;/Name&#62;<br />            &#60;MaximumValue&#62;2.147483647E9&#60;/MaximumValue&#62;<br />         &#60;/OverviewChart&#62;<br />         &#60;OverviewChart&#62;<br />            &#60;Name&#62;Transactions Per Second&#60;/Name&#62;<br />            &#60;MaximumValue&#62;2.147483647E9&#60;/MaximumValue&#62;<br />         &#60;/OverviewChart&#62;<br />         &#60;OverviewChart&#62;<br />            &#60;Name&#62;Transactions Per Minute&#60;/Name&#62;<br />            &#60;MaximumValue&#62;2.147483647E9&#60;/MaximumValue&#62;<br />         &#60;/OverviewChart&#62;<br />      &#60;/OverviewCharts&#62;<br /></pre></samp></span><br />You can edit the list and include only the ones you want to show, optionally including a maximum value. ie.<br /><samp><pre><br /><span style="font:12px Courier, mono; ">     &#60;OverviewCharts&#62;<br />         &#60;OverviewChart&#62;<br />            &#60;Name&#62;CPU&#60;/Name&#62;<br />         &#60;/OverviewChart&#62;<br />         &#60;OverviewChart&#62;<br />            &#60;Name&#62;Transactions Per Second&#60;/Name&#62;<br />            &#60;MaximumValue&#62;200&#60;/MaximumValue&#62;<br />         &#60;/OverviewChart&#62;<br />      &#60;/OverviewCharts&#62;<br /></span></pre></samp><br />The second change allows you to specify non autoscaling charts with maximum values inside of clusteroverview. This again needs to be edit inside of the clusteroverview.xml file<br /><samp><pre><br /><span style="font:12px Courier, mono; "> &#60;DisplayedCharts&#62;<br />  &#60;DisplayedChart&#62;<br />   &#60;ChartName&#62;Overview&#60;/ChartName&#62;<br />  &#60;/DisplayedChart&#62;<br />  &#60;DisplayedChart&#62;<br />   &#60;ChartName&#62;UserConnections&#60;/ChartName&#62;<br />   &#60;Autoscale&#62;false&#60;/Autoscale&#62;<br />   &#60;MaximumValue&#62;50&#60;/MaximumValue&#62;<br />  &#60;/DisplayedChart&#62;<br />  &#60;DisplayedChart&#62;<br />   &#60;ChartName&#62;ControlPanel&#60;/ChartName&#62;<br />  &#60;/DisplayedChart&#62;<br /> &#60;/DisplayedCharts&#62;<br /></span></samp></pre><br />Im hoping the pain of a final (I promise) change will make things simpler for clusteroverview.<br /><br />I've fixed a few further bugs as well. Some unhandled exceptions and things like the charts being grey in the overview chart when they clearly should have been white (shouldn't they?)<br /><br /><img class="imageStyle" alt="screenshot_41" src="http://www.dominicgiles.com/blog/files/page4_blog_entry69_1.jpg" width="453" height="349"/> <br /><br />You can download it <a href="../screencasts.html" rel="self" title="Downloads">here</a><br /><br />]]></content:encoded></item><item><title>Website down</title><dc:creator>Dominic Giles</dc:creator><category>General</category><dc:date>2007-10-30T20:38:20+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/5020532f9c0fa40102f938c88cf946d5-68.html#unique-entry-id-68</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/5020532f9c0fa40102f938c88cf946d5-68.html#unique-entry-id-68</guid><content:encoded><![CDATA[I had a few emails about the web site being down.<br /><br />It turns out that I forgot to pay the bill... To be fair no one had told me that it was overdue. <br /><br />Anyway apologies to anyone who had difficulties downloading software etc.]]></content:encoded></item><item><title>Turning on Debugging</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2007-10-29T12:28:36+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/cb5eec6e2d2546baae942514747e0776-67.html#unique-entry-id-67</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/cb5eec6e2d2546baae942514747e0776-67.html#unique-entry-id-67</guid><content:encoded><![CDATA[Sometimes things go wrong... Sometime I make mistakes... I admit it.<br /><br />To help me clear up those little issues debug information is essential... Previously to obtain this data you needed to edit the start up file. To simplify this process I've included a -debug option for the command line. So if you encounter some strange behavior, try turning this on first... Who knows it may solve the problem. if it still isn't obvious copy the text and contact me... I'll do my best to sort it out.]]></content:encoded></item><item><title>New build of datagenerator</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2007-10-29T12:22:48+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/7c0131540ce3e8649ade22a72b663670-66.html#unique-entry-id-66</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/7c0131540ce3e8649ade22a72b663670-66.html#unique-entry-id-66</guid><content:encoded><![CDATA[I've uploaded a new build of datagenerator. This build has a few new features<br /><br /><ul class="disc"><li>A logging window during the generation phase that should make it easier to see what's going on</li><li>TimesTen support for datageneration (No reverse engineering at present)</li><li>Ability to turn on debugging from the command line (-debug)</li></ul><br />Let me know if you encounter any problems via the <a href="../page8/page8.html" rel="self" title="Comments">comments page </a><br /><br /><br />]]></content:encoded></item><item><title>Candidate build of Swingbench 2.3</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2007-10-19T23:24:38+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/42311c482ecfda852c44e492f1b4437b-65.html#unique-entry-id-65</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/42311c482ecfda852c44e492f1b4437b-65.html#unique-entry-id-65</guid><content:encoded><![CDATA[I think Im getting close to a final version of swingbench 2.3. I've fixed tens of annoying bugs and have started testing(!!!). I've even started the 2.3 doc. Things are very busy at work so stick with me. I could really do with people sending me in bugs in this build. The more bugs the faster I'll fix them and the quicker the final build will make it through the door. This build features<br /><ul class="disc"><li>TimesTen support for the jdbc order entry benchmark (requires datagenerator)</li><li>New log window for wizards</li><li>Numerous fixes</li><li>Fixes to orderentry benchmark</li></ul><br /><ul class="disc"><li>These will be the last enhancements. Only bug fixes from here on in.</li><li>Please provide feedback via the <a href="../page8/page8.html" rel="self" title="Comments">comments</a> page or email me directly.</li></ul>]]></content:encoded></item><item><title>New version of TraceAnalyzer 0.1 build 99</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2007-09-18T22:49:57+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/3d1ac729cda6e83cdfc9b121e8a30dce-64.html#unique-entry-id-64</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/3d1ac729cda6e83cdfc9b121e8a30dce-64.html#unique-entry-id-64</guid><content:encoded><![CDATA[Just finished a new build of TraceAnalyzer... I've uploaded it to the downloads page.<br /><br /><img class="imageStyle" alt="filename" src="http://www.dominicgiles.com/blog/files/page4_blog_entry64_1.jpg" width="421" height="341"/><br /><br />New features include<br /><ul class="disc"><li>Support for 10046 traces</li><li>Bind parameters</li><li>Explain Plans</li><li>Wait Events</li><li>Formatting of SQL</li></ul>It has few issues... the capture of bind values is a little flakey.... still trying to get my head around some of the parsing. I'll try and fix a few of the more obvious issues of the coming weeks...<br />]]></content:encoded></item><item><title>New release of swingbench&#x2c; build 273</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2007-09-05T14:43:16+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/6a1a072dd6de90063a08ce34b1b88873-63.html#unique-entry-id-63</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/6a1a072dd6de90063a08ce34b1b88873-63.html#unique-entry-id-63</guid><content:encoded><![CDATA[I hadn't realised its been over 4 months since I released a build of swingbench. So here it is. Just a few things<br /><ul class="disc"><li>I changed the format of the config file again... Sorry.... Im almost certain this will be the last change</li><li>The default chart is now overview although this can be changed in the preferences section</li><li>The test connection button works for Oracle but sadly not for TimesTen yet. I'll get this fixed shortly</li><li>Loads of minor fixes</li></ul>Let me know if you have any problems here or on the comments page.<br /><br />New build of Trace Analyzer nearly done as well.<br />]]></content:encoded></item><item><title>New iWork for Mac</title><dc:creator>Dominic Giles</dc:creator><category>General</category><dc:date>2007-08-09T10:14:36+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/b1f4b4372c9b28ba4b967af7cb3beb65-62.html#unique-entry-id-62</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/b1f4b4372c9b28ba4b967af7cb3beb65-62.html#unique-entry-id-62</guid><content:encoded><![CDATA[So... Im not one to bang on about how easy to use Macs are simply because unless your using/used one its difficult to describe how trivial little things make doing stuff much easier. A good example of this is in the new Keynote 08 (powerpoint equivalent in iWork). It has an "Alpha" function which means that its trivial to remove the background from an imported image. I do a lot of powerpoint at work (yup I use a mac for work) and Im often forced to use icons or images that I've imported from the web... the problem with these is that they usually have a background in a color which is the complete opposite of the one Im using... so I either have to go with an ugly unprofessional looking slide or spend a few minutes in a "paint" package removing the background... In the new Keynote this takes seconds and is an example of Apple understanding the way that people do "stuff"...<br /><br />There are hundreds of other examples  in the new iLife and iWork packages that really make them stand out as examples of how people should do interfaces and work flows.... so if you get a chance take a look<br /><br />http://www.apple.com/iwork/]]></content:encoded></item><item><title>Datawarehousing benchmark</title><dc:creator>Dominic Giles</dc:creator><category>Oracle</category><dc:date>2007-08-03T19:35:47+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/f2de990c8623007da90319bd82135911-61.html#unique-entry-id-61</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/f2de990c8623007da90319bd82135911-61.html#unique-entry-id-61</guid><content:encoded><![CDATA[Recently some of my colleagues and myself worked on a data warehousing benchmark. This comprised of a 1TB data set consisting of a 14 billion row fact table with 5 dimensions of a much smaller size. Nothing outrageous a classical star schema... bread and butter to Oracle. We used the following hardware configuration<br /><br />2 Intel based servers.<br /><ul class="disc"><li>4 CPUs with Dual Cores (hyper threading enabled).</li><li>64 GB of memory in each</li><li>2 dual ported 4Gb HBAs</li><li>2 dual ported 1Gb Nics</li></ul>The storage consisted of<br /><ul class="disc"><li>10 low cost storage arrays</li><li>20 controllers</li><li>20 trays of disk with 14 15k 36GB drives in each</li></ul>The fabric consisted of<br /><ul class="disc"><li>2 mid range 16 port fibre switches</li></ul>The network consisted of<br /><ul class="disc"><li>1 mid range 16 port 1Gb switch (I know we really should have had two of these)</li></ul><br />The point here is that the hardware was low end but with the ability to deliver plenty of CPU and I/O at very attractive price point. For those that aren't that interested in any more of the details the headline figures where that we performed full table scans at over 1.6GB/sec but due to compression we achieved logically three times this figure.<br /><br />We used a stock 2.6 64 bit Linux kernel we modified the following kernel settings<br /><ul class="disc"><li>wem, rmem were to set to 512k to reflect the fact that we were going to use 32k block sizes</li><li>Huge pages were enabled... its a much more sensible way of managing the shared memory required for the SGA</li><li>We enabled jumbo frames in the switch and set the MTU on the interconnect to 9000bytes </li><li>We used the deadline scheduler to improve I/O prioritisation.</li><li>Multipath was used to provide DMP over the 4 paths to disk from each of the servers.</li></ul><br />The Oracle database was largely unchanged from the defaults with the exception of the following settings<br /><ul class="disc"><li>16GB for SGA and PGA</li><li>The fact table was compressed</li><li>32k block sized to improve compression ratios</li><li>Two parallel instance  groups to ensure execution of certain queries on a given node.</li><li>Query rewrite was enabled.</li><li>ocfs2 was used for the quorum and ocr files</li><li>ASM was used to provide storage for the datafiles etc. Each physical tray of disk was presented to ASM as logical disk of roughly 500Gb.</li><li>ASMlib was used to persist disk identity and simplify configuration.</li></ul><br />The tests consisted of a series of SQL statements that were run serial, concurrently and as a series of streams. I cant give much in the way of specifics for obvious reasons but the machine ran at about 80% utilization during the test most of the queries returned sub minute when run against the full data and many sub second when materialized views were exploited.<br /><br />However the real benefit came from the fact that low the cost commodity hardware made the system relatively cheap and easy to put together. Like any system there were things we would have liked to have done differently if we'd had the chance... The benchmark was done in 10 days (OS Install, disk, layout, Oracle install, data load etc.) and so things were done in a rush and with a little more thought could have been done much more efficiently... We are fairly certain we could have improved  the I/O performance but we didn't have the luxury of experimentation and so we made a call and lived with the consequences... I strongly recommend that any one building one of these systems spends some time with Oracle Orion disk benchmarking system to determine an optimal layout. A recent customer evaluating several possible disk layout configurations showed over 100% difference between two subtly different versions.]]></content:encoded></item><item><title>Back again...</title><dc:creator>Dominic Giles</dc:creator><category>General</category><dc:date>2007-08-03T19:14:24+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/b5d2dad78f177081f7127ba761372e7e-60.html#unique-entry-id-60</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/b5d2dad78f177081f7127ba761372e7e-60.html#unique-entry-id-60</guid><content:encoded><![CDATA[I wonder if anyone noticed that I haven't posted any new entries lately... no ahhh well. Anyway work has been crazy and I have to confess I've had little or no chance to update any of my projects. I have used them and spotted lots of things I'd like to get done.... I hoping to get some time next week to some testing and then documentation for 2.3..... <br /><br />I'll be updating my blog of the next couple of days with the findings from a benchmark we did recently nothing overwhelming just things I'd like to remember and that might be useful to other people....]]></content:encoded></item><item><title>Fix for 2.2 of swingbench</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2007-06-29T14:14:57+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/aa56a95ae6807233700b42088bce5387-59.html#unique-entry-id-59</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/aa56a95ae6807233700b42088bce5387-59.html#unique-entry-id-59</guid><content:encoded><![CDATA[I managed to break minibench in my last update of swingbench 2.2. I've uploaded a new build and taken advantage of the opportunity to refresh the libraries. Sadly this will mandate 1.5 as the new JVM. Apologies if this causes any inconvenience.]]></content:encoded></item><item><title>New Viewlets and Presentation</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2007-06-09T21:16:26+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/1985d1e2b8c41a1c458d9c1d607b3646-58.html#unique-entry-id-58</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/1985d1e2b8c41a1c458d9c1d607b3646-58.html#unique-entry-id-58</guid><content:encoded><![CDATA[I've just added a <a href="../Swingbench.pdf" rel="self">pdf</a> containing an overview presentation of Swingbench here. I've also uploaded some <a href="../(null)/(null)" rel="self" title="Swingbench Viewlets">viewlets</a> to give you a feel for how Swingbench looks in 2.2 and and 2.3. Expect more soon.<br /><br />Thanks to everyone that attended the RAC SIG webseminar]]></content:encoded></item><item><title>The RAC SIG on the 7th June</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2007-06-05T13:23:28+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/f0f0f36fd1eee252be29a3d9b452f9c9-57.html#unique-entry-id-57</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/f0f0f36fd1eee252be29a3d9b452f9c9-57.html#unique-entry-id-57</guid><content:encoded><![CDATA[Just a quick reminder. I'll be doing a presentation to the RAC SIG on the 7th of June starting at 9am Pacific Time.<br /><br /><a href="http://www.oracleracsig.org" rel="self">http://www.oracleracsig.org</a><br /><br />I'll be giving an overview of swingbench, showing the various components and what it can be used for. I'll also give a demo of the new 2.3 version of swingbench and what will make it into the production build. With a  bit of luck I'll also find time to answer questions...<br /><br />I was also hoping that I could include a few of your stories whether positive or negative... So if you have any feedback you'd like to include drop me a line through the comments page.<br /><br />Thanks<br /><br />Dom ]]></content:encoded></item><item><title>More fixes for datagenerator</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2007-05-09T16:43:51+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/d0d380f69bbab681f843cd0cda11692c-56.html#unique-entry-id-56</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/d0d380f69bbab681f843cd0cda11692c-56.html#unique-entry-id-56</guid><content:encoded><![CDATA[Fixes include<br /><br />&bull;	All menus now working<br />&bull;	Added sizing wizard to menu<br />&bull;	New Column wizard for DB sampler<br />&bull;	lots of other minor fixes<br />&bull;	zip file is now version numbered.<br /><br />Let me know if this helps]]></content:encoded></item><item><title>Yet another set of bug fixes to datagenerator</title><dc:creator>Dominic Giles</dc:creator><dc:subject>My Blog</dc:subject><dc:date>2007-05-04T19:23:32+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/e2f23482fb55618b549870d43fd1dc70-55.html#unique-entry-id-55</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/e2f23482fb55618b549870d43fd1dc70-55.html#unique-entry-id-55</guid><content:encoded><![CDATA[Some new bug fixes for datagenerator<br /><br />&bull;	Fixed various Array out of Bound Exceptions<br />&bull;	Stopped users creating an empty table without columns<br />&bull;	Stopped users creating a column without datagenerators<br />&bull;	Fixes a few other minor bugs<br />&bull;	Add a new emp/dept default config file.<br /><br />Keep the bug reports coming <br />]]></content:encoded></item><item><title>Update to datagenerator</title><dc:creator>Dominic Giles</dc:creator><dc:subject>My Blog</dc:subject><dc:date>2007-05-01T13:56:29+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/30ad974e633c2517daa61c3797662e99-54.html#unique-entry-id-54</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/30ad974e633c2517daa61c3797662e99-54.html#unique-entry-id-54</guid><content:encoded><![CDATA[So I finally managed to find time to fix a few bugs inside of datagenerator.<br /><br />&bull;	Commit and batch size can now be specified and work properly<br />&bull;	Database column sampling now works<br />&bull;	Fixed a bug that stopped the specification of parent child relationships in some instances<br />&bull;	Build number now shown in title bar.<br /><br />Let me know what you think. ]]></content:encoded></item><item><title>Update of 2.2 and 2.3</title><dc:creator>Dominic Giles</dc:creator><dc:subject>My Blog</dc:subject><dc:date>2007-04-20T19:35:55+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/5ad71833d733f03d4cd28b8bf58d2987-53.html#unique-entry-id-53</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/5ad71833d733f03d4cd28b8bf58d2987-53.html#unique-entry-id-53</guid><content:encoded><![CDATA[A fewer minor patches to both swingbench 2.2 and 2.3 including<br /><br />&bull;	Faster orderentry schema build<br />&bull;	Fix in the 2.2 oewizard where users where unable to specify the size of the schema<br /><br />you can download the new builds <a href="../screencasts.html" rel="self">here</a>]]></content:encoded></item><item><title>Update of 2.3</title><dc:creator>Dominic Giles</dc:creator><dc:subject>My Blog</dc:subject><dc:date>2007-04-17T21:03:45+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/5097d10ffde23893ff0d5f12020a8dd4-52.html#unique-entry-id-52</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/5097d10ffde23893ff0d5f12020a8dd4-52.html#unique-entry-id-52</guid><content:encoded><![CDATA[I've updated 2.3 (I told you I'd be patching regularly) to include new command line functionality for charbench and a few fixes to some of the benchmarks. <br /><br />I've replaced the old command line options of -vc,-vt, etc. with a more flexible option. you can now choose to list as many or as few metrics as you desire.<br /><p class="boxed"><samp >./charbench -v users,tpm,tps,cpu,disk,dml</samp ></p>Displays the time of the reading, users logged on, transactions per minute, transactions per second, cpu, disk, and dml operations. Adding the -rr option (refresh rate) allows you t change the speed of update.<br /> <p class="boxed"><samp >./charbench -v users,tpm,tps,cpu,disk,dml -rr 1</samp ></p>Will update the reading every second. <br /><br />It can be downloaded from the <a href="../screencasts.html" rel="self">usual location</a>.<br /> ]]></content:encoded></item><item><title>New Build of 2.3... At last</title><dc:creator>Dominic Giles</dc:creator><dc:subject>My Blog</dc:subject><dc:date>2007-04-12T19:56:41+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/bb093083603d88380783cba661f502e6-51.html#unique-entry-id-51</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/bb093083603d88380783cba661f502e6-51.html#unique-entry-id-51</guid><content:encoded><![CDATA[So I've finally got enough of swingbench 2.3 finished to feel confident I can at least show you where I am There's just one or two things I need to include before I can feel confident that I can take it out of beta. But before I tell you what those are let me tell you what's new.<br /><br />&bull;	Updated GUI to include all configuration parameters<br /><img class="imageStyle" alt="screenshot_03" src="http://www.dominicgiles.com/blog/files/page4_blog_entry51_1.jpg" width="424" height="299"/><br />&bull;	New overview chart including all relevant info (see below)<br /><img class="imageStyle" alt="screenshot_01" src="http://www.dominicgiles.com/blog/files/page4_blog_entry51_2.jpg" width="424" height="242"/><br />&bull;	Numerous bug fixes<br />&bull;	Changes to configuration file (Sorry!!)<br />&bull;	Some new command line parameters for charbench<br /><br />I've still got a few things to finish, these include<br />&bull;	Frequency support for transactions i.e run once every 20 minutes<br />&bull;	Statistic collection window.<br /><br />So expect more frequent releases over the next few days.<br /><br />Like always you can get the latest build <a href="../screencasts.html" rel="self">here</a>]]></content:encoded></item><item><title>Presentation to the US RAC SIG</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2007-04-09T20:34:26+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/c6e4d503b2221e95b4699f6a9b29d5bf-50.html#unique-entry-id-50</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/c6e4d503b2221e95b4699f6a9b29d5bf-50.html#unique-entry-id-50</guid><content:encoded><![CDATA[I'll be doing a webcast on swingbench to the US RAC SIG on June 4th. I believe it will be starting at 9.30 PT (check the web sit for confirmation). I hope to detail what swingbench is capable of, the best practices when using swingbench and what I'll be doing next. I think Im suppose to be answering questions as well so you'll get a chance to have ago at me for all those annoying bugs....<br /><br />So if your interested join in and I'll do my best to keep it informative and entertaining.<br /><br />Dom.]]></content:encoded></item><item><title>New functionality for 2.2</title><dc:creator>Dominic Giles</dc:creator><dc:subject>My Blog</dc:subject><dc:date>2007-04-04T13:11:46+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/710d28d295c473ed275a5696e5f0b58a-49.html#unique-entry-id-49</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/710d28d295c473ed275a5696e5f0b58a-49.html#unique-entry-id-49</guid><content:encoded><![CDATA[I've backported some functionality from 2.3 to 2.2. This enables the user to specify the runtime for swingbench from the command line. I've also added a new command line option to specify a login delay from the command line as well. This is useful for throttling back connections for large numbers of sessions.<br /><br />ie.<br /><p class="boxed"><samp >./charbench -cs //kgy11034/orcl -rt 0:30 -a -uc 1000 -min 1500 -max 2500 -ld 10<br /></samp></p>Will run charbench for 30 minutes and then automatically log off the users... the -ld 10 will put a 10 millisecond delay in between connections giving the server a bit of breathing space...<br /><br />you should be able to run all tests using a script like this<br /><p class="boxed"><samp >./charbench -cs //kgy11034/orcl -rt 0:30 -a -uc 1000 -min 1500 -max 2500 -ld 10<br />./charbench -cs //kgy11034/orcl -rt 0:30 -a -uc 2000 -min 1500 -max 2500 -ld 10<br />./charbench -cs //kgy11034/orcl -rt 0:30 -a -uc 3000 -min 1500 -max 2500 -ld 10<br />./charbench -cs //kgy11034/orcl -rt 0:30 -a -uc 4000 -min 1500 -max 2500 -ld 10<br /></samp ></p>I've also recompiled 2.2 with a 1.4 JVM to support backwards compatibility.]]></content:encoded></item><item><title>Sometimes we all make mistakes...</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2007-04-02T11:52:39+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/0df110cdae70a93147f260ddd0a2ce87-48.html#unique-entry-id-48</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/0df110cdae70a93147f260ddd0a2ce87-48.html#unique-entry-id-48</guid><content:encoded><![CDATA[Its not easy keeping an idea on all aspects of swingbench and sometimes I let stuff get through that really shouldn't. I try my best. I made a amateurish mistake on sequence numbers in the order entry bench. I've uploaded a new build of 2.2 which I'll include in the new 2.3 build shortly. If you find these annoying little bugs or potentially big issues drop me a line and I'll do my best to put it right.]]></content:encoded></item><item><title>A little coordinator/cpumonitor issue</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2007-03-21T08:31:56+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/5af465de9ab49e862c69958a12093def-47.html#unique-entry-id-47</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/5af465de9ab49e862c69958a12093def-47.html#unique-entry-id-47</guid><content:encoded><![CDATA[I ran into this issue just recently. I couldn't get swingbench to talk to the coordinator and sadly the large RMI stack traces didn't explain it very well. It turns out that Java RMI expects the hostname and hostname.domain in the /etc/hosts file to be on a separate line to the 127.0.0.1 localhost entry i.e. on the second line.<br /><br />For example change<br /><br />127.0.0.1		localhost localhost.localdomain saturn saturn.planets<br /><br />to<br /><br />127.0.0.1		localhost localhost.localdomain<br />10.211.55.4	saturn saturn.planets<br /><br />Making this simple modification gets everything working as expected. This problem is common in a DHCP environment (not ideal for benchmarking) where you acquire ip address and potentially hostnames dynamincally. Its good practice to keep them on separate lines anyway.]]></content:encoded></item><item><title>More Coming...</title><dc:creator>Dominic Giles</dc:creator><dc:subject>My Blog</dc:subject><dc:date>2007-03-14T09:19:58+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/95c6e726eb4516a3fe28f4b54ba47a25-46.html#unique-entry-id-46</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/95c6e726eb4516a3fe28f4b54ba47a25-46.html#unique-entry-id-46</guid><content:encoded><![CDATA[Okay....<br /><br />So I know I've been quiet recently but that doesn't mean to say I haven't been busy in-fact its been mad at work lately and thats meant that I haven't had a lot of time to work on swingbench or any of my other pet projects. So where am I now? Well there will be a new drop out shortly including some changes to the user interface. Im not sure whether I like them or not. The good news is that all of the options that were once hidden inside of swingbench config file can now be changed from the user interface and its given me the chance to include some that I've meant to put in for some time. The problem with this is that its made the UI a bit busy. I've implemented the change using sub tabs and I swore I'd never to do this as I think it confuses the end user.... I'll let yo decide but the one thing it has confirmed to me is that I'll have to move 2.4 on the a tree based UI similar to the one I use in datagenerator... So what's to come in the next couple of weeks...<br /><br />	&bull;	UI changes as I mentioned<br />	&bull;	New overview chart replacing the existing one, to feature TPM, TPS, Average response time (?), CPU and Disk I/O.<br />	&bull;	Temporal based transactions i.e Run once every 20 minutes or just run once.<br />	&bull;	Start recording statistics after x mins, stop recording after x mins.<br /><br />Now for the bad news. The changes have been quite extensive and have included significant changes to  the config file which means any bespoke changes you've made will have to be redone. The changes also mean I could have broken a lot of stuff so expect frequent and regular updates over the next few weeks. I'll also be updating my blog more frequently as well...<br /><br />Expect the first drop at the start of next week.]]></content:encoded></item><item><title>TimesTen Fix</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2007-01-02T14:30:43+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/00ec1bce7b145e8fa36c830e2363e6db-45.html#unique-entry-id-45</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/00ec1bce7b145e8fa36c830e2363e6db-45.html#unique-entry-id-45</guid><content:encoded><![CDATA[I know I had promised an update of the front end to swingbench in my next release however its been pointed out to me that I managed to break my TimesTen support in one of the earlier releases. I've just uploaded a new build that should fix these issues. I've also uploaded a simple TimesTen walkthrough. It can be found <a href="../timestenwalkthrough.html" rel="self">here</a>]]></content:encoded></item><item><title>What have I been up to?</title><dc:creator>Dominic Giles</dc:creator><category>General</category><dc:date>2006-12-28T23:11:50+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/34503c23de1f59b08fa262204cbcf508-44.html#unique-entry-id-44</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/34503c23de1f59b08fa262204cbcf508-44.html#unique-entry-id-44</guid><content:encoded><![CDATA[I know, I know I haven't released a new build of any of the three tools that currently make up my portfolio of software packages... However thats not to say I haven't been busy, currently Im working on<br /><br />&bull;	Updates to the user interface of swingbench (exposing parameters hidden in the config file)<br />&bull;	Updating the doc (I know too late)<br />&bull;	Fixes to Trace Analyzer.<br /><br />Im also helping out several groups who are putting swingbench through its paces and the output of this should make it a tighter code base.<br /><br />Anyway I've big plans for 2007 and I hope you'll stick with me.<br /><br />Dom.<br />]]></content:encoded></item><item><title>Trace Analyzer</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-11-13T20:21:43+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/07a091e19c72ad20c63f424f0540a71f-43.html#unique-entry-id-43</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/07a091e19c72ad20c63f424f0540a71f-43.html#unique-entry-id-43</guid><content:encoded><![CDATA[So I haven't released much in the way of an update to swingbench lately mainly because work has been so busy...<br /><br />However between meetings I put together a little program that parses Oracle trace files. Now I know TKProf does a fine job of this but I've never been really comfortable with having to continually rerun TKProf to change the ordering and filter out classes of statements. This came to a head just recently after looking through a big trace file and trying to figure out what SQL to work on first. I also thought that perhaps I could use a richer user interface to give a better overview on what has happened a particular run. So I started with the intention of figuring out how to parse the file and come up with some ideas on what to with the results... This turned out to be pretty trivial because of its structure and Java's regular expression support. With that taking much less time than expected I put them into a Java Swing JTable just to verify the results, which lead on to the next thing and then the next.... Needless to say the code is far from perfect but it does give a feel as to what could be achieved. If there is no interest I'll stop now and go back to finishing swingbench 2.3.<br /><br />So In summary what does it do<br />	&bull;	Parse trace files.<br />	&bull;	Profile the data via a bar of the right had side of the scroll bar.<br />	&bull;	Supports dynamic filtering and sorting of the data.<br />	&bull;	Highlight the 5 worst performing pieces of SQL (elpased, cpu, physical etc)<br /><br />What I'd like to add to it<br />	&bull;	highlight concurrent SQL<br />	&bull;	Explain Plans<br />	&bull;	Display bind variables<br />	&bull;	dump sql to flat files<br />	&bull;	generate load files for swingbench <br /><br />However unless theirs interest I probably won't bother..<br /><br />You can download the code <a href="../screencasts.html" rel="self">here</a><br /><br />Leave your comments <a href="../page8/page8.html" rel="self">here</a>.<br />]]></content:encoded></item><item><title>Performance fix for datagenerator </title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-10-16T19:56:25+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/2bd79b8763cfb2b5a03ac5a0a6c89b9a-41.html#unique-entry-id-41</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/2bd79b8763cfb2b5a03ac5a0a6c89b9a-41.html#unique-entry-id-41</guid><content:encoded><![CDATA[Apologies for those that have already downloaded swingbench. I managed to engineer a bug into the latest build... I removed code responsible for array binding on inserts into the database. I've put it back in and, as you might expect, makes a significant difference to this new functionality. In the next couple of days I intend to document some simple findings illustrating the difference between the two approaches.]]></content:encoded></item><item><title>New build of datagenerator</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-10-13T20:20:06+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/c8d71619c283674166e5c19a315ef64c-40.html#unique-entry-id-40</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/c8d71619c283674166e5c19a315ef64c-40.html#unique-entry-id-40</guid><content:encoded><![CDATA[I've uploaded the latest build of datagenerator. New features include<br /><ul><li>User definable number of threads</li><br /><li>Data insertion directly into the database (Oracle)</li><br /><li>Ordered generation of data (largest first)</li><br /><li>Lots and lots of small bug fixes</li><br /></ul>Apologies for not updating swingbench recently but I've been struggling with the amount of "proper" work at the moment. I'll try and find some time over the next few week to include the updates I promised. Let me know if you encounter any problems in the code... now is the time to get them fixed. ]]></content:encoded></item><item><title>Donations Link</title><dc:creator>Dominic Giles</dc:creator><category>General</category><dc:date>2006-10-01T20:24:07+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/d76067fa34ad14030e2b9a7948dc211e-39.html#unique-entry-id-39</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/d76067fa34ad14030e2b9a7948dc211e-39.html#unique-entry-id-39</guid><content:encoded><![CDATA[I've posted a donation link on the web site (downloads). I don't mean to offend anyone but the hosting and domain bill has just rolled in again. Thanks if you can help out.<br />Dom]]></content:encoded></item><item><title>New build of swingbench 2.3&#x2c; build 144</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-09-14T23:10:17+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/e86f16bb6261c19ed9f8dc557a02bd66-38.html#unique-entry-id-38</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/e86f16bb6261c19ed9f8dc557a02bd66-38.html#unique-entry-id-38</guid><content:encoded><![CDATA[I've just uploaded a build of new swingbench. This fixes a whole load of internal bugs that shouldn't have been that obvious to most people. This should be the last before I release the changes to the front end. This hopefully should allow all swingbench parameters to be maintained from a graphical front end.]]></content:encoded></item><item><title>On the subject of I/O</title><dc:creator>Dominic Giles</dc:creator><category>Oracle</category><dc:date>2006-09-01T17:37:24+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/982f19b35ffdf6e218cd63a9c8708535-37.html#unique-entry-id-37</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/982f19b35ffdf6e218cd63a9c8708535-37.html#unique-entry-id-37</guid><content:encoded><![CDATA[One the things that constantly surprises me when talking with clients about hardware for a new database server is that I/O is always at the bottom of the list. Typically the list will look something like this (listed in order of perceived importance)<br /><ul><li>CPUs, have we enough. Fast as possible.</li><br /><li>Memory, as much as we can put in the box. Oracle don't charge us for that</li><br /><li>SAN, big as possible.</li></ul><br />At this stage the purchase order is usually given the nod and the hardware supplier will ship yet another run of the mill box. Don't get me wrong. Many experienced DBAs have been through this process many times before and realise that not only is the list in the wrong order but its missing some critical components.<br /><ul><li>HBAs, need to specify these in proportion to the CPUs and attached storage</li><br /><li> NICs, might need a lot of these i.e public, cluster interconnect, storage, management, backup. And typically in multiples for resillience or performance.</li><br /><li> Backup, are we using the existing backup infrastructure?</li></ul><br />I don't blame anyone for this way of thinking, its the way its always been. When discussing a new server the first question that people tend to ask is "So whats this monster packing? 16 CPUs!!!" followed by lots of very macho grunts and hollering. The standard licensing model (not just Oracles) doesn't help. It starts with premise of a CPU describing the power of a server, and to a large degree it does but misses the point of what a database is all about and that's information. Typically that information is held in ones and zeros on a bunch of spinning scrap metal. The real power of a database comes from its ability to aggregate, analyze and process those ones and zeros, turn it into information and push results out to interested parties. Paraphrasing a little "Its all about I/O stupid".<br /><br />With this in mind I'm constantly surprised by the imbalance of I/O put into servers both disk and network. Its not unusual to see a 4 cpu server running with the latest generation Intel and AMD CPUs but with a single HBA and dual ported NIC. Whilst memory is cheap many of these servers still run 32 bit kernels. This typically means only a small proportion of the database is cached in memory be it in the SGA or file cache (don't me started on file cache). I'd make a rash guess that whilst the size of the memory in a typical database server has increased the average size of the SGA hasn't increased in line with this trend. To make matters worse the typical size of a database has got significantly bigger. This has to lead us to the conclusion that less of the database is cached and as a result a bigger proportion of its is located on disk. As I said this is just a guess but its backed up with real customer engagements. What would be of interest is to have performed an analysis over the last 10 years to see if the wait event for scattered and sequential reads had decreased or increased as a proportion of the total wait event in production databases.<br /><br />What I'm driving at is the need to move I/O way up the agenda when sizing a server for databases. The number of CPUs needs to be married to the number of I/O channels available. It makes no sense to buy database licenses for a machine that will simply sit and wait on I/O, Its simply wasting money. Equally it makes no sense to stuff a 4 cpu machine full of HBAs for a database application that will perform index lookups on a index that fits comfortably in the cache. Adding HBAs later to an existing server isn't necessarily a simple option either especially for a mission critical application or one that has hard coded paths to disk.<br /><br />The next obvious question is "well thats well and good but how do I size the ratio of HBAs to CPUs." and in a typically vague fashion I reply "well that depends". The type of application and the type of processor should heavily influence the decision. Certainly the CPU has been winning the race in terms of performance over the last few years and it needs a lot more I/O to keep it busy. But the equation also needs to be balanced with the amount of memory available on the box. A large SGA will certainly reduce the need to visit disk. The best advice I can give is to speak to your hardware supplier and find out what the current state of play is. Also check the latest TPC-C and TPC-H figures show. Whilst these are generally edging towards the extremes of performance it does show what a hardware supplier believed was needed to show their hardware in the best light.  <br /><br />]]></content:encoded></item><item><title>Fix for DSS benchmark</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-08-30T17:03:15+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/00a22d56fd7682c980eda7a63fecac98-36.html#unique-entry-id-36</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/00a22d56fd7682c980eda7a63fecac98-36.html#unique-entry-id-36</guid><content:encoded><![CDATA[I've included a fix for the DSS benchmark. The code used to label modules for services opened cursors without closing them properly. This prevented the benchmark from running for any period of time.]]></content:encoded></item><item><title>Fix for timezone support in datagenerator</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-08-30T17:00:29+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/9c7b3452a9dab3ede4a4a631927cb2fb-35.html#unique-entry-id-35</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/9c7b3452a9dab3ede4a4a631927cb2fb-35.html#unique-entry-id-35</guid><content:encoded><![CDATA[I've included a fix for datagenerator that allows it to load the soe.xml and sh.xml file regardless of timezone the user is running in. I've also changed the default config file to a simple version to try and prevent this problem happening in the future.]]></content:encoded></item><item><title>New builds of swingbench and datagenerator</title><dc:creator>Dominic Giles</dc:creator><dc:subject>My Blog</dc:subject><dc:date>2006-08-25T19:56:54+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/6eef95854696002c623c48143cb2c61e-34.html#unique-entry-id-34</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/6eef95854696002c623c48143cb2c61e-34.html#unique-entry-id-34</guid><content:encoded><![CDATA[I've uploaded some new builds of <a href="../screencasts.html" rel="self">datagenerator and swingbench</a> to try and sort out some issues with national language support and timezones... i.e it only worked in the UK. Obviously if I could persuade everyone to change to UK time not only would it solve my issue, it would help solve a lot of other problems (never let it be said I have a insular view). ]]></content:encoded></item><item><title>Nokia E61</title><dc:creator>Dominic Giles</dc:creator><category>General</category><dc:date>2006-08-24T20:14:25+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/9e35a0bf2069524ce075ebaaeee1e50a-33.html#unique-entry-id-33</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/9e35a0bf2069524ce075ebaaeee1e50a-33.html#unique-entry-id-33</guid><content:encoded><![CDATA[Ive just recently managed to acquire a Nokia E61 and its fair to say Im very impressed. For those that don't know the E61 is a cross between a PDA and a phone. Its a little like a Crackberry in design with a minature keyboard instead of a number pad and a larger (wider) than normal display. Those that know me will say its just a fad Dominic goes through gadgets faster than a scotsman goes  through iron brew. Well the truth off the matter is it does everything I need it to do well.<br /><br />At the moment there are four main players in the portable OS market. Symbain, Microsoft, Palm and just recently Linux. It appears that Microsoft is winning the day certainly in Northern America. Even Palm who I never thought would put Pocket PC on one of their devices has rolled over and given into Microsoft. Symbian is doing well thanks primarily to Nokia in Europe and Sony in the East. Palm OS still holds its own thanks to the superb Treo device but I think its days are numbered as Palm gets closer and closer to Microsoft.<br /><br />I think most people would argue the point who cares what OS a phone or PDA  runs as long as it lets me make calls or check my email. Well it matters to me, my phone is probably the device I use second after the PC in a working day and I have real issues with Microsofts mobile offerings. They like they are simply a port of a OS with mobile/phone functionality bolted on as an after thought. Using the phone feels foreign its not at the heart of the OS, it sits at the side like the black sheep of family. Its a bland uninspiring experience, simple things are made harder than necessary and require a knowledge of how similar tasks would be done on Windows XP. <br /><br />Back to the E61. The thing you notice about this device is its dimuntive size weight and thickness. Most devices that pack the same level of the functionality are usually brick size in terms of weight and size. The E61 has bluetooth, Wi-Fi, 3G support  and a hold raft of additonal connectivity funtionality. The interface works well and benefits from bright and clear display. The small keyboard works as well as any other Ive tried, so well in fact this whole blog (and the one before) was  written on it. The battery life of the device is surprisingly good, about 4 days between charges. The reason for this easy to find when you take the back off the cover... Its mostly the battery which takes up the space but this begs the question where do they put all of the over "stuff".<br /><br />I had the choice of the Treo 650 and the E61 and I think I made right choice. Sure it dosent have a camera but then I dont need a low res camera and infact some of the places I have to work it means I dont have to hand my phone in at their reception. One area I had some concerns is software, Palm OS has a huge library of high quality well thought through applications and to be honest with you Symbian doesn't. However the default applications that ship with the Nokia E61 pretty much leave you with the question "what else would I need?". Well theres one piece of software I do need and thats a decent GPS package.<br /><br />After looking around I decide on Route 66 it had reasonable reviews and it worked with the Nokia  GPS  reciever Id purchased. As a package it worked out much cheaper than the TomTom alternative. Installing Route 66 on the E61 has to rate as one of the most unpleasant experiences Ive had with a mobile device. After insisting on formating my mini SD card in the phone it then told me I needed at least 16MB of free space... I tried other storage devices with same result, clearly Route 66 need to do some work on the installer. Theres no excuse for this level of software quality. The solution was to manually copy the software onto the SD card and even then a hard restart was required. However once the software was installed it worked like a dream and demonstrates the power of the E61s processor.<br /><br />With the GPS software installed I have about all I need from a single device. I recomend the E61 to anyone thinking of upgrading their phone and PDA.]]></content:encoded></item><item><title>Icon design</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-08-12T18:39:07+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/15b51993173eb1ab1c54ed8fadad0aa2-32.html#unique-entry-id-32</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/15b51993173eb1ab1c54ed8fadad0aa2-32.html#unique-entry-id-32</guid><content:encoded><![CDATA[One of the problems when buiding a bespoke application is that you can never find a icon that reperesents exactly the action you need. Sure there are hundreds of sites on web that have "free" icons but these tend to be designed for the desktop. You can sometimes find sets that look very professional and you'd be proud to have them in your application. However you still have the issue that you don't only need icons to represent "file open" or "delete record" but also ones to represent the new action that is going make your application a best seller and the last think you need is a icon that sticks out like an ugly sore thumb.<br /><br />So your left with a couple of choices. Go ahead and build that expensive icon set and hope that no one notices your child like attempts at graphic design. Or bite the bullet and commit your self to buiding the whole set your self. Now this not something you  should attempt if you have no artistic aptitude or are short of patience. To be fair I've always been interested in graphic design but have never had the inclination or need to commit to buiding my own icon set. That was until I started working on datagenerator and swingbench. Im a one man team and I know many of you will be questioing the sense in spending time working on icons when it could better be invested in fixing bugs or working on new features, however one of my objectives when I started working on thes projects was to touch on a number of disciplines that my day to day job (core database) doesn't allow.<br /><br />So once you've committed yourself to building your own bespoke set what tools do you use. Well theres no shortage of tools from bespoke icon editors to top end tools such as Adobe Illustrator and Photoshop, Paintshop pro etc. I've shyd away from icon editors in the past simply because I find them to restrictive. You find yourself spending to much time trying reproduce effects such as shadows and gradients which are pretty much the defacto standard on a modern desktop. I use two platforms these days, My Apple iMac and a Linux notebook. If I was designing icons and other graphics for a living I would invest the big bucks for a product like Adobe Illustrator... I wouldn't even hesitate, from my limited experience nothing comes close, however I dont do this for a living and it doesn't make any sense to spend a couple of thousand pounds for a dozen icons (although if someone has a spare license lying around...).<br /><br />Luckily the open source market has a number of alternatives that provide a viable alternative. i dont have the time to list the various projects building superb tools to compete with the various commercial offerings but two stand out. The Gimp (worth using just to shout accross the office "I working on the Gimp") and Inkscape. The Gimp is primarily used as a raster or digital paint tool as is comaparable to Adobe Photoshop. Inkscape is a vector paint tool and is comparable to Adobe illustrator in terms of use if not functionality, it also has the added benefit of working directly in SVG. Working in a scalable format, such as SVG, is a real asset to icon design it means you can work on a large scale and then shrink or enlarge your design with very little loss in quality.<br /><br />So Ive comitted to Inkscape and Im very impressed so far. It appears rock solid, has ports for MacOS and Linux, has tools for viewing your designs as they would appear as icons and has some genuinely inovative features. However it does have some flaws.... The documentation is very weak, some of the dialogues are confusing at best and its not a native port to MacOS (that really would set the cat amongst the pigeons).<br /><br />That set Ive started work and its pretty straight forward to put together some consistent icons. Ill post the results shortly... don't laugh   <br /><br />  ]]></content:encoded></item><item><title>New build of datagenerator</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-08-07T20:28:36+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/fd0628baf4b7034ccc17166428ff5e5b-31.html#unique-entry-id-31</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/fd0628baf4b7034ccc17166428ff5e5b-31.html#unique-entry-id-31</guid><content:encoded><![CDATA[I've uploaded a new build of datagenerator (46). The update to this build is primarily to include new debug code to try and diagnose a issue with reading the default config files shipped with datagenerator. This prevents users from reading the data inside of the xml file. This appears to be a national language issue since the data is shipped in UK format. If you have this issue, uncomment the debug line in the shell script or bat file that starts datagenerator and post the output to me via the comments page.]]></content:encoded></item><item><title>New features for swingbench 2.4</title><dc:creator>Dominic Giles</dc:creator><dc:subject>My Blog</dc:subject><dc:date>2006-07-31T20:08:49+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/9aa8659203c48b5e32d25b742010953b-30.html#unique-entry-id-30</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/9aa8659203c48b5e32d25b742010953b-30.html#unique-entry-id-30</guid><content:encoded><![CDATA[It wont come as a surprise to people that know me I have a hard time focusing on work thats nearly done. And so finishing a release of swingbench is the hardest thing I have to do... Im always tempted to start thinking about the next relase in prefence to sorting out the final last issues and documenting all of the new features and functionality...<br /><br />With this in mind Im interested to know what features people would like to see in the next release... Some ideas might be<br /><ul><li>Load generated from trace files</li><br /><li>More benchmarks</li><br /><li>more sophisticated clusteroverview</li><br /></ul><br />Anyway let me know what you think... while I concentrate on finishing 2.3]]></content:encoded></item><item><title>Minor Swingbench update to 2.3&#x2c; build 125</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-07-20T21:14:42+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/cff013bcdfe1d5845cb3416dbbf56107-29.html#unique-entry-id-29</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/cff013bcdfe1d5845cb3416dbbf56107-29.html#unique-entry-id-29</guid><content:encoded><![CDATA[Hi just a minor patch update to fix a few minor updates. Yup I do make changes based on feedback. Thats assuming I have time... Things are slowing down just a little at work as people head off on holiday so Im hoping to get 2.3 finished soon.. just the UI changes now... I'll be at Oracle HQ in the US next week so Im not likely to be able to respond to much email. For any of my work colleagues that need to get in touch I'll be on the mobile... <br />Back to the minor fixes<br /><ul><li>Sorted out the save, save buttons so they should work as expected.</li><br /><li>Now a Transactions per second option for charbench(if this is useful I'll include it inside of swingbench and minibench)</li><br /><li>Benchmark name now include on window title for swingbench</li><br /></ul><br /><br />]]></content:encoded></item><item><title>DSS benchmark uploaded</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-07-17T20:29:26+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/4ae5ac954a7d003bf404c2e2c45531be-28.html#unique-entry-id-28</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/4ae5ac954a7d003bf404c2e2c45531be-28.html#unique-entry-id-28</guid><content:encoded><![CDATA[I've just uploaded a new build of swingbench and datagenerator to the website. They can be downloaded <a href="../screencasts.html" rel="self">here</a>. The reason for the joint release is that they both provide support for a new DSS benchmark. I've described how to install and run the benchmark <a href="../dss.html" rel="self">here</a>. The benchmark still needs work and testing to determine some standard metrics but it hangs together. Let me know what you think <a href="../page8/page8.html" rel="self">here</a>.]]></content:encoded></item><item><title>New DSS benchmark available (or nearly).</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-07-07T20:33:51+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/40f53126665537e4ca61f7f47be0ceb4-27.html#unique-entry-id-27</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/40f53126665537e4ca61f7f47be0ceb4-27.html#unique-entry-id-27</guid><content:encoded><![CDATA[Over the last few days I've been putting together swingbench's first DSS benchmark. It uses <a href="../datagenerator.html" rel="self">datagenerator</a> to create the schema and then a new config file to generate the load. The only reason I haven't posted it yet is that our cluster is currently in pieces and is slowly being put back together so I'haven't had a chance to test it on a large scale machine. Im certain of a few things. It should eat I/O and CPU. I haven't included any materialized views to improve perfomance simply because in the past I've been asked for a benchmark to test the I/O sub system, I think this is it. It currently needs a little work to get it to scale to large sizes but I'll post instructions. The ultimate aim is to deliver three sizes 100GB, 500GB and 1TB. There's no reason why they couldn't be bigger its just that I'll lack the resource to test it. If you'd like to give it a spin drop me a line and I'll send you the code.  Regardless I hope to post the code by the end of the week.]]></content:encoded></item><item><title>Datagenerator update to build 31</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-06-27T20:29:06+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/36559f213c3459962f7fac2292788044-26.html#unique-entry-id-26</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/36559f213c3459962f7fac2292788044-26.html#unique-entry-id-26</guid><content:encoded><![CDATA[I've been slowly rounding off some of the rough edges in datagenerator. In this release I've fixed a few bugs and provided a wizard to size tables up in a simpler fashion (hint its the new button on the tool bar). I've also included the ability to store data in side of the config file. This is really useful if you have to take reference data from a reversed engineered schema. To demonstrate this I reverse engineered the oracle "sales history" schema and included the reference data for "TIMES","PRODUCTS" etc. The whole schema including reference data can now be shipped in a single file. I've included this file in this build (sh.xml in bin/winbin directory). This means you should be able to generate a multi terabyte "sh" schema.... This functionality will fome the basis of a new DSS benchmark in the next few weeks for swingbench. Let me know if you encounter any problems.<br /><br />Oh and I fixed a stupid scripting bug the windows bat file to lauch datagenerator...<br />]]></content:encoded></item><item><title>Swingbench update to build 117</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-06-27T20:16:36+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/43b80debdeaed207376c4a51060e999d-25.html#unique-entry-id-25</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/43b80debdeaed207376c4a51060e999d-25.html#unique-entry-id-25</guid><content:encoded><![CDATA[Nothing amazingly new in this build other than some fixes. These relate to<br /><ul><br /><li>Opening new config files left the old configuration in memory</li><br /><li>The default config in windows was invalid (and no one mailed me... shame)</li><br /><li>Fix to work around an Oracle connection pooling bug</li><br /><li>No reports generated unless a System username/password was included in the config file</li><br /></ul>Im currently working on, mostly in my spare time, the creation of a swingbench DSS benchmark and the update of the UI to support all of the parameters currently hidden in the config file. Let me know if you encounter problems with this build.]]></content:encoded></item><item><title>New build of swingbench 2.3 available</title><dc:creator>Dominic Giles</dc:creator><dc:subject>My Blog</dc:subject><dc:date>2006-05-30T20:38:07+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/d71cfc159b40c8c92583928d22827647-24.html#unique-entry-id-24</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/d71cfc159b40c8c92583928d22827647-24.html#unique-entry-id-24</guid><content:encoded><![CDATA[I've just uploaded a new build of swingbench 2.3. It includes a number of commonly requested features. These include<br /><ul><br /><li>The ability to collect database stats (from v$sesstat) to provide an overview of the resources used in a benchmark run. Let me know what other stats you'd like collected</li><br /><li>Time on the x-axis of the Transaction and CPU overview charts</li><br /></ul><br />To enable database stats collection you'll need to edit the config file and include the following new elements (in red)<br /><samp><pre><br />&#60;ConnectionInformation&#62;<br />      &#60;UserName&#62;soe&#60;/UserName&#62;<br />      &#60;Password&#62;soe&#60;/Password&#62;<br />      &#60;ConnectString&#62;//dgiles-uk:1521/DOM102&#60;/ConnectString&#62;<br />      &#60;DriverType&#62;thin&#60;/DriverType&#62;<br />      &#60;NumberOfUsers&#62;15&#60;/NumberOfUsers&#62;<br />      &#60;LogonDelay&#62;0&#60;/LogonDelay&#62;<br />      &#60;LogOutPostTransaction&#62;false&#60;/LogOutPostTransaction&#62;<br />      <span style="color:#FF0000;">&#60;SystemUserName&#62;system&#60;/SystemUserName&#62;<br />      &#60;SystemPassword&#62;manager&#60;/SystemPassword&#62;</span><br />&#60;/ConnectionInformation&#62;<br /></pre></samp><br />The results will be included in the output as xml.]]></content:encoded></item><item><title>IllegalMonitorState Exception in Datagenerator on Itanium.</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-05-18T20:29:24+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/925fcffde9aabeefc6cb671fde39cd72-23.html#unique-entry-id-23</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/925fcffde9aabeefc6cb671fde39cd72-23.html#unique-entry-id-23</guid><content:encoded><![CDATA[I've encountered a weird bug... not sure if its my fault or the the JVMs. Basically when running the latest version of datagenerator on a multi CPU Itanium box I get this exception thrown after a (seemingly random) period of time. This only happens on an Itanium machine. The other variable here is that because its Itanium I have to use the JRockit 1.5 JVM. The code seems to work fine on every other multi CPU environment I've tried... Has anyone else had this problem?]]></content:encoded></item><item><title>New build of swingbench</title><dc:creator>Dominic Giles</dc:creator><dc:subject>My Blog</dc:subject><dc:date>2006-05-02T13:11:09+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/61bf91fb10e4995ee6a3247d7d77d840-22.html#unique-entry-id-22</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/61bf91fb10e4995ee6a3247d7d77d840-22.html#unique-entry-id-22</guid><content:encoded><![CDATA[I've released a new build of swingbench... nothing earth shattering but I have included some new functiionality<br /><ul><br /><li>clusteroverview has new command line options</li><br /><li>clusteroverview can now be run automatically and for a specified period of time</li><br /><li>Clear button on events panel in swingbench</li><br /><li>Events in panels now appear in time descending order</li><br /></ul><br />There's a bunch of other stuff too... ]]></content:encoded></item><item><title>Walkthrough for datagenerator available</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-04-12T21:24:27+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/7ea24c98c5b057676dcc6e3be3db6d34-21.html#unique-entry-id-21</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/7ea24c98c5b057676dcc6e3be3db6d34-21.html#unique-entry-id-21</guid><content:encoded><![CDATA[I've just published a walkthrough for datagenerator <a href="../dgwalkthrough.html" rel="self">here</a>. It should help in figuring out what datagenerator is capable of. This will probably be the way I publish all documents in the future... ]]></content:encoded></item><item><title>Minor update to Datagenerator</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-04-06T20:32:53+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/c270d4a2096f5ffaf3e38d966ebbf8fc-20.html#unique-entry-id-20</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/c270d4a2096f5ffaf3e38d966ebbf8fc-20.html#unique-entry-id-20</guid><content:encoded><![CDATA[I've fixed a few minor issues with the build I put up last night. The new release has a build number to enable you to more easily track what's new. I also fixed a minor bug with the environment  variables in the windows build.]]></content:encoded></item><item><title>Datagenerator 0.3 release</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-04-05T22:08:21+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/965f97008fa2c1cc5fc1301fabcd9035-19.html#unique-entry-id-19</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/965f97008fa2c1cc5fc1301fabcd9035-19.html#unique-entry-id-19</guid><content:encoded><![CDATA[I've just uploaded datagenerator 0.3 to the <a href="../screencasts.html" rel="self">downloads</a> page. Its a big step forward. Apart from being multithreaded and generally much faster it includes a wizard that allows you to reverse engineer a schema... currently it only reverse engineers the tables and primary keys but I'll include more functionality over time. I've used it to build vey large schemas for the order entry benchmark much faster than I was perviously able to. In the next couple of days I'll post a script and instruction on how to do this.. In the mean time enjoy]]></content:encoded></item><item><title>Linux distro choice</title><dc:creator>Dominic Giles</dc:creator><category>General</category><dc:date>2006-03-29T22:30:17+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/c1ab0ece2ff9f57c826399e70aa803c0-18.html#unique-entry-id-18</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/c1ab0ece2ff9f57c826399e70aa803c0-18.html#unique-entry-id-18</guid><content:encoded><![CDATA[So I've given up on the hope that I could stick with Red Hat 4 AS on my notebook. No matter how many tweaks I make I can't get away from the fact that I need a kernel  (and associated infrastructure) to make best use of the technologies like ACPI and my nice hi-res screen.  I've stuck it out as long as I can... I've tried to keep my notebook patched up to latest updates so as to provide as close as possible a working environment used by the customers I'm asked to help out with. But it makes no sense. My notebook is clearly not a server, never will be. It has a single processor, uses a SATA drive only has 2GB of memory and no 64 bit  capabilities. So on the odd ocasion I've tried to debug a complicated problem that a customer has encountered I've failed. No surprises,  I really need a proper disk array, a lot more memory and at least a dual core CPU. So I've made the decision to upgrade to a bleeding edge distro either Fedora core 5 or Ubuntu with a 2.6.16 kernel (OCFS as part of the kernel build). I'll use VMware to provide a RHEL 4/SLES 9 environment....<br /><br />If Im honest the primary reason Im even considering this is notebook suspend/hibernate. I used to love this functionality in my old notebook (APM). I don't think I rebooted it in about 6 months on one occasion, no need close the lid it hibernated, opened it up it resumed, Oracle was up for most of this 6 month stint (in a suspended form). I've feel that the introduction of ACPI has set back the Linux notebook world a long way... Not thats it not an improvment, its just Linux has struggled to provide a meaningful out of the box experience... Its getting there, every kernel release moves it forward but its still away to go. Im not expecting an Apple like experience... just something close.  ]]></content:encoded></item><item><title>Comments in blog</title><dc:creator>Dominic Giles</dc:creator><category>General</category><dc:date>2006-03-18T20:24:04+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/84ef2e7b53a3479dbcc6bbc86a02f7da-17.html#unique-entry-id-17</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/84ef2e7b53a3479dbcc6bbc86a02f7da-17.html#unique-entry-id-17</guid><content:encoded><![CDATA[You should now be able to leave comments in my blog... be nice.]]></content:encoded></item><item><title>SQL Developer goes production.</title><dc:creator>Dominic Giles</dc:creator><category>Oracle</category><dc:date>2006-03-14T19:56:30+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/7a7e6e9829560b80dcfa4564df514385-16.html#unique-entry-id-16</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/7a7e6e9829560b80dcfa4564df514385-16.html#unique-entry-id-16</guid><content:encoded><![CDATA[SQL Developer has gone production. Congratulations to the entire development team. I've been using it every day now and it feels solid and performs well and I continue to find out new tricks and features each day. If you've not given it ago, try it...]]></content:encoded></item><item><title>Update to Swingbench 2.3 Beta</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-03-14T19:55:01+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/14dc732e93f022f8845490db6f3fd1ad-15.html#unique-entry-id-15</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/14dc732e93f022f8845490db6f3fd1ad-15.html#unique-entry-id-15</guid><content:encoded><![CDATA[Further fixes for connection pooling and new support for the order entry schema to be build without partitioning.]]></content:encoded></item><item><title>Swingbench 2.3 Beta available</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-03-08T22:30:29+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/49a8a01a544422ae2d99fa180acd1ade-14.html#unique-entry-id-14</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/49a8a01a544422ae2d99fa180acd1ade-14.html#unique-entry-id-14</guid><content:encoded><![CDATA[I've just posted swingbench 2.3 to the <a href="../screencasts.html" rel="self">downloads</a> page. This build still needs some work but it has some genuinely useful features.<br /><br />These include<br /><ul><li>Update to frontend of "minibench"</li><br /><li>New simple "Stress Test" benchmark for both Oracle and TimesTen</li><br /><li>TimesTen support</li><br /><li>User defineable length of benchmark run</li><br /><li>Better statistics in reports output</li><br /><li>Benchmark comparison tool</li><br /><li>Improved connection pooling and fAN support (via swingconfig file only)</li><br /><li>Minor changes to swingconfig.xml</li><br /><li>Build numbers for each release</li><br /><li>User selectable timings i.e. measurements in seconds, centiseconds, millseconds, microseconds etc.</li><br /></ul>The new runtime functionality and bmcompare utility allow for large complex benchmark runs and comparisons between individual runs. The new minibench UI provides a richer experience for those wishing to run the swingbench environment in graphical mode but without the overhead of the full blown interface.<br /><br />Documentation (online and pdf) to follow shortly.]]></content:encoded></item><item><title>BMCompare</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-02-23T20:19:38+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/207f6f82f745978704eb2d3dc051c5fb-13.html#unique-entry-id-13</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/207f6f82f745978704eb2d3dc051c5fb-13.html#unique-entry-id-13</guid><content:encoded><![CDATA[Swingbench 2.3 should be ready shortly features a new tool called bmcompare which allows you to compare runs of benchmarks... Its pretty simply currently but I like it. Its simplifies the job of brining all of the data together. It will be especially useful for some of the users of swingbench how use swingbench as a regression test tool. ]]></content:encoded></item><item><title>SQLDeveloper</title><dc:creator>Dominic Giles</dc:creator><category>Oracle</category><dc:date>2006-02-23T20:06:35+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/7baf5bd064c049ef8190a70950421805-12.html#unique-entry-id-12</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/7baf5bd064c049ef8190a70950421805-12.html#unique-entry-id-12</guid><content:encoded><![CDATA[If you haven't tried this tool out I strongly recomend you pop over <a href="http://www.oracle.com/technology/products/database/project_raptor/index.html" rel="self">here</a>. Its a massive step forward for database developers/DBA who really have felt a little neglected by Oracle over the last few years. I've had countless complaints about how SQLPlus/vi/notepad are still used by many as their development tools of choice and how it really isn't good enough. Well I've know about th tool for a while now and have had to keep quite but Im glad the cats out of the bag and its got such positive reviews... especially because of its price... free.<br /><br />It features much of the functionality you'd expect in a top end development tool plus features that many of its competitors charge top dollar for. The best piece of news is that its an extensible framework and plugins have started to pop up all of the place... One of my particular favourites is at <a href="http://www.fourthelephant.com/" rel="self">fourthelephant</a>. Perhaps a little over the top for a text man like myself but I appreciate the work that must have gone into it.<br /><br />They've inspired me to think about putting one together myself... The API is pretty simple and so it shouldn't be too taxing.... Any ideas? drop me a line and I'll see what I can do.]]></content:encoded></item><item><title>So whats new in Swingbench 2.3</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-02-15T20:08:59+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/70316e8793e4147a2a2aa5f996ef16c4-11.html#unique-entry-id-11</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/70316e8793e4147a2a2aa5f996ef16c4-11.html#unique-entry-id-11</guid><content:encoded><![CDATA[I've been putting the final touches on the 2.3 release of swingbench. So far the features that have made it in are<br /><ul><br /><li>TimesTen support</li><br /><li>Timer support. This allows you to run the benchmark for a given time</li><br /><li>User selectable timings i.e. measurements in seconds, centiseconds, millseconds, microseconds etc.</li><br /><li>Code modification to support 1.5</li><br /></ul><br />Im still also hoping to include a utility that will provide side by side comparison of benchmark runs. For example this will allow you to run six benchmarks and compare the differences between each one. So you could increase the user count by 50 percent each run and then determine what difference this makes to the server. It will be pretty simple at first but Im hoping it will become more sophisticated over time.<br /><br />Things that aren't likely to make it but will be in 2.4<br /><ul><br /><li>Data warehosuing benchmark</li><br /><li>Update to clusteroverview</li><br /></ul>]]></content:encoded></item><item><title>Update to Swingbench to support 1.4 JVM</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-01-25T23:02:59+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/7c199d81c2cf2a2227ee4fd9f7ee2977-10.html#unique-entry-id-10</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/7c199d81c2cf2a2227ee4fd9f7ee2977-10.html#unique-entry-id-10</guid><content:encoded><![CDATA[<span style="font-size:10px; ">Apologies but I've posted another minor change to swingbench to support the 1.4 JVM. You should only download a new build if you don't have access to a 1.5 JVM.</span>]]></content:encoded></item><item><title>rlwrap : Command line editing in sqlplus</title><dc:creator>Dominic Giles</dc:creator><category>Oracle</category><dc:date>2006-01-24T19:44:56+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/6a65b85d7f3dede245a3dbff6b4e1b12-9.html#unique-entry-id-9</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/6a65b85d7f3dede245a3dbff6b4e1b12-9.html#unique-entry-id-9</guid><content:encoded><![CDATA[I imagine alot of people in the Linux comunity already use this. However if you new to Linux and struggling with recalling text on the commandline from within sqlplus, rlwrap might be the tool for you... its just a wrapper you put around a command line program and provides command line editing.... I've been using it for the last few months and couldn't live without it<br /><br />You can find the tool <a href="http://utopia.knoware.nl/~hlub/uck/software/" rel="self">here</a><span style="font-size:10px; "><br /></span>]]></content:encoded></item><item><title>What next for swingbench?</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-01-20T22:51:13+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/2c8e9dec031443dd76b8436f627cf337-8.html#unique-entry-id-8</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/2c8e9dec031443dd76b8436f627cf337-8.html#unique-entry-id-8</guid><content:encoded><![CDATA[Im at a sort of a crossroads with swingbench and Id like some feedback on what course I should follow next. There are a number of features I've been promising for a while<br /><ul><br /><li>A new data warehousing benchmark, this also requires I get datagenerator into a more complete state.</li><br /><li>Better multiple load generator support, clusteroverview hasn't really received much attention in the recent point releases</li><br /><li>Better reporting, I've always planned to integrate a mini statspack so that each run results in a more complete break down on not just the results but what happened to the database</li><br /><li>A html front end, I could do this either by integrating it into Enterprise manager (not as hard as you think) or writing a bespoke JSP front end.</li><br /><li>HTTP load generation support, I've been promising this for a while and have written the engine and have nearly got the code in a state where I could drop it in. But I've a feeling the market is a wash with HTTP load generators.</li><br /><li>None of the above and just tighten up the code.</li><br /></ul><br />If you have strong feelings on any of these drop me a <a href="../page8/page8.html" rel="self">comment</a>. ]]></content:encoded></item><item><title>Server side failover</title><dc:creator>Dominic Giles</dc:creator><category>Oracle</category><dc:date>2006-01-18T11:55:26+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/859a2dd3f34b49a43e5a39380d39b680-7.html#unique-entry-id-7</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/859a2dd3f34b49a43e5a39380d39b680-7.html#unique-entry-id-7</guid><content:encoded><![CDATA[I've had a number of emails recently with requests for help with the new server side failover functionaility in 10g release 2. This functionality is described in the Oracle10g release 2 documentation but I've been told its not really obvious.<br /><br />Let start by explaining what it is. Server side failover allows the sysadmin/dba to configure the profile of connection availablity on the server using a service. Users are effectively unaware of what will happen in the advent of a node in the cluster failing. Previously  in (9i and 10g) users needed an entry in their local tnsnames file to describe which nodes they could failover to and which nodes were used to load balance connections on. Unless you used a remote naming service to maintain the connection information every time you added or removed nodes from a cluster it meant an update to potentially hundreds or thousands of tnsnames files.<br /><br />This was simplified with easy connect in 10g release 1 which allowed the creation and connection to a service specified on the server. For the first time users only needed to connect to a nominated "listener node" and know the name of the service, for example imagine we have a nominated server inside of our organisation called "oracleservice", this of course is the name used for our virtual ip that will float between our cluster of listeners. In 10g release 1 we could create a service called "orderentry" using either dbca or srvctl that would allow our users to connect to it using a connect string of the form<br /><br /><span style="font:12px Courier, mono; ">sqlplus soe/soe@//oracleservice/orderentry<br /><br /></span>This greatly simplifies Oracle network maintenance. In some cases it could mean the removal of tnsnames files from the client or application server. It has other advantages for the DBA as well. If some business event occurs that requires the provisioning of a new application or a new resource profile for a short period of time the DBA can provision it in seconds and trivially remove it when it is no longer required.<br /><br />Sadly in Oracle10g release 1 this functionality didn't support Transparent Application Failover (TAF), this meant that DBAs still needed to maintain tnsnames files contain a description of what nodes a service could failover on. The good news is that in Oracle10g release 2 this all changed. DBA's could set up a service specifying TAF and the Oracle OCI layer would use this definition provided by the server to describe the load balancing and failover profile. <br /><br />Implementing this functionality is pretty trivial but there is a step that might catch you out. So lets go through it step by step<br /><br />To set up the service you can use either Oracle DBCA, the DBMS_SERVICE package, Enterprise Manager  or srvctl. The choice is entirely dependent  on what you have running. DBCA or Enterprise manager provide the simplest mechanism but you will still have to run the final step using the dbms_service package to tell the database about its failover profile.<br /><br />I'll use the DBMS_SERVICE package and srvctl for the sake of brevity. In the following example I have a database called db10g2 with two instances db10g21 and db10g22. Im going to create a service called "orderentry" that will provide transparent application failover between the two instances.<br /><br />The first step is to create the service using srvctl<span style="font:12px Courier, mono; "><br /><br />srvctl add service -d db10g2 -s orderentry -r "db10g21,db10g22" -a "db10g21,db10g22" -P BASIC<br /><br /></span>and check on its status<span style="font:12px Courier, mono; "><br /><br />$ > srvctl status service -d db10g2 -s "orderentry"<br />Service orderentry is not running.<br /><br /></span>So we'll have to start the service first<span style="font:12px Courier, mono; "><br /><br />$ > srvctl start service -d db10g2 -s "orderentry"<br /><br /></span>if we now use sqlplus connecting as system/sys we can see the service.<span style="font:12px Courier, mono; "><br /><br />SYSTEM@db10g21 > select SERVICE_ID, NAME, NETWORK_NAME, failover_method from dba_services;<br /><br /> id Name				Network Name              Failover<br />--- ------------------ 	------------------------- ------------<br />  1 SYS$BACKGROUND<br />  2 SYS$USERS<br />  3 orderentry			orderentry               <br /><br /><br /></span>The thing to note is that the service hasn't got a failover profile associated with it. So we'll have to modify it using the DBMS_SERVICE package<br /><span style="font:12px Courier, mono; "><br />SYS@db10g21 > get t1.sql<br />  1  begin<br />  2     DBMS_SERVICE.MODIFY_SERVICE(<br />  3     service_name => 'orderentry',<br />  4     failover_method => DBMS_SERVICE.FAILOVER_METHOD_BASIC,<br />  5     failover_type => DBMS_SERVICE.FAILOVER_TYPE_SELECT,<br />  6     failover_retries => 180,<br />  7     failover_delay => 5);<br />  8* end;<br />SYS@db10g21 ><br /><br /></span>if we now select the service information again<span style="font:12px Courier, mono; "><br /><br /></span><span style="font:12px Courier, mono; "> id Name				Network Name              Failover<br />--- ------------------ 	------------------------- ------------<br />  1 SYS$BACKGROUND<br />  2 SYS$USERS<br />  3 orderentry			orderentry                BASIC<br /></span><span style="font:12px Courier, mono; "><br /></span>We can now test the service using sqlplus.<br /><br />sqlplus soe/soe@//node1/orderentry<br /><br /><span style="font:12px Courier, mono; ">SQL*Plus: Release 10.2.0.1.0 - Production on Wed Jan 18 14:11:47 2006<br /><br />Copyright (c) 1982, 2005, Oracle.  All rights reserved.<br /><br /><br />Connected to:<br />Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production<br />With the Partitioning, Real Application Clusters, OLAP and Data Mining options<br /><br />SOE@//node1/orderentry > <br /><br /></span>So all we need to do now is to fire up swingbench and use the service we've created. <span style="font:12px Courier, mono; "><br /><br />[oracle@node1 bin]$ ./charbench -cs //node1/orderentry -dt oci -uc 30 -a<br />Author  :        Dominic Giles<br />Version :        2.2<br /><br />Results will be written to results.xml.<br />Users : 30      TPM :   272     Nested TPM :    0<br /><br /></span>If we log onto the database we can see that the connections have being balanced across the two nodes<span style="font:12px Courier, mono; "><br /><br />SYS@db10g21 >;<br /><br />  1  select instance_name, count(1) usercount, nvl(username,'INTERNAL') user_name,<br />  2         failover_type, failover_method<br />  3  from gv$session s, gv$instance i<br />  4  where s.inst_id = i.inst_id<br />  5  group by instance_name, username, failover_type, failover_method<br />  6* order by username, instance_name<br />SYS@db10g21 > /<br /><br />Instance   No. of Users Username   Fail Over Type     Fail Over Method<br />---------- ------------ ---------- ------------------ ------------------<br />db10g21              15 SOE        SELECT             BASIC<br />db10g22              15 SOE        SELECT             BASIC<br />db10g21               6 SYS        NONE               NONE<br />db10g22               6 SYS        NONE               NONE<br />db10g21              23 INTERNAL   NONE               NONE<br />db10g22              25 INTERNAL   NONE               NONE<br /><br /></span>so lets shut down of the instances<span style="font:12px Courier, mono; "><br /><br />SQL*Plus: Release 10.2.0.1.0 - Production on Wed Jan 18 15:28:22 2006<br /><br />Copyright (c) 1982, 2005, Oracle.  All rights reserved.<br /><br /><br />Connected to:<br />Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production<br />With the Partitioning, Real Application Clusters, OLAP and Data Mining options<br /><br />SYS@db10g22 > shutdown abort;<br />ORACLE instance shut down.<br />SYS@db10g22 > <br /><br /></span>And re-query the session profile<span style="font:12px Courier, mono; "><br /><br />Instance   No. of Users Username   Fail Over Type     Fail Over Method<br />---------- ------------ ---------- ------------------ ------------------<br />db10g21              30 SOE        SELECT             BASIC<br />                      6 SYS        NONE               NONE<br />                     25 INTERNAL   NONE               NONE<br /><br /></span><br />There's a lot more thats possible using the service approach to database connection but I'll discuss that in another blog.<br /><br /><br /><br /><br /><br />]]></content:encoded></item><item><title>Minor update to swingbench 2.2</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2006-01-11T20:27:49+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/950d69619cfab054e219fe8fd835dfb1-6.html#unique-entry-id-6</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/950d69619cfab054e219fe8fd835dfb1-6.html#unique-entry-id-6</guid><content:encoded><![CDATA[I've just updated swingbench 2.2 with a few minor bug fixes.. It sorted out one or two issues with the wizards used to create the benchmark schemas.]]></content:encoded></item><item><title>Swingbench 2.2 is now production</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2005-12-19T22:28:50+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/5820d79751c307c2580b5d418e7ee9bb-5.html#unique-entry-id-5</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/5820d79751c307c2580b5d418e7ee9bb-5.html#unique-entry-id-5</guid><content:encoded><![CDATA[After finding a few spare hours I believe that 2.2 is now ready to be considered stable.... There are a few non serious few bugs but I'll fix those as I find time. Let me know what you think...]]></content:encoded></item><item><title>The new site look and feel</title><dc:creator>Dominic Giles</dc:creator><dc:subject>My Blog</dc:subject><dc:date>2005-12-17T17:01:35+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/45d156fa34e06b11c55584387846e99a-4.html#unique-entry-id-4</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/45d156fa34e06b11c55584387846e99a-4.html#unique-entry-id-4</guid><content:encoded><![CDATA[I've updated the sites look and feel and added blogging capability . I've used RapidWeaver to put it all together. Its a fantastic tool and really simplifies the whole laborious process. Previously I hand crank the html, php and style sheets. RapidWeaver allows me to visually put together a web site and publish just the bits I want. Give it ago.... you'll need a Mac though ;-).]]></content:encoded></item><item><title>J2SE 5.0 and Swingbench</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2005-12-15T19:57:33+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/1bf40d52222e147ebdde230ee7fe8de9-3.html#unique-entry-id-3</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/1bf40d52222e147ebdde230ee7fe8de9-3.html#unique-entry-id-3</guid><content:encoded><![CDATA[I've begun looking at the internal of the swingbench code. Its not massively complicated but it is a little opaque. Its was written a long time ago when many of Java's constructs were new to a hardened C programmer. Im slowly going through the code and tidying it up, for valid reasons which I'll come to in a second. However it has given me the chance to use the functionality offered in J2SE 5.0 primarily enumerators and generics. These tidy up the code a lot and make it almost readable. Its also made me more determined to re-factor the code and make it much cleaner and modular.<br /><br />The reason Im migrating to J2SE 5.0 is purely to support Oracle's new in memory database TimesTen. To measure its response time accurately I need microsecond timings. Since J2SE 5.0 offers nano second timing support where the platform supports it it made sense to do it all in one go. Sadly its a much bigger modification than I indented since it effects most of the code base. Still its proving interesting. Expect TimesTen support in a build almost immediately after 2.2 goes production.]]></content:encoded></item><item><title>Swingbench Version 2.2 (release candidate)</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2005-12-05T12:31:01+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/6674cc37361551732c41ce40755fec99-2.html#unique-entry-id-2</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/6674cc37361551732c41ce40755fec99-2.html#unique-entry-id-2</guid><content:encoded><![CDATA[Swingbench version 2.1h is now 2.2. Im certain I've included enough new functionality to justify this change. Over the last week or so I've managed to add a whole raft of new features and fixes that should simplify its use. There won't be any new features in this current release just bug fixes. The intention is to have it stable and the doc finished by the end of December. I've also updated the swingbench manual, I'll update clusteroverview's doc shortly. So in summary new in 2.2...<br />New in 2.2<br /><ul><br /><li>A new lightweight graphical load generator called "minibench"</li><br /><li>The coordinator now has a number of command line options (start, stop, status, run, halt)</li><br /><li>The coordinator can now be run in ether graphical or character mode</li><br /><li>The charting engine now uses Oracle's BIBeans graphing technology</li><br /><li>Better exception handling and error messages in both swingbench and clusteroverview</li><br /><li>Users can now turn off jumping to the events panel in swingbench</li><br /><li>The user chart in clusteroverview now allows users to specify monitored users</li><br /><li>Swingbench can logon/logoff users between transactions (experimental)</li><br /><li>Minor changes to swingconfig.xml</li><br /><li>New Look and Feel</li><br /><li>charbench/swingbench/minibench now have a number of command line options allowing them to override configuation file settings. This should simplify configuration.</li><br /><li>CPU monitor (accessible via coordinator)</li><br /><li>charbench can now display transaction/cpu load in sar/vmstat like format</li><br /><li>swingbench can now display graphically display cpu load</li><br /><li>Lots of fixes to the benchmark install wizards</li><br /><li>order entry benchmark can now be scaled to 100GB</li><br /><li> CPU monitor for database nodes in clusteroverview</li><br /><li>Simple CPU monitor in minibench</li><br /></ul><br />Still to come<br /><ul><br /><li>Localisation support</li><br /><li>TimesTen support</li><br /><li>Simple generic load test</li><br /><li>DSS benchmark</li><br /></ul><br /><img class="imageStyle" alt="minibench" src="http://www.dominicgiles.com/blog/files/page4_blog_entry2_1.png" width="446" height="245"/><br />minibench<br /><img class="imageStyle" alt="cpuoverview" src="http://www.dominicgiles.com/blog/files/page4_blog_entry2_2.png" width="441" height="159"/><br />CPU overview<br />]]></content:encoded></item><item><title>New release of DataGenerator</title><dc:creator>Dominic Giles</dc:creator><category>Swingbench</category><dc:date>2005-10-12T20:28:45+01:00</dc:date><link>http://www.dominicgiles.com/blog/files/ae3384afbf1dd5b21c65817901f76e61-1.html#unique-entry-id-1</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/ae3384afbf1dd5b21c65817901f76e61-1.html#unique-entry-id-1</guid><content:encoded><![CDATA[Just released a new build of Datagenerator. I've stuck a graphical front end on it so its much easier to use now. Its never going to be amazingly fast because of its generic nature. What Im aiming to achieve is to allow the user to reverse engineer a schema and then "Super Size" it. The main modivation for this utility is to provide a benchmark for datawarehousing using swingbench that dosn't involve downloading a terabyte of data. As to whats new in it<br /><br />    * New graphical front end.<br />    * New "Enumerator" data generator type<br />    * Some bug fixes<br /><br />Not much, but things have been pretty busy at work. The implementation of the reverese engineering functionality will depend on how long I can avoid doing all of the work on swingbench I've promised people.<br /><img class="imageStyle" alt="datagenerator" src="http://www.dominicgiles.com/blog/files/page4_blog_entry1_1.png" width="479" height="366"/>]]></content:encoded></item><item><title>About Windows and Mac OSX</title><dc:creator>Dominic Giles</dc:creator><category>General</category><dc:date>2005-12-12T10:15:56+00:00</dc:date><link>http://www.dominicgiles.com/blog/files/1ca7baf7c70d845419155ed44a82550d-0.html#unique-entry-id-0</link><guid isPermaLink="true">http://www.dominicgiles.com/blog/files/1ca7baf7c70d845419155ed44a82550d-0.html#unique-entry-id-0</guid><content:encoded><![CDATA[Don't get me wrong I don't dislike windows but I think it lacks a soul... The trouble is that most people think they simply need a OS that does the job : Read email, Browse the web, Store their family snaps on... And for the most part its true. The sad thing is if your forced to sit in front of something for 8 hours a day that lacks a soul it will slowly crush yours. But its not all bad, Windows has the best driver support bar none... no one touches it. The remarkable thing is that it works at all with the myriad of expansion cards, motherboards, graphics cards, monitors. Its an engineering tour de force. I'd never thought I'd say this but perhaps there's something to Apple's approach of keeping a tight control on the central hardware platform... sure allow third parties to create the printers, tablets and other peripherals but keep the heart of the system proprietary... <br /><br />I think Windows biggest problem is the huge release gaps between releases... 3 years. Thats a life time in development. By the time they've laid out their plans and set to work the market place has changed. Since XP has been released the web experience has become richer and more interactive and the need for a huge bloated OS stuffed with functionality that few will find seems slightly dated. I guess Microsoft will argue that they have a huge customer base to migrate and its a hellishly hard job... well thats true to a degree and I would have agreed with them 8 years ago but now... Now Im not so sure. Seemingly the required PC spec for a project Longhorn would pretty much eliminate the need for any migration at all... Only the latest generation machines will provide the necessary horsepower to drive its rich 3d UI.<br /><br />I don't think the open-source has it quite right either.., sure their release cycles come every 6 months and they can change and innovate at a much higher rate than Windows but sadly it lacks some of the cohesion of the markets main players... Also they have to sort out the memory bloat thats occurred in the last few years... some of the apps are massive and I don't mean in terms of functionality. But having said that for all of if its piece meal delivery KDE, Gnome, XFe and Enlightenment  definitely have soul. More importantly they flexibility and customizability allow them to reflect the personality of the person using them.<br /><br />I've come late to Apple and thats a regret... It has feel of an OS that someone genuinely cares about. Things are intuitive, well designed and pleasant to look at without going overboard. It feels rock solid and dependable and most import for an Unix head like myself at its heart beats a Mach micro kernel. If you've not tried the experience give it ago.<br />]]></content:encoded></item></channel>
</rss>