Monday, February 21, 2005

Proposion N2N Review

For my current employer Vitronics Soltec, I had to build a coupling between Lotus Notes and SQL Server.

Proposion N2N is an excellent library to achieve this. Basically, it's a (partial) implementation of an ADO.NET DataProvider for Lotus Notes. It has many advantages (and way less bugs) over the Notes ODBC Connector, as it can even query for attachments, retrieve rich textfields and retrieve field values not included in a view. You can even dynamically execute Lotus Notes Formula's from the SQL query

The SQL isn't close to any SQL standard, but the resemblance is good enough. However, it is very well documented, and examples for almost every possible usage is provided, so learning is very easy, though knowledge of both SQL and Lotus Notes will help a lot

The current version (version 2.11) still contains several bugs, of wich the most annoying is that the IDbDataAdapter methods aren't implemented correctly, wich you can call the methods directly (NsfDataAdapter.Fill(myDataset), however you can't call them through the interface (IDbDataAdapter.Fill(myDataSet)) as it raises a NotSupportedException.

.NET Application Blocks

The Proposion variant of some of the Microsoft Application Blocks are freely provided: the Exception Management Application Block, and the Data Access Application Block.

Proposion N2N Application Blocks

I needed to use the Data Access Application Block, however the FillDataSet caused an endless recursion, so I had to modify the examples. The improved Visual Studio project is available here:

Proposion N2N Data Access Application Block

I've had good results with Proposion N2N, however there are some issues that would prevent me from deploying it with clients:

Potential Adminstration problems

The Proposion N2N Library comes with a strict Activation, and once installed, it isn't possible to install it again. To move the license to another computer, you would have to mail to Proposion to transfer the license. So far I've had very good responses, but I don't want to know what I'd have to do when their website would go down, or the small company would decide to start doing something else.

High priced

The Proposion N2N is quite expensive to deploy, for my development I needed to install a development it on my laptop, and later on another machine to maintain the synchronization between the databases, I'd have to buy another license, or transfer the license from my laptop to another machine, wich would mean I can't develop anymore using the library, and incorporating the problems mentioned before. With a support contract included ($495/y), a developer license ($795) and a processor license ($1395), it would mean I have to pay about $2600 for a ADO.NET driver that can only be used on 1 machine.

conclusion

To us it's well worth the money, because it save's a lot of Domino API programming, but the Activation policy and maintenance contract will definately have me waiting as long as possible before buying a license for the server.

Labels: ,

Saturday, February 05, 2005

XSD2DB: Generate a SQL Server database from a XML schema (XSD)

XSD2DB

I've become a developer with XSD2DB, a command line tool written in C#, that will read a Microsoft ADO.NET compatible DataSet Schema File (XSD) and generate a database from it.

To make it a little more accessible, I've created the descriptive HTML website for it, and planning on creating new releases.

Now all we need is people that want to use it and give us some comments on it...

Thursday, February 03, 2005

Sql Server (MSSQL) msde MSDE 2000 Installation Fails

After installing Visual Studio 2005 my SQL Server 2000 Developer Edition stopped working, giving an error from Enterprise Manager: Unable to connect to server. Reason: SSL security error. ConnectionOpen (SECDoClientHandShake())... Microsoft has this technote about this: Thinking it over, all of these references apply to me:

302409 FIX: Unable to Connect to SQL Server 2000 When Certificate Authority Name Is the Same As the Host Name of the Windows 2000 Computer

275307 BUG: Installation of SQL Server 2000 Desktop Engine Fails on Computers That Already Have SQL Server 7.0 Tools Installed

299351 BUG: MSDE Installation Fails on Systems That Have SQL Server 2000 Service Pack 1 or 2 Installed Too late for me, because I already uninstalled SQL Server 2005 and 2000 beta and everything related. Uninstall SQL Server 2000 didn't work, because somehow the application doesn't show up in the add/remove programs. I can't install MSDE anymore because it gives these errors: "Setup failed to configure the server. Refer to the server error logs and setup error logs for more information." After some searching some people suggested the cause might existing datafiles, but after removing all datafiles, it still doesn't work. Installing with another instancename doesn't help. either These are the MSDE Setup parameters:

  • SAPWD="[password]" default password for sa user
  • /l*v [logfile]log the complete installation
  • SECURITYMODE=SQL install with mixed mode authentication
  • DISABLENETWORKPROTOCOLS=0 enable access from other computers
  • DATADIR ="[data folder]" specify a dir other than default
  • INSTANCENAME="instancename"
  • BLANKSAPWD=1 Install with blank SA Password. SAPWD overrides this.
  • ALLOWXDBCHAINING=1 Enables cross-database ownership chaining.
  • UPGRADEPWD="" Use if your upgrading to SP3
  • /i
  • /settings You can specify all MSDE parameters using an ini file in this format: [options] DATADIR ="Data_Folder" INSTANCENAME="Instance_Name"

Examining the logs I came to this problem:

Starting custom action ConfigServerExecuting "C:\Program Files\Microsoft SQL Server\80\Tools\Binn\cnfgsvr.exe -V 1 -M 1 -U sa -I "MSSQLSERVER" -Q "SQL_Latin1_General_CP1_CI_AS""MSI (c) (70:54)

[13:55:09:921]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg Setup failed to configure the server. Refer to the server error logs and setup error logs for more information.MSI (s) (D8!24)

[13:55:42:031]: Product: Microsoft SQL Server Desktop Engine -- Setup failed to configure the server. Refer to the server error logs and setup error logs for more information. Action ended 13:55:42: InstallFinalize. Return value 3.

here's someone with the same problem: http://www.masterado.net/home/ng/forum.sqlserver.msde/post13125079.aspx

Here's the microsoft technote on the subject http://support.microsoft.com/default.aspx?scid=kb;en-us;816499&Product=sql2k

Nothing is working, so now I'll try this: HOW TO: Manually Remove a Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) Instance

The last post here by the way says that if you disable the SECURITYMODE=SQL, it might work as well. http://community.installshield.com/archive/index.php?t-124746.html

No, it doesn't.

Installing SQL Server 2000 Developer Edition gives me the same problems, they're all related to the (SECDoClientHandShake())... error.

I'm trying to remove the certificate authority installed with selfssl.exe, see another post: Setting up SSL in Windows 2003 & XP (within 10 minutes)

Now I'm trying to remove it using certutil, as described here. certutil.exe is available for Windows XP in the Windows Server 2003 Administration Tools Pack

using this command certutil.exe -delkey "SELFSSL"

I was able to delete the conflicting certificate authority keys, and tried reinstall (after restarting for the zillionth time ofcourse)

Great! it works!

Apply SQL Server Service Pack 3, reinstall the SelfSSL Certificate, and everything should be all right...

conclusion

Solution in a nutshell: http://www.sqlmonster.com/Uwe/Forum.aspx/sql-server-connect/1906/SSL-Security-Error-in-WinXP-SP2

Wich links to PRB: SQL Server 2000 Installation or Local Connections Fail with "SSL Security error :ConnectionOpen (SECDoClientHandshake())" Error Message

Labels: