<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-24844947</id><updated>2012-02-11T09:04:52.115-08:00</updated><category term='media player'/><category term='install'/><category term='logging'/><category term='clustering'/><category term='sysadmin'/><category term='debugging'/><category term='drive'/><category term='bug'/><category term='vm'/><category term='HashMap'/><category term='apt-get'/><category term='import'/><category term='tomcat'/><category term='sqlplus'/><category term='duplicates'/><category term='3ware'/><category term='gutsy'/><category term='ldap'/><category term='libnss-ldap'/><category term='msde'/><category term='3dm2'/><category term='function'/><category term='script'/><category term='debian'/><category term='link'/><category term='windows'/><category term='performance'/><category term='port'/><category term='thunderbird'/><category term='raid'/><category term='xen'/><category term='hardware'/><category term='jdk1.5'/><category term='linux'/><category term='system'/><category term='idea'/><category term='java'/><category term='usb'/><category term='internet explorer'/><category term='security'/><category term='howto'/><category term='static'/><category term='pl/sql'/><category term='remote'/><category term='voip'/><category term='zaptel'/><category term='website'/><category term='bash'/><category term='sql server'/><category term='user'/><category term='ie'/><category term='oracle'/><category term='log4j'/><category term='asterisk'/><category term='clone'/><category term='HA'/><category term='chainsaw'/><category term='load balancing'/><category term='sql'/><category term='drivers'/><category term='unix'/><category term='errors'/><category term='jboss'/><category term='index'/><category term='remote desktop'/><category term='network'/><category term='dhcp'/><category term='ubuntu'/><category term='error'/><category term='jconsole'/><category term='regsvr'/><category term='vista'/><category term='svn'/><title type='text'>Spiralinks' Programmer's blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mark Bean</name><uri>http://www.blogger.com/profile/17336941817772659601</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>52</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-24844947.post-7396638302359469199</id><published>2009-09-23T08:45:00.001-07:00</published><updated>2009-09-23T08:46:52.384-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='vm'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='dhcp'/><title type='text'>Windows DHCP server problem on Xen VM hosts</title><content type='html'>If your Xen hosted Windows DHCP server(s) are running on the same physical host as linux DHCP clients, then they will not receive a DHCP address.&lt;br /&gt;&lt;br /&gt;Thanks to &lt;a href="http://www.loho.co.uk/"&gt;Loho&lt;/a&gt;, who quickly told me how to fix the problem - this is now solved. The trick is &lt;a href="http://support.microsoft.com/kb/904946"&gt;here&lt;/a&gt; (copied for posterity):&lt;br /&gt;&lt;br /&gt;To work around this problem, turn off checksum offloading on the network adapter. To do this, follow these steps:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Click Start, click Run, type regedit, and then click OK.&lt;/li&gt;&lt;li&gt;Locate and then click the following registry key:&lt;pre&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;In the right pane, make sure that the DisableTaskOffload registry entry exists. If this entry does not exist, follow these steps to add the entry:&lt;ol&gt;&lt;li&gt;On the Edit menu, point to New, and then click DWORD Value.&lt;/li&gt;&lt;li&gt;Type DisableTaskOffload, and then press ENTER.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Click DisableTaskOffload.&lt;/li&gt;&lt;li&gt;On the Edit menu, click Modify.&lt;/li&gt;&lt;li&gt;Type 1 in the Value data box, and then press ENTER.&lt;/li&gt;&lt;li&gt;Exit Registry Editor.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-7396638302359469199?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/7396638302359469199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=7396638302359469199' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/7396638302359469199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/7396638302359469199'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2009/09/windows-dhcp-server-problem-on-xen-vm.html' title='Windows DHCP server problem on Xen VM hosts'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-3247012610114532617</id><published>2009-09-07T04:42:00.001-07:00</published><updated>2009-09-07T04:58:02.575-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><title type='text'>Useful BASH script - finding if any files exist from a wildcard</title><content type='html'>&lt;a href="http://www.ducea.com/2009/03/05/bash-tips-if-e-wildcard-file-check-too-many-arguments/"&gt;This&lt;/a&gt; post has some details if you want to check if one or more files matching a pattern exist in a folder.&lt;br /&gt;&lt;br /&gt;Specifically this is useful if you use &lt;pre&gt;[ -f {pattern} ]&lt;/pre&gt; and the result contains more than one element - avoiding the error:&lt;br /&gt;&lt;pre&gt;/usr/local/bin/{script}.sh: line x: [: too many arguments&lt;/pre&gt;The solution is something like the following:&lt;pre&gt;files=$(ls {pattern} 2&gt; /dev/null | wc -l)&lt;br /&gt;if [ "$files" != "0" ]&lt;/pre&gt;Thanks for the post!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-3247012610114532617?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/3247012610114532617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=3247012610114532617' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/3247012610114532617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/3247012610114532617'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2009/09/useful-bash-script-finding-if-any-files.html' title='Useful BASH script - finding if any files exist from a wildcard'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-7673827240360618910</id><published>2009-08-14T02:37:00.000-07:00</published><updated>2009-08-14T02:41:28.192-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sysadmin'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Oracle XE: Clearing out unwanted trace files</title><content type='html'>If left unchecked, Oracle XE installations can balloon in size quite quickly - this is due to the trace files being written by the server. The following run in a cron script can be used to remove files more than 7 days old.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;#!/bin/bash&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;find $ORACLE_HOME/../../../admin/$ORACLE_SID/bdump -name "*.trc" -mtime +7 -exec rm "{}" \;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;find $ORACLE_HOME/../../../admin/$ORACLE_SID/udump -name "*.trc" -mtime +7 -exec rm "{}" \;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;find $ORACLE_HOME/../../../admin/$ORACLE_SID/cdump -name "*.trc" -mtime +7 -exec rm "{}" \&lt;/span&gt;;&lt;/span&gt;&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"   style="font-family:'Courier New', Courier, monospace;font-size:85%;"&gt;&lt;span class="Apple-style-span"  style="font-size:10px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;This tip was found and modified for XE in the following useful article '&lt;i&gt;Oracle Linux - Using the "find" command to manage files'&lt;/i&gt;:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;a href="http://www.dba-oracle.com/t_unix_script_find_files_older_date.htm"&gt;http://www.dba-oracle.com/t_unix_script_find_files_older_date.htm&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-7673827240360618910?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/7673827240360618910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=7673827240360618910' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/7673827240360618910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/7673827240360618910'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2009/08/oracle-xe-clearing-out-unwanted-trace.html' title='Oracle XE: Clearing out unwanted trace files'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-1731070539467271520</id><published>2009-07-17T15:22:00.000-07:00</published><updated>2009-07-17T15:22:20.268-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='apt-get'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Debian: apt-get interrupted, leaves files in bad state</title><content type='html'>If you get the following error when running apt-get or dpkg on Debian / Ubuntu:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;debconf: DbDriver "config": /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then the following commad will tell you what's using it:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;fuser -v /var/cache/debconf/config.dat&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-1731070539467271520?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/1731070539467271520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=1731070539467271520' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/1731070539467271520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/1731070539467271520'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2009/07/debian-apt-get-interrupted-leaves-files.html' title='Debian: apt-get interrupted, leaves files in bad state'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-8156625074566663729</id><published>2009-05-21T05:17:00.000-07:00</published><updated>2009-11-10T06:21:55.503-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='remote desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Remote desktop 'Exceeded the number of connections' work-around</title><content type='html'>You can optionally connect to the 'console' which is a screen 0 (by default screens 1 and 2 are the screens you connect to with a remote desktop client).This option is not in the Windows UI, you need to use the following command from Start-&amp;gt;Run:&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; mstsc -v:{machine address} /f -console&lt;/div&gt;&lt;br /&gt;Windows Vista / Windows 7 use the syntax '/admin' rather than -console.&lt;br /&gt;&lt;br /&gt;If you use a mac, you can put '&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/console&lt;/span&gt;' at the end of the machine name in the machine box.&lt;br /&gt;&lt;br /&gt;If you use linux then add '&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;-0&lt;/span&gt;' to the &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;rdesktop&lt;/span&gt; command line.&lt;br /&gt;&lt;br /&gt;Thanks to &lt;a href="http://forums.serverbeach.com/archive/index.php/t-1984.html"&gt;msalo&lt;/a&gt; and &lt;a href="http://coolskool.blog-city.com/console_switch_for_remote_desktop_client_for_mac.htm"&gt;Kola Oyedeji&lt;/a&gt; for this information.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-8156625074566663729?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/8156625074566663729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=8156625074566663729' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/8156625074566663729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/8156625074566663729'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2009/05/remote-desktop-exceeded-number-of.html' title='Remote desktop &apos;Exceeded the number of connections&apos; work-around'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-4957561701711072948</id><published>2009-05-13T08:01:00.000-07:00</published><updated>2009-05-13T08:03:07.396-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='internet explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='ie'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Keeping IE 6 (or 7) for development</title><content type='html'>All,&lt;br /&gt;    If you are developing on IE6 and want to stop Microsoft automatic update from installing IE 7 or IE 8 please install the following updates from Microsoft:&lt;br /&gt;&lt;br /&gt;Internet Explorer 8 blocker:&lt;br /&gt;http://tinyurl.com/9yjpqw&lt;br /&gt;&lt;br /&gt;Internet Explorer 7 blocker:&lt;br /&gt;http://tinyurl.com/kwkgt&lt;br /&gt;&lt;br /&gt;    You need to run them to extract files, then go to a command prompt and run the command with a /B switch (block).&lt;br /&gt;&lt;br /&gt;    To keep IE6 you need to run both 7 and 8 blockers.&lt;br /&gt;&lt;br /&gt;Then, you can keep your system completely up to date with old-school browsers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-4957561701711072948?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/4957561701711072948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=4957561701711072948' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/4957561701711072948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/4957561701711072948'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2009/05/keeping-ie-6-or-7-for-development.html' title='Keeping IE 6 (or 7) for development'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-1542337900008524953</id><published>2009-03-17T04:00:00.000-07:00</published><updated>2009-03-17T04:13:56.559-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='raid'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='3ware'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='3dm2'/><title type='text'>HOWTO: Install 3ware 3dm2 on Ubuntu</title><content type='html'>3dm2 is a very useful web management utility for 3ware's hardware RAID controllers.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ubuntuforums.org/showthread.php?t=263288"&gt;This&lt;/a&gt; post finally gave me the clue, as there's no information on 3ware's site, and the installer simply fails if you try to run it on Ubuntu. Here it is in a nutshell:&lt;br /&gt;&lt;br /&gt;Edit &lt;span style="font-family: courier new;"&gt;/etc/apt/sources.list&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;# Debian Unnoficial&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;deb &lt;/span&gt;&lt;a style="font-family: courier new;" href="http://ftp.debian-unofficial.org/debian" target="_blank"&gt;http://ftp.debian-unofficial.org/debian&lt;/a&gt;&lt;span style="font-family: courier new;"&gt; stable main contrib non-free restricted&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You will be warned about non-authenticated sources, but you can ignore this (can anyone tell me how to get the key for this site?)&lt;br /&gt;&lt;br /&gt;Other notes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;By default, the site is only accessible from localhost (&lt;a href="https://localhost:888/"&gt;https://localhost:888/&lt;/a&gt;). To fix this, edit &lt;span style="font-family: courier new;"&gt;/etc/3dm2/3dm2.conf&lt;/span&gt; and set '&lt;span style="font-family: courier new;"&gt;RemoteAccess&lt;/span&gt;' to &lt;span style="font-family: courier new;"&gt;1&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;The default password for User and Admin is '&lt;span style="font-family: courier new;"&gt;3ware&lt;/span&gt;'.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-1542337900008524953?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/1542337900008524953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=1542337900008524953' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/1542337900008524953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/1542337900008524953'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2009/03/howto-install-3ware-3dm2-on-ubuntu.html' title='HOWTO: Install 3ware 3dm2 on Ubuntu'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-4136203004698385503</id><published>2009-02-06T05:49:00.000-08:00</published><updated>2009-02-06T05:51:32.369-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zaptel'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><category scheme='http://www.blogger.com/atom/ns#' term='asterisk'/><category scheme='http://www.blogger.com/atom/ns#' term='drivers'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>HOWTO: Build zaptel modules for Asterisk on Ubuntu</title><content type='html'>Many people post about this, but I'm putting it here more for my future reference. A good pair of guides are here:&lt;br /&gt;&lt;br /&gt;&lt;a href="https://wiki.kubuntu.org/AsteriskOnUbuntu"&gt;https://wiki.kubuntu.org/AsteriskOnUbuntu&lt;/a&gt;&lt;br /&gt;&lt;a href="http://codepoets.co.uk/linux_asterisk_setup_with_pstn_iax_and_sip"&gt;http://codepoets.co.uk/linux_asterisk_setup_with_pstn_iax_and_sip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But, the long and the short of it is:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier;"&gt;sudo m-a -t build zaptel&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;cd /usr/src&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;sudo dpkg -i zaptel-modules-{version}.deb&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;sudo modprobe zaptel&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;sudo modprobe {driver module e.g. wctdm}&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-4136203004698385503?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/4136203004698385503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=4136203004698385503' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/4136203004698385503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/4136203004698385503'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2009/02/howto-build-zaptel-modules-for-asterisk.html' title='HOWTO: Build zaptel modules for Asterisk on Ubuntu'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-108807672528907429</id><published>2009-01-14T05:30:00.001-08:00</published><updated>2009-01-14T05:30:39.657-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='link'/><category scheme='http://www.blogger.com/atom/ns#' term='website'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='errors'/><title type='text'>Top 25 Website Errors</title><content type='html'>We should look at all of these and think to see if we're doing the right thing to avoid them!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sans.org/top25errors/"&gt;http://www.sans.org/top25errors/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-108807672528907429?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/108807672528907429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=108807672528907429' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/108807672528907429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/108807672528907429'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2009/01/top-25-website-errors.html' title='Top 25 Website Errors'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-2425066888286174627</id><published>2008-12-10T09:05:00.000-08:00</published><updated>2008-12-10T09:23:26.877-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vm'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><title type='text'>Migrating Open Source Xen Windows Virtual Machines to XenServer</title><content type='html'>This couldn't in fact be easier!&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Download XenConvert from &lt;a href="http://citrix.postclickmarketing.com/Producer.aspx?sid=24&amp;amp;sky=MUYUUPHD&amp;amp;pgi=338&amp;amp;pgk=QMLXCPPU&amp;amp;rid=183784&amp;amp;rky=TUHFUI4Y&amp;amp;tky=128734024704731250"&gt;here&lt;/a&gt; (If this link expires, then it can be got from the Resource section of the XenServer download page).&lt;/li&gt;&lt;li&gt;Add a virtual disk to the guest machine (at least twice the size of the existing disk) to receive the exported VM.&lt;/li&gt;&lt;li&gt;Run the original guest machine and partition / format the new virtual disk (NTFS / FAT, as long as you can mount these filesystems in the host). &lt;/li&gt;&lt;li&gt;Install &amp;amp; Run XenConvert on the source guest machine.&lt;/li&gt;&lt;li&gt;Select 'XVA' and select the new virtual disk as the destination for the XVA image.&lt;/li&gt;&lt;li&gt;Shut down the source guest machine.&lt;/li&gt;&lt;li&gt;Work out where the new virtual partition starts - something like this:&lt;/li&gt;&lt;/ol&gt;&lt;pre&gt;root@eagle:/etc/xen# parted /dev/eagle-vm/act-XVA&lt;br /&gt;GNU Parted 1.7.1&lt;br /&gt;Using /dev/mapper/eagle--vm-act--XVA&lt;br /&gt;Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;(parted) unit B                                                          &lt;br /&gt;(parted) print                                                           &lt;br /&gt;&lt;br /&gt;Disk /dev/mapper/eagle--vm-act--XVA: 26843545599B&lt;br /&gt;Sector size (logical/physical): 512B/512B&lt;br /&gt;Partition Table: msdos&lt;br /&gt;&lt;br /&gt;Number  Start   End           Size          Type     File system  Flags&lt;br /&gt; 1      32256B  26839088639B  26839056384B  primary  ntfs             &lt;br /&gt;&lt;br /&gt;(parted)         &lt;/pre&gt;&lt;br /&gt;&lt;ol start="8"&gt;&lt;li&gt;&lt;span style=";font-family:&amp;quot;;font-size:xx-small;"  &gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:inherit;"&gt;Mount the new virtual disk - change 'offset' to be the value in the Start column above, replace ntfs with vfat if FAT32 was used:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre&gt;mount -o ro,offset=32256 -t ntfs /dev/eagle-vm/act-XVA /mnt/t&lt;/pre&gt;&lt;br /&gt;&lt;ol start="9"&gt;&lt;li&gt;&lt;span style=";font-family:&amp;quot;;font-size:xx-small;"  &gt;&lt;span style="font-family:inherit;"&gt;&lt;span style="font-size:small;"&gt;Copy the *.xva folder from this mounted drive to somewhere accessible to the new XenServer host.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:&amp;quot;;font-size:xx-small;"  &gt;&lt;span style="font-family:inherit;"&gt;&lt;span style="font-size:small;"&gt;Run XenCenter on a machine and connect to the new host.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:&amp;quot;;font-size:xx-small;"  &gt;&lt;span style="font-family:inherit;"&gt;&lt;span style="font-size:small;"&gt;Import a new VM, select the ova.xml file from the *.xva folder, and follow the import - you'll need to setup a new Network Interface.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:&amp;quot;;font-size:xx-small;"  &gt;&lt;span style="font-family:inherit;"&gt;&lt;span style="font-size:small;"&gt;If required, reactivate Windows on the new guest as it starts up, and install XenServer Tools. &lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-2425066888286174627?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/2425066888286174627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=2425066888286174627' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/2425066888286174627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/2425066888286174627'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2008/12/migrating-open-source-xen-windows.html' title='Migrating Open Source Xen Windows Virtual Machines to XenServer'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-5064782973709532511</id><published>2008-10-21T07:42:00.001-07:00</published><updated>2008-10-21T07:43:27.191-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='load balancing'/><category scheme='http://www.blogger.com/atom/ns#' term='clustering'/><category scheme='http://www.blogger.com/atom/ns#' term='HA'/><category scheme='http://www.blogger.com/atom/ns#' term='jboss'/><title type='text'>JBoss clustering</title><content type='html'>A &lt;a href="http://docs.jboss.org/jbossas/jboss4guide/r4/html/cluster.chapt.html"&gt;guide&lt;/a&gt; is on the JBoss website. The application doesn't yet cluster - more later!&lt;br /&gt; &lt;div class="flockcredit" style="text-align: right; color: rgb(204, 204, 204); font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: rgb(153, 153, 153); font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-5064782973709532511?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/5064782973709532511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=5064782973709532511' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/5064782973709532511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/5064782973709532511'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2008/10/jboss-clustering.html' title='JBoss clustering'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-7273007194414124955</id><published>2008-10-01T05:05:00.001-07:00</published><updated>2008-10-01T05:05:26.756-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='index'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Oracle: Creating indexes for unindexed foreign keys</title><content type='html'>This script searches for unindexed foreign keys and outputs a 'create index' script for those keys.&lt;br /&gt;&lt;br /&gt;It will pick up unindexed views, and obviously these can't have indexes so you will see an error when running the generated script.&lt;br /&gt;&lt;br /&gt;References: Script taken from &lt;a href="http://asktom.oracle.com/tkyte/unindex/unindex.sql"&gt;here&lt;/a&gt;, via this &lt;a href="http://asktom.oracle.com/tkyte/unindex/index.html"&gt;article&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier;"&gt;column columns format a20 word_wrapped&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;column table_name format a30 word_wrapped&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;create sequence indexname_seq start with 1 increment by 1;&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;select 'create index FOREIGN_KEY_IX' || indexname_seq.nextval || ' on ' || q.table_name ||&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp; '(' || q.c1 || ');' from (&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;select decode( b.table_name, NULL, '****', 'ok' ) Status, &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; a.table_name, a.columns c1, b.columns c2&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;from &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;( select substr(a.table_name,1,30) table_name, &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;substr(a.constraint_name,1,30) constraint_name, &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(position, 1,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(position, 2,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(position, 3,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(position, 4,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(position, 5,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(position, 6,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(position, 7,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(position, 8,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(position, 9,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(position,10,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(position,11,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(position,12,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(position,13,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(position,14,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(position,15,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(position,16,', '||substr(column_name,1,30),NULL)) columns&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; from user_cons_columns a, user_constraints b&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp; where a.constraint_name = b.constraint_name&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and b.constraint_type = 'R'&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp; group by substr(a.table_name,1,30), substr(a.constraint_name,1,30) ) a, &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;( select substr(table_name,1,30) table_name, substr(index_name,1,30) index_name, &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(column_position, 1,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(column_position, 2,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(column_position, 3,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(column_position, 4,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(column_position, 5,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(column_position, 6,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(column_position, 7,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(column_position, 8,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(column_position, 9,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(column_position,10,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(column_position,11,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(column_position,12,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(column_position,13,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(column_position,14,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(column_position,15,', '||substr(column_name,1,30),NULL)) || &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; max(decode(column_position,16,', '||substr(column_name,1,30),NULL)) columns&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; from user_ind_columns &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp; group by substr(table_name,1,30), substr(index_name,1,30) ) b&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;where a.table_name = b.table_name (+)&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp; and b.columns (+) like a.columns || '%') q&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;/&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;drop sequence indexname_seq;&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;br /&gt;  &lt;div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-7273007194414124955?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/7273007194414124955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=7273007194414124955' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/7273007194414124955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/7273007194414124955'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2008/10/oracle-creating-indexes-for-unindexed.html' title='Oracle: Creating indexes for unindexed foreign keys'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-33306279000141211</id><published>2008-09-23T03:21:00.001-07:00</published><updated>2008-10-21T06:27:12.300-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='load balancing'/><category scheme='http://www.blogger.com/atom/ns#' term='clustering'/><category scheme='http://www.blogger.com/atom/ns#' term='HA'/><category scheme='http://www.blogger.com/atom/ns#' term='jboss'/><title type='text'>Enabling Load Balancing on JBoss</title><content type='html'>JBoss won't load balance with mod_jk or IIS without the following settings modified (see this RedHat &lt;a href="http://www.redhat.com/docs/manuals/jboss/jboss-eap-4.2/doc/Clustering_Guide/clustering-http-jboss.html"&gt;doc&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;{JBOSS_HOME}/server/{SERVER_NAME}/deploy/jboss-web.deployer/server.xml&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="programlisting"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;Engine name="jboss.web" defaultHost="localhost" &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;font-size:100%;"  &gt;jvmRoute="{NODE_NAME}"&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;... ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;/Engine&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Where '&lt;span style="font-family:courier new;"&gt;{NODE_NAME}&lt;/span&gt;' is the name of the jk worker from &lt;span style="font-family:courier new;"&gt;jk-workers.properties&lt;/span&gt;.&lt;br /&gt;&lt;/pre&gt;&lt;code class="literal"&gt;&lt;span style="font-family:courier new;"&gt;{JBOSS_HOME}/server/{SERVER_NAME}/deploy/jboss-web.deployer/&lt;/span&gt;&lt;span style="font-family:'Lucida Sans','Lucida Sans Unicode','Lucida Grande',sans-serif,Arial;"&gt;&lt;span style="font-family:courier new;"&gt;META-INF/jboss-service.xml&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;pre class="programlisting"&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;attribute name="UseJK"&amp;gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;true&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;/attribute&amp;gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;br /&gt;&lt;br /&gt;If this isn't set then sticky sessions will fail to work, and you'll lose your session state between requests.&lt;br /&gt;&lt;br /&gt;You also need to be aware that the 'domain' parameter needs to be set in the &lt;span style="font-family:courier new;"&gt;jk-workers.properties&lt;/span&gt; file, like this example:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;worker.list=jkstatus, ajp-lb&lt;br /&gt;&lt;br /&gt;worker.jkstatus.type=status&lt;br /&gt;&lt;br /&gt;worker.node-1.port=8009&lt;br /&gt;worker.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;node&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;-1.host=&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;node&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;-1.spl.com&lt;br /&gt;worker.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;node&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;-1.type=ajp13&lt;br /&gt;worker.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;node&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;-1.lbfactor=1&lt;br /&gt;worker.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;node&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;-1.cachesize=10&lt;br /&gt;worker.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;node&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;-1.domain=&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;ajp-lb&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;# Define preferred failover node for worker 1&lt;br /&gt;#worker.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;node&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;-1.redirect=&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;node&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;-2&lt;br /&gt;&lt;br /&gt;worker.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;node&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;-2.port=8009&lt;br /&gt;worker.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;node&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;-2.host=&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;node&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;-2.spl.com&lt;br /&gt;worker.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;node&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;-2.type=ajp13&lt;br /&gt;worker.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;node&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;-2.lbfactor=1&lt;br /&gt;worker.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;node&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;-2.domain=&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;ajp-lb&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;worker.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;node&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;-2.cachesize=10&lt;br /&gt;# Disable &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;node&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;-2 for all requests except failover&lt;br /&gt;#worker.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;node&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;-2.disabled=True&lt;br /&gt;&lt;br /&gt;worker.ajp-lb&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;.type=lb&lt;br /&gt;worker.ajp-lb.balanced_workers=&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;node&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;-1,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;node&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:courier new;"&gt;-2&lt;br /&gt;worker.ajp-lb.sticky_session=true&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="flockcredit" style="text-align: right; color: rgb(204, 204, 204); font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: rgb(153, 153, 153); font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-33306279000141211?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/33306279000141211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=33306279000141211' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/33306279000141211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/33306279000141211'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2008/09/enabling-load-balancing-on-jboss.html' title='Enabling Load Balancing on JBoss'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-1020953279046774916</id><published>2008-09-18T06:07:00.001-07:00</published><updated>2008-09-18T06:07:47.609-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>New method for DB schema statistics generation</title><content type='html'>I have removed the comment from the db post about the dbms_utilty.analyze_schema command as it has apparently been superseded in 10g (since 8i in fact) with the command below:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier;"&gt;EXEC DBMS_STATS.gather_schema_stats (ownname =&amp;gt; '{{SCHEMA}}', cascade =&amp;gt;true,estimate_percent =&amp;gt; dbms_stats.auto_sample_size);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Thanks to Todd at Datapipe for this info&lt;br /&gt;  &lt;div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-1020953279046774916?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/1020953279046774916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=1020953279046774916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/1020953279046774916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/1020953279046774916'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2008/09/new-method-for-db-schema-statistics.html' title='New method for DB schema statistics generation'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-4082702422438658308</id><published>2008-09-17T07:52:00.001-07:00</published><updated>2008-09-23T01:22:16.124-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='HashMap'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><title type='text'>Java HashMap.keySet return value</title><content type='html'>I came across this when trying to add the set of keys in a &lt;span style="font-family:Courier;"&gt;HashMap&lt;/span&gt; to a J2EE session.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier;"&gt;HashMap.keySet()&lt;/span&gt; returns a &lt;span style="font-family:Courier;"&gt;Set&lt;/span&gt; of type &lt;span style="font-family:Courier;"&gt;HashMap$KeySet&lt;/span&gt; which extends &lt;span style="font-family:Courier;"&gt;AbstractSet&lt;/span&gt;. It IS NOT &lt;span style="font-family:Courier;"&gt;Serializable&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;So, you can't add it to a distributable session, which is annoying.&lt;br /&gt;&lt;br /&gt;I've filed a &lt;a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6750650"&gt;bug&lt;/a&gt; w/ Sun to fix this, in the meantime if you need to set a session attribute with the result of &lt;span style="font-family:Courier;"&gt;keySet()&lt;/span&gt; use:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier;"&gt;session.setAttribute("blah", new HashMap(map.keySet()));&lt;/span&gt;&lt;br /&gt; &lt;div class="flockcredit" style="text-align: right; color: rgb(204, 204, 204); font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: rgb(153, 153, 153); font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-4082702422438658308?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/4082702422438658308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=4082702422438658308' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/4082702422438658308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/4082702422438658308'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2008/09/java-hashmapkeyset-return-value.html' title='Java HashMap.keySet return value'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-2650698741027988457</id><published>2008-08-16T09:47:00.001-07:00</published><updated>2008-08-16T11:05:46.838-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='idea'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='error'/><title type='text'>Intellij IDEA on Ubuntu Hardy 64-bit</title><content type='html'>If you see 'Too Many Open Files' or 'The JDK is corrupt' errors running IDEA 7.0.4 on Hardy then this can be fixed by editing the file '&lt;span style="font-family:Courier;"&gt;bin/idea.vmoptions&lt;/span&gt;' to remove the '-ea' flag. Not sure why this is there by default, but it shouldn't be.&lt;br /&gt;&lt;br /&gt;Another useful thing to do is add '-d64' to enable the 64-bit HotSpot VM.&lt;div class="flockcredit" style="text-align: right; color: rgb(204, 204, 204); font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: rgb(153, 153, 153); font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-2650698741027988457?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/2650698741027988457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=2650698741027988457' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/2650698741027988457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/2650698741027988457'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2008/08/intellij-idea-on-ubuntu-hardy-64-bit.html' title='Intellij IDEA on Ubuntu Hardy 64-bit'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-5372032929972535077</id><published>2008-08-13T02:21:00.001-07:00</published><updated>2008-08-13T02:24:02.706-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='jconsole'/><category scheme='http://www.blogger.com/atom/ns#' term='jboss'/><title type='text'>Remote Debugging JBoss with JConsole</title><content type='html'>In order to monitor the memory, stack and object usage within a running JBoss application, do the following:&lt;br /&gt;&lt;br /&gt;Unix: add the line:&lt;br /&gt;&lt;span style="font-family:Courier;"&gt;JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote"&lt;/span&gt;&lt;br /&gt;to $&lt;span style="font-family:Courier;"&gt;JBOSS_HOME/bin/run.conf&lt;/span&gt;&lt;br /&gt;and run JConsole on the local machine ($JAVA_HOME/bin/jconsole)&lt;br /&gt;&lt;br /&gt;Windows: add the line:&lt;br /&gt;&lt;span style="font-family:Courier;"&gt;set JAVA_OPTS=&lt;/span&gt;&lt;span style="font-family:Courier;"&gt;-Dcom.sun.management.jmxremote&lt;/span&gt;&lt;span style="font-family:Courier;"&gt; %JAVA_OPTS%&lt;/span&gt;&lt;br /&gt;to &lt;span style="font-family:Courier;"&gt;%JBOSS_HOME%\bin\run.bat&lt;/span&gt;&lt;br /&gt;and run JConsole on the local machine ($JAVA_HOME\bin\jconsole.exe)&lt;br /&gt; &lt;div class="flockcredit" style="text-align: right; color: rgb(204, 204, 204); font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: rgb(153, 153, 153); font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-5372032929972535077?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/5372032929972535077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=5372032929972535077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/5372032929972535077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/5372032929972535077'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2008/08/remote-debugging-jboss-with-jconsole.html' title='Remote Debugging JBoss with JConsole'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-3155234121969742804</id><published>2008-08-13T02:08:00.001-07:00</published><updated>2008-08-13T02:10:49.288-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='idea'/><category scheme='http://www.blogger.com/atom/ns#' term='remote'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='jboss'/><title type='text'>Remote Debugging with JBoss and IDEA</title><content type='html'>In order to debug jboss - i.e. put in breakpoints, etc, JBoss needs to be started in debug mode. This can be done as follows:&lt;br /&gt;&lt;br /&gt;Unix: uncomment the line:&lt;br /&gt;&lt;span style="font-family:Courier;"&gt;JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n&lt;/span&gt;&lt;br /&gt;in &lt;span style="font-family:Courier;"&gt;$JBOSS_HOME/bin/run.conf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Windows: uncomment the line:&lt;br /&gt;&lt;span style="font-family:Courier;"&gt;set JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y %JAVA_OPTS%&lt;/span&gt;&lt;br /&gt;in &lt;span style="font-family:Courier;"&gt;%JBOSS_HOME%\bin\run.bat&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then, you need to configure IDEA for debugging, which can be done by Editing the Run Configurations, then adding a 'Remote' server.&lt;br /&gt;set the 'Port' entry once it is created, and give it a name. If necessary set 'Host' to the remote jboss host.&lt;br /&gt;Ensure that 'Make' is checked 'Before Launch'&lt;br /&gt;&lt;br /&gt;The hard work is now done; run JBoss on the command line of the remote server, then select the new Run Config, and click Debug.&lt;br /&gt;&lt;div class="flockcredit" style="text-align: right; color: rgb(204, 204, 204); font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: rgb(153, 153, 153); font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-3155234121969742804?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/3155234121969742804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=3155234121969742804' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/3155234121969742804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/3155234121969742804'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2008/08/debugging-with-jboss-and-idea.html' title='Remote Debugging with JBoss and IDEA'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-2029791028982179025</id><published>2008-07-25T02:19:00.000-07:00</published><updated>2008-07-25T02:23:18.183-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sqlplus'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Oracle SQLPlus arrow keys on Linux</title><content type='html'>&lt;a href="http://dev2dev.bea.com/blog/pdone/archive/2007/07/wlst_and_sqlplu.html"&gt;This blog post&lt;/a&gt; shows how to get arrow keys working properly on linux-based systems in SQLPlus. In a nutshell, run this as the SQLPlus user:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;sudo apt-get install rlfe&lt;br /&gt;echo "alias sqlplus='rlfe sqlplus'" &gt;&gt; ~/.bashrc&lt;br /&gt;source ~/.bashrc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then run SQLPlus normally&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-2029791028982179025?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/2029791028982179025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=2029791028982179025' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/2029791028982179025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/2029791028982179025'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2008/07/oracle-sqlplus-arrow-keys-on-linux.html' title='Oracle SQLPlus arrow keys on Linux'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-3942291628537234555</id><published>2008-07-14T11:51:00.001-07:00</published><updated>2008-07-14T11:51:18.386-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='chainsaw'/><category scheme='http://www.blogger.com/atom/ns#' term='logging'/><category scheme='http://www.blogger.com/atom/ns#' term='log4j'/><category scheme='http://www.blogger.com/atom/ns#' term='jboss'/><title type='text'>Using Chainsaw with JBoss</title><content type='html'>To use Chainsaw to debug applications on JBoss edit the file &lt;span style="font-family: Courier;"&gt;jboss/server/{server}/conf/jboss-log4j.xml&lt;/span&gt; as follows:&lt;br /&gt;&lt;br /&gt;Add the following to the top of the file, below the other &amp;lt;appender/&amp;gt; entries:&lt;br /&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;lt;appender name="SOCKET" class="org.apache.log4j.net.SocketAppender"&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param name="remoteHost" value="localhost"/&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param name="port" value="4445"/&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param name="locationInfo" value="true"/&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;&amp;lt;/appender&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br style="font-family: Courier;" /&gt;And add the following to the bottom of the &amp;lt;root/&amp;gt; entry (below the other appender-ref lines):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier;"&gt;&amp;lt;appender-ref ref="SOCKET"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Run chainsaw from &lt;a href="http://logging.apache.org/log4j/docs/webstart/chainsaw/chainsawWebStart.jnlp"&gt;here&lt;/a&gt; and create a default (old style) listener on port 4445.&lt;br /&gt;&lt;br /&gt;  &lt;div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-3942291628537234555?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/3942291628537234555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=3942291628537234555' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/3942291628537234555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/3942291628537234555'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2008/07/using-chainsaw-with-jboss.html' title='Using Chainsaw with JBoss'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-4615752391670666029</id><published>2008-07-14T09:50:00.001-07:00</published><updated>2008-07-14T09:50:23.077-07:00</updated><title type='text'>Enabling external access to jboss</title><content type='html'>JBoss 4.2.x doesn't by default allow external network access. To allow access from anywhere, add '-b 0' to the run.sh command line.&lt;br /&gt;  &lt;div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-4615752391670666029?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/4615752391670666029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=4615752391670666029' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/4615752391670666029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/4615752391670666029'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2008/07/enabling-external-access-to-jboss.html' title='Enabling external access to jboss'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-2233217440316153724</id><published>2008-06-26T05:02:00.001-07:00</published><updated>2008-06-26T05:07:15.342-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vm'/><category scheme='http://www.blogger.com/atom/ns#' term='xen'/><category scheme='http://www.blogger.com/atom/ns#' term='clone'/><title type='text'>Cloning linux VMs</title><content type='html'>Steps for cloning linux VMs under Xen:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Create snapshot of source VM: &lt;span style="font-family: Courier;"&gt;lvcreate -s -n {snap name} -L {snap size} {vg path}&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Create destination LV and copy: &lt;span style="font-family: Courier;"&gt;dd if={snap path} of={dest LV path} bs=10M&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Copy xen config file.&lt;/li&gt;&lt;li&gt;Edit file, rename vm, change disk paths and comment mac= in vif (i.e. &lt;span style="font-family: Courier;"&gt;vif=[ '' ]&lt;/span&gt;).&lt;/li&gt;&lt;li style="font-family: Courier;"&gt;xm create -c {vm name}&lt;/li&gt;&lt;li&gt;Once booted, &lt;span style="font-family: Courier;"&gt;sudo rm /etc/udev/rules.d/*persistent-net.rules&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Edit &lt;span style="font-family: Courier;"&gt;/etc/network/interfaces&lt;/span&gt; and ensure network interface is set to eth0&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Then remove SSH host key: &lt;span style="font-family: Courier;"&gt;sudo rm /etc/ssh/ssh_host_{dsa,rsa}_key*&lt;/span&gt;&lt;/li&gt;&lt;li&gt;And regenerate it: &lt;span style="font-family: Courier;"&gt;sudo dpkg-reconfigure -plow openssh-server&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Modify hostname: &lt;span style="font-family: Courier;"&gt;sudo vi /etc/hostname&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Reboot vm&lt;/li&gt;&lt;li&gt;Check MAC address of eth0 (ifconfig)&lt;/li&gt;&lt;li&gt;Paste MAC into &lt;span style="font-family: Courier;"&gt;vif = [ 'mac={}' ]&lt;/span&gt; of VM config file&lt;/li&gt;&lt;li&gt;Reboot vm, verify IP address has changed&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;"&gt;Blogged with the &lt;a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser"&gt;Flock Browser&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-2233217440316153724?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/2233217440316153724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=2233217440316153724' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/2233217440316153724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/2233217440316153724'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2008/06/cloning-linux-vms.html' title='Cloning linux VMs'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-4272132895497734922</id><published>2008-03-20T05:56:00.000-07:00</published><updated>2009-09-18T05:03:53.805-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tomcat'/><category scheme='http://www.blogger.com/atom/ns#' term='jboss'/><title type='text'>Disabling directory listings in tomcat</title><content type='html'>This &lt;a href="http://wiki.apache.org/tomcat/FAQ/Miscellaneous#Q12"&gt;article&lt;/a&gt; is useful. Among other things it shows how to disable directory listings (which are on by default) on Tomcat.&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-4272132895497734922?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://wiki.apache.org/tomcat/FAQ/Miscellaneous#Q12' title='Disabling directory listings in tomcat'/><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/4272132895497734922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=4272132895497734922' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/4272132895497734922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/4272132895497734922'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2008/03/disabling-directory-listings-in-tomcat.html' title='Disabling directory listings in tomcat'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-8619566589456478175</id><published>2008-03-10T06:18:00.000-07:00</published><updated>2008-03-10T06:23:22.187-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='usb'/><category scheme='http://www.blogger.com/atom/ns#' term='drive'/><title type='text'>Seagate FreeAgent Drives on Linux</title><content type='html'>If you've bought a Seagate FreeAgent drive with a view to running it on Linux, be aware that it won't work out-of-the-box. In fact, we bought one, then I sent it back for RMA, only to find the same issue with the new replacement.&lt;br /&gt;&lt;br /&gt;The issue is that after about 1min of use the drive spins down and closes the USB connection, causing mounts to fail and the device to be unusable.&lt;br /&gt;&lt;br /&gt;It turns out that the drives include some cunning/annoying (delete as applicable) power saving logic which only correctly works in Windows. The solution, as a number of posts mention is to run the following command (or more cunningly put this command in the hotplug subsystem so it's always run on connection):&lt;br /&gt;&lt;pre&gt;sdparm -clear STANDBY -6 /dev/sdX&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-8619566589456478175?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/8619566589456478175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=8619566589456478175' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/8619566589456478175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/8619566589456478175'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2008/03/seagate-freeagent-drives-on-linux.html' title='Seagate FreeAgent Drives on Linux'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-3954192016005890567</id><published>2008-03-06T05:38:00.000-08:00</published><updated>2008-05-14T01:35:24.847-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql server'/><category scheme='http://www.blogger.com/atom/ns#' term='msde'/><title type='text'>SQL Server Express Management Studio 2005 backups of MSDE databases</title><content type='html'>&lt;span style="font-family:arial;"&gt;If you try to take a backup of a MSDE database with SQL Server 2005 Management Studio then it fails with the message 'Property Backup Directory is not available for settings...'. This &lt;/span&gt;&lt;a style="font-family: arial;" href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=533137&amp;amp;SiteID=1"&gt;link&lt;/a&gt;&lt;span style="font-family:arial;"&gt; talks about the reason why - a missing registry entry.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;The key is &lt;span style="font-family: courier new;"&gt;KEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer&lt;span style="font-family: arial;"&gt; pre SP4. Add &lt;span style="font-family: courier new;"&gt;BackupDirectory&lt;/span&gt; value = &lt;span style="font-family: courier new;"&gt;c:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;For MSDE SP4 however, it seems that this registry location has changed - to &lt;span style="font-family:courier new;"&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSDE\MSSQLServer&lt;/span&gt; Adding the &lt;span style="font-family: courier new;"&gt;BackupDirectory&lt;/span&gt; value = &lt;span style="font-family:courier new;"&gt;c:&lt;/span&gt; worked for me.&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-3954192016005890567?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/3954192016005890567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=3954192016005890567' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/3954192016005890567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/3954192016005890567'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2008/03/sql-server-express-management-studio.html' title='SQL Server Express Management Studio 2005 backups of MSDE databases'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-6230078066428364717</id><published>2008-02-29T06:45:00.001-08:00</published><updated>2008-02-29T06:45:44.372-08:00</updated><title type='text'>Installing JBoss 4.2.1.GA as a service</title><content type='html'>The &lt;a href="http://wiki.jboss.org/wiki/Wiki.jsp?page=RunJBossAsAServiceOnWindows"&gt;JBoss wiki&lt;/a&gt; now recommends &lt;a href="http://wrapper.tanukisoftware.org/doc/english/integrate-simple-win.html"&gt;JavaServiceWrapper&lt;/a&gt; as the installation method of choice for running JBoss as a service on Windows, and it seems to work well. Follow the instructions on the Wiki page. I've modified the config slightly as follows:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier;"&gt;wrapper.java.command=%JAVA_HOME%/bin/java&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;wrapper.java.classpath.1=%JBOSS_HOME%/lib/wrapper.jar&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;wrapper.java.classpath.2=%JAVA_HOME%/bin/java/lib/tools.jar&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;wrapper.java.classpath.3=./run.jar&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;wrapper.java.library.path.1=%JBOSS_HOME%/lib&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;# these are the JAVA_OPTS&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;wrapper.java.additional.1=-server&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;# enviroment variables - define the ones that match your desired environment&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;wrapper.java.additional.2=-Denviromnment.variable=value&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;# memory parameters - define the ones that match your desired environment&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;wrapper.java.additional.3=-Xms256m&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;wrapper.java.additional.4=-Xmx768m&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;# If you need serialization suppport &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;wrapper.java.additional.5=-Dsession.serialization.jboss=true&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;wrapper.app.parameter.1=org.jboss.Main&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;# Parameters to be passed to the application (Jboss) &lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;# Define server name (configuration) - If you need a config that is different than the "default" or need to run multiple configs&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;#wrapper.app.parameter.2=-c default&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;# Define listening IP - If you have more than one IP or want to indicate to listen on a specific IP&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;#wrapper.app.parameter.3=-b aaa.bbb.ccc.ddd&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;# wrapper log location&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;wrapper.logfile=%JBOSS_HOME%/server/DEFAULT/log/wrapper.log&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;# You must not change below parameters without first uninstall the service&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;# service name&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;wrapper.ntservice.name=JbossDEFAULT&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;# service display name&lt;/span&gt;&lt;br style="font-family: Courier;" /&gt;&lt;span style="font-family: Courier;"&gt;wrapper.ntservice.displayname=JBoss Server DEFAULT&lt;/span&gt;&lt;br /&gt;   &lt;br /&gt;Change 'DEFAULT' where necessary and enable wrapper.app.parameter.2 if you're using a different server configuration.&lt;p style="text-align: right; font-size: 8px"&gt;Blogged with &lt;a href="http://www.flock.com/blogged-with-flock" title="Flock" target="_new"&gt;Flock&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-6230078066428364717?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/6230078066428364717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=6230078066428364717' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/6230078066428364717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/6230078066428364717'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2008/02/installing-jboss-421ga-as-service.html' title='Installing JBoss 4.2.1.GA as a service'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-4758008262989490286</id><published>2008-01-31T01:40:00.001-08:00</published><updated>2008-03-31T06:28:04.111-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='gutsy'/><category scheme='http://www.blogger.com/atom/ns#' term='ldap'/><category scheme='http://www.blogger.com/atom/ns#' term='libnss-ldap'/><title type='text'>Gutsy install - libnss-ldap authentication</title><content type='html'>Steps to complete a reliable libnss-ldap authentication setup:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;apt-get install libnss-ldap&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Select 'No' to debconf configuration&lt;/li&gt;&lt;li&gt;Use defaults (we're going to trash them soon anyway)&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;rm /etc/ldap.conf&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;ln -s /etc/ldap/ldap.conf /etc/ldap.conf&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Update &lt;span style="font-family:courier new;"&gt;/etc/ldap.conf&lt;/span&gt;:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;suffix                  "dc=spl.com,o=top"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;uri                     ldap://{server1}:389/ ldap://{server2}:389/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;pam_password            exop&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ldap_version            3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;pam_filter              objectclass=posixAccount&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;pam_login_attribute     uid&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nss_base_passwd         ou=People,dc=spl.com,o=top&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nss_base_shadow         ou=People,dc=spl.com,o=top&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nss_base_group          ou=Groups,dc=spl.com,o=top&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nss_base_hosts          ou=Hosts,dc=spl.com,o=top&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;bind_policy             soft&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;scope one&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nss_reconnect_tries     1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nss_reconnect_sleeptime 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nss_reconnect_maxsleeptime 8&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nss_reconnect_maxconntries 2&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;cp /etc/nsswitch.conf /etc/nsswitch.conf.noldap&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Add &lt;span style="font-family:courier new;"&gt;ldap [UNAVAIL=return]&lt;/span&gt; to the end of passwd, group, shadow lines&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;cp /etc/nsswitch.conf /etc/nsswitch.conf.ldap&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Edit new file &lt;span style="font-family:courier new;"&gt;/etc/network/if-down.d/nsswitch-noldap&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cp /etc/nsswitch.conf.noldap /etc/nsswitch.conf&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Edit new file &lt;span style="font-family:courier new;"&gt;/etc/network/if-up.d/nsswitch-ldap&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cp /etc/nsswitch.conf.ldap /etc/nsswitch.conf&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;chmod +x&lt;/span&gt; both the files created above&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Add:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;account sufficient      pam_ldap.so debug&lt;/span&gt;&lt;br /&gt;above the first real line of &lt;span style="font-family:courier new;"&gt;/etc/pam.d/common-account&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Add:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;auth sufficient      pam_ldap.so debug&lt;/span&gt;&lt;br /&gt;above the first real line of &lt;span style="font-family:courier new;"&gt;/etc/pam.d/common-auth&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Add:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;password   sufficient pam_ldap.so debug&lt;/span&gt;&lt;br /&gt;above the first real line of &lt;span style="font-family:courier new;"&gt;/etc/pam.d/common-password&lt;/span&gt;&lt;/li&gt;&lt;li&gt;(For auto-creation of home dirs) add:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;session required        pam_mkhomedir.so skel=/etc/skel/&lt;/span&gt;&lt;br /&gt;Between the 2 real lines of &lt;span style="font-family:courier new;"&gt;/etc/pam.d/common-session&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Reboot and CHECK ALL IS WELL before relying on the server. Bad symptoms include long time to boot, udev errors and login timeouts... If necessary edit the grub boot string, adding 'single' to the end of the kernel parameters and remove the above changes before seeking advice...&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style="text-align: right; font-size: 8px;"&gt;Blogged with &lt;a href="http://www.flock.com/blogged-with-flock" title="Flock" target="_new"&gt;Flock&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-4758008262989490286?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/4758008262989490286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=4758008262989490286' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/4758008262989490286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/4758008262989490286'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2008/01/gutsy-install-libnss-ldap.html' title='Gutsy install - libnss-ldap authentication'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-5867045935890659728</id><published>2008-01-21T02:20:00.000-08:00</published><updated>2008-01-21T02:23:16.735-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thunderbird'/><title type='text'>Thunderbird installation woes</title><content type='html'>&amp;lt;Thanks to Andrew for his time frustration and perseverance in getting a solution here!&amp;gt;&lt;br /&gt;&lt;br /&gt;If you are running Thunderbird 1.5 xx, you are probably going to get an upgrade forced on you whether you want it or not.  The upgrade will fail.  So you try to upgrade to v2.0.0.9, the current release.  It will fail.  (do they even pretend to test this stuff?)&lt;br /&gt;&lt;br /&gt;Go to the Thunderbird directory, rename &lt;code&gt;mozMAPI.dll&lt;/code&gt; (to &lt;code&gt;.bak&lt;/code&gt; or whatever).  Try re-installing Thunderbird.  It will work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-5867045935890659728?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/5867045935890659728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=5867045935890659728' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/5867045935890659728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/5867045935890659728'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2008/01/thunderbird-installation-woes.html' title='Thunderbird installation woes'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-6996088814791773995</id><published>2008-01-04T02:06:00.000-08:00</published><updated>2008-01-04T02:09:50.794-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='port'/><category scheme='http://www.blogger.com/atom/ns#' term='jboss'/><title type='text'>JBoss port numbers</title><content type='html'>The link above is a very useful page outlining the port numbers used by JBoss and where to configure them. In case the page dies, here's a copy of the useful bit - the table...&lt;br /&gt;&lt;table cellspacing=0 cellpadding=0 bgcolor="#E0E0FF"&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;File&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Service&lt;/b&gt;&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&lt;b&gt;What&lt;/b&gt;&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Parameter&lt;/b&gt;&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Port&lt;/b&gt;&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&lt;b&gt;NewPort&lt;/b&gt;&amp;nbsp;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;deploy/http-invoker.sar/META-INF/jboss-service.xml&amp;nbsp;&lt;/td&gt;&lt;td&gt;Tomcat&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;InvokerURLSuffix&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td&gt;8080&lt;/td&gt;&lt;td&gt;11080&lt;/td&gt;&lt;tr&gt;&lt;td&gt;deploy/jboss-ws4ee.sar/META-INF/jboss-service.xml&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td&gt;Tomcat&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;WebServicePort&lt;/td&gt;&lt;td&gt;8080&lt;/td&gt;&lt;td&gt;11080&lt;/td&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;WebServiceSecurePort&amp;nbsp;&lt;/td&gt;&lt;td&gt;8443&lt;/td&gt;&lt;td&gt;11443&lt;/td&gt;&lt;tr&gt;&lt;td&gt;deploy/jbossweb-tomcat55.sar/server.xml&lt;/td&gt;&lt;td&gt;Tomcat&lt;/td&gt;&lt;td&gt;HTTP&lt;/td&gt;&lt;td&gt;port&lt;/td&gt;&lt;td&gt;8080&lt;/td&gt;&lt;td&gt;11080&lt;/td&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;HTTP&lt;/td&gt;&lt;td&gt;redirectPort&lt;/td&gt;&lt;td&gt;8443&lt;/td&gt;&lt;td&gt;11443&lt;/td&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;AJP&lt;/td&gt;&lt;td&gt;port&lt;/td&gt;&lt;td&gt;8009&lt;/td&gt;&lt;td&gt;11009&lt;/td&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;SSL&lt;/td&gt;&lt;td&gt;port&lt;/td&gt;&lt;td&gt;8443&lt;/td&gt;&lt;td&gt;11443&lt;/td&gt;&lt;tr&gt;&lt;td&gt;conf/jboss-service.xml&lt;/td&gt;&lt;td&gt;JBoss&lt;/td&gt;&lt;td&gt;WebService&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td&gt;Port&lt;/td&gt;&lt;td&gt;8080&lt;/td&gt;&lt;td&gt;11080&lt;/td&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;Naming&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td&gt;Port&lt;/td&gt;&lt;td&gt;1099&lt;/td&gt;&lt;td&gt;11099&lt;/td&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;Naming&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td&gt;RmiPort&lt;/td&gt;&lt;td&gt;1098&lt;/td&gt;&lt;td&gt;11098&lt;/td&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;invoker,type=jrmp&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td&gt;RMIObjectPort&amp;nbsp;&lt;/td&gt;&lt;td&gt;4444&lt;/td&gt;&lt;td&gt;14444&lt;/td&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;invoker,type=pooled&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td&gt;ServerBindPort&amp;nbsp;&lt;/td&gt;&lt;td&gt;4445&lt;/td&gt;&lt;td&gt;14445&lt;/td&gt;&lt;tr&gt;&lt;td&gt;deploy/jms/uil2-service.xml&lt;/td&gt;&lt;td&gt;JMS&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;ServerBindPort&lt;/td&gt;&lt;td&gt;1093&lt;/td&gt;&lt;td&gt;11093&lt;/td&gt;&lt;tr&gt;&lt;td&gt;deploy/hsqldb-ds.xml&lt;/td&gt;&lt;td&gt;HSQLDB&lt;/td&gt;&lt;td&gt;Hypersonic&lt;/td&gt;&lt;td&gt;Port&lt;/td&gt;&lt;td&gt;1701&lt;/td&gt;&lt;td&gt;11701&lt;/td&gt;&lt;tr&gt;&lt;td&gt;deploy/cache-invalidation-service.xml&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;ProviderUrl&lt;/td&gt;&lt;td&gt;1099&lt;/td&gt;&lt;td&gt;11099&lt;/td&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-6996088814791773995?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='text/html' href='http://www.thedance.net/~roth/TECHBLOG/jbossports.html' length='0'/><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/6996088814791773995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=6996088814791773995' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/6996088814791773995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/6996088814791773995'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2008/01/jboss-port-numbers.html' title='JBoss port numbers'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-8980189787023386567</id><published>2007-11-09T01:58:00.000-08:00</published><updated>2007-11-09T02:03:54.503-08:00</updated><title type='text'>Removing SQL Server</title><content type='html'>This &lt;a href="http://blogs.msdn.com/astebner/archive/2005/09/13/465401.aspx"&gt;blog post&lt;/a&gt; provides very useful guidance on how to get rid of pesky SQL Server installations.&lt;br /&gt;However, a couple of additions:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ensure you are running the command prompt in priviliged mode before trying the smartmsizap tool.&lt;/li&gt;&lt;li&gt;You may have to manually stop services, then remove the &lt;i&gt;Microsoft SQL Server&lt;/i&gt; directory in &lt;i&gt;c:\program files\&lt;/i&gt; after these steps.&lt;/li&gt;&lt;li&gt;There will still be a few residual bits in the Registry - do a search for '&lt;i&gt;SQL Server&lt;/i&gt;' and nuke them also. &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-8980189787023386567?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/8980189787023386567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=8980189787023386567' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/8980189787023386567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/8980189787023386567'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2007/11/removing-sql-server.html' title='Removing SQL Server'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-4744406005336812403</id><published>2007-10-12T20:12:00.000-07:00</published><updated>2008-12-11T06:32:32.760-08:00</updated><title type='text'>Meet the team</title><content type='html'>Not a serious blog here, but as the team have been feeling photogenic this week I thought I'd post a few pictures...&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_MWdb7FMGLPQ/RxA4Z-kzLiI/AAAAAAAABew/hlzPoj5nuO8/s1600-h/IMG_0001.jpg"&gt;&lt;img width="250" src="http://1.bp.blogspot.com/_MWdb7FMGLPQ/RxA4Z-kzLiI/AAAAAAAABew/hlzPoj5nuO8/s400/IMG_0001.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5120654795265486370" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_MWdb7FMGLPQ/RxA4aekzLjI/AAAAAAAABe4/90MZysZ1JUQ/s1600-h/IMG_0008.jpg"&gt;&lt;img width="250" src="http://3.bp.blogspot.com/_MWdb7FMGLPQ/RxA4aekzLjI/AAAAAAAABe4/90MZysZ1JUQ/s400/IMG_0008.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5120654803855420978" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_MWdb7FMGLPQ/RxA4cukzLmI/AAAAAAAABfQ/OpkwuXE6wz8/s1600-h/IMG_0013.jpg"&gt;&lt;img width="250" src="http://4.bp.blogspot.com/_MWdb7FMGLPQ/RxA4cukzLmI/AAAAAAAABfQ/OpkwuXE6wz8/s400/IMG_0013.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5120654842510126690" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_MWdb7FMGLPQ/RxA4bekzLlI/AAAAAAAABfI/A2zdkdnKZKY/s1600-h/IMG_0007.jpg"&gt;&lt;img src="http://3.bp.blogspot.com/_MWdb7FMGLPQ/RxA4bekzLlI/AAAAAAAABfI/A2zdkdnKZKY/s400/IMG_0007.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5120654821035290194" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-4744406005336812403?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/4744406005336812403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=4744406005336812403' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/4744406005336812403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/4744406005336812403'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2007/10/meet-team.html' title='Meet the team'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_MWdb7FMGLPQ/RxA4Z-kzLiI/AAAAAAAABew/hlzPoj5nuO8/s72-c/IMG_0001.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-2713148157131830689</id><published>2007-09-24T05:03:00.000-07:00</published><updated>2008-11-18T09:35:02.770-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sqlplus'/><category scheme='http://www.blogger.com/atom/ns#' term='port'/><category scheme='http://www.blogger.com/atom/ns#' term='jboss'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Oracle XE Default HTTP Port and listen on address</title><content type='html'>To change the default Oracle XE HTTP Listening port (8080), just run the following from sqlplus as sysdba:&lt;br /&gt;&lt;pre class="code"&gt;exec dbms_xdb.sethttpport(NEW_PORT_NUM);&lt;/pre&gt;Useful for when it conflicts with default jboss/tomcat ports.&lt;br /&gt;&lt;br /&gt;By default, it only listens on localhost. You can modify this by going to the homepage (will require a browser, or SSH tunnel to that machine)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-2713148157131830689?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/2713148157131830689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=2713148157131830689' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/2713148157131830689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/2713148157131830689'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2007/09/oracle-xe-default-http-port.html' title='Oracle XE Default HTTP Port and listen on address'/><author><name>Adam Hammouda</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_OsinJxzQpMY/SyaEOcSWfCI/AAAAAAAAABs/CphOybRUbb0/S220/firstapt.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-6972628640655236435</id><published>2007-09-21T09:56:00.000-07:00</published><updated>2007-09-21T10:00:27.214-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='static'/><category scheme='http://www.blogger.com/atom/ns#' term='jdk1.5'/><category scheme='http://www.blogger.com/atom/ns#' term='import'/><title type='text'>Java 1.5 'static import' feature</title><content type='html'>&lt;p&gt;A neat new-ish Java feature, which I just stumbled upon:&lt;br /&gt;&lt;/p&gt;&lt;p&gt; The static import construct allows unqualified access to static members &lt;i&gt;without&lt;/i&gt; inheriting from the type containing the static members.  Instead, the program &lt;i&gt;imports&lt;/i&gt; the members, either individually:  &lt;/p&gt;&lt;blockquote&gt; &lt;pre&gt;import static java.lang.Math.PI;&lt;br /&gt;&lt;/pre&gt; &lt;/blockquote&gt; or en masse: &lt;blockquote&gt; &lt;pre&gt;import static java.lang.Math.*;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;  Once the static members have been imported, they may be used without qualification: &lt;blockquote&gt; &lt;pre&gt;double r = cos(PI * theta);&lt;/pre&gt; &lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-6972628640655236435?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://java.sun.com/j2se/1.5.0/docs/guide/language/static-import.html' title='Java 1.5 &apos;static import&apos; feature'/><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/6972628640655236435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=6972628640655236435' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/6972628640655236435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/6972628640655236435'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2007/09/java-15-static-import-feature.html' title='Java 1.5 &apos;static import&apos; feature'/><author><name>Adam Hammouda</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_OsinJxzQpMY/SyaEOcSWfCI/AAAAAAAAABs/CphOybRUbb0/S220/firstapt.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-2477426305312072434</id><published>2007-09-19T10:52:00.000-07:00</published><updated>2008-03-04T03:01:53.044-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='sql server'/><category scheme='http://www.blogger.com/atom/ns#' term='msde'/><title type='text'>Installing MSDE 2000</title><content type='html'>Run the installer, decompress the MSDERelA directory to somewhere (not c:\mssql)&lt;br /&gt;Open a command window to this directory, and enter the command-line shown below to run the installer in silent-mode.&lt;br /&gt;The log file for the installation is written into a file named setup.log within the current working directory. You can place the file any where you want by updating the pathname noted after the /L*v switch.&lt;br /&gt;Since the installation runs silently without reporting errors, you must open the log file after setup completes to check for a successful status at the end of the file.&lt;br /&gt;&lt;pre&gt;setup sapwd="{PASSWORD}" securitymode=sql&lt;br /&gt;datadir="{DATA DRIVE}\mssql\data"&lt;br /&gt;targetdir="{INSTALL DRIVE}\mssql"&lt;br /&gt;disablenetworkprotocols=0 instancename="{INSTANCE}" /L*v setup.log&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;UPDATE 4-MAR-2008:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;SP4 is now available for MSDE - this can be downloaded from &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=8e2dfc8d-c20e-4446-99a9-b7f0213f8bc5&amp;amp;displaylang=en"&gt;here&lt;/a&gt;&lt;span style="font-family: arial;"&gt;. Be sure to download the MSDE version, the run the installer to decompress the setup files.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Note that this is not an upgrade, rather the full version of the installer so do not follow the instructions above with the MSDERelA installer, instead start in the folder generated by the SP4 decompression.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-2477426305312072434?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/2477426305312072434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=2477426305312072434' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/2477426305312072434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/2477426305312072434'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2007/09/installing-msde-2000.html' title='Installing MSDE 2000'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-4938177927656796327</id><published>2007-09-19T09:32:00.001-07:00</published><updated>2009-07-09T04:00:02.968-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='system'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Oracle useful management commands</title><content type='html'>&lt;span xmlns=""&gt;&lt;h4&gt;Delete duplicate rows (thanks to &lt;a href="http://www.devx.com/tips/Tip/13943"&gt;&lt;span style="text-decoration: underline;color:blue;"&gt;http://www.devx.com/tips/Tip/13943&lt;/span&gt;&lt;/a&gt;)&lt;br /&gt;&lt;/h4&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;delete {table}&lt;br /&gt;where rowid not in&lt;br /&gt;  (select min(rowid) from {table}&lt;br /&gt;    group by {columns});&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Where {columns} are index column(s) (comma-separated)&lt;br /&gt;&lt;/p&gt;&lt;h4&gt;Copy a table's contents into a new table (thanks to &lt;a href="http://www.ilook.fsnet.co.uk/ora_sql/sql_01.htm"&gt;&lt;span style="text-decoration: underline;color:blue;"&gt;http://www.ilook.fsnet.co.uk/ora_sql/sql_01.htm&lt;/span&gt;&lt;/a&gt;)&lt;br /&gt;&lt;/h4&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;CREATE TABLE BOOK_COPY AS&lt;br /&gt;SELECT * FROM BOOK&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;h4&gt;Kill user sessions (thanks to &lt;a href="http://www.adp-gmbh.ch/ora/sql/alter_system.html%23kill_session"&gt;&lt;span style="text-decoration: underline;color:blue;"&gt;http://www.adp-gmbh.ch/ora/sql/alter_system.html#kill_session&lt;/span&gt;&lt;/a&gt;)&lt;br /&gt;&lt;/h4&gt;&lt;h5&gt;Get session ID &amp;amp; session serial:&lt;br /&gt;&lt;/h5&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;select username,sid,serial#,schemaname from v$session;&lt;br /&gt;&lt;br /&gt;-- add "where schemaname='{schema}'" to the end if you want to filter by schema&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;h5&gt;Kill session(s)&lt;br /&gt;&lt;/h5&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;alter system kill session '{sid},{serial#}'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;h4&gt;Modify sys/system users and passwords&lt;br /&gt;&lt;/h4&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;sqlplus / as sysdba&lt;br /&gt;alter user sys identified by &amp;lt;NEW PASSWORD&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;h4&gt;Create tablespace&lt;br /&gt;&lt;/h4&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;create tablespace {name} datafile&lt;br /&gt;'/home/oracle/databases/ora10/{name}.dbf'&lt;br /&gt;size                                  10M&lt;br /&gt;autoextend on maxsize                200M&lt;br /&gt;extent management local uniform size  64K;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;Note: For XE the path to the DB files is: /usr/lib/oracle/xe/oradata/XE&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;h4&gt;List all available users&lt;br /&gt;&lt;/h4&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;SELECT username FROM all_users ORDER BY username;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;h4&gt;Change Oracle XE's XML DB default port (8080)&lt;br /&gt;&lt;/h4&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;call dbms_xdb.cfg_update(updateXML(&lt;br /&gt;         dbms_xdb.cfg_get()&lt;br /&gt;       ,&lt;br /&gt;       '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()'&lt;br /&gt;       , 8081))&lt;br /&gt;  /&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;h4&gt;Useful DB-related snippets&lt;br /&gt;&lt;/h4&gt;&lt;h5&gt;Backup the db on SQL01:&lt;br /&gt;&lt;/h5&gt;&lt;p&gt;Change dir to ~/data-backup&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;exp {user}/{password} file={user}_{YYYYMMDD}.dmp&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;h5&gt;ZIP all DMP files in a folder (unix / cygwin)&lt;br /&gt;&lt;/h5&gt;&lt;p&gt;&lt;code&gt;find -name "*.dmp" -exec zip -9 "{}".zip "{}" \;&lt;/code&gt;&lt;br /&gt;&lt;/p&gt;&lt;h4&gt;Move all indices to a different tablespace&lt;br /&gt;&lt;/h4&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;SET PAGESIZE 0&lt;br /&gt;spool c:\index_build.sql&lt;br /&gt;CREATE 'ALTER INDEX '||index_name||' REBUILD&lt;br /&gt;TABLESPACE &amp;lt;tablespace_name&amp;gt;;' from user_indexes;&lt;br /&gt;spool off&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;h4&gt;Run a script:&lt;br /&gt;&lt;/h4&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;sqlplus {user}/{password}&lt;br /&gt;@@{scriptname}.sql&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;h4&gt;Drop &amp;amp; Recreate a user:&lt;br /&gt;&lt;/h4&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;sqlplus system/{sys-password}&lt;br /&gt;DROP USER {user} CASCADE;&lt;br /&gt;CREATE USER {user} IDENTIFIED BY {password}&lt;br /&gt;DEFAULT TABLESPACE {tablespace};&lt;br /&gt;GRANT CONNECT,RESOURCE,DBA TO {user};&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;h4&gt;Import a dump file (full - normally preceeded by a user drop &amp;amp; recreate / partial):&lt;br /&gt;&lt;/h4&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;imp {user}/{password}file={filename}.dmp&lt;br /&gt;fromuser={fromuser} touser={user}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;h4&gt;If you encounter an ORACLE 12560 error (TNS Protocol), try this:&lt;br /&gt;&lt;/h4&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;set ORACLE_SID={SID} e.g. set ORACLE_SID=spldev01&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-4938177927656796327?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/4938177927656796327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=4938177927656796327' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/4938177927656796327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/4938177927656796327'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2007/09/oracle-useful-management-commands.html' title='Oracle useful management commands'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-745539854241645798</id><published>2007-09-19T08:58:00.000-07:00</published><updated>2007-09-19T08:59:55.089-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='sql server'/><category scheme='http://www.blogger.com/atom/ns#' term='user'/><title type='text'>SQL Server user fix</title><content type='html'>This is very useful after a restore of a DB to reassign the correct system user to the db user:&lt;pre&gt;sp_change_users_login 'Update_One',&lt;br /&gt;'{db user}','{sys user}'&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-745539854241645798?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/745539854241645798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=745539854241645798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/745539854241645798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/745539854241645798'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2007/09/sql-server-user-fix.html' title='SQL Server user fix'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-8973505638073019265</id><published>2007-09-19T02:55:00.000-07:00</published><updated>2007-09-19T02:58:12.559-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='duplicates'/><title type='text'>SQL check for duplicates</title><content type='html'>Search for duplicate entries in a table that is supposed to have unique whatevers (Departments in this case)&lt;br /&gt;&lt;pre&gt;select distinct deptid, count(*)&lt;br /&gt;  from ps_dept_tbl&lt;br /&gt;  group by deptid&lt;br /&gt;    having count(*) &gt; 1&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-8973505638073019265?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/8973505638073019265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=8973505638073019265' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/8973505638073019265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/8973505638073019265'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2007/09/sql-check-for-duplicates.html' title='SQL check for duplicates'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-1677215658310114386</id><published>2007-09-11T02:34:00.001-07:00</published><updated>2007-09-19T03:00:04.931-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media player'/><category scheme='http://www.blogger.com/atom/ns#' term='internet explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='ie'/><category scheme='http://www.blogger.com/atom/ns#' term='regsvr'/><category scheme='http://www.blogger.com/atom/ns#' term='vista'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Fixing Windows Vista</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;So I've been bugged for about 2 months now as to why my Vista install on my laptop refuses:&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;To run Windows Media Player.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;To do much interactive stuff in Internet Explorer.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;To open the 'Extended' view in the Services control panel.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Well, I've found the answer thanks to &lt;a href='http://forums.cnet.com/5208-6644_102-0.html?forumID=40&amp;amp;threadID=250548&amp;amp;messageID=2532473'&gt;this post&lt;/a&gt;. It seems that some installation somewhere (I blame OneCare, but this blame is frankly unfounded) has unregistered the VB and Java script DLLs on the system, both of which it seems are required to run WMP and display funky folder properties, etc. There's a simple fix:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;regsvr32 jscript.dll&lt;br/&gt;regsvr32 vbscript.dll&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;So congratulations to the post writer, and I now don't need to reinstall my tablet; that is, if I can get my shiny new &lt;a href='http://www.t-mobile.co.uk/'&gt;T-Mobile&lt;/a&gt; 3g modem working!&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-1677215658310114386?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/1677215658310114386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=1677215658310114386' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/1677215658310114386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/1677215658310114386'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2007/09/fixing-windows-vista.html' title='Fixing Windows Vista'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-6970248390739627967</id><published>2007-08-17T07:27:00.001-07:00</published><updated>2007-09-19T05:12:46.391-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='sysadmin'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><title type='text'>SVN Performance Fix</title><content type='html'>Nearly forgot to post about this one!  A few weeks back I made some changes to the apache conf files which are what resulted in our SVN performance increase.  Specifically, the addition of the&lt;pre&gt;SVNPathAuthz off&lt;/pre&gt;directive.  The reason this helps so much is simple enough: apparently, mod_dav_svn spends a ridiculous amount of time ensuring/enforcing per-directory path authentication restrictions.  Since we have none of these restrictions in place at any rate, this option is irrelevant - and thus can be disabled!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-6970248390739627967?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/6970248390739627967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=6970248390739627967' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/6970248390739627967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/6970248390739627967'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2007/08/svn-performance-fix.html' title='SVN Performance Fix'/><author><name>Adam Hammouda</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_OsinJxzQpMY/SyaEOcSWfCI/AAAAAAAAABs/CphOybRUbb0/S220/firstapt.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-8562655003586691452</id><published>2007-08-14T13:32:00.000-07:00</published><updated>2007-09-19T03:00:57.655-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='function'/><category scheme='http://www.blogger.com/atom/ns#' term='pl/sql'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Returning a table from a function in Oracle</title><content type='html'>This is a great article on how to create a function which returns mutliple values.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-8562655003586691452?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.enterprisedt.com/publications/oracle/result_set.html' title='Returning a table from a function in Oracle'/><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/8562655003586691452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=8562655003586691452' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/8562655003586691452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/8562655003586691452'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2007/08/returning-table-from-function-in-oracle.html' title='Returning a table from a function in Oracle'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-4160709872469006341</id><published>2007-08-09T07:51:00.000-07:00</published><updated>2007-08-09T08:00:04.113-07:00</updated><title type='text'>Windows Symlinks</title><content type='html'>It turns out NTFS has supported *nix-esque "symlinks" for a while.&lt;br /&gt;&lt;br /&gt;It's easily accessible in Vista using the mklink command, however this same functionality can [essentially] be added to Win 2K/XP by using this neat sysinternals tool:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/technet/sysinternals/FileAndDisk/Junction.mspx"&gt;http://www.microsoft.com/technet/sysinternals/FileAndDisk/Junction.mspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Very useful, esp. for linking "spldev" in a branch to its real location (saves you from copying it in every time..)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-4160709872469006341?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.microsoft.com/technet/sysinternals/FileAndDisk/Junction.mspx' title='Windows Symlinks'/><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/4160709872469006341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=4160709872469006341' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/4160709872469006341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/4160709872469006341'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2007/08/windows-symlinks.html' title='Windows Symlinks'/><author><name>Adam Hammouda</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_OsinJxzQpMY/SyaEOcSWfCI/AAAAAAAAABs/CphOybRUbb0/S220/firstapt.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-2595401190832098699</id><published>2007-08-08T05:11:00.000-07:00</published><updated>2007-08-08T05:40:20.766-07:00</updated><title type='text'>MultiTouch Demo</title><content type='html'>This is insane - if you thought the iPhone was revolutionary - think again! Jeff Han has been demoing this stuff at TED for years.  Here's his latest demo from his new company Perceptive Pixel:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://link.brightcove.com/services/link/bcpid607757611/bctid422563006"&gt;http://link.brightcove.com/services/link/bcpid607757611/bctid422563006&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I admit, this isn't particularly related to Spiralinks in any fashion.. But it's just so damn neat I couldn't pass up the opportunity to share it with you here :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-2595401190832098699?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://link.brightcove.com/services/link/bcpid607757611/bctid422563006' title='MultiTouch Demo'/><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/2595401190832098699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=2595401190832098699' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/2595401190832098699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/2595401190832098699'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2007/08/multitouch-demo.html' title='MultiTouch Demo'/><author><name>Adam Hammouda</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_OsinJxzQpMY/SyaEOcSWfCI/AAAAAAAAABs/CphOybRUbb0/S220/firstapt.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-44982198993199847</id><published>2007-08-07T06:16:00.001-07:00</published><updated>2007-08-09T08:00:55.224-07:00</updated><title type='text'>Wonderful Java presentations</title><content type='html'>This is a wonderful presentation series from the guys at Sun on Java.  It turns out that in programming - as in life - there is sometimes much more going on than meets the eye. :-)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://video.google.com/videoplay?docid=9214177555401838409&amp;q=Advanced+Topics+in+Programming+Languages%3A+Java+Puzzlers&amp;amp;total=2&amp;start=0&amp;amp;num=10&amp;so=0&amp;amp;type=search&amp;plindex=0"&gt;http://video.google.com/videoplay?docid=9214177555401838409&amp;amp;q=Advanced+Topics+in+Programming+Languages%3A+Java+Puzzlers&amp;total=2&amp;amp;start=0&amp;num=10&amp;amp;so=0&amp;type=search&amp;amp;plindex=0&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Be warned though - each presentation is over an hour long, and once you start I almost guarantee you won't be able to stop watching.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-44982198993199847?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://video.google.com/videoplay?docid=9214177555401838409&amp;q=Advanced+Topics+in+Programming+Languages%3A+Java+Puzzlers&amp;total=2&amp;start=0&amp;num=10&amp;so=0&amp;type=search&amp;plindex=0' title='Wonderful Java presentations'/><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/44982198993199847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=44982198993199847' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/44982198993199847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/44982198993199847'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2007/08/wonderful-java-presentation.html' title='Wonderful Java presentations'/><author><name>Adam Hammouda</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_OsinJxzQpMY/SyaEOcSWfCI/AAAAAAAAABs/CphOybRUbb0/S220/firstapt.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-1820826422484560989</id><published>2007-08-07T04:59:00.000-07:00</published><updated>2007-08-07T05:10:42.553-07:00</updated><title type='text'>Anonymous class initialization</title><content type='html'>Easy way to define an initializer (psuedo-"constructor") within an anonymous class:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;c.addActionListener(new ActionListener() {&lt;br /&gt;  {&lt;br /&gt;      // initialize something&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void actionPerformed(ActionEvent e) {&lt;br /&gt;      // handle action&lt;br /&gt;  }&lt;br /&gt;});&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-1820826422484560989?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/1820826422484560989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=1820826422484560989' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/1820826422484560989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/1820826422484560989'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2007/08/anonymous-class-constructor.html' title='Anonymous class initialization'/><author><name>Adam Hammouda</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_OsinJxzQpMY/SyaEOcSWfCI/AAAAAAAAABs/CphOybRUbb0/S220/firstapt.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-2154340280192420292</id><published>2007-08-06T03:55:00.000-07:00</published><updated>2007-08-06T04:19:37.880-07:00</updated><title type='text'>Java inheritance magic</title><content type='html'>I've been bugged for a long time by not being able to access superclass methods in an inner class. And it turns out that it's dead easy to do - if you know how:&lt;br /&gt;&lt;pre&gt;{ParentClass}.this.{function}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-2154340280192420292?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/2154340280192420292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=2154340280192420292' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/2154340280192420292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/2154340280192420292'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2007/08/java-inheritance-magic.html' title='Java inheritance magic'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-115384404694498092</id><published>2006-07-25T09:09:00.000-07:00</published><updated>2007-08-06T03:54:58.211-07:00</updated><title type='text'>Hibernate 'instance associated with more than one sessions'</title><content type='html'>Argh! This (perfectly reasonable) error occurs quite frequently when building multi-threaded swing applications such as the admin tool.&lt;br /&gt;&lt;br /&gt;I've created a useful debugging tool for this kind of thing in my HibernateUtil session factory:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;private static HashMap allSessions = new HashMap();&lt;br /&gt;public static Session currentSession(String identifier) {&lt;br /&gt;&amp;lt;snip&amp;gt;&lt;br /&gt;    allSessions.put(getThreadId(identifier), s);&lt;br /&gt;&amp;lt;snip&amp;gt;&lt;br /&gt;}&lt;br /&gt;private static String getThreadId() {&lt;br /&gt;    return Thread.currentThread().getName();&lt;br /&gt;}&lt;br /&gt;public static String findObject(Object ob) {&lt;br /&gt;    String ret = "Object \"" + ob.toString() + "\" is in: ";&lt;br /&gt;    HashMap h = (HashMap) session.get();&lt;br /&gt;    Iterator it = allSessions.entrySet().iterator();&lt;br /&gt;    while( it.hasNext() ) {&lt;br /&gt;        Map.Entry cur = (Map.Entry) it.next();&lt;br /&gt;        if( ((Session) cur.getValue()).contains(ob) )&lt;br /&gt;            ret += cur.getKey() + ", ";&lt;br /&gt;    }&lt;br /&gt;        return ret;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-115384404694498092?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/115384404694498092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=115384404694498092' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/115384404694498092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/115384404694498092'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2006/07/hibernate-instance-associated-with.html' title='Hibernate &apos;instance associated with more than one sessions&apos;'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-115036922134412909</id><published>2006-06-15T03:59:00.000-07:00</published><updated>2006-06-15T04:03:48.116-07:00</updated><title type='text'>Tora on Ubuntu</title><content type='html'>This was stolen from &lt;a href="http://sponce.web.cern.ch/sponce/linux/Install.html#tora"&gt;CERN's hints and tips&lt;/a&gt; but modified:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ensure that you have the instant client from www.oracle.com - and also install the SDK files.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; Use apt-get to install the latest tora source package and the needed libraries :&lt;/li&gt;&lt;/ul&gt;   &lt;pre&gt;&lt;code&gt;apt-get install kdelibs4-dev kdebase-bin libqscintilla-dev&lt;br /&gt;cd &lt;where&gt;&lt;br /&gt;apt-get source tora&lt;br /&gt;cd tora-1.3.21&lt;/where&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;Now modify the debian/rules file : you have to remove the --without-oracle in the line that contains configure :&lt;/li&gt;&lt;/ul&gt;   &lt;pre&gt;&lt;code&gt;vim debian/rules&lt;br /&gt;/--without-oracle&lt;br /&gt;Remove it and save&lt;br /&gt;Add --with-oci-version=10 to the end of the same line&lt;br /&gt;Add exports for LD_LIBRARY_PATH and ORACLE_HOME to the top of this file&lt;/code&gt;&lt;/pre&gt;    &lt;ul&gt;&lt;li&gt;In the instantclient directory run:&lt;/li&gt;&lt;/ul&gt;   &lt;pre&gt;&lt;code&gt;ln -s . lib&lt;/code&gt;&lt;/pre&gt;    &lt;ul&gt;&lt;li&gt;Now compile :&lt;/li&gt;&lt;/ul&gt;   &lt;pre&gt;&lt;code&gt;dpkg-buildpackage -us -uc -rfakeroot&lt;/code&gt;&lt;/pre&gt;    &lt;ul&gt;&lt;li&gt;This results in the following packages in /usr/src :&lt;/li&gt;&lt;/ul&gt;   &lt;pre&gt;&lt;code&gt;tora_1.3.21-1_i386.deb &lt;/code&gt;&lt;/pre&gt;    &lt;ul&gt;&lt;li&gt;And install :&lt;/li&gt;&lt;/ul&gt;   &lt;pre&gt;&lt;code&gt;dpkg -i ../tora_1.3.21-1_i386.deb&lt;/code&gt;&lt;/pre&gt;    &lt;ul&gt;&lt;li&gt;Last point if you don't want dselect to update the package when you do a full update, just mark it with an '=', or use synaptic to lock the package version.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-115036922134412909?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://tora.sourceforge.net/' title='Tora on Ubuntu'/><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/115036922134412909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=115036922134412909' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/115036922134412909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/115036922134412909'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2006/06/tora-on-ubuntu.html' title='Tora on Ubuntu'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-114622623288845504</id><published>2006-04-28T05:09:00.000-07:00</published><updated>2006-04-28T05:10:32.903-07:00</updated><title type='text'>HTTP NTLM Authentication with jCIFS</title><content type='html'>Well, finally worked out what was going wrong with this on our client site...&lt;br /&gt;&lt;br /&gt;You _don't_ need to enable authentication with the IIS server; the jcifs installation does all the negotiating for your; enabling IIS means that the default domain is incorrect, and so the authentication fails; every time.&lt;br /&gt;&lt;br /&gt;So, it's sorted, at last!&lt;br /&gt;&lt;br /&gt;I'll put more detailed info here if I can be bothered later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-114622623288845504?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/114622623288845504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=114622623288845504' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/114622623288845504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/114622623288845504'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2006/04/http-ntlm-authentication-with-jcifs_28.html' title='HTTP NTLM Authentication with jCIFS'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-114407767784181680</id><published>2006-04-03T08:19:00.000-07:00</published><updated>2006-04-03T08:21:17.843-07:00</updated><title type='text'>DNS DDOS attack warning</title><content type='html'>My ISP just warned me that my site was an Open Recursive DNS Server...&lt;br /&gt;&lt;br /&gt;I looked into it, and it is true, by default, &lt;a href="http://www.netmax.com"&gt;NetMax&lt;/a&gt; is. The solution is to add a firewall rule that drops all NEW/INVALID connections with dest port 53.&lt;br /&gt;&lt;br /&gt;Hopefully this will also clear up the issue that we were having with named on &lt;a href="http://www.netmax.com"&gt;NetMax&lt;/a&gt; falling over from time to time...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-114407767784181680?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/114407767784181680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=114407767784181680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/114407767784181680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/114407767784181680'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2006/04/dns-ddos-attack-warning.html' title='DNS DDOS attack warning'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-114407753435440296</id><published>2006-04-03T08:16:00.000-07:00</published><updated>2006-04-03T08:18:54.373-07:00</updated><title type='text'>HTTP NTLM Authentication with jCIFS</title><content type='html'>Well, &lt;a href="http://jcifs.samba.org/"&gt;jCIFS&lt;/a&gt; really works!&lt;br /&gt;&lt;br /&gt;Installed a test .war file on our client's Windows 2003 domain and once we'd cleared up whether to use a domain name, or a domain server name (The latter if you don't use WINS), it worked - out of the box, just like that - as a Servlet filter.&lt;br /&gt;&lt;br /&gt;Very good stuff - I recommend you check it out!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-114407753435440296?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/114407753435440296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=114407753435440296' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/114407753435440296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/114407753435440296'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2006/04/http-ntlm-authentication-with-jcifs.html' title='HTTP NTLM Authentication with jCIFS'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-114353567777125810</id><published>2006-03-28T00:43:00.000-08:00</published><updated>2006-03-28T00:48:41.266-08:00</updated><title type='text'>Clustering on JBoss</title><content type='html'>Well, I've finally (thanks to &lt;a href="http://www.lucidinsights.com"&gt;Ron Schmalz&lt;/a&gt;) worked out a solution - as yet untested - for the session management nightmare.&lt;br /&gt;&lt;br /&gt;The answer lies in an &lt;a href="http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/http/HttpSessionListener.html"&gt;HttpSessionListener&lt;/a&gt;; basically the 'Session Factory' that was created with nasty static members for sessions becomes a listener, and on create / destroy, an 'SPL Session' is created with the real &lt;a href="http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/http/HttpSession.html"&gt;HttpSession&lt;/a&gt; object so that all comes good with session replication - hopefully! Watch this space for the results...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-114353567777125810?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/114353567777125810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=114353567777125810' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/114353567777125810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/114353567777125810'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2006/03/clustering-on-jboss_28.html' title='Clustering on JBoss'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24844947.post-114348188317975445</id><published>2006-03-27T09:46:00.000-08:00</published><updated>2006-03-27T09:51:23.190-08:00</updated><title type='text'>Clustering on JBoss</title><content type='html'>It seems I'm now an expert at clustering on JBoss...&lt;br /&gt;&lt;br /&gt;Unfortunately the application uses static member variables rather than container-managed sessions to store 'session' attributes.&lt;br /&gt;&lt;br /&gt;I'm trying to work out how to get the container session from the string session ID. Not sure that this is possible due to the security restrictions on the container, but am still looking...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24844947-114348188317975445?l=spiralinks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spiralinks.blogspot.com/feeds/114348188317975445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24844947&amp;postID=114348188317975445' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/114348188317975445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24844947/posts/default/114348188317975445'/><link rel='alternate' type='text/html' href='http://spiralinks.blogspot.com/2006/03/clustering-on-jboss.html' title='Clustering on JBoss'/><author><name>Christian Ashby</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_MWdb7FMGLPQ/SZWClQUgM7I/AAAAAAAABjw/G2X2c2pOUNw/S220/me-gp.jpg'/></author><thr:total>0</thr:total></entry></feed>
