INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Database connectivity toolkit und TCP Verbindungen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

21.07.2014, 14:07 (Dieser Beitrag wurde zuletzt bearbeitet: 21.07.2014 14:07 von Alea.)
Beitrag #1

Alea Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Jul 2014

8.6
2008
DE



Database connectivity toolkit und TCP Verbindungen
Hallo Freunde des LabView,

ich versuche es mal in Kurz.

Ich habe hier Geräte welche ich über RS232 Abfrage, die empfangenen Daten werden aufbereitet und in ein SQL-Befehl an eine passende Datenbank gesendet.
Mein Datenerfassungstool kommuniziert sekündlich mit dem externen Gerät, jeder eingelesene Datensatz soll in die Datenbank.
Hierbei kann es sein, dass ich unterschiedliche Spaltenbezeichner von einer auf die andere Abfrage habe, (deshalb das Sub-VI Spaltenprüfer).

So in meiner einfachen LabView/SQL-Welt dachte ich mir:
„Connection öffen“ -> „Befehl absetzten“ -> „Recordset vernichten“ -> „Connection schließen“

Das heißt es sind zwei SQL-Connections pro Sekunde welche geöffnet werden und geschlossen werden sollten.
Da ist das Problem, der Server verzeichnet eine geschlossene Verbindung, der TCP-Port auf der Clientseite wird nicht geschlossen, bzw. steht auf „wartend“ und wird dem Prozess „System Idle Process 0“ mit der PID 0 übergeben und nicht geschlossen. LV hat eine 4 Stellige PID d.h. LV hat keine Kontrolle mehr über diesen Port.
Für mich sieht es aus als ob er den Port Clinet seitig nicht richtig beendet.

Das Problem nun nach ca 2 Minuten sind 240 Ports voll, das VI wartet bei jeden neuen Verbindung darauf das einer dieser Ports durch einen Timeout freigegeben wird.

Dadurch wird das VI immer langsamer und benötigt nach ca. 2 Tagen laufzeit anstatt 10 Sekunden zum abarbeiten aller States nun 10 Sekunden...



//Eine Stunde später

So und nun wird es richtig skurril, ich bin hier gerade am basteln, um euch ein VI zum überprüfen bereit zu stellen. Und mir unterläuft der Fehler, dass ich eine dritte Connection öffne ohne sie zu nutzen oder zu schließen, und siehe da es bliebt bei ZWEI Verbindungen, die eine die offene ungenutzte Verbindung und die andere Verbindung sind effektiv die "beiden connections" welche permanent geöffnet werden und geschlossen… Mit dem schalter "funzt/funzt nicht" könnt ihr umschalten (vor dem Start bitte betätigen) um beide beschriebenen Versionen zu haben.

Hat jemand eine plausible Erklärung für dieses Verhalten?
Und/Oder ein besseren Workaround als diesen?


Viele Grüße

Alea


Angehängte Datei(en)
0.0 .zip  SQL Probleme.zip (Größe: 73,04 KB / Downloads: 201)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
21.07.2014, 14:18
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Database connectivity toolkit und TCP Verbindungen
Frage: Wozu ist es nötig, 2x pro Sekunde eine DB-Verbindung zu öffnen & wieder zu schließen, wenn man die schon bestehenden Verbindung wieder verwenden könnte? Machst du das bei RS-232 auch so?

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.07.2014, 14:51 (Dieser Beitrag wurde zuletzt bearbeitet: 21.07.2014 14:52 von Alea.)
Beitrag #3

Alea Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Jul 2014

8.6
2008
DE



RE: Database connectivity toolkit und TCP Verbindungen
Hallo Jens,

Nötig ist es nun nicht mehr, ich habe auch mein VI nun umgebaut auf EINE dauerhafte Verbindung. Es war nötig da die Ports auf dem Server bisher auf 128 begrenzt waren und hier >200 Geräte herumstehen, welche abgefragt werden müssen. (Was man alles immer von seinen vorgängern übernimmt *Danielpositiv*)

Mein VI funktioniert jetzt, da ich nun mit einer offenen Verbindung leben kann.
Ich kann mir aber gut vorstellen, dass andere auch mal über dieses Problem stolpern, mich interessiert es eben wo das Problem herkommt.
Denn nach dem beenden des VI´s bleibt der TCP-Port eben noch bis zum Timeout offen und das muss doch auch nicht sein.

Die Frage ist nun aber warum funktioniert das "Connection Close" nicht richtig.


Viele Grüße

Alea

PS: Und nein der RS232 bliebt offen ^__^
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Erfahrungen Labview database connectivity toolkit Cardinal1664 2 4.724 11.10.2016 15:13
Letzter Beitrag: Cardinal1664
  Database Connectivity Toolkit record count-1 montanaro 7 5.397 18.03.2013 18:34
Letzter Beitrag: montanaro
  (Database) Variant to Data? macmarvin 2 5.819 19.01.2011 08:48
Letzter Beitrag: macmarvin
  Database Connectivity Toolkit - Gleitkommazahl Lurdsen 4 5.846 12.11.2009 17:17
Letzter Beitrag: Y-P
  LabVIEW Database Connectivity Toolkit nookie 3 5.733 04.11.2009 14:52
Letzter Beitrag: nookie
  Database Connectivity Toolkit OFET 5 5.670 30.08.2009 10:16
Letzter Beitrag: OFET

Gehe zu: