Showing posts with label Problems. Show all posts
Showing posts with label Problems. Show all posts

Tuesday, January 26, 2010

Do not use Windows Backup!

At the time we speak this application is FUBAR, or in other words "fucked up beyond all repair".

Why?

  • I never saw a completely successful backup, neither on my Vista Box nor on my Windows 7 box.
  • You only waste hours or days running backups that are never successful, scanning your disk with chkdsk of sfc, searching the net, searching the registry, screwing up your systems registry, or formatting your disk.
  • The errors are just cryptic hexadecimal numbers like 0x80070057, 0x80070570 without any reference to the cause of the error.

When I first started Windows Backup on Windows 7 I kept getting error 0x800700002 which quite obviously means, that a registry key named ProfileImagePath below HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList was pointing to a directory %systemroot%\system32\config\systemprofile that did not exist on my machine. In this case I could convince Windows Backup to go on after I manually created this directory for Windows Backup.
That was it? No. After that I got some obvious 0x80070570 followed of course by a 0x8007000D and on my Vista Box all I naturally get is 0x80070079. In the meantime I ran hours of chkdsk /r or sfc /scannow. In the end I assumed that maybe my backup hard drive had some kind of problem and reformatted it.

What I did not know at this point was that this meant the end for my "Windows Backup" on my machine. When I now start Windows Backup all I get is 0x80070057:



It took Microsoft half a year of investigation to find out that this error in fact is related to some problems they have with non-US locale settings.

The closest I ever got was a single unreproducible backup that ended "successfully with errors". But when I checked the log I found this error message:

Error while backing up "C:\Windows\System32\config\systemprofile\myFolder". The system cannot find the file specified (0x80070002))

The surprising part is, that this folder never existed and never will exist on my system. This raises the question, why a *backup* program starts seeing ghost files, which of course it later fails to find??

It also raises the question, what specifications, development and quality assurance process they have at Microsoft, that allows them to ship *twice* a solution that throws hexadecimal errors messages in a users face? From a software engineering perspective this is bare amateur level. If Microsoft wants to know, why the people love Apple, then here you got the answer. They would not ship crap like this once.

The reason could be simple. Because it feels like the core of Windows Backup is some component Microsoft bought and then tried to cram somehow into Windows. I would not wonder if there is just some sort of (former) third party backup.exe running under the hood.

As we speak of backup, means the security of your data, using Windows Backup you must ask yourself the following questions:

Do you really want to trust your data to a backup program
  • that is incapable of giving a useful error message?
  • that needs folders to be manually created to work at all?
  • that tries to backup files that do not exist?
  • that is dependent on US locale settings?
  • that even after the Vista desaster, Microsoft itself was unable to fix in the 3 years time until Windows 7?
So the conclusion is simple:

If you love your data,
do not use Windows Backup!

Friday, January 8, 2010

How to install SQLXML 3 on IIS 7 (Windows Server 2008 64 Bit)

The release notes of SQLXML 4.1 state, that if you need SQLXML with ISAPI (Internet Information Server) support, the latest version for you is SQLXML 3 SP3.

If you try to install it on a Windows Server 2008 R2 64Bit you might see 2 issues with that:

After installing you click "Start - SQLXML 3.0 - Configure IIS Support"

If you get the error

"An error occurred connecting to 'server'. This server does not exist or is unavailable."

apply the following solution

Click "Start - Administrative Tools - Server Manager"

in the Server Manager go to

"Roles - Webserver (IIS)"

Go to section "Role Services"

verify that all of "IIS 6 Management Compatibilty" packages are installed.

After I installed the IIS 6 compatibility packages the SQLXML 3 snapin starts and connects just fine.

The second error can occur if you attempt to call one of the xml templates and IIS just gives a 500 error 0x800700c1. Permissions and all appear correct. The IIS Virtual Direcotry Manager for SQLXML 3.0 throws an error when I attempt to Restart Application DLL "Error occurred unloading the application".

Then apply the following solution:

1. Open IIS Manager, Select Application Pools.

2. Under Actions pane, Select 'Set Application Pool Defaults'.

3. Set 'Enable 32-bit Applications' to 'True'. (Solution found here)

Wednesday, February 18, 2009

Screw Silverlight

The thought behind evaluating Silverlight 2 was to check whether Silverlight is suited to build rich office applications, that can be handled just like common GUI applications but just in IE. Another central question was to verify that I can use my Xaml controls from WPF applications seamlessly in Silverlight 2.
So I am really not interested in fancy design, multimedia and other special effects that seems to be the general target audience for Silverlight 2.

First thing you have to do when you try to evaluate Silverlight 2 with Visual Studio you have to download a whole bunch off applications. Most important it seemed to install the Silverlight Tools for Visual Studio 2008 SP1 .

After downloading some 70 megs of data the the first frustration is right around the corner, if you have to use an authenticating proxy to get Internet access.

Though you have to download some 70 megs the package needs to download more data. And of course there is nowhere a full package. Even more unfortunate it seems that until today Microsoft has never heard anything of a thing called authenticating proxy and consequently the install fails. Sigh.
Call it a act of despair and interest I programmed my own little authenticating proxy bridge that acts as proxy and forwards each request to the real proxy plus adding the required authentication information. So finally I was able to install the tools.

Ok, so I created a new Silverlight project, opened the toolbox, took a button and dropped it onto the designer and...

the designer won't let me do that.

Although we have a fully fledged Xaml designer in WPF, there is absolutely no way to add a control in the designer in Silverlight. You are supposed to drag the items out of the toolbox into the Xaml text editor where it does nothing but adding the following code

<
Button></Button>


Wow, what an awesome and intuitive feature for my 1500 USD Visual Studio.

Ok, lets hand code my button. After setting the button properties width and height you would like some text on your button.

So you code

<Button Width="100" Height="20">Press me</Button>

This is perfect Xaml, even Expression Blend will code it that way, it works fine for WPF, but .....

that is not good enough for Silverlight.

"Button does not support text content" is the error. It turns out that if you want to get it to work with Silverlight you have to code it

<Button Width="100" Height="20" Content="Press me"/>

So let me get this straight.

  • You have to download at least 4 packages to start with silverlight.
  • Even then these packages need to download more data and neither there are full packages available nor does the setup support simple things like authenticating proxies.
    No Internet access means no Silverlight.
  • The nice Xaml designer shipped with WPF had been crippled for Silverlight to be absolutely useless.
  • The Xaml for Silverlight is incompatible with other Xaml.
  • If you do not want to hand code every GUI element and if even if you have the 1500 USD Team Edition of Visual Studio 2008 you need to buy Expression Blend 2 for just another 699 USD.

Ok guys,

this is where my evaluation comes to an abrupt end after just 60 minutes and tell you what....

Screw Silverlight 2.

Thursday, September 4, 2008

.Net and Oracle 10. Welcome to DLL Hell

Until Oracle 8 or 9 you installed the client, chose whether you want to use Oracle Driver (Oracle.DataAccess.dll) or the Microsoft Driver (System.Data.OracleClient) and you had a happy connection to your database.

Installing a OracleClient and connecting to a Oracle Database with was until a day in August 2008 a Non-Event. 15 minutes and off you go.

Now we upgraded our database backend to Oracle 10 as anything else is running out of maintenance.

"Ok", I thought. "Business as usual". "Install the latest client, turn on, works".

What I didn't know was that I was standing on the doorstep to Oracle DLL Hell.

First everything looked just smooth. After upgrading the client from Oracle 8 to 10, the connection with System.Data.OracleClient to our Production environment on Oracle 9 was just fine. No problems here.

The problems started when I first tried to connect with an Oracle 10 the same database only on Oracle 10.

4 out of five queries worked fine but then

"ORA-01405: fetched column value is NULL" System.Data.OracleClient

The error message means basically that I tried to fetch a null value into a PL-SQL variable.

Only Problem here. I use a common SQL here. So no fetch anywhere.

We now invested much much time in solving this problem, upgraded the server to latest patchlevel and lots of different things. Nothing helped. So the only way to solve this problem was to switch to the native Oracle .NET driver.

After switching to the native Oracle Driver (Oracle.DataAccess.dll) the problem was solved. Only problem that remained now, was that my version of the client 9 was not installed on the server and hence I would not be able to install the software on the server with that dll.

Ok, I thought. Lets get rid of my Oracle 9 and install a Oracle 10.2.0.3 client. The same client as installed on the server.

Sooner said than done. I chose "Application Developer" option and off I went.

But when I tried to add the reference to the Oracle .Net driver (Oracle.DataAccess.dll) using the "Add reference" dialog in Visual Studio .Net 2008 I found.... nothing. Obviously .Net Application Development is no longer in focus when installing the Oracle Client, but I knew that Oracle has special packages for .Net.

Installing Oracle Data Provider for .Net (10g).

Why the fuck the installer recommends to create a new Oracle Home instead of installing it where it belongs (the exsting Oracle Home of my 10.2.0.3 client directory)?

Very important: At the point where you can choose the target directory, make sure you select the existing client directory, by selecting the proper Oracle Home Name.

I cost me 1.5 days to find out, that by default, the installer creates a new Home Directory, where it simply doesn't do anything but to throw exceptions.

After installing the ODAC correctly you find it in your "Add reference" Dialog unter .NET components under "Oracle.DataAccess".

5 Cents on .NET and Oracle 10

The story is longer but here are my 5 cents:

  • Make sure the Oracle client version on your development and production machine are the same
  • To get a working .NET driver, you need to additionally install the Oracle Data Access Components for .NET which can be found here .
  • Make sure, you select the proper version of the ODAC for your client.
  • When the bloody Oracle installer asks you for the directory make sure you select the existing directory of your client.
Dear guys at Oracle. In the last 2 days I really learned to hate your "Oracle Universal Installer". The setups are full of flaws, misleading informations, bugs, crc errors, bad recommendations or unnecessary components.
And why the hell, the Developer Oracle Client Package does not include a .Net Driver?
By today I can call myself Oracle Client Setup Expert (OCSE), for a thing that should be what it is: a non-event