PDA

Visualizza la versione completa : [DELPHI] Interrogare le catalogazioni dei nodi e database DB2


FengHuang
22-05-2012, 10:03
Mi trovo nella situazione in cui il mio programma, all'avvio deve scegliere come e a quale db collegarsi.

possibilità 1 e 2, sono due db differenti db2 collegati a due nodi dei quali so l'indirizzo ip ma non il nome
possibilità 3, un db in locale mysql.

quello che mi serve capire a programma è:

- come repuparare la lista dei nodi catalogati sul pc (quello che a mano dal clp ottengo con "list node directory")
- come recuperare la lista dei db catalogati (da clp "list db directory")

- come capire su quale db andare a collegarmi, quidni o come fare un ping agli indirizzi dei nodi e vedere quale mi risponde, oppure interrogando l'attuale indirizzo ip del pc e quindi poi determinare su quale andare... escludo il tentare la connessione perchè impiega troppo tempo a rispondermi picche...

se i primi due non mi rispondono pasare al db locale mysql dei quali fortunatamente so tutto :D

eh lo so, sempre cose stane io :98:

alka
22-05-2012, 10:43
Posso dire che non ci ho capito nulla? :stordita:

Ad ogni modo, se possiedi i dati dei server a cui intendi collegarti, prova a collegarti e basta: se la connessione non va a buon fine, passi al nodo successivo.

Qual è il problema specifico?

FengHuang
22-05-2012, 11:44
il punto è quello. so gli indirizzi ip dei nodi ma non i nomi dei server.

inoltre se provo a fare il connect ad un indirizzo "sbagliato" ci mette una vita prima di rispondermi che la connessione non è possibile quindi tentativo "alla cieca" vorrei evitarlo.

il problea è appunto


- come repuparare la lista dei nodi catalogati sul pc (quello che a mano dal clp ottengo con "list node directory")
- come recuperare la lista dei db catalogati (da clp "list db directory")

il tutto a runtime.

denis76
22-05-2012, 14:09
Scusa la domanda: ma di cosa ti stai occupando?

oregon
22-05-2012, 14:16
Originariamente inviato da FengHuang

eh lo so, sempre cose stane io :98:

Non solo strane ... probabilmente anche poco utili ...

Che senso ha quello che stai facendo?

FengHuang
22-05-2012, 14:35
l'applicativo in questione "gira" in 2 condizioni differenti:

1, collegato tramite LAN in azienda
2, collegato tramite internet.

il server con il motore del DB che risponde è lo stesso, tuttavia per ovvi motivi risponde a due indirizzi ip (e quindi due nodi di DB) differenti.

la norma vuole che un pc entra o nel modo 1, se è un dipendente dell'azienda o nel 2° se è un concessionario esterno.

tuttavia ho dei pc che si collegano e con l'1 e con il 2.

fino ad oggi l'applicazione chiede un parametro in ingresso che è il nome del DB a cui collegarsi.

oggi però si è aggiunta la terza opzione, ovvero l'esecuzione standalone dell'applicativo e volevo cogliere l'occasione per automatizzare la scelta del "puntamento" corretto in modo da tolgiere l'imbarazzo all'utente non proprio furbo.

oregon
22-05-2012, 14:37
Ma scusa, il puntamento al DB corretto è "casuale" o risponde a precise regole?

Perché in questo caso, basta avere l'elenco dei 3 server, decidere con una "regola" a quale connettersi e farlo ... non casualmente.

Continuo a non capire.

FengHuang
22-05-2012, 14:50
la regola del più veloce ovvero del disponibile.

devo definirla io la regola.

devo sapere se il pc in questione ha o meno catalogato + di un accesso al db. (perchè ovvio che se è un pc che "vive" solo all'esterno non devo pormi nessun problema e tenatare solo una connessione)

e questo è il nocciolo della domanda. come posso scoprire a runtime quli e quanti DB sono catalogati sulla macchina?

se sono + di uno, su che rete è collegato il pc oppure è effettivamente collegato alla rete il pc?

se è sulla lan, utilizzo un punto di accesso
se è su internet utilizzo un altro punto di accesso
altrimenti se non è proprio su nulla, utilizzo il db locale.

lo so anche io che potrei semlicemente "tentare" le connessioni e vedere se funzionano, ma come ho detto ci vuole troppo tempo e la trovo troppo "pressapoco" come modalità.

oregon
22-05-2012, 14:55
Se il client sta su Internet non ha senso collegarti al DB della LAN ...

FengHuang
22-05-2012, 15:08
Originariamente inviato da oregon
Se il client sta su Internet non ha senso collegarti al DB della LAN ...

e quindi?

questo cosa c'entra con il fatto che mi serve sapere quali db ha catalogato il pc in questione?

i pc dei concessionari saranno sicuramente su una loro rete aziendale lan ma devono comunque connettersi al mio DB tramite internet.

questo per dire che non posso basarmi su che tipo di rete è connesso il client per determinare in quale punto di accesso dirigermi ma miserve sapere cosa è stato catalogato sulla mcchina in questione

Loading