Applicativo si "freezza" all'avvio per 15 - 20 secondi

di il
6 risposte

Applicativo si "freezza" all'avvio per 15 - 20 secondi

Ciao a tutti..
ho sviluppato un applicativo abbastanza articolato per gestire la produzione in azienda, sono soddisfatto ed è riuscito bene però arrivato alla fine il DB ha cominciato a metterci un po' a "partire", nel senso che apre la maschera di accesso e rimane freezzato per 15 - 20 secondi prima di permettere di fare qualunque cosa.. non sempre si blocca in questo modo, si blocca soprattutto quando chiudo e riapro il DB.

ho provato a disattivare tutto il codice che interviene all'avvio, compreso il codice su apertura della maschera di accesso.. ma non ho notato cambiamenti.

si tratta di un be - fe .. allora ho provato a rendere locali le tabelle collegate e il problema è sparito, però il be si trova in locale nella stessa cartella del fe in un percorso locale quindi la connessione dovrebbe essere veloce (oppure no??)

il problema non si presenta sempre ma si manifesta su tutti i PC allo stesso modo. c'ho lavorato una settimana con le tabelle collegate e il problema non si è mai presentato.. ad un certo punto ha cominciato e poi ha continuato.. il bello è che se apro un backup salvato più di una settimana fa ( quando il problema non c'era) si "inchioda" anche lui

bisogna forse chiudere in qualche modo la connessione al be prima di chiudere access?
avete qualche consiglio riguardo all'ottimizzazione della connessione al be? (con excel ho capito come mettere mano alla stringa di connessione ma su access non ho trovato impostazioni,se esistono... abbiate pazienza.. non me ne intendo più di tanto)

ps.. il DB lo compatto all'uscita, può dare problemi?

grazie in anticipo

6 Risposte

  • Re: Applicativo si "freezza" all'avvio per 15 - 20 secondi

    Più che altro sembra un problema generale di rete, forse legato alla risoluzione DNS.

    Come indichi il nome del server su cui esiste il BE ?
  • Re: Applicativo si "freezza" all'avvio per 15 - 20 secondi

    oregon ha scritto:


    Più che altro sembra un problema generale di rete, forse legato alla risoluzione DNS.

    Come indichi il nome del server su cui esiste il BE ?
    il be non si trova su un percorso di rete ma in un percorso locale assieme al fe..
  • Re: Applicativo si "freezza" all'avvio per 15 - 20 secondi

    Ma lo usi in multiutenza...?
    Puoi spiegare come gestisci le Linkedtable...?
    Le hai linkare la prima volta poi mai piu toccate...?
    Hai provato a rimuoverle e rimetterle(io le linko all'avvio e le rimuovo alla.chiusura SEMPRE).
    Posta anche la connecrion string con il percorso in chiaro
  • Re: Applicativo si "freezza" all'avvio per 15 - 20 secondi

    @Alex ha scritto:


    Ma lo usi in multiutenza...?
    l'applicativo dovrà funzionare in multiutenza (max 3 - 4 utenti) ma naturalmente al momento lo sto sviluppando e sono l'unico connesso al db

    @Alex ha scritto:


    Puoi spiegare come gestisci le Linkedtable...?
    le ho semplicemente collegate con "nuova origine dati" --> "da database" --> "access"

    @Alex ha scritto:


    Le hai linkare la prima volta poi mai piu toccate...?
    fin dall'inizio del lavoro ho lavorato su una pennetta USB con sia il be che il fe, in questo modo mi portavo tutto dal lavoro a casa e viceversa aggiornando solo il percorso delle connessioni, non avendo riscontrato problemi mi sembrava fattibile come cosa..
    comunque ho gli stessi problemi anche lavorando con i files salvati sul disco fisso.

    @Alex ha scritto:


    Hai provato a rimuoverle e rimetterle(io le linko all'avvio e le rimuovo alla.chiusura SEMPRE).
    no, non ci avevo nemmeno pensato, anche perchè dovrei imparare a fare questa cosa (che imparerei volentieri)
    ad ogni modo quali sono i vantaggi di collegare all'avvio e scollegare alla chiusura?

    @Alex ha scritto:


    Posta anche la connecrion string con il percorso in chiaro
    non riesco a trovare le connection string in access.. e tanto meno metterci le mani..da "gestione tabelle collegate" mi permette solo di aggiornare le varie tabelle..

    PS. uso office 2016 a casa e office 365 al lavoro
  • Re: Applicativo si "freezza" all'avvio per 15 - 20 secondi

    Se l'applicativo deve funzionare in MultiUtenza, il BE(Server) deve risiedere su una Macchina in Rete condivisa... e distribuire agli Utilizzatori solo il FE.
    Normalmente il BE(Server) ha una gestione Utenti, lascia perdere Access(JET) che può supportare solo la PWD, ma anche solo mettendo la PWD... la Stringa di connessione che tu dici di non trovare, in realtà viene SALVATA in chiaro nel FE, in una tabella di SISTEMA [MSysObjects], sicchè se non attui qualche sistema di mitigazione del rischio... chiunque vede il Percorso del Server e la PWD di accesso, e, volendo si sviluppa un applicativo proprio per modificare i dati... per farti un esempio banale...
    Questo quindi richiede che, il FE sia compilato e non consenta l'apertura del sistema struttura(Tabelle/Queries/codice ecc...) quindi si distribuisce la versione MDE o ACCDE, facendo in modo che l'utente non possa accedere a nulla, poi si connette il BE dopo il Ligin iniziale, e si rimuove dopo il LogOut...
    La sconnessione è importante perchè, se lasci le LinkedTable connesse anche ad Applicativo chiuso, io posso creare un DB nuovo e Linkare le mie tabelle al tuo FE senza dover inserire la PWD... e sono sul SERVER...

    Ultima cosa, le Linked Table soffrono le modifiche lato SERVER, quindi qualsiasi modifica fai sulle Tabelle, devi RELINKARE la tabella modificata.

    P.S. quando si distribuisce la versione Compilata... serve sapere che non si distribuisce la parte Debuggabile... quindi serve scrivere applicativi ben fatti con le gestioni errori e la dichiarazione obblighatoria delle variabili, il corretto uso di eventuali Riferimenti a Componenti Esterni in modalità LateBinding... ecc.. ecc...

    Insomma dovresti farti un po più di chiarezza nella gestione in linea generale.
  • Re: Applicativo si "freezza" all'avvio per 15 - 20 secondi

    @Alex ha scritto:


    Se l'applicativo deve funzionare in MultiUtenza, il BE(Server) deve risiedere su una Macchina in Rete condivisa... e distribuire agli Utilizzatori solo il FE.
    si, il BE sarà su una cartella condivisa di un PC-server e gli utenti avranno la loro copia del FE in locale.
    la rete è una rete aziendale piuttosto complessa, VPN (250 stabilimenti del gruppo nel mondo), unico dominio con varie sottoreti, proxy, firewall hardware ecc ecc, (si capisce quanto me ne intendo ) ma per problemi di rete abbiamo una figura che segue tutti gli stabilimenti italiani che può aiutarmi e comunque il DB girerà interamente in una sottorete.

    @Alex ha scritto:


    Normalmente il BE(Server) ha una gestione Utenti, lascia perdere Access(JET) che può supportare solo la PWD, ma anche solo mettendo la PWD... la Stringa di connessione che tu dici di non trovare, in realtà viene SALVATA in chiaro nel FE, in una tabella di SISTEMA [MSysObjects], sicchè se non attui qualche sistema di mitigazione del rischio... chiunque vede il Percorso del Server e la PWD di accesso, e, volendo si sviluppa un applicativo proprio per modificare i dati... per farti un esempio banale...
    Questo quindi richiede che, il FE sia compilato e non consenta l'apertura del sistema struttura(Tabelle/Queries/codice ecc...) quindi si distribuisce la versione MDE o ACCDE, facendo in modo che l'utente non possa accedere a nulla, poi si connette il BE dopo il Ligin iniziale, e si rimuove dopo il LogOut...
    La sconnessione è importante perchè, se lasci le LinkedTable connesse anche ad Applicativo chiuso, io posso creare un DB nuovo e Linkare le mie tabelle al tuo FE senza dover inserire la PWD... e sono sul SERVER...
    interessantissime le tue considerazioni e mi fanno venire voglia di approfondire, però, non ne sono certo ma credo di non avere bisogno di questo tipo di sicurezza, almeno per il momento..
    il DB verrà utilizzato da 4 -5 persone in tutto, interne all'azienda e che non avrebbero nessun interesse a "rubare" i dati o corrompere volontariamente il DB.. quando gli ho nascosto il navigationPane e il ribbon da vba all'avvio mi sento abbastanza sicuro.

    @Alex ha scritto:


    Ultima cosa, le Linked Table soffrono le modifiche lato SERVER, quindi qualsiasi modifica fai sulle Tabelle, devi RELINKARE la tabella modificata.
    per relinkare intendi aggiornare le tabelle collegate aggiornando il percorso del BE? oppure che devo eliminarle e collegarle nuovamente?
    comunque per sicurezza l'ho fatto ad ogni modifica nelle impostazioni e nella struttura delle tabelle del BE

    @Alex ha scritto:


    P.S. quando si distribuisce la versione Compilata... serve sapere che non si distribuisce la parte Debuggabile... quindi serve scrivere applicativi ben fatti con le gestioni errori e la dichiarazione obblighatoria delle variabili, il corretto uso di eventuali Riferimenti a Componenti Esterni in modalità LateBinding... ecc.. ecc...
    mi interessa creare la versione compilata, non tanto per preservare il codice ma per motivi di efficienza..
    l'applicativo è relativamente semplice e ho gestito tutti gli errori che ho ipotizzato potessero presentarsi ma chissà quanti non ne ho considerati..
    avevo in mente di togliere "option compare database" e dichiarare tutte le variabili che erano autodefinite(non so se si dica così), anche se in realtà non sono molte.

    @Alex ha scritto:


    Insomma dovresti farti un po più di chiarezza nella gestione in linea generale.
    esatto! ho aperto un altro argomento riguardo alla ricerca di info ma lo sai perchè mi hai già risposto

    ad ogni modo ho questo problema di freezing dell'applicativo all'apertura che sembrerebbe essere connesso alle tabelle collegate..

    ho aperto la tabella nascosta [MSysObjects] dove ho trovato il percorso del DB BE con le relative tabelle ma non sono riuscito ad estrapolare la stringa di connessione
Devi accedere o registrarti per scrivere nel forum
6 risposte