Forum: PC Hard- und Software Win: Programmstart sobald (SQL-)Server verfügbar


von Matthias S. (da_user)


Lesenswert?

Hi,

ich bastel mir gerade ein kleines HTPC-System. Fürs Wohnzimmer ist 
hierbei nur ein rein passiv gekühlter Rechner mit einer SSD vorgesehen. 
Die ganzen Daten liegen auf einen weiteren Rechner im Arbeitszimmer. 
Dieser stellt auch die SQL-Datenbank für XBMC bereit.

Um den WAF zu erhöhen, würde ich gerne den "Server" über WoL starten 
lassen. Problem: XBMC startet erst sauber durch, wenn der SQL-Server 
verfügbar ist. Ist er während dem starten nicht verfügbar, gibt's 
Problemchen.

Nun würde ich ein Tool suchen, welches ich starte und einfach immer 
wieder nachguckt, ob der SQL-Server verfügbar ist und dann ein weiteres 
Programm startet (in diesem Falle XBMC oder ne kleine Batch-Datei mit 
noch nem kleinen Delay drinnen).

Gibt's sowas?

VG
Matthias

von Peter II (Gast)


Lesenswert?

mit isql einfach eine SQL-Abfrage ( select 1 ) starten. Wenn iSQL einen 
fehler meldet ist der SQL-Server nicht verfügbar.

von Matthias S. (da_user)


Lesenswert?

Ähm... Könntest du mir da noch etwas mehr auf die Sprünge helfen?

Kann ich diesen iSQL-Viewer den einfach mit einer Batch (bzw. das ist ja 
jetzt die PowerShell) ansprechen?

von Peter II (Gast)


Lesenswert?

http://support.microsoft.com/kb/138541/de

damit sollte es auch gehen.

isql ist ein commadozeilen tools für sql-Abfragen.

Das ganze kannst du einfach ein batch einbauen.

von Matthias S. (da_user)


Lesenswert?

Äh,.. wow.. ich stehe gerade sehr auf'm Schlauch, da muss ich mich jetzt 
mal kräftig einlesen, auch, was Batches angeht.

Verstehe ich das richtig, dass dieses Microsoft-Tool nicht einfach True 
oder False ausspuckt, je nachdem ob die Verbindung da ist, oder nicht, 
sondern gleich einen halben Roman?

von Peter II (Gast)


Lesenswert?

Matthias S. schrieb:
> Verstehe ich das richtig, dass dieses Microsoft-Tool nicht einfach True
> oder False ausspuckt, je nachdem ob die Verbindung da ist, oder nicht,
> sondern gleich einen halben Roman?

ja und nein, man kann oft den Roman in den mülleimer umleiten

odbcping > NUL

dann bekommt man keine Ausgaben. Wenn das programm sinnvoll geschrieben 
ist, kann man über den Returncode ( im batch %ERRORLEVEL% ) ob es 
erfolgreich war.

von Matthias S. (da_user)


Lesenswert?

Kannst du mir auf die schnelle ne gute Page nennen, bei der ich mich in 
Sachen Batch-programmierung mal schnell einlesen kann?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Bei Diensten (Services) kann auch eine Abhängigkeit von anderen Diensten 
konfiguriert werden. Dein XBMC wird von irgendeinem Dienst gestartet 
werden, bei diesem Dienst ist der SQL-Server-Dienst in die 
Abhängigkeitenliste einzutragen, und das Problem sollte gelöst sein.

von Peter II (Gast)


Lesenswert?

Matthias S. schrieb:
> Kannst du mir auf die schnelle ne gute Page nennen, bei der ich mich in
> Sachen Batch-programmierung mal schnell einlesen kann?

nein, weiss ja nicht auf welchen Stand du bist.

einfach bei googel mal nach "batch anleitung" suchen?

von Peter II (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Bei Diensten (Services) kann auch eine Abhängigkeit von anderen Diensten
> konfiguriert werden. Dein XBMC wird von irgendeinem Dienst gestartet
> werden, bei diesem Dienst ist der SQL-Server-Dienst in die
> Abhängigkeitenliste einzutragen, und das Problem sollte gelöst sein.

wenn ich das richtig verstande haben geht es aber um einen 2.Rechner. 
Die ahängigkeiten können aber nicht recherübergreifend eingerichtet 
werden.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ok, das geht in der Tat nicht. Den Punkt hatte ich auf die Schnelle 
übersehen.

von Matthias S. (da_user)


Lesenswert?

Peter II schrieb:
> nein, weiss ja nicht auf welchen Stand du bist.
>
> einfach bei googel mal nach "batch anleitung" suchen?

Ziemlich mau...

Also, das odbcping scheint Bestandteil von Microsoft SQL 2000 zu sein 
und ist als veraltet markiert. Somit sehe ich meine Chancen im Moment 
ziemlich schlecht, da ranzukommen.

Und isql finde ich irgendwie auch nicht, Google will mir da nur 
diverseste ISQL-Viewer oder so unterschieben. Mit isql Utility download 
finde ich nur Seiten, in denen beschrieben wird, wie das Dingens 
funktioniert...

Hilfe

Edit: Ach ja, auf dem "Server" ist MySQL installiert, ist da vielleicht 
irgendwo ein Tool drinnen, welches ich dafür verwenden kann?

von Peter II (Gast)


Lesenswert?

Matthias S. schrieb:
> Und isql finde ich irgendwie auch nicht

was hast du denn für eine SQL-Datenbank? Ich bin davon ausgegangen das 
du den SQL-Server hast. Dort ist das isql im bin verzeichniss.

von Matthias S. (da_user)


Lesenswert?

Mist, habe ich gerade nachgepflegt: MySql

von (prx) A. K. (prx)


Lesenswert?

Stimmt wenigstens die von vielen getroffene Annahme, dass die Maschine 
unter Windows läuft?

von Matthias S. (da_user)


Lesenswert?

Oh stimmt, ich hätte gedacht, das könnte ich mit dem Win im 
Beitragstitel klären, aber dass muss ja nicht unbedingt auf den "Server" 
auch zutreffen.

Beides Win7 64bit, "Server" Ultimate, HTPC Pro.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

mysql hat ein Komandozeilentool das...Überraschung! mysql heißt ;-)
Was das alles kann steht hier: 
https://dev.mysql.com/doc/refman/5.6/en/mysql.html

Es gibt aber auch diverse APIs wenn dir also Programmieren näher steht 
als Skripten...

Matthias S. schrieb:
> startet erst sauber durch, wenn der SQL-Server verfügbar ist

Bug eröffnen bei XBMC sowas kann ja wohl nicht sein. Alternativ ist 
natürlich die Frage noch warum das überhaupt auf zwei Rechnern laufen 
muss...

von Matthias S. (da_user)


Lesenswert?

Läubi .. schrieb:
> Es gibt aber auch diverse APIs wenn dir also Programmieren näher steht
> als Skripten...

Ich hab ein bisschen Ahnung von C#, habe mich da aber überhaupt noch 
nicht mit Datenbanken, geschweige den SQL auseinandergesetzt. Was hätte 
ich den da für eine API die auch unter VS Express läuft?

>
> Bug eröffnen bei XBMC sowas kann ja wohl nicht sein. Alternativ ist
> natürlich die Frage noch warum das überhaupt auf zwei Rechnern laufen
> muss...

Der HTPC an sich soll möglichst leise sein, also keine klassische HDD, 
und ein SSD mit ein paar TB ist teuer. Also Daten auslagern. Da die 
SQL-Datenbank auch auf diesem "Server" läuft, können andere Clienten 
(Handy, kleiner RaspberryPi,...) später dann auch ohne größeren Aufwand 
darauf zugreifen.

von (prx) A. K. (prx)


Lesenswert?

Ein API ist nicht unbedingt nötig. Es reicht aus, sich mit dem TCP-Port 
des Servers zu verbinden. Wenns klappt ist er da.

von Peter II (Gast)


Lesenswert?

Matthias S. schrieb:
> Ich hab ein bisschen Ahnung von C#, habe mich da aber überhaupt noch
> nicht mit Datenbanken, geschweige den SQL auseinandergesetzt.

dann sagt das doch.

Dann schreibe doch einfach eine kleines Programm was versucht eine 
Datenbank verbindung aufzubauen. Wenn es geht kannst du das nächste 
programm starten.

"mysql c#" liefert genügend beispiele.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.