Problemlösung zu Timeouts und Deadlocks mit SQLBase

project-office-büro-management-zahnrad

Unser Kunde hat eine Gupta Team Developer Applikation für die Holz- und Möbelindustrie.
Seine unterschiedlichen Applikationen sind am Puls der Zeit, da sie permanent angepasst und weiterentwickelt werden.
Der Anspruch immer „up to date“ zu sein, birgt das Risiko, auf „Kinderkrankheiten“ der Betriebssysteme, Datenbanken und Entwicklungswerkzeuge zu stoßen. So wurde MD Consulting gerufen.
Ziel war es, die Anwendung zu den bestehenden Problemen der SQLBase 11.7 mit Timeouts und Deadlocks, insbesonders bei 64bit (Win7 und Win8) zu analysieren und Lösungsansätze zu eruieren.

Die Vorgehensweise waren zuerst die Analyse der SQLBase Konfiguration und die Analyse von Programmcode, der für die Deadlocks in Frage kommt.
Nach der Analyse konnten durch Anpassungen in der sql.ini und im Programmcode die richtigen Werte für InMessage-Buffer, OutMessage-Buffer und Isolation-Level gefunden werden. Gleichzeitig konnten an mehreren Programmstellen Blockademöglichkeiten durch Cursor-Commits entfernt werden.

Viele Probleme konnten erfolgreich gelöst werden. Einige Nacharbeiten mussten wir mit nach Hause nehmen. So konnten wir etwas später eine erweiterte Definition der Tracing-Dateien unter SQLBase nachliefern.

PS: Zu einem späteren Zeitpunkt trat bei einem anderen Endkunden ein ganz anderes gelagertes Problem mit der SQLBase auf. 80 User konnten nicht arbeiten bzw. flogen alle 2-3 Stunden mit Ihrer Applikation raus. Da sprang wegen Urlaubszeit bei MD Consulting der Hersteller höchst persönlich ein. Mike Vandine wurde in Australien geweckt, ini´s gingen rund um den Globus und in kürzester Zeit war das Problem behoben.
Ein Dank an Mike Vandine von Gupta Technologies von MD Consulting.
Auch der Kunde bedankte sich: “… at the moment the system works fine and everybody is happy. We had NO crash today. About 20 concurrent users working on the database.”

Client-/Server-Projekt

Consulting
2 Manntage

Softwareentwicklung

Technologie:
GUPTA SQLBase 11.7

18. Januar 2017


Erstellung eines Prüfprogramms für SEPA-Lastschriften im XML-Format für eine Gupta Team Developer Anwendung

Ein Schwein ist krank oder ein Kalb will nicht selbstständig auf die Welt kommen. Probleme, die schnellst möglichst vor Ort gelöst werden müssen. Tierärzte im Einsatz: Kaum ein Einsatz abgeschlossen ruft schon wieder der Nächste. Alle Daten müssen vor Ort auf der Weide oder im Stall abrufbar sein und natürlich müssen alle Einsätze abgerechnet werden. Damit nichts vergessen wird, am besten sofort.

Das Abrechnungsprogramm, eine Gupta Team Developer Lösung, sollte nun auf die neuen SEPA-Lastschriften umgestellt werden.
Im ersten Teil des Coachings vermittelte der Kunde die Funktionsweise der XMLLIB.APL.
Dann erstellten wir nach Vorlage der Sparkasse die nötigen Bausteine zur Erstellung der SEPA-XML-Datei.
Zum Abschluss wurde die Datei durch das Prüfprogramm der Sparkasse verifiziert und für gut befunden.
Der Kunde war mit dem Ergebnis des Coachings sehr zufrieden.

Client-/Server-Projekt

Softwareentwicklung
1 Manntag

Technologie:
GUPTA Team Developer

18. Januar 2017


Mitarbeiter krank? MD Consulting hilft gern!

datenbank-database-user-oracle-seminar-workshop-md-consulting-last-minute-schloss-security-sicherheit-datenschutz-backup-server

Wer schon mal einen Rentenbescheid in Deutschland bekommen hat, kann erahnen, welcher Berg Papier sich dahinter verbirgt.
Dieser Berg Akten muss gesichtet, eingescannt, verwaltet und archiviert werden. Eine Menge Arbeit, soll doch jeder Bundesbürger einen korrekten Bescheid bekommen und auf viele Jahre hin nachvollziehbar bleiben.
Der Neuaufbau eines Lagers zur Aktenunterbringung stand an, aber auch eine neue Verwaltungssoftware sollte erstellt werden.

So eine Akte geht zwischen vielen Abteilungen hin und her. Die Schwierigkeit hierbei ist, stets Auskunft geben zu können, wo sich welche Akte befindet. Dabei wurde auch Wert gelegt, dass die Fehlerquote bei der Aktenerfassung mittels Scanner möglichst gering gehalten wird. Dies soll durch verschiedenste Validierungen erreicht werden.
Programmiert wurden die Anwendungen mit Team Developer 6.0, deployed unter Citrix. Entwickelt wurden Programme zur Aktenübernahme, Aktenverwaltung, diverse Hintergrundprogramme für den Import und Export von Daten.
Für den Etikettendruck werden Zebra-Drucker verwendet. Für bessere Performance erfolgt der Etikettendruck mittels ZPL.
Als Scanner kommen Geräte von Motorola zum Einsatz. Es wird eine Offline Scannererfassung genutzt. Scanner erfassen, legen die Daten auf dem Scanner ab und übertragen diese erst später auf einen PC.
Die Scannerprogrammierung erfolgte mittels MCL, einem modular aufgebauten grafischen Entwicklungssystem für mobile Geräte.

In diesem Projekt fiel ein Team Developer Programmierer des Kunden krankheitsbedingt aus. So hieß es, schnell Ersatz finden, schnelle Einarbeitung in den SourceCode des Kunden, um auch tatsächlich eine Hilfe zu sein. So war MD Consulting gefragt, bringen wir doch bestes Team Developer Know-how mit.
Der Vorort-Einsatz war für ¼ Jahr geplant und wurde auf ½ Jahr verlängert – kein Problem für MD Consulting.

Client-/Server-Projekt

Softwareentwicklung
6 Mannmonate

Technologie:
GUPTA Team Developer 6.0
Oracle Datenbank

18. Januar 2017


Migrationsunterstützung einer Fat-Client-Anwendung von Team Developer 3.1 / 5.2 in eine Web-Anwendung nach Team Developer 6.1 .NET bei einem Softwarehaus in Österreich

seminar-.net-c#-c-#-c#1-c#i-laptop-meta-data-daten-beta

Eine bestehende Anwendung für das Tracking von Strafmandaten und eine entsprechende Kassensoftware, erstellt mit dem TD 3.1, soll lt. Kundenanforderung ins Web umgestellt werden. Hierbei sollten verschiedene Wege vorgestellt und betrachtet werden.
Die Anwendung enthält zahlreiche DLL-Aufrufe und ActiveX-Komponenten. Die Umstellung nach TD 5.2 wurde durch den Kunden bereits realisiert.

Inhalt des Workshops:

  • Grundlagen zur Migration nach TD 6.x Win32
  • Grundlagen zur Migration nach TD 6.x .NET
  • Grundlagen XAML – Verwendung von WPF-Controls
  • Konsumieren von .NET-Assemblies
  • Gegenüberstellung einer Web-Anwendung und einer browserbasierten Anwendung
  • Aufgrund der bestehenden Programmstruktur wäre die Umstellung auf eine Web-Anwendung zu aufwändig
  • Erstellen und Einrichten einer XBAP-Anwendung
  • Erstellen einer Liste von erforderlichen Eckdaten zur Klärung mit dem Endkunden

Folgende Probleme sind bei der Migration aufgetreten:

  • Datenbankzugriff auf SQL Server über ODBC
  • DB-Connect unter .NET funktionierte nicht, unter Win32 war es ok;
    OLEDB funktionierte, konnte aber nicht mit Subselects umgehen
  • Umstellung auf TD 6.1 .NET durchgeführt – DB Connect erfolgreich
  • Durch die Projektstruktur der umzustellenden Software war eine Migration direkt nach TD 6.1 Win32 nicht möglich, da der Compiler nicht alle enthaltenen DLL-Aufrufe umsetzen konnte. Deshalb erfolgte die Migration nach TD 6.0 Win32 und die Anwendung wurde soweit abgespeckt, dass nur die notwendigen Module enthalten waren. Test unter TD 6.0 Win32 erfolgreich
  • Die DLL-Aufrufe wurden in ein .NET-Assembly gepackt, welches eingebunden wurde
  • Probleme traten auf, wenn Member-Variablen einer Klasse als Bindvariablen verwendet wurden. Das Select-Statement wurde hier nicht korrekt ausgeführt.

Lösung brachte hier die Umstellung der Statements ohne Bindvariablen. Im TreeView-Control wird bei Verwendung der Funktion SalTreeSetSelectedItem zwar das Item selektiert, aber nicht in den sichtbaren Bereich bescrollt. Dies ist allerdings nur bei der Eigenschaft ShowRoot = NO falsch. Ist diese Eigenschaft auf Yes gesetzt, ist das Scroll-Verhalten richtig

Eine Liste von notwendigen Voraussetzungen konnte erstellt werden. Der Kunde kennt nun die Schritte zur Umstellung seiner Anwendung als XBAP-Anwendung. Bei Umstellung der Anwendung ist weitere Unterstützung vorgesehen.

Client-/Server-Projekt

Softwareentwicklung
2 Manntage

Technologie:
GUPTA Team Developer

18. Januar 2017


Migrationsunterstützung einer Team Developer 5.2 Win32-Anwendung nach Team Developer 6.1 .Net bei einem Schweizer Softwarehaus

team-developer-schweiz-softwarehaus-software-md-consulting-migration-anwendung-win-antrag-dokument

Bisher wurden verschiedene Anwendungen über Citrix den Anwendern in verschiedenen Kantonen zur Verfügung gestellt. Da dies mit erheblichen Aufwand und auch Kosten bei der Bereitstellung des Citrix-Clients verbunden ist, möchte man dies durch Bereitstellung einer Browseranwendung einsparen.

Migrationsverlauf:

  • Vermittelt wurden Grundkenntnisse für die Verwendung von WPF-Controls. In einem bestehenden Projekt wurde dies bereits anhand der ProgressBar praktiziert. XAML wurde hier aufgrund der Gesamtzeit des Workshops vernachlässigt.
  • Vermittelt wurde die Vorgehensweise beim Ersetzen von WinAPI-Funktionen durch äquivalente .NET-Funktionalität. Dabei wurden Grundkenntnisse beim Konsumieren von .NET Assemblies vermittelt und anhand der WinAPI-Funktion ShelExecute praktisch umgesetzt.
  • Vermittelt wurde die Erstellung von WPF-Browser-Anwendungen. Hierbei wurde speziell auf das Veröffentlichen dieser eingegangen. Speziell auf die Erstellung eigener Zertifikate und Anpassung der index.htm zur Bereitstellung einer individuellen Installationsanleitung.
  • Diskussion zur Verwendung von Web Services sowie Demonstration zum Erstellen und Konsumieren von Web Services.
  • Verwendung der MS Office Interop

Folgende Probleme sind bei der Umstellung nach .NET aufgetreten:

  • Menü wird nicht korrekt übersetzt – Funktion VisMenuGetText funktioniert unter .NET anders als unter Win32, dieser Bug wurde an GUPTA gemeldet.
  • Im Menü sind unter .NET keine Mnemonics sichtbar.
  • Der Background verschiedener Controls ist nicht transparent, daher unschöne Anzeige der GUI.
  • VisTblSetCellColor wird unter .NET nicht unterstützt – gibt es ein Äquivalent?
  • SalGetFileStr liefert unter .NET nicht nur die erste Zeile wie unter Win32, sondern die ganze Daten zurück.
  • Variablenreferenzierung bringt Fehler (ist allerdings zum Teil bedingt durch den Aufbau der Programmstruktur) Workaround oder Beseitigung der Fehlermeldung wurde erarbeitet.
  • Keine HTML-Hilfe unter .NET.
  • Remote Publishen einer WPF-Browser Anwendung funktionierte nicht – Alternative über locales Publishen und Kopieren auf dem Remote-Rechner.

Hierzu werden teils Testfälle durch den Kunden erstellt, damit die Fehler im Rahmen des Migrationstages an Gupta gemeldet werden können. MD Consulting konnte 2 EMPs für den Kunden bewirken.
Für nicht mehr unterstützte Funktionalitäten wird nach äquivalenten Möglichkeiten gesucht und der Kunde darüber informiert.
Für einen Tag sehr viel geschafft!

Client-/Server-Projekt

Softwareentwicklung
1 Manntag

Technologie:
GUPTA Team Developer .NET

18. Januar 2017


Datenbankanalyse SQLBase 9.0.1 – Workshop und Hilfe bei sporadischen Programmabstürzen

global-communication-grundlagen-pl-sql-oracle-seminar-md-consulting

Die eingesetzte Softwarelösung wurde Ende der 90er Jahre entwickelt und ist seitdem im Einsatz. Diese Anwendung wurde zuletzt mit dem Team Developer 2.1 entwickelt und nutzte eine SQLBase 7.6.1. Aktuell ist das Programm auf Team Developer 6.1 migriert und nutzt eine SQLBase 9.0.1.
Im Moment werden die Betriebssysteme WinXP SP3 und Windows7 32 Bit eingesetzt.
Im Multi-User-Betrieb von ca. 15 Anwendern kommt es sporadisch zu Programmabstürzen, was bereits unter der TD 2.1 Version vorkam. Weiterhin entstehen oft längere Wartezeiten beim Datenbankzugriff.
Das Audit der SQLBase Datenbankzugriffe soll protokolliert und ausgewertet werden.

Inhalt des Workshops:

Erstellen und Auswertung eines Audit der verwendeten Datenbank SQLBase 9.0.1.
Untersucht wurde die produktive Datenbank. Die anderen verwendeten Datenbanken spielen bei den auftretenden Problemen eine untergeordnete Rolle und wurden nicht näher analysiert.
Über die SQLConsole 11.7 wurden folgende Audits protokolliert:
Global:

  • Deadlocks / Timeouts
  • Queries
  • DML

Performance:

  • SQL-Statements
  • End of Transaktion

Weiterhin wurde die Datenbankstruktur analysiert unter folgenden Gesichtspunkten:

  • Größe der DB
  • Anzahl der Tabellen und Struktur
  • Anzahl von Datensätzen
  • Zusammen mit der Entwicklungsfirma der Software erfolgte eine Analyse des Programm-Sourcecodes und deren Auswertung:
    Hierbei wurde zusammen mit dem Entwickler auf Besonderheiten der Multi-User-Zugriffe eingegangen. Im Weiteren wurden bedenkliche Stellen im Source diskutiert und Verbesserungen vorgeschlagen.
  • Diskussion über Möglichkeiten, die Software mit dem Team Developer nach .NET umzustellen:
    Hierbei wurde die komplette Umstellung des Programmes diskutiert, aber auch die sanfte Umstellung in Betracht gezogen.

Client-/Server-Projekt

Softwareentwicklung
2 Manntage

Technologie:
GUPTA Team Developer 6.1
GUPTA SQLBase 9.0.1

18. Januar 2017


tedox KG

tedox-kg-firma-logo

Herr S. nahm vom  04.09. – 08.09.16 am Seminar „TD C/S – Objektorientierte Entwicklung professioneller Client-/Server-Anwendungen“ bei MD Consulting in Erding teil. Sein Beurteilungsbogen fiel für MD Consulting sehr positiv aus. Für die Benotung mit 1 und 2 in allen Punkten möchten wir recht herzlich danken.

16. Januar 2017


Informationstechnikzentrum Bund (ITZBund)

Herr Reich besuchte vom 22.11. – 25.11.2016 bei MD Consulting in Erfurt das Seminar „TD C/S – Objektorientierte Entwicklung professioneller Client-/Server-Anwendungen“. SeinBeurteilungsbogen fiel für MD Consulting sehr positiv aus. Für die Benotung mit 1 und 2 in allen Punkten möchten wir recht herzlich danken.

Herr Paul Reich, Entwickler 5. Januar 2017


MAE Systems GmbH

mae-systems-logo-md-consulting-partner

„Hallo Frau Ertel,

ich kannte dieses Tool noch nicht. Bin jetzt aber schon nach wenigen Minuten begeistert davon und frage mich, warum Sie erst jetzt damit ums Eck kommen ?

Der SQL Monitor ist echt klasse. Ein wenig hatte ich mir da schon selber was gebaut, bei weitem aber nicht so gut und ausführlich wie diese schöne Lösung.“

Herr Ralf Petri, CDS Chief of Development and Service 5. Januar 2017


Anpassung einer Applikation in Form eines Workshops bei einem Renovierungsdiscounter in Niedersachsen

MD-Consulting-opentext-Gupta-Seminar-Firmenseminar-Workshop-Team-Developer

Die bei unserem Kunden eingesetzte Software wurde bereits in einem vorangegangenen Migrationsworkshop von der Version Team Developer 1.5 auf die Version Team Developer 6.1 migriert. Da eine Umsetzung als .NET-Applikation angestrebt wird, sollte die .NET-Fähigkeit der Software-Lösung gewährleistet werden.
Daher ist zur Zeit die Software in den Versionen 1.5 und 6.1 im Einsatz, was zu einem erhöhten Wartungsaufwand führt, da Änderungen meist in beiden Ständen durchgeführt werden müssen.
Ziel ist daher, einen Programmstand in der Version Team Developer 6.1 zu erhalten.

Inhalt des Workshops:
Hauptschwerpunkte lagen in der Beseitigung von Fehlverhalten des Programmes im täglichen Einsatz:

  • Im MDI-Window werden keine Scrollbalken angezeigt, wenn das Child-Window größer als der Clientbereich ist. Ein Testprogramm zeigte, dass die Ursache nicht im Team Developer begründet liegt. Ein Test im Team Developer 6.2 funktionierte einwandfrei, so dass hier nicht weiter analysiert wurde.
  • Anzeige eines doppelten Fensters beim Start des EDIFACT-Prozesses. Das Fenster wurde bei Owner hWndForm angezeigt, allerdings zweimal. Bei Owner hWndMDI wurde es erstellt, lag allerdings hinter dem aufrufenden Fenster und konnte auch nicht in den Vordergrund geholt werden. Ursache war hier eine vorher durchgeführte Änderung im Framework. Dies musste nun für diesen Prozess ebenfalls angepasst werden, d.h. die Owner der erstellten Fenster wurden korrigiert.
  • Flackern des MDI-Menüs beim Öffnen und Schließen von Child-Fenstern. Anfrage an den Gupta-Support, ob hier eine bessere Möglichkeit besteht, ein dyn. Menü am MDI anzuzeigen.
  • Bei Verwendung einer C#-Dll wurde innerhalb der TD-DIE ein Fehler angezeigt. Grund dafür war der Umstand, dass das Projekt auf einem Netzlaufwerk angelegt war. Befindet sich das Projekt auf einem lokalen Laufwerk, funktioniert alles einwandfrei.
  • VisTblFindString führt keine exakte Suche durch – Meldung an den Gupta-Support.

Tool-Umstellung:

  • Die beiden Tools „Table Builder“ und „Field Wizard“ (beides CDK-Tools zur Unterstützung einer einheitlichen Source- und GUI-Gestaltung) wurden von der Version Team Developer 1.5 auf die Version Team Developer 6.1 migriert.
  • Anpassungsbedarf bestand bei der Erstellung von Background-Items.
  • Probleme traten hier in der Version Team Developer 6.1 auf, da hier die Zuweisung der zugrundeliegenden DIE-Outline nicht funktionierte. Ein Test zeigte, dass dies in der Version Team Developer 6.2 behoben wurde und dort die beiden Tools funktionierten.

Meldungen an den Gupta-Support:
Problem mit der Funktion cdkI-tem.GetPrevSibling, wenn das zurückliegende Item ein Comment oder Background-Item ist.
Ergebnis:
Eine komplette Umstellung auf Team Developer 6.2 wird angestrebt.

Client-/Server-Projekt

Softwareentwicklung
5 Manntage

Technologie:
GUPTA Team Developer 6.1

4. Januar 2017