Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Firebird Discussion :

Firebird / C++ / parallel desktop


Sujet :

Firebird

  1. #1
    Membre habitué
    Firebird / C++ / parallel desktop
    Bonjour
    je distribue et maintiens une application en C++ Builder 6 qui est destinée aux environnements Windows et adossée à Firebird 2.1.3
    Certains clients fan d'apple exploitent cette application sous Mac avec parallèle desktop
    Ayant observé sur des PC victimes de crash système que la base pouvait être plus ou moins corrompue par des déconnexions non protocolaires, j'en déduis que ceux de mes clients sur MAC qui ont aussi ce problème de bases corrompues sont victimes de déconnexion dues à l'environnement virtuel.
    Est-ce un problème que d'autres ont rencontré ?
    Merci

  2. #2
    Rédacteur/Modérateur

    Bonjour,

    Tout crash système, que ce soit d'un environnement virtuel ou non, du à des coupures d'électricité ou de l'environnement virtuel (voulu ou non)
    est susceptible de corrompre une base de données si des transactions étaient en cours ou si le cache est utilisé.

    Est-ce un problème que d'autres ont rencontré ?
    Tout ceux qui ont eu affaire à des micro-coupures électriques, des utilisateurs pressés qu'un Ctrl+Alt+Suppr démange ou pour les plus malheureux un micro-processeur qui surchauffe (c'est du vécu), je pourrais rajouter des parasites sur les réseaux cablés pour faire bonne mesure mais on est un peu loin d'une machine virtuelle.

    Y pallier commence en programmation par des transactions les plus courtes possible, une maintenance régulière de la SGBD (un simple GBAK fait déjà beaucoup dont virer "les poubelles" (garbage collection)
    un batch (gbak dans un script ou bat) mis dans un gestionnaire de tache planifié (cron) m'a bien souvent sauvé la mise. En tout cas cela fait bien 15 ans que je n'ai plus de problème sur une BDD depuis l'installation de ce batch (l'utilisateur trop pressé est également parti, ça joue peut être )

    pour la partie MAC Firebird est sur la machine virtuelle ou non ?
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  3. #3
    Membre habitué
    Merci
    Gbak oui me sert avec gfix pour réparer les bases quand cela arrive.
    L'automatiser pourquoi pas.
    Oui Firebird est installé sur la machine virtuelle avec l'application. Donc en cas de fermeture l'application se ferme en même temps que le serveur.
    Sauf bévue il n'y a aucune interaction à l'intérieur de transactions. Celles-ci n'attendent jamais une action de l'utilisateur. Ce qui devrait garantir qu'elles soient courtes sauf en de (très) rares cas de requêtes couteuses.

  4. #4
    Rédacteur/Modérateur

    Bonjour,
    Citation Envoyé par frantzgac Voir le message

    Oui Firebird est installé sur la machine virtuelle avec l'application. Donc en cas de fermeture l'application se ferme en même temps que le serveur.
    Firebird peut être installé sur Mac, ne serait-il pas envisageable que la base soit sur OSX plutôt que sur la machine virtuelle ?
    Je dois avouer n'avoir jamais essayé cette approche est-ce possible ?
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  5. #5
    Membre habitué
    C'est une piste intellectuellement envisageable;
    Pratiquement c'est plus difficile car je n'ai pas de configuration Mac sous la main.
    De plus j'ignore si le réseau de la machine virtuelle Windows peut accéder au réseau OSX.

###raw>template_hook.ano_emploi###