Quest Software – Benchmark Factory – v7

Prelude

Back in May 2014, Kevin Stern of Quest reached out to me and let me in on the fact that they have released a new version of Quest Benchmark Factory.

This was through a comment he posted @ http://danieladeniji.wordpress.com/2014/05/10/technical-quest-software-benchmark-factory-for-databases/.

Since then I have wanted to download the new version and kick it around a bit.

In this post, I will talk a bit about my experience.

 

Database – Preparation

 

Database – Sample

We will use the AdventureWorks Database.  Unfortunately, our target database is SQL Server Express and that product version does not ship with sample databases.  And, so we downloaded a version from Microsoft; specifically https://msftdbprodsamples.codeplex.com/releases/view/125550.

 

Restore Database

USE [master]
GO
RESTORE DATABASE [AdventureWorks2014] 
FROM DISK = N'C:\Downloads\AdventureWorks2014.bak' WITH FILE = 1
  , MOVE N'AdventureWorks2014_Data' TO N'E:\DATA\AdventureWorks2014_Data.mdf'
  , MOVE N'AdventureWorks2014_Log' TO N'F:\LOG\AdventureWorks2014_Log.ldf'
  , NOUNLOAD
  , STATS = 5


 

Database – Objects

As we have an entire pre-written database for our use, we will need very minimal modifications.
Actually, we will simply add two stored procedure that serve same purpose; which is to query the person table.

The Stored Procedures will accept two arguments firstname and lastname and will filter against the person.person table based on the argument contents.

 

 

dbo,usp_PersonFetchFilteredOnName_1

 

Here is SP 1, it exclusively uses the or clause.

 

use [AdventureWorks2014]
go

if object_id('dbo.usp_PersonFetchFilteredOnName_1') is null
begin
    exec('create procedure dbo.usp_PersonFetchFilteredOnName_1 as select 1/0 as [shell]')
end
go

alter procedure dbo.usp_PersonFetchFilteredOnName_1
(
      @Firstname nvarchar(50) = null
    , @Lastname  nvarchar(50) = null
)
as
begin

    set nocount on;

    select *
    from   [Person].[Person]
    where
                (
                       (@Firstname is null)
                    or (@Firstname = '')
                    or (Firstname = @Firstname)
                )
            and
                (
                       (@Lastname is null)
                    or (@Lastname = '')
                    or (Lastname = @Lastname)
                )


end
go

 

 

dbo.usp_PersonFetchFilteredOnName_2

 

Here is SP 2, it uses the case clause.

use [AdventureWorks2014]
go

if object_id('dbo.usp_PersonFetchFilteredOnName_2') is null
begin

    exec('create procedure dbo.usp_PersonFetchFilteredOnName_2 as select 1/0 as [shell]')
end
go

alter procedure dbo.usp_PersonFetchFilteredOnName_2
(
      @Firstname nvarchar(50) = null
    , @Lastname  nvarchar(50) = null
)
as
begin


    set nocount on;

    select *
    from   [Person].[Person]
    where
            (

                    (
                        Firstname = 
                                    case
                                        when (@Firstname is null) then Firstname
                                        when (@Firstname = '') then Firstname
                                        else @Firstname
                                    end
                    )

                and

                    (
                        Lastname = 
                                    case
                                        when (@Lastname is null) then Lastname
                                        when (@Lastname = '') then Lastname
                                        else @Lastname
                                    end
                    )
            )
end
go

 

Database – Sample Data

To get representative test data, we will use bcp to get data out of our database.

 

bcp "select '\"' + Firstname + '\"' as Firstname, '\"' + Lastname + '\"' as Lastname, Count(*) as Cnt from [AdventureWorks2014].[Person].[Person] group by Firstname, Lastname order by count(*) desc " queryout person.txt -S.\SQLEXPRESS_V2014  -E -T -c -t","

if not exist c:\sqlserver\data mkdir c:\sqlserver\data
xcopy C:\Personal\DanielAdeniji\Blog\QuestSoftware\BenchmarkFactory\v7\DatabaseScripts\GenerateTestData\person.txt  c:\sqlserver\data /Q /y /D

 

 

ODBC Data Source

System Data Source

We created a System ODBC Data Source.

 

SelectADriver

 

Data Source Name and SQL Server

 

DatasourceNameAndSQLInstance

Database Connection Detail

 

DatabaseConnectionSettings

Quest Benchmark Factory

 

Script

 

Introduction

Here is a table that shows our Benchmark Factory (BF) Script:

 

Scenario Parameter  Value
Transaction 1
 SQL exec AdventureWorks2014.dbo.usp_PersonFetchFilteredOnName_1  ?,?
 Param1=@Firstname  $BFFileArray(“C:\sqlserver\data\person.txt”,SEQUENTIAL,1)
 Param2=@lastname  $BFFileArray(“C:\sqlserver\data\person.txt”,SEQUENTIAL,2)
Transaction 2
 SQL exec AdventureWorks2014.dbo.usp_PersonFetchFilteredOnName_2  ?,?
 Param1=@Firstname  $BFFileArray(“C:\sqlserver\data\person.txt”,SEQUENTIAL,1)
 Param2=@lastname  $BFFileArray(“C:\sqlserver\data\person.txt”,SEQUENTIAL,2)

 

 

 

Transaction Mix

Here is our Transaction Mix

 

EditJob

 

Transaction SQL

StoredProcedure-SQL

 

Transaction Bind Parameters

 

StoredProcedure-BindParameters

 

 

 

 

User-load

 

Here is what our User-load looks like.

We will start with a single user, and move on to 5, 10, 15, and 20 users.

 

userload

 

 

Agent

 

Before

Here is what the Agent Screen looks like initially.

 

Agent-Before

 

 

After

 

Agent-After

 

 

The change between the Before and After is that we checked our computer name to indicate it is part of our test.

 

Warning

If you do not make that test, you will see a warning that reads

 

Missing Agents To Use For Testing

 

MissingAgentsToUseForTesting

 

 

 

Results

 

Picture

Our test result is pasted below:

 

Userload 20 Results

 

Tabulated

 

Metric SP-1 SP-2
 Avg Response Time  0.014  0.018
 Avg. Transaction Time  0.014  0.018
 Executions  1771  1766
 Rows  8712  8707
 Errors  0  0

 

 

Quick Explanation

 

  • The second stored procedure is a bit slower
  • SP 1 executed 1771 times, while SP2 executed a slightly smaller 1766; so when allocated identical time scope we were able to accomplish slightly more with SP1
  • As we iterated a bit more with SP1, we returned a bit more records

 

 

SQL Sentry Plan Explorer

In all truth, though second Stored Procedure is a tad bit slower, I still could not tell why.

And, so I installed and launched Huntersville’s own SQL Sentry Plan Explorer.  See how I little know it took a young lady on Bart to tell me that Huntersville is a suburb of Charlotte, North Carolina.

 

Estimated Plan

 

EstimatedPlan

 

 

Actual Plan

 

To get the Actual Plan I entered the query.

 

 Test Query:

declare
      @Firstname nvarchar(50) 
    , @Lastname  nvarchar(50) 

select 
      @Firstname = 'Laura'
    , @Lastname  = 'Norman'

exec dbo.usp_PersonFetchFilteredOnName_1
      @Firstname = @Firstname
    , @Lastname  = @Lastname

exec dbo.usp_PersonFetchFilteredOnName_2
      @Firstname = @Firstname
    , @Lastname  = @Lastname

 

Actual Plan

Actual Plan

ActualPlan

 

 

 

Tabulated

 

Metric SP-1 SP-2
Estimated Cost 6.2% 93.8%
Duration 14 20
CPU 15 32
Reads 124 128
Writes
Estimated I/O  5.5%  94.5%
Est Rows  1  632
Actual 124 128
Writes
Estimated I/O  5.5%  94.5%
Est Rows  1  632
Actual Rows 5 5
Key Look up 1 1
Index Scan  1 1

 

 

In summary, SQL Server thinks the second query is much worse than it ended up been.

 

 

Conclusion

There are so many tools one can use to dig a bit deeper into queries.  Quest Software certainly earns its honorable role and belong in the tool-bag of SQL aficionados.

 

Microsoft – SQL Server – Profiler – Database ” cannot be opened because it is offline

Background

For some odd reason, I ended up in Microsoft SQL Server Profiler land looking at session traces.

 

Database cannot be opened

As I dug deeper, I noticed quite a few repeating entries bearing:


Database 'DBLabInMemory' cannot be opened because it is marked offline.

 

DatabaseCannotBeOpened

 

 

Diagnostic

Got me thinking where is the error coming from?

  • Another Application on my machine
  • SQL Server Agent
  • Internet Parlance

 

I tried everything:

  • Using “SQL Server Configured Manager”, disabled TCP/IP Network Protocol for the SQL Instance
  • Using Services Management Console, determined that SQL Sever Agent is not enabled to run
  • Using MS Network Monitor, captured network traffic – No 1433
  • Using Netstat.exe, captured and analyzed network traffic
  • Reviewed SQL Server Error Log – Knowing that Microsoft has done a very good job writing much more detailed connectivity errors into its errorlog

 

Nada.  Nothing lined up.

 

Hunch

 

Create a new database

Created a new database unknown to the world and no other application

create database [DBOffline];

alter database [DBOffline] set offline;

 

Monitor SQL Server Profiler

Monitor SQL Server Profiler and see if same issue occurs for this new database.

DatabaseCannotBeOpened - DB Name -  DBOffline

And, yes it does.

 

Interpretation

 

Column Interpretation
Login Name = sa sa
spid < 50 System process has spid less than 50
ClientProcessID is blank Internal Session

 

It is an internal SQL Server Session and not anything we are doing.  One of the Internal processes is trying to perform ‘housekeeping’ and it is not checking the status of the DB, before trying to access\open it.

 

Summary

It is my humble opinion that SQL Server Internal processes should not surface errors caused by an Administrators’s intentional act of having a database offline.

 

 

James Taylor

Prelude

Ever since Usher we have all been confessing.  So let me join in.

 

J.T. Taylor

I never quite liked James Taylor.  I think the reason is that he was James Taylor before “Kool and The Gang’s” J.T. Taylor.  I really like Kool and Gang and wanted it’s front man to have that name.

 

James Taylor

But then I like Indie.Arie and loved her rendition of “Secret of Life”:

Secret of Life
https://www.youtube.com/watch?v=PrGfKWAT_GM

 

And, this morning heard Dixie Chick’s “Shower the People” and James and Mark Knopfler’s – “Sailing to Philadelphia”:

 

Shower The People
https://www.youtube.com/watch?v=L7wx9lTQboo

 

Mark Knopfler & James Taylor – Sailing to Philadelphia
https://www.youtube.com/watch?v=RHXhc5FLbs0

 

And, yes you read that right the same Mark Knopfler of Dire Strait’s fame.

There are some people that make it hard to root against them, James Taylor is one of them.

A quick read of the links that are noted in the Reference section talks about the healing grace of family, friends, and music.

In public, I am happy to oblige James Taylor and allow him his name.

 

References

James Taylor

 

Jeremiah Dixon

 

 

VLC on CentOS – Installation

Prelude

Time was one would have to search around to find Video and Audio codec files to play videos on a personal computer.  But, like Mase and Brandy “I have sat on top of the World” since someone introduced me to VLC.

From that time till now, that is all I use on MS Windows, Apple OSX, and Linux.

 

Background

Googled for tested paths towards installing VLC on CentOS.  The links that came up are:

The instructions basically states that we should avail the EPEL repository along with the RPMForge repository.

 

Repository – EPEL

The EPEL repository contains prerequisite files.

# EPEL6-FAQ
# http://fedoraproject.org/wiki/EPEL6-FAQ
# EPEL6 is an add on repository for RHEL and it's variants. It contains packages that
# are not shipped
sudo yum localinstall --nogpgcheck http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

# epel-release-6-8.noarch.rpm
sudo rpm -Uvh http://mirrors.kernel.org/fedora-epel/6/i386/epel-release-6-8.noarch.rpm

 

Repository – RPMForge

The RPMForge repository contains the VLC RPM.

We will prepare our system for RPMForge installs by doing the following:

  • Install the repository GPG Key
  • Download the rmpg-release package
  • Verify the downloaded package
  • Install the package
  • Review the installed package

 

Based on the instructions available @ CentOs.org – Additional Resources >> Repositories >> RPMForge (  http://wiki.centos.org/AdditionalResources/Repositories/RPMForge ), here is a quick script that we used.

 

# Install RPMForge
# http://wiki.centos.org/AdditionalResources/Repositories/RPMForge

#Install DAG's GPG key
sudo rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt

#Download the package (x64)
sudo wget -O "rpmforge-release-0.5.3-1.el6.rf.i686.rpm"  "http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm"

#Download the package (x32)
sudo wget -O "rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm" "http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm"

#Verify the package you have downloaded
rpm -K rpmforge-release-0.5.3-1.el6.rf.*.rpm

#Install the package
sudo rpm -i rpmforge-release-0.5.3-1.el6.rf.*.rpm

#Review Package
sudo rpm -qa | grep -i rpmforge

 

Ensure VLC RPM Package Availability

Using “yum info“, let us make sure that everything is in place for a good install.

 

Sample :

sudo yum info vlc


Output :

YumInfoVLC

 

 

Install VLC

 

Install VLC via rpm.

Sample :

sudo yum install vlc

 

Output:

InstallVLC

 

Use VLC

Once installed, one can initiate the app from the terminal mode by issuing VLC.

Or via the desktop menu – Sounds & Video \ “VLC Media Player”.

 

 

Error

I experienced a couple of problems preparing the repositories. I was able to scale them through others well lighted path.

I have documented those steps below:

 

Error: Cannot find a valid baseurl for repo: rpmfusion-free

Tried:

sudo yum localinstall –nogpgcheck http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

and

sudo yum localinstall –nogpgcheck http://mirrors.mediatemple.net/remi/enterprise/remi-release-6.rpm

 

But, got the same error:

Error: Cannot find a valid baseurl for repo: rpmfusion-free

 

Solution Guide

How to fix rpmfusion-(non)free repo error in CentOS 6.4
http://www.aliencoders.com/content/how-fix-rpmfusion-nonfree-repo-error-centos-64

 

The steps are:

  • Identify the Repository that rpmfusion is using
  • Remove Fedora RPM Fusion files
  • Install Prerequisite (EPEL 6)

 

Which Repo is rpmfusion* using?

Query active repositories by issuing “yum repolist enabled” request:

Command: 
yum repolist enabled | grep -i rpmfusion

Output:

listRepos for rpmFusion

We can see that rpmFusion is using the one for Fedora 6.


Remove Fedora Files

Remove installed rpmfusion repositories

#RPM Fusion for Fedora 6 - Free
sudo rpm -e rpmfusion-free-release

#RPM Fusion for Fedora 6 - Free - Updates
sudo rpm -e rpmfusion-free-updates-release   

 

 

Identify Redhat CentOS ( EL ) Files

Identify the files that we need:

Visit http://download1.rpmfusion.org/free/ and be sure to identify the URL to the files that we need for EL (Enterprise Linux ).

 

RPMFusion--Free--Folder

 

Install CentOS Files

Here is the script that we used for installing the RPMFusion files:

 

# EPEL6-FAQ
# http://fedoraproject.org/wiki/EPEL6-FAQ
# EPEL6 is an add on repository for RHEL and it's variants. It contains packages RHEL.
# yum local install
sudo yum localinstall --nogpgcheck http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

# epel-release-6-8.noarch.rpm
sudo rpm -Uvh http://mirrors.kernel.org/fedora-epel/6/i386/epel-release-6-8.noarch.rpm

# Install RPMFusion - v6 - free - works on 32/64 bit
sudo yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/el/updates/6/i386/rpmfusion-free-release-6-1.noarch.rpm 

# Install RPMFusion - v6 - nonfree - works on 32/64 bit
sudo yum localinstall --nogpgcheck http://download1.rpmfusion.org/nonfree/el/updates/6/i386/rpmfusion-nonfree-release-6-1.noarch.rpm

   

 

 

Error: ERROR 22 – “The requested URL returned error: 403 Forbidden”

 

Tried:

sudo yum localinstall –nogpgcheck http://download1.rpmfusion.org/free/el/updates/6/i386/rpmfusion-free-release-6-1.noarch.rpm
But, got the error:

http://centos.alt.ru/repository/centos/6/i386/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 – “The requested URL returned error: 403 Forbidden”

Trying other mirror.

Error: Cannot retrieve repository metadata (repomd.xml) for repository: CentALT. Please verify its path and try again

 

Validate Problem

Review the current contents of the /etc/yum.repos.d/centalt.repo file.

 

Command:

cat /etc/yum.repos.d/centalt.repo

 

Output:

centalt-repo

 

 

Solution Guide

Here is the link we will follow to hopefully repair the problem.

repository metadata (repomd.xml) for repository: mratwork-centalt
http://unix.stackexchange.com/questions/132674/repository-metadata-repomd-xml-for-repository-mratwork-centalt

which states to change from a specific URL to a mirrored one.

In essence we are changing the baseurl from http://centos.alt.ru/repository/centos/6/$basearch/ to http://mirror.sysadminguide.net/centalt/repository/centos/6/$basearch/.

 

Example:

 

# mkdir /etc/yum.repos.d/deprecated/20140823
sudo mkdir -p /etc/yum.repos.d/deprecated/20140823

#backup file
sudo cp /etc/yum.repos.d/centalt.repo /etc/yum.repos.d/deprecated/20140823

#Change baseurl from old to new
#baseurl.new=http://centos.alt.ru/repository/centos/6/$basearch/ 
#baseurl.new=http://mirror.sysadminguide.net/centalt/repository/centos/6/$basearch/ 
sudo sed -i 's/centos.alt.ru/mirror.sysadminguide.net\/centalt/g' /etc/yum.repos.d/centalt.repo

 

References

References – Linux Installation Tools

References – Tool – YUM

 

References – Tool – RPM

 

References – Tool – Generic

 

References – Repository

References – Repository – epel

 

References – RPMForge

 

References – Linux Commands

 

References – Linux Commands – sed

 

References – VLC – Installation

 

References – VLC – Installation – Q&A

 

 

References – Repository – Installation – Errors

 

References – Error – Repository Metadata (respond.xml) for repository – CentAlt

 

References – Error – Fix rpmfusion

 

Microsoft – Internet Information Server (IIS) – Include Files

Preclude

Here is a follow-up post to an earlier one titled “Microsoft – Internet Information Server – Error – An error occurred on the server when processing the URL. Please contact the system administrator”  ( http://danieladeniji.wordpress.com/2014/08/22/microsoft-internet-information-server-error-an-error-occurred-on-the-server-when-processing-the-url-please-contact-the-system-administrator/ )

 

Error Message

Error

Th error message read:

Text:

An error occurred on the server when processing the URL. Please contact the system administrator.

Image:

An error occurred on the server when processing the URL

 

Failed Request Tracing Rules

Here is the important data we uncovered through “Failed Request Tracing Rules”.

 

IncludeFileNotFound

 

 

 

Source Code

 

We can resolve the problem by replacing “include virtual” with “include file”.

 

header.inc

Here is our included file.

 

<%
	
	Const CompanyName = "Dell"
	Const VersionNumber = "v 1"
	
%>

 

IncludeVirtual.asp

 

Here is the Source Code that unsuccessfully attempts to incorporate the included file using “include virtual

 

<!-- #include virtual ="/customize/header.inc" -->

<%

	Response.Write "Hello - My name is Sam"
	
%>

 

IncludeFile.asp

 

Here is the Source Code that successfully incorporates the included file using “include file“.

 

<!-- #include file = "customize/header.inc" -->

<%

	Response.Write "Company Name:  " + CompanyName + "</BR>"
	
%>	
Version #: <%= VersionNumber %>

 

 

Top Level Web Site

 

We can also address the problem by making our web site a top level web site.

And, so we create the site as a top level web site.

In the image below that site is known as LabVDIR.

WebSites

 

Site Bindings

Once we create a new top level website, we will likely have conflicts with our existing web site.

To address let us change the new site’s bindings.

To do so, please follow the following sequence:

  • Select the web site
  • Right click on your selection and from the drop-down menu select “Edit Bindings”

 

EditSiteBindings

 

 

As we will like to keep using the default HTTP port of 80, we will avoid conflicts by invoking a unique “Host name“.

The usual path is that one chooses an host name and then create corresponding aliases name using DNS or host file entries.

But, we will go with the new novel thoughts that have public DNS domain names that point to localhost.

The public DNS name that came by via Goggling is localtest.me.  Please visit http://readme.localtest.me/ and read more.

Here is where we arrive:

 

 

Summary

 

Include File” works, but it is a bit restrictive as one has to maintain strict folder structures.

Top Level Web Site” works, as well.  But, keep in mind that you are essentially creating a distinct web site and duplicating some configuration changes.

ASP.Net uses web.config files and so hopefully some of the configurations will carry over.

 

 

References

 

References – LocalHost

Microsoft – Internet Information Server – Error – An error occurred on the server when processing the URL. Please contact the system administrator.

Background

Playing around with a Vendor’s web site and found an unhelpful error.

 

Error Message


Error Message

An error occurred on the server when processing the URL. Please contact the system 
administrator.

If you are the system administrator please click here to find out more about this 
error.


Error Image

defaultCustomized-AnErrorOccurred


Create Lab Web Site

 

Let us go create a small website and see if we can reach same error, troubleshoot and re-mediate it.

 

Create Web Application

 

Let us create a new Application.  We will use the instructions at:

Create a Web Application (IIS 7)

http://technet.microsoft.com/en-us/library/cc772042(v=ws.10).aspx

 AddApplication

 

 

 

Create Virtual Directory

 

Let us create a new Application.  We will use the instructions at:

Create a Virtual Directory (IIS 7)

http://technet.microsoft.com/en-us/library/cc771804(v=ws.10).aspx

 

Add Virtual Directory

Here is what we we did:

  • Select the web site
  • Right click on your selection and from the drop down menu, select “Add Virtual Directory”
  • In the “Add Virtual Directory” window, enter the following information
    • Alias :- customize
    • Physical path :- E:\DanielAdeniji\website\Lab\LabVDIR\customize

 

 

AddVirtualDirectory

 

List Virtual Directories

  • Select the web site
  • Access the Actions pane
  • Click on “Access Virtual Directories”

 

VirtualDirectoryList

 

 

Source Code

Let us create a couple of Classic ASP Files:

 

default.asp

A simple hello world ASP Page.

<%

	Response.Write "Hello - My name is Sam"
	
%>

 

 

defaultCustomized.asp

A bit more complex ASP Page that includes an “header” file.

<!-- #include virtual ="/customize/header.inc" -->

<%

	Response.Write "Hello - My name is Sam"
	
%>

 

 

customize\header.inc

Here is the header file.

Const CompanyName = "Sallie Mae"

 

 

Test

default.asp

default-asp

 

 

defaultCustomized.asp

defaultCustomized-asp

 

 

Trouble-shooting

 

Let us use Failed Request Tracing Rules to attempt to trouble shoot.

 

Failed Request Tracing Rules

 

Configuration

Launch the Failed Request Tracing Rules configuring by accessing our Web Application, switching to the “Features View”, and selecting the “Failed Request Tracing Rules” icon.

 

ConfigurationAccess

 

Specify Content To Trace

In the “Specify Content to Trace” window, for completeness, let us choose “All Content (*)”

SpecfifyContentToTrace

 

Define Trace Conditions

In the “Define Trace Conditions” window, for fullness, let us enter 100-999 as our “Status code(s)”

DefineTraceConditions
Specify Trace Providers

In the “Define Trace Provider” window, we will choose all Providers “ASP”/”ASPNET” / “ISAPI Extension”, “WWW Server”.

SelectTraceProviders

 

Alerts

We will still notice an Alert window that states “Failed request tracing is not enable for this website”:

FailedRequestTracingIsNotEnabledForThisWebsite

To address, please do the following:

  • Access the top level Web Site
  • In the Access panel, in the Configure sub panel, access the Failed Request option

 

Please ensure that the “Enable” choice is made and hopefully choose a non-system folder with plenty of room.

EditWebSiteFailedRequstTracingSettings

 

 

Result

Once fully configured, we will launch our browser and retry.  Got same error, but now we also have generated diagnostic files.

 

IncludeFileNotFound

 

The error states that IIS is looking for our included file underneath the “E:\WebSiteEmpty\Customize\headerinc” folder.

It is in effect looking under our main web site and not underneath our web application.

There are a couple of ways to address this.  They include making our web site a top level web site and not just a web application.

 

 

Reading

Life is good as everywhere I need to be is still Bart-able and I just finished reading a sincere love story.  It is Barbara Delinsky’s “The Carpenter’s Lady“.

References

References – Microsoft – IIS

Microsoft – Management Studio – Data Grid – Entering Special Characters

Background

As much as I love working with Management Studio there are still areas that perplex me.

 

Data Entry

Here I am trying to correct some rows that has “bad data” in them, but Data-grid is spitting back at me.

For example, the data reads “Café Lower Level Eest” & “Café Lower Level Wast” , but Caf&#233 should have read Café; #233 is the ASCII Code for é

specialChars

 

 

Correction

SQL Update Statements

The easiest path will be to write a simple, straight forward SQL Update statements, but I do not feel like it.

 

ASCII Code

In Data Entry pane, I tried many a times to correct by entering ALT-233.  But, no go.

BTW, why 232?

Well, if one accesses the ASCII table @ ASCII-Code,com ( http://www.ascii-code.com/ ), one will see that é maps to 232.

 

ASCII Table

 

 

Character Map

  • Launched Accessories \ System Tools \ Character Map
  • Chose the right font – not that it matters in this case
  • Select the Character you want
  • Access the Select button
  • Access the Copy button
  • Return to Management Studio and paste your selection

 

Latin Small Letter E with Acute

SmallLetterEWithAcute

 

Entering data in another tool and copying and pasting works.

 

References

 

Keypad

 

Management Studio Tips