Adding a Clustered SQL Server Disk for Windows 2008 in VMware

If you are running a clustered SQL Server instance on VMware, there are times when the drive will not mount into SQL Server. The clustered disk seems to be unknown to the clustered engine in Windows 2008. This is the typical error message (keep in mind your disk GUID and directories will be different) –>

Reason: Thin/TBZ disks cannot be opened in multiwriter mode..
Cannot open the disk ‘/vmfs/volumes/4d80d2d9-2e61fb80-c22e-0025b500006f/MyDisk/MyDisk.vmdk’ or one of the snapshot disks it depends on.
VMware ESX cannot open the virtual disk “/vmfs/volumes/4d80d2d9-2e61fb80-c22e-0025b500006f/MyDisk/MyDisk.vmdk” for clustering.

This is because VMware has failed to fully initialize the dynamic drive, and as Windows attempts to mount the clustered drive, it cannot see the entire “static” disk. Fortunately, there are ways to cure this.

The first obvious answer is to “Clone” an existing working disk in VMware. Although this does work, your disk will be the same size as the original clone. And the disks fault tolerance setting will also be copied. If you are ok with these parameters, do this method. Cloning is fast and easy and presents the least amount of potential problems.

The other way is to “zero out” a new disk in VMware. The steps are as follows:

  • Shutdown your Windows virtual machine. It cannot be running.
  • Create a new disk in VWware with your desired disk size and fault tolerance setting.
  • Go into the VMware command line shell on the Host machine that contains the new disk image
  • Run the following command –>vmkfstools -w /vmfs/volumes/4d5417c4-9792c848-b768-0025b500005f/MyDisk/MyDisk.vmdk
  • Be sure to use the GUID of your VMware disk. It will be in the error message that we observed from above. This command may also take a considerable amount of time to run based on the size of the disk and the fault tolerance setting.

Once completed, Restart your Windows VM and insert the new disk into the Cluster. You should then be able to add the new clustered disk to your SQL Server disk array!

Upgrading to Reporting Services 2008 in Visual Studio 2010

Upgrading to SQL Server Reporting Services 2008 requires a few changes in your Visual Studio 2010 projects.

First you need to remove your old Reference to Microsoft Reporting.WebForms (Version 9.0.0.0). Then add the Reference to the Microsoft.Reporting.WebForms for Version 10.0.0.0. Right mouse-click on your project Reference like this –>

Microsoft ReportViewer reference
Add a Reference to the Microsoft.ReportViewer.WebForms Control

If you use any embedded reports on any Web Forms, you need to change the Assembly Reference directive in your .aspx file from 9.0.0.0 to 10.0.0.0
<%@ Register assembly=”Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” namespace=”Microsoft.Reporting.WebForms” tagprefix=”rsweb” %>

For SSRS 2008, you must add Microsofts ScriptManager control to the form.

Visual Studio 2010 Script Manager
Visual Studio 2010 Script Manager

Finally, in your Web.config, all references to the ReportViewer controls 9.0.0.0 need to be changed to 10.0.0.0.
Here is an example web.config (the key areas are bolded) –>

<?xml version=”1.0″?>

<!–

For more information on how to configure your ASP.NET application, please visit

http://go.microsoft.com/fwlink/?LinkId=169433

–>

<configuration>

<system.web>

<compilation debug=”true” targetFramework=”4.0″>

<assemblies>

<add assembly=”System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35″ />

</assemblies>

<buildProviders>

<add extension=”.rdlc” type=”Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” />

</buildProviders>

</compilation>

<httpHandlers>

<add verb=”*” path=”Reserved.ReportViewerWebControl.axd” type = “Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” />

</httpHandlers>

</system.web>

<system.webServer>

<handlers>

<remove name=”ReportViewerWebControlHandler” />

<add name=”ReportViewerWebControlHandler” preCondition=”integratedMode” verb=”*” path=”Reserved.ReportViewerWebControl.axd” type=”Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” />

</handlers>

</system.webServer>

</configuration>

One last item that may happen, in your IIS Settings, be sure there are no global provider references. Verify this by going to Start->Control Panel->Administrative Tools->Internet Information Services (IIS) Manager.  Then click on your computer name on the left navigation tree, then double-click on Handler Mappings. Just verify there is no mapping for .rdlc files. If there is, you must decide if you want to delete it. Other applications may be using older Reporting Services files. If you are unsure, save a screenshot of the settings, then delete the reference. If there is a problem, reenter the original reference.

You should now have built your project and are successfully running reports in your application with Visual Studio. When you publish up to a website, you may run into another issue. If you have not installed Visual Studio 2010 on your web server (hopefully you did not), you will need to install the Report Viewer runtime. You can download the 2010 version here from Microsoft (http://www.microsoft.com/downloads/en/confirmation.aspx?FamilyID=A941C6B2-64DD-4D03-9CA7-4017A0D164FD). Reboot your web server and you should now have running reports.

One more note:If you receive the following error on your .aspx page with the Report Viewer control:

The request failed with HTTP status 401: Unauthorized.

One cause may be if you are running both your report server and IIS server on the same machine. You need to ensure that the Report Viewer controls on your .aspx pages use the server address, NOT the full qualified domain name (FQDN). Windows performs what is called a “loopback check” and this may be the source of the error. For example, if you are using http://www.YourWebsite.com/reportserver for the  to Report Server Url on the Report Viewer control, change it to the name of the server instead. For example, http://MyWebMachineName/reportserver. Since the report is being rendered on the server itself, this technique should work fine.

Additionally, be sure the user requesting the report has “Browse” permissions for the report granted from within the Report Services Manager.

You should now be ready to take advantage of all of the new features of SSRS 2008!

Linux Remote Desktop Display

One very annoying thing about Linux’s Remote Desktop (rdesktop) command is that you rarely can get a good screen size when remotely connecting to a Windows machine. It’s either too long and you have to always scroll, or worse yet, you are looking at an 800×600 view of your remote desktop.

Fortunately, the Linux crew has thought of a consistent way to get around this issue. You can tell rdesktop to run in full-screen mode initially. This is a terrific way to automatically get a desktop that fits your monitor’s screen size from the get go. To run in full-screen mode, run the following command –>

>rdesktop -f MyMachine

That’s it! You will have a screen that is fully sized to your monitor. One other thing – To break out of full screen mode, press Ctrl-Alt-Enter. Press Ctrl-Alt-Enter again to return to full-screen mode once again.

Using Verifone RiTA software with IBM WAS

If you are running the RiTA software by Verifone, you may encounter a number of issues configuring the software to work in an IBM WebSphere environment. There are two issues you want to avoid:

  • Not being able to find the tid.jcc file
  • Not having the .jar files in the correct location

First, the tid.jcc needs to be in the default server directory for IBM WAS. On Linux, this will most likely be the /opt/IBM/WebSphere/AppServer/profiles/AppSrv01 directory.

To add the tid.jcc reference, you will want to link it from your RiTA installation directory (the default directory being /opt/rita). Run these commands:

>cd /opt/IBM/WebSphere/AppServer/profiles/AppSrv01
>ln -s /opt/rita/tid.jcc

Next, you will need to link all of the RiTA .jar files to your extensions directory in the Java Runtime Engine. Run these commands:

>cd /opt/IBM/WebSphere/AppServer/java/jre/lib/ext
>find /opt/rita/lib/rita -name ‘*.jar’ -exec ln -s {} \;

You will now have symbolic links to all of the RiTA .jar files and it will be accessible to WebSphere and all other Java applications.

Jasper Server could not insert error

In Jasper Server, you may encounter the following error:

org.hibernate.exception.GenericJDBCException: could not insert: [com.jaspersoft lipitor 10mg.jasperserver.api.metadata.common.service.impl.hibernate.persistent.ContentRepoFileResource]

This can be caused by having too many automated reports stored in your Content Files directory. Especially if there are number of large .xls (or any type of file).

Just be sure to keep this directory to less than 50 files, and you should be good!

Setting up a classless DNS with Bind9 on Ubuntu and Red Hat Linux flavors

Setting up a classless DNS is critical if you are setting up a mail server on your classless set of IPs. For instance, when my mail users send e-mails to Comcast, Cox, or Time-Warner, my mail is rejected with the following message between the stars:

********************

Subject: Undelivered Mail Returned to Sender

This is the mail system at host melon.skky.net.

I’m sorry to have to inform you that your message could not be delivered to one or more recipients. It’s attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can delete your own text from the attached returned message.

                   The mail system

<mailto:ddietrich@@socal.rr.com>: host hrndva-smtpin02.mail.rr.com[71.74.56.244] refused to talk to me: 421 4.7.1 – Connection refused.  Cannot resolve PTR record for 216.23.169.107

********************

In order to resolve this issue, you must ask your hosting provider to forward reverse DNS queries to your DNS server. Then, you can set up the reverse DNS for your classless range of IPs. Start by editing your named.conf file (/etc/bind/named.conf on Ubuntu, /var/named/chroot/etc/named.conf on Red Hat flavors). Add the following lines–>

zone “96/28.169.23.216.in-addr.arpa” {
 type master;
 file “/etc/bind/96-28.169.23.216.rev”;
};

In my case, my provider assigned me the range of 216.23.169.23.96-216.23.169.110. This is a /28 set of addresses. Notice how we reverse the zone entry. The Class D first, followed by a /, followed by the .Class C.Class B.Class A.in-addr.arpa. The filename roughly matches this as well. I called the file 96-28.169.23.216.rev. Just put this file in your /etc/bind directory on Ubuntu, or /var/named/chroot/var/named on Red Hat Linux flavors (RH5, CentOS, Fedora Core, etc.)

Now for the actual file 96-28.169.23.216.rev contents between the stars –>

****************************

$ttl 38400
$ORIGIN 96/28.169.23.216.in-addr.arpa.
@       1D      IN      SOA     ns1.wiretoss.com. ddietrich.localhost. (
                        1172404866
                        10800
                        3600
                        604800
                        38400 )
        NS      ns1.wiretoss.com.
        NS      ns2.wiretoss.com.
100     PTR     ns1.vitaven.com.
101     PTR     101.wiretoss.com.
102     PTR     102.wiretoss.com.
103     PTR     103.wiretoss.com.
104     PTR     104.wiretoss.com.
105     PTR     105.wiretoss.com.
106     PTR     106.wiretoss.com.
107     PTR     ns1.wiretoss.com.
108     PTR     108.wiretoss.com.
109     PTR     109.wiretoss.com.
110     PTR     110.wiretoss.com.
****************************

Restart bind9 and you should now have a happy reverse DNS to the rest of the world, and especially those pesky mail servers that check for everything.

Samba – Stop homes from showing in shares

When using Samba on Linux, there are times that you want to allow user to have a private user directory, but do not want the “homes” directory share to show up. This is relatively simple.

Edit your /etc/samba/smb.conf file with your favorite Linux editor.
Look for the section [homes] and find the line
browseable =

set this line to browseable = no

Restart Samba (>service smb restart) and your users should now see their personal directory without seeing the homes share.

If you do not have a [homes] section, here is an example on for you –>

[homes]
        hide dot files = no
        comment = Home Directories
        writeable = yes
        delete readonly = yes
        valid users = %S
        browseable = no

The Essential Startup Reader: 10 Lessons in Entrepreneurship

As a blogger, I spend most of my time writing. But it’s time spent reading that’s most satisfying. Here’s a short (and by no means a complete) list of 10 articles that encapsulate the art of the startup. Most were published during 2009, and I found them educational and full of practical tips that we’ve applied to our business. They’ve also helped me think differently about startups and entrepreneurship. Hope you enjoy reading them as much as I did.

  1. <a href="http://www.paulgraham lipitor 40 mg.com/really.html” target=”_new”>“What Startups Are Really Like” by Paul Graham: This has to be the single best essay I read during 2009. Every entrepreneur should begin the startup journey with this essay. It bottles every essence of entrepreneurship and startups, and is chock-full of practical advise and tips that are applicable to anyone who dares to dream.
  2. “Milestones to Startup Success” by Sean Ellis: Ellis explains the need for minimum viable product, aka MVP, and then outlines how startups can go up his startup pyramid to find success.
  3. Myth: Entrepreneurship Will Make You Rich” by Eric Ries: “One of the unfortunate side effects of all the publicity and hype surrounding startups is the idea that entrepreneurship is a guaranteed path to fame and riches. It isn’t,” Ries writes in this no-holds-barred essay about the challenges and pitfalls of being a startup founder.
  4. “What Is the Minimum Viable Product?” by Venture Hacks: A great audio conversation on the Venturehacks blog including a slide show.
  5. “The Power of Continuous Improvement” by Mike Speiser: In a guest post for us, Mike talks about the importance of metrics, feedback and how they can drive continuous improvement. Mike’s rules have found eager takers among our team.
  6. “Getting Comfortable With People Who Make You Uncomfortable” by Mike Speiser: In this article, Mike addresses the need for people who challenge conventional wisdom and make everyone around them uncomfortable — which is why every company needs them.
  7. “The Funnel Principle: Software & Making Money” by Tony Wright: It’s good to build great products, but in order to build great companies one needs to have more — a clear path of monetization, an attention magnet, and in general excellence at things beyond product development.
  8. “Does Every Startup Need a Steve Jobs?” by Andrew Chen: A dissection of how insanely great products are built by combining desirability, feasibility and viability. Read this post after reading Wright’s “Funnel Principle.”
  9. “Designing for Social Traction” by Josh Porter

 

10: “Startup Killer: The Cost of Customer Acquisition” by David Skok: A definitive essay on startup business models, the perils of overoptimism, and the importance of cost of customer acquisitions. Skok is a 3-time entrepreneur with a lifetime of experience.

Bonus links:

Steve Jobs\’ 2005 Stanford Commencement Address

 

 

Initializing a new instance of Linux

After a fresh install of Linux, there are a number of tasks I like to do. I like having commands and aliases that I am used to installed.

Copy /opt/scripts

Create /opt/sw

/opt/scripts/stopUnusedServices.sh

set up MySQL

Install WebMin and VirtualMin for managing your domain names and their.