Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

Jemand Erfahrung mit OpenPegasus?

Yves3 / 3 Antworten / Baumansicht Nickles

Hallo

Ich habe eine Datenbank mit gewissen DeviceIDs, die als gelöscht oder als nicht gelöscht bezeichnet sind. Ich muss jetzt den Status all dieser Instanzen aktualisieren, also bei jeder überprüfen, ob sie auf dem CIMOM (CIM Object Manager) existiert.
Mein aktueller Ansatz ist folgender:
Code:


bool CServiceLogic::IsVolumeOnCIMOM(Pegasus::String strVolumeID)
{
Array<CIMObject> oTestObject;
String strSelectQuery = "SELECT DeviceID FROM IBMTSDS_Volume WHERE DeviceID= \"";
strSelectQuery.append(strVolumeID);
strSelectQuery.append("\"");
oTestObject = m_oCIMClient.execQuery(m_oNamespaceName, String("WQL"), strSelectQuery);
return (oTestObject.size() == 1);
}


Diese Funktion führe ich einfach für jeden Datensatz in der Datenbank einmal aus.

Leider dauert das ungefähr zehn Minuten, bis es fertig ist (ca. 1200 Instanzen).
Alle Instanzen vom CIMOM auf einmal abzurufen dauert ungefähr 20 Sekunden, allerdings habe ich noch keine Möglichkeit gefunden um diese lokal effizient zu durchsuchen.
Einfach für jede Instanz in der DB das gesamte Array zu durchlaufen halte ich für keine besonders gute Lösung, da die Dauer mit der Anzahl Instanzen exponential ansteigt.

Ich hoffe hier hat schon mal jemand etwas ähnliches versucht.
Ich weiss, dass das API wahrscheinlich nicht so verbreitet ist, wüsste aber nicht, wo ich sonst fragen könnte....
bei Antwort benachrichtigen
ChrE Yves3 „Jemand Erfahrung mit OpenPegasus?“
Optionen

Hallo!

Habe keine Ahnung, aber: Wie viele Sätze stehen denn in der Tabelle IBMTSDS_Volume?
Ist die Spalte DeviceID indiziert? Das beschleunigt das Suchen.

Gruss

ChrE

bei Antwort benachrichtigen
Yves3 ChrE „Hallo! Habe keine Ahnung, aber: Wie viele Sätze stehen denn in der Tabelle...“
Optionen

Es sind ungefähr 1200. Das Problem ist aber nicht die Datenbank, da sie nicht dort, sondern auf den Systemen gesucht werden müssen

bei Antwort benachrichtigen
ChrE Yves3 „Es sind ungefähr 1200. Das Problem ist aber nicht die Datenbank, da sie nicht...“
Optionen

Hallo!

Oh. Das wird dann wohl sequenziell gemacht, wenn es 10 Min. dauert.
Und Du möchtest es parallelisieren.
Oder?

Gruss

ChrE

bei Antwort benachrichtigen