Newsgroup: it.comp.lang.vo-clipper
Titolo: [cl] indici corrotti e rete

Ciao a tutti,
ho un problema con un programma installato su una rete peer to peer: 3 pc (2
win98 + 1 xp)
Da quando e' stato installato xp continuo ad avere gli indici corrotti ed il
programma salta letteralmente, cioe' si chiude e torna a windows. Non
trappola neanche l'errore.
Unica soluzione ricostruire gli indici e ricominciare.
Ovviamente non posso andare avanti cosi' perche' fra un poco mi sparano.
Penso sia un problema legato a xp ma non so cosa possa essere.
Ho riletto almeno 10 volte i manuali di clipper riguardanti la rete e la
cosa che ho modificato e' stato mettere DBUNLOCK() prima di DBCOMMIT(). In
precedenza alcune volte erano al contrario e sul manuale viene specificato
che dbunlock() messo dopo il commit puo' creare problemi di integrita' ai
files. E' giusto cio' che dico fin qui?
Ho notato che alcune volte uso la funzione dbcommit() ed alcune volte il
comando commit. La differenza e' che la funzione opera su singolo file
mentre il comando chiude e riapre tutti i files. Secondo questo potrebbe
dare problemi ? Meglio chiudere e riaprire tutti i files anziche'
singolarmente (magari mi sono scordato di fare il dbcommit() su un file...).
Tutto cio' e' solo un'ipotesi sulla quale sto lavorando ma mi trovo in
grande difficolta' e pur lavorandoci da parecchi giorni non trovo la
soluzione.
Ogni suggerimento e' il benvenuto,
Salute a tutti
Marco

[...]
Io uso sempre DBCOMMIT(), raramente la DBCOMMITALL().
COMMIT è l'equivalente di DBCOMMIT(), mentre COMMIT ALL è
l'equivalente di DBCOMMITALL().
Saluti
===============================================
Antonello Negrone - Biella - Italy
anto...@anc-software.it
www.anc-software.it

Ciao Marco,
cosa usi? SetInternational( #Windows ) o SetInternational( #Clipper )
Usando la sequenza #Windows devi stare molto attento che tutti i PC 
usino la stessa impostazione di linuga e paese. Consiglio vivamente di 
usare #Clipper e usare la nation dll per l´Italia.
Saluti
Wolfgang
Merano

 Con altri sistemi operativi funzionava tutto bene?
Le rare volte che il programma trappola l'errore mi da
corruption detected e si blocca su dbunlock()
Saluti
Marco

 l'equivalente di DBCOMMITALL().
No, ti sbagli forse con l'UNLOCK. Infatti ecco un estratto dal file
STD.CH
:
#command COMMIT => dbCommitAll()
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg

 singolarmente (magari mi sono scordato di fare il dbcommit() su un file...).
Meglio il COMMIT completo, secondo me.



Ehm... penso che Marco parlasse di Clipper. Altrimenti quel [cl] cosa ci
sta a fare? :-)


soluzione.
Se puo' esserti d'aiuto, la causa piu' frequente della corruzione
degli indici in rete e' provocata proprio dalla presenza di una
unlock() prima della commit.  In questo caso infatti l'indice resta
accessibile (con dati non aggiornati) per un breve periodo di tempo,
quanto basta comunque perche' il primo client di turno vi acceda (i
client per loro natura odiano il server e cercano in tutti i modi di
impedirne il funzionamento).
ciao, acc.   
a...@libero.it

 wrote:


#command COMMIT => dbCommitAll()
A quanto pare VO e Clipper non hanno le stesse define (credevo di si).
Non avendo clipper a portata di mano ho guardato dentro il STD.UDC di
VO.
Grazie per la precisazione :-)


 ciao, acc.   
a...@libero.it
Ciao
Marco

Luigi,
Conosco il problema di blinker e del mouse, che dovrebbe essere messo a
posto con la 6.0 o con la prox ancora in beta.
Io utilizzo rtlink per linkare e l'unico add-on sono le ca-tools III.
Presumo il problema sia legato ad xp perche' e' da poco che succedono sti
c...i.
In precedenza c'erano 2 soli pc: uno al banco e l'altro in ufficio collegati
in rete. Ma da uno venivano effettuate le vendite e dall'altro il carichi.
Fermo restando che il programma era lo stesso per il 99,9% .
Francamente non so cosa pensare e sto impazzendo sopra questo problema. Ho
ripreso in mano tutti i libri ed i manuali ma non trovo nulla di che.
Provero' con Microsoft a vedere se c'e' qualche controindicazione.
Saluti,
Marco

 impedirne il funzionamento).
Perfetto, ora siamo allineati. :-)


 ha scritto nel messaggio
news:n_Ky9.4880$8E3.1...@twister2.libero.it...


 win98 + 1 xp)
presumo che il server sia un Win98 visto che XP e' stato aggiunto dopo.
Avrai sicuramente notato la notevole velocità di XP e Win2K nel gestire le
risorse di rete.
Questo dipende da un diverso schema nella cache relativa alle risorse di
rete. Rispetto a 98/NT 4.0 potresti avere prestazione triple su letture di
file in rete. Il problema credo sia in un difetto di notifica nel protocollo
di rete del server (98) che talvolta non segnala ad XP le avvenute
modifiche. XP crede quindi di lavorare su dati in cache congrui con quelli
del server e quando esegue i commit danneggia la struttura indice.
Soluzione probabile, spostare i files locali al sistema XP in modo che 98
sia client.

Pimpa,
non ho avuto modo di verificare la velocita' di cui fai menzione. Certo
lavora bene ma l'architettura dell'applicazione non e' delle piu' efficienti
avendo installato tutto su 98 in qualita' di server e gestendo le altre due
macchine come clients. Percio' quando deve fare delle elaborazioni molto
lunghe in batch o (peggio) dei filtri (tipo set filter ...) le prestazioni
sui clients sono peggiori di un fattore 100.
Non ero a conoscenza di queste innovazioni tecniche e delle loro possibili
conseguenze. Penso di fare un tentativo secondo i tuoi suggerimenti.
Dove posso trovare materiali circa cio' che hai affermato ?
Unico problema e' che il mio cliente vede XP come fumo negli occhi e
vorrebbe installare al suo posto 98 (che peraltro non ha mai dato problemi):
dirgli di portare tutta l'applicazione su XP e convincerlo della bonta'
della scelta sara' durissima.
Saluti
Marco
"pimpa" <xxx@xx.x> ha scritto nel messaggio
news:lRWy9.7922$Zn2.2...@twister1.libero.it...


Perfetto, ora siamo allineati. :-)
Beh almeno non sono ancora rincoglionito del tutto ! ;-)
ciao, acc.   
a...@libero.it

problemi.
Scusa Marco, ma come Enrico mi ha fatto notare ho scritto una c...a.
La dbunlock() va' messa _DOPO_ la dbcommit(), cioe':
dbusearea(...)
...
// modifica dei record
...
dbcommit()
dbunlock()
Io comunque uso sempre le funzioni dbrlock()/dbrunlock(), che
permettono piu' flessibilita', ricordati che la dbunlock() rilascia
TUTTI i lock attivi.
Se usi indici FoxPro (.CDX) e' bene mettere una dbgotop() dopo
l'apertura dell'indice.
ciao, acc.   
a...@libero.it

Acc,
Non preoccuparti anch'io ho scritto la stessa cosa nel messaggio originale
....
Ciao
Marco
"acc" <a...@libero.ita> ha scritto nel messaggio
news:gpsqsus9qisdm2s7i...@4ax.com...


Ciao a tutti,
ritorno dal mio cliente ed ho annotato alcune cose:
- il pc in questione e' uno di quelli all-in-one, tutto nello schermo
piatto, senza case
- la scheda di rete era configurata come fosse installata su un portatile,
cioe' con risparmio di energia, dopo un po (non e' specificato quanto tempo)
e' possibile che, se non utilizzata, vada in standby
- ho immediatamente eliminato l'opzione memore dello standby sui dischi
rigidi
- e' possibile (o forse probabile) che i problemi avuti siano dovuti a tale
settaggio?
- Sui pc con 98 il protocollo di rete era netbeui ma su Xp e' tcp/ip e non
e' possibile installare netbeui. L'unico protocollo che posso installare e'
ipx (netware). Pur guardando sul disco d'installazione non ho trovato nulla.
- La rete continua a funzionare nonostante i protocolli siano differenti
- La rete non l'ho installata io ma coloro che l'hanno montata fisicamente.
- La procedura "salta" su xp e fa saltare anche il programma aperto su 98,
non appena si cerca di fare una registrazione: xp corrompe il file e 98 lo
trova corrotto e salta di conseguenza.
Erano solo alcune precisazioni e note aggiuntive nella speranza che possiate
trovare qualche spunto per qualche idea o esperienza personale.
Saluti a tutti
Marco

 ha scritto nel messaggio
news:Zrfz9.11586$8E3.3...@twister2.libero.it...


 ha scritto nel messaggio
news:aql96q$af8vm$1...@ID-159627.news.dfncis.de...


 ha scritto nel messaggio
news:u9rz9.12911$Zn2.3...@twister1.libero.it...


Vi propongo il mio problema, dato che e' simile...
Rete locale, tutti i pc sono Win98SE, sono PIII-800 oppure portatili di
potenza simile...
Applicazione Clipper 5.2e + Blinker 3.3
Prima di prendere i pc nuovi, le reti locali erano spesso Novell 4.11 (se >
2 utenti, ora sono tutte W98, anche con 15 utenti).
Da quando ci sono i pc nuovi, migliori dei vecchi, e' un mezzo disastro :-(
Puo' essere l'antivirus che disturba Clipper e viceversa?
Puo' essere la rete Win che con oltre tre utenti si impicca?
Puo' essere il driver NTX di C52e?
E poi perche' i files restano lockati sul server anche se i client escono
regolarmente?
Grazie, ciao

 regolarmente?
Sei sicuro di dare sempre l'UNLOCK dopo ogni APPEND BLANK, RLOCK() o
FLOCK()?


 della scelta sara' durissima.
ma non e' che il tuo sia un grosso problema, in fondo XP diventa solo un
file server e potrebbe lavorare su una partizione NTFS (che e' gia' un buon
motivo per preferirlo a Win98 FAT32).

pimpa,
ho trovato anch'io (guarda in altre risposte) materiale su Samba /linux e
windows.
Confermo cio' che dici ma il  mio cliente NON vuole sentire parlare di
spostare i files almeno fino al prox anno (c'e' il natale e il lavoro
aumenta in maniera considerevole).
Provero' a disabilitare la cache di rete di xp
e a portare tutto su tcp/ip escludendo netbeui che ms non supporta piu'.
Ciao e grazie
"pimpa" <xxx@xx.x> ha scritto nel messaggio
news:LnJz9.15715$8E3.4...@twister2.libero.it...


 e a portare tutto su tcp/ip escludendo netbeui che ms non supporta piu'.
il protocollo NETBEUI lo trovi nel CD di installazione di WinXP, la cartella
e'
X:\VALUEADD\MSFT\NET\NETBEUI
Per il travaso dei files non dovrebbe essere un grosso problema via rete

trova corrotto e salta di conseguenza.
Dove lavoro abbiamo una rete di Pc tutti con win98, recentemente e'
stato acquistato un portatile con win XP preinstallato, quando il
portatile viene connesso alla rete provoca un disastro:
l'unica soluzione e' spegnere tutti i Pc, scollegare il portatile e
riavviare.
Non riesco a capire dove sia il problema, di certo la rete di XP fa a
pugni con quella di win 98.
ciao, acc.   
a...@libero.it

 l'apertura dell'indice.
Perchč???
Luca

Perchè???
Come al solito ho scritto un po' troppo in fretta...
il problema non si verifica all'apertura di un indice, ma quando si
apre un indice con piu' chiavi e si seleziona un'altra chiave, in
pratica quando si fa una ordsetfocus().
In questo caso bisogna fare attenzione perche' il record puntato non
cambia, cioe' resta quello puntato dalla chiave principale.
Non si tratta di un'anomalia, ma a volte puo' creare confusione.
ciao, acc.   
a...@libero.it

 Non si tratta di un'anomalia, ma a volte puo' creare confusione.
Ne faccio già abbastanza io......;-)))))))))))))))
Luca

 Non si tratta di un'anomalia, ma a volte puo' creare confusione.
Giusto. Comunque succede con qualunque RDD, a quanto mi risulta, e non
solo con il CDX.
