Zum Hauptinhalt wechseln

Softgrider - Die Infoseite für Microsoft APP-V

Suche starten
Homepage
Wiki
FAQ
Bücher
  
Softgrider - Die Infoseite für Microsoft APP-V > Softgrid FAQ > VAS-Installation schlägt in Verbindung mit deutschen SQL-Servern fehl  

Softgrid FAQ: VAS-Installation schlägt in Verbindung mit deutschen SQL-Servern fehl

Impressum
Copyright
VersionsverlaufVersionsverlauf

Frage

VAS-Installation schlägt in Verbindung mit deutschen SQL-Servern fehl 

FAQ-Kategorie

Fehler 

Antwort

DAS PROBLEM
Wer sich in der Vergangenheit mit SoftGrid auf deutschen Betriebssystemen und vor allem deutschen SQL-Servern beschäftigt hat, ist mit Sicherheit schon auf massive Probleme bei der VAS-Installation gestoßen.
 
In den SoftGrid Versionen 4.1 (build 4.1.0.56) und 4.1 SP1 (build 4.1.1.302) bringt die Setuproutine diesen Fehler:
 
"The installation program could not create the package object in the configuration data store. Plese see the installation log file for mor information."
 
Bestätigt man diese Meldung mit [OK], so wird ein Rollback durchgeführt; der SoftGrid Virtual Application Server läßt sich partout nicht installieren.
Schaut man in das VAS-Installationslog (%TEMP%\SoftGrid-server-setup.txt), so findet man dort u.a. diese Meldung (Error 8114):
 
"... Fehler beim Konvertieren von Datentyp varchar in datetime."
 
Diese Meldung wird nach Aufrufen der Stored Procedure `sp_SFTaddpackage` im LOG-File ausgegeben -- diese Routine ist u.a. für das Anlegen des SoftGrid Default Application Package's in der Datenbank verantwortlich.
 
Spricht man den SoftGrid-Support auf dieses Problem an, so kommt früher oder später die Aussage, daß SoftGrid nur in einem sog. "All English Environment" unterstützt wird, d.h. es werden nur englische Betriebssysteme und SQL-Serverversionen supportet. Alternativ wird auch gerne darauf verwiesen, daß ein "Multi Language Support" nicht vor Erscheinen der SoftGrid-Version 4.5 realisiert wird.
 
Auf der anderen Seite dann hört man gelgentlich von SoftGrid-KollegInnen, die eine VAS-Installation auf deutschen Betriebssystemen und mit deutschen SQL-Servern anstandslos "über die Bühne bringen" ...
 
Da es hier in Deutschland Umgebungen gibt, die einen Einsatz von englischen Betriebssystemen und / oder (SQL-)Serverversionen nicht ermöglichen, der Kunde aber trotzdem SoftGrid einsetzen will, habe ich die Ärmel hochgekrempelt und mich in den vergangenen Tagen diesem "Phänomen" angenommen.
 
DIE ANALYSE
Schaut man sich nach so einer fehlgeschlagenen Installation am "betroffenen" SQL-Server die erstellte Datenbank, sowie das angelegte SQL-Benutzerkonto an, so wird man folgendes feststellen:
  1. Die Datenbank (default: SOFTRICITY) wurde ordnungsgemäß erstellt, ebenso alle Tabellen innerhalb dieser DB,
  2. der Datenbankbenutzer (default: softricity), den die SoftGridprodukte zur Kommunikation mit der DB nutzen, ist korrekt angelegt und hat auch entsprechende Rechte auf die SOFTRICITY-Datenbank, und
  3. sowohl die Anmeldung am SQL-Server, als auch das Nutzen der SOFTRICITY-Datenbank mit dem softricity-User (z.B. mit osql.exe) klappt einwandfrei.

Die Punkte oben lassen somit den Schluß zu, daß das Anlegen der Softricity-Datenbank und des -Benutzerkontos erfolgreich war; ebenso können fehlende bzw. nicht ausreichende SQL-Berechtigungen nicht die Ursache für den Abbruch der VAS-Installation sein.

Schauen wir uns die SQL-Setupscripte an: innerhalb der Anweisung `EXEC sp_SFTaddpackage`, die lt. Logfile diesen Fehler auslöst, werden das Installationsdatum inkl. -uhrzeit übergeben, z.B. "2007-06-20 08:48:48" für eine Installation am Morgen des 20. Juni 2007. Schaut man sich die innerhalb der VAS-Setuproutine angelegte Stored Procedure sp_SFTaddpackage an, so wird dieser Zeitstempel im Feld CreateDate der SOFTRICITY-Tabelle PACKAGE_VERSIONS hinterlegt. Das entsprechende Feld ist - korrekterweise - als Datentyp DATETIME definiert.
 
DIE URSACHE
Da die Installation sowohl mit englischen SQL-Serverversionen, als auch der von Softricity / Microsoft mitgelieferten (englischen) MSDE2000 erfolgreich verläuft, vermutet man völlig richtig, daß hier mit den Ländereinstellungen irgendetwas nicht stimmt.
 
Kleiner Exkurs: Beschäftigt man sich mit der Angaben von Zeitdaten in (T)SQL-Statements, so gibt es mehrere Möglichkeiten, einen Zeitstempel zu formatieren. Das bei der SoftGrid-Installation eingesetzte Format "2007-06-20 08:48:48" sieht für das menschliche Auge erst einmal unverdächtig aus; handelt es sich hier doch um ein anerkannt internationales Datumsformat. Dieses Zeitstempelformat allerdings ist für die Microsoft SQL-Server nicht eindeutig, weshalb diese Angaben wie folgt interpretiert werden:

2007-06-20 08:48:48 >> 06-20-2007 (MM-DD-YYYY) en-US SQL
2007-06-20 08:48:48 >> 06.20.2007 (TT.MM.JJJJ) de-DE SQL

Wie oben ersichtlich ist, interpretieren deutsche Microsoft SQL Server dieses Zeitstempelformat fehl (es gibt nunmal keinen 20. Monat im Jahr), weshalb die - IMHO leider irreführende - Fehlermeldung "Fehler beim Konvertieren von Datentyp varchar in datetime" ausgegeben wird.
 
DIE LÖSUNG?
Die richtige Lösung wäre eigentlich die, den Zeitstempel im für MS-SQL eindeutigen Format "YYYYMMDD HH:MM:SS" ohne Bindestriche anzugeben, in unserem Beispiel oben sähe dieser dann so aus: "20070620 08:48:48".
 
EIN WORKAROUND?
Ein (möglicher) Workaround ist es entweder, die VAS-Installation im Zeitraum des Monatsersten und des Monatszwölften durchzuführen (naja) oder aber vor der Installation des SoftGrid-VAS das Systemdatum der zu installierenden VAS-Maschine auf einen Zeitraum zwischen dem Monatsersten (1.) und dem Monatszwölften (12.) zu setzen - somit kann die Installation auch auf deutschen SQL-Servern zunächst erfolgreich abgeschlossen werden.
 
Der Zeitstempel zur Paketanlage erfolgt dann innerhalb der Datenbank auch tatsächlich mit vertauschten Angaben zu Tag und Monat - mann kann das sehr schön sehen, wenn man sich die Datensätze der Tabelle PACKAGE_VERSIONS anschaut. Allerdings sind Berichte in einschlägigen Foren zu finden, daß es dann Probleme beim Generieren von Reports, z.B. den Application Utilization Reports, kommt, da diese auf diverse DATETIME-Felder zugreifen. In Tests hat sich dann auch gezeigt, daß die SoftGrid Reporting Engine offensichtlich nicht mit den dann vorgefundenen Datumsangaben so gut zurecht kommt.
 
DIE BESSERE LÖSUNG
Vor Starten der VAS-Setuproutine wird hierzu am SQL-Server, der den SoftGrid Data Store hosten soll, in den Servereigenschaften die Option "Standardsprache für Benutzer" (SQL2000 unter Servereigenschaften) bzw. "Standardsprache" (SQL2005 unter Erweitert) auf "Englisch" umgestellt. Anschließend läuft die Installation ordnungsgemäß durch, das Installationsdatum und alle anderen DATETIME-Informationen werden korrekt in der Datenbank gespeichert. Ebenso werden auch die SoftGrid-Reports ordnungsgemäß erzeugt.
 

Tip

Die oben beschriebene Lösung wurde mit den SoftGrid Serverversionen 4.1 (build 4.1.0.56) und 4.1 SP1 (build 4.1.1.302), jeweils in Verbindung mit den deutschen Microsoft SQL Servern 2000 SP4 (build 8.00.2039) und 2005 SP1 (build 2005.90.2047) erfolgreich getestet werden.
 
Sowohl ältere SoftGrid Serverversionen, als auch evtl. neuere Versionen oder auch Technical Previews wurden nicht evaluiert.
 

Softgrid-Version

4.1.0.56; 4.1.1.302 

Errorblock1

 

Errorblock2

 
Genehmigungsstatus Genehmigt 
 
Anlagen
Version: 10.0 
Erstellt am 19.07.2007 20:56  von Jochen Hoffmann 
Zuletzt geändert am 24.07.2007 06:40  von Frank Fette