PRÉCONISATIONS POUR VOS APPLICATIONS 4Dgipco-adns.com/file/~1060/GIPCO-WIKI/4D-Editeur/p...Voici...

12
PRÉCONISATIONS POUR VOS APPLICATIONS 4D Dernière mise à jour : 2 février 2017 Auteur : Cédric Gareau

Transcript of PRÉCONISATIONS POUR VOS APPLICATIONS 4Dgipco-adns.com/file/~1060/GIPCO-WIKI/4D-Editeur/p...Voici...

Page 1: PRÉCONISATIONS POUR VOS APPLICATIONS 4Dgipco-adns.com/file/~1060/GIPCO-WIKI/4D-Editeur/p...Voici quelques préconisations et bonnes pratiques, pleines de bon sens, à suivre lorsque

PRÉCONISATIONSPOURVOSAPPLICATIONS4DDernièremiseàjour:2février2017 Auteur:CédricGareau

Page 2: PRÉCONISATIONS POUR VOS APPLICATIONS 4Dgipco-adns.com/file/~1060/GIPCO-WIKI/4D-Editeur/p...Voici quelques préconisations et bonnes pratiques, pleines de bon sens, à suivre lorsque

1/11

SOMMAIRESOMMAIRE.........................................................................................................................................1

I- Introduction...............................................................................................................................2

II- Applications4D.......................................................................................................................2

III- Numérosdeport...................................................................................................................2

IV- Processeur...............................................................................................................................2

V- Systèmed'exploitation.........................................................................................................3

VI- Mémoire...................................................................................................................................4

VII- Disquedur..............................................................................................................................6

VIII- Sauvegarde/Opérationsdemaintenance................................................................7

IX- Réseau.......................................................................................................................................9

X- Web..............................................................................................................................................9

XI- Machinephysiqueouvirtuelle.......................................................................................10

XII- Marque/Modèledemachine........................................................................................11

XIII- Tests/Recette/Déploiement.....................................................................................11

Page 3: PRÉCONISATIONS POUR VOS APPLICATIONS 4Dgipco-adns.com/file/~1060/GIPCO-WIKI/4D-Editeur/p...Voici quelques préconisations et bonnes pratiques, pleines de bon sens, à suivre lorsque

2/11

I- Introduction

Voici quelques préconisations et bonnes pratiques, pleines de bon sens, à suivre lorsque vous déployez des applications 4D, agrémentées d’informations techniques.

II- Applications 4D Recommandé :

- Utiliser le mode Unicode - Utiliser une version 64 bits - Utiliser une structure compilée

III- Numéros de port Recommandé : s'assurer que les ports ci-dessous soient disponibles et dédiés à l'application 4D Server

- ports obligatoires : o port de publication client/serveur (modifiable dans les propriétés de la base, par défaut 19813) o port applicatif (non modifiable : port de publication +1, par défaut 19814) o port pour le serveur SQL (modifiable dans les propriétés de la base, par défaut 19812 ; même

si vous n'utilisez pas le langage SQL, 4D vérifiera au démarrage si ce port est libre)

- ports facultatifs : o ports pour le serveur Web, utilisés pour les requêtes Web, SOAP ou REST (modifiables dans

les propriétés de la base, par défaut 80 (HTTP) et 443 (HTTPS)) o port pour l'interpréteur PHP (modifiable dans les propriétés de la base, par défaut 8002 sur

l’adresse 127.0.0.1) o d'autres ports peuvent également être utilisés par 4D, notamment par le plugin 4D Internet

Commands (http://doc.4d.com/4Dv15/4D-Internet-Commands/15/Annexe-B-Numeros-des-ports-TCP.300-2397835.fe.html)

IV- Processeur Recommandé:

- plusieurscœurs

- utiliserlemodepréemptifpourtirerintégralementpartidesmachinesmulti-cœurs(disponibleàpartirdelaversion4Dv15R5-exécutéencompilé64bitsuniquement)

- déclarerexplicitementtouteslesméthodesquevoussouhaitezdémarrerenmodepréemptif

(cocherl'optiondanslespropriétésdevosméthodesetvérifierleuréligibilitégrâceaucompilateur)

Depuislaversion4Dv11SQL,4Dtirepartieàtraverslesystèmedesmultiplescœurs(*).Eneffet,lesystèmed’exploitationrépartitle«tempsprocesseur»(totaldutempsdetouslescœurs)entrechaqueapplicationetentrelesthreadsdechaqueapplication.C’estensuitel’applicationquidéfinitlesprioritésdechacundesesthreads,chaquethreadtravaillantindividuellement.*:Lessystèmessupportantlemulti-threadingpermettentdesimuler2cœurslogiquespourchaquecœur,multipliantainsipardeuxlacapacitédetraitementde4DServer.Dans4D,ilexistedesthreadscoopératifsetdesthreadspréemptifs.4Dlesutiliseautomatiquement(pasdelogicieloudepréférencespécifique)enfonctionducode4Dexécuté.

Page 4: PRÉCONISATIONS POUR VOS APPLICATIONS 4Dgipco-adns.com/file/~1060/GIPCO-WIKI/4D-Editeur/p...Voici quelques préconisations et bonnes pratiques, pleines de bon sens, à suivre lorsque

3/11

Touslesthreadscoopératifsfonctionnentdanslethreadprincipalàladifférencedesthreadspréemptifsquisontdispatchésparleserveur4Dsurlesautresthreads.Eneffet,lorsqu'ilestexécutéenmodepréemptif,unprocessestdédiéàunCPU(processeur).Lagestionduprocessestalorsdéléguéeausystème,quipeutallouerchaqueCPUséparémentsurunemachinemulti-cœurs.Lorsqu'ilssontexécutésenmodecoopératif(seulmodedisponibledans4Djusqu'à4Dv15R5),touslesprocesssontgérésparlethread(processsystème)del'applicationparenteetpartagentlemêmeCPU,mêmesurunemachinemulti-cœurs.Parconséquent,enmodepréemptif,lesperformancesglobalesdel'applicationsontaméliorées,particulièrementavecdesmachinesmulti-cœurs,cardemultiplesthreadspeuventvéritablementêtreexécutéssimultanément.Lesgainseffectifsdépendentcependantdelanaturedesopérationsexécutées.Fondamentalement,lecodedestinéàêtreexécutédansdesthreadspréemptifsnepeutpasappelerd'élémentsayantdesinteractionsextérieurestellesqueducodedeplug-inoudesvariablesinterprocess.L'accèsauxdonnées,cependant,estpossiblecarleserveurdedonnéesde4Dprendenchargel'exécutionenmodepréemptif.Encontrepartie,puisqu'enmodepréemptifchaquethreadestindépendantdesautresetnongérédirectementparl'application,desconditionsspécifiquessontàrespecterdanslesméthodesquidoiventêtreexécutéesenpréemptif.Deplus,lemodepréemptifestdisponibleuniquementdanscertainscontextes.Notes:

- Unnouveautypedeprocess,appeléprocessWorker,vouspermetd'échangerdesdonnéesentren'importequelprocess,ycomprisdesprocesspréemptifs.

- Lanouvellecommande«APPELERFORMULAIRE»fournitunesolutionélégantepermettant

d'appelerdesobjetsd'interfacedepuisunprocesspréemptif.

- Bienqu'ellesaientétéconçuesprincipalementpourlesbesoinsliésàlacommunicationinterprocessdanslecontextedesprocesspréemptifs(accessiblesenversion64bitsuniquement),lescommandes«APPELERWORKER»et«APPELERFORMULAIRE»sontdisponiblesdanslesversions32bitsetpeuventêtreutiliséesavecdesprocessenmodecoopératif.

Ilfautsavoiraussiqu’unprocessnonlocalde4DDistantcommuniquetoujoursavecdeuxthreadsjumeauxsurleserveur:unthreadpréemptifpourlesrequêtesDB4D(créer,stocker,charger,supprimer,trier,chercher,etc.)etunthreadcoopératifpourlesrequêtesapplicatives(datedujour(*),lirevariableprocess(-1;..),etc.).UntroisièmethreadpréemptifpeutaussiêtrecréésivousexécutezdescommandesSQL(àl’appelàlacommande«DebutSQL»).Enfonctiondelacommandeexécutée,4Dutiliseteloutelthreadenétablissantlacommunicationsurleportcorrespondant:

- portdepublicationpourlesrequêtesDB4D(threadcoopératif)- portapplicatif(portdepublication+1)pourlesrequêtesapplicatives(threadpréemptif)- portSQLpourlesrequêtesSQL(threadpréemptif)

Enconclusion,ilesttrèsfortementrecommandéd'avoirunprocesseurmulti-cœursmêmesil'utilisationdetouslescœursdépendradescommandes4Dutiliséesdansvotreapplicationensachantqueplusvousêtespréemptif,plusvousserezrapidesurunemachinemulti-cœurs.

V- Système d'exploitation Recommandé:OS64bitsetcertifiépar4DImportant:Déployerlesapplications4Dsurdessystèmesd'exploitationcertifiésparnotredépartementQualité.Lesmatricesdecertificationsontdisponiblessurnotresiteweb:http://www.4d.com/fr/support/resources.html.

Page 5: PRÉCONISATIONS POUR VOS APPLICATIONS 4Dgipco-adns.com/file/~1060/GIPCO-WIKI/4D-Editeur/p...Voici quelques préconisations et bonnes pratiques, pleines de bon sens, à suivre lorsque

4/11

- SousWindows:o Apartirdelaversion4Dv15,

§ pour4D:opterpourWindows10,§ pour4DServeroupourvosserveursTSE:opterpourWindowsServer2008

R2(lagamme4Dv14etsupérieuressontincompatiblesavecWindowsServer2008Standard)oupourWindowsServer2012R2(lesversions4DWindowsnesontpascompatiblesavecl'option«ServerCore»deWindowsServer);

o Déployer4DServersurunemachinedédiée(sousWindowsServer,désactivertousles

rôles,notammentlerôleserveurdefichiersinstallépardéfaut);

o Déployerlagamme64bits:§ 4DServerestdisponibleenversion64bitsàpartirdelaversionv12,§ 4DDeveloperestdisponibleenversion64bitsàpartirdelaversionv15R5;

o Pourdesraisonsdeperformances,nousvousinvitonségalementàdésactiverlastratégie

desécuritélocale«ClientréseauMicrosoft:communicationssignéesnumériques(lorsqueleserveurl'accepte)»danslesoptionsdesécurité,quidiminuede15%lesperformanceslorsqu'elleestactive.

- SousMac:

o Déployerlagamme64bits:§ 4DServerestdisponibleenversion64bitsàpartirdelaversionv15.1,§ 4DDeveloperestdisponibleenversion64bitsàpartirdelaversionv15R5.

Lesversions64bitspermettentauxapplications4Dmonopostesainsiqu'auxapplications4Ddistantesdetirerpleinementpartidessystèmesd'exploitation64bits.Leprincipalavantagedel'architecture64bitsestqu'unemémoiredetailleplusimportantepeutêtreadressée.Bienquelargementréécrites,lesapplications4D64bitssonthautementcompatiblesaveclesbases4Dcourantes.Toutefois,étantdonnéqu'ellesutilisentlestechnologieslesplusrécentes,nousavonsdûmettreàjourquelquesfonctions,etenarrêterd'autres.D'unautrecôté,l'implémentationdel'architecture64bitsnousadonnél'opportunitédeprendreenchargedenouvellesfonctionnalitéspuissantescommelapossibilitédegérerlesprocessmultithread,lesimpressionsentièrementbaséessurlesystèmeoulesnouveauxéditeursd'étatsrapidesetd'étiquettes.

VI- Mémoire Recommandé:

- 8Gominimum- ECC(technologiedecorrectiond'erreurs)

Lamémoireallouéeàl'application4DServerdépendde4facteurs:

- laquantitédemémoiretotalesurvotremachine,- laquantitédemémoiredisponible,- dusystèmed'exploitation(32ou64bits),- delaversionde4DServerutilisée(32ou64bits).

Pourinformation,iln'estpaspossibled'avoiruncacheinférieurouégalà100Mo.Detoutefaçonlecacheesttrèsimportant,ilfautdoncréserverunequantitédemémoiresuffisante(aprèscalculdelamémoirenécessairepourlesprocess,etc.)aucachede4D.

- L'espacemémoireréservéaucacheestséparédel’espacemémoireutiliséparleserveurpourlesprocess.Effectivementlefaitd'augmenterlatailleducachediminuel'espaceréservéauxprocess.

Page 6: PRÉCONISATIONS POUR VOS APPLICATIONS 4Dgipco-adns.com/file/~1060/GIPCO-WIKI/4D-Editeur/p...Voici quelques préconisations et bonnes pratiques, pleines de bon sens, à suivre lorsque

5/11

- Lataillemaximalevarieenfonctiondunombred'utilisateursconnectésetdunombredeprocess

parutilisateur.Cependant1Goenvironestpardéfaututilisépar4D(endehorsdesprocess),notammentpourchargertoutesleslibrairiessystèmes.

- Lagestionducacheaétéaméliorée.Enparticulier,unnouveaumécanismeeffectuelesopérations

lesplusconsommatricesdanslamémoiretemporaire,cequipermetd’allégerlecacheprincipal.Lamémoiretemporaireapouravantageden’êtreutiliséequ’encasdebesoinetnemobilisepaslesressourcesdelamachine.Nousvousinvitonsàcalculerlamémoirenécessaireaubonfonctionnementde4DServer,etensuitedeladéduiredelamémoiretotaleallouéeparlesystèmeà4D.Vouspourrezainsiendéduirelatailledecachemaximalequevouspouvezallouer.Unetailledecacheexcessiverisqued’ailleursdediminuerlesperformancesgénéralesdusystème,voiredelerendreinstable.

- Pourconnaîtreletauxderéussiteilfautobserverlesvariationsdelamémoirecacheobservée.

Lorsquevousobservezunediminutionducacheutilisé,celasignifieque4Daeubesoindesupprimerdesobjetsafindelibérerdelamémoirepourcertainsobjetsdumoteurdedonnées.Silecacheestpurgéencoreetencore,c'estunebonneanalysequiindiquequelecacheesttroppetit.Danscecas,4Dabesoindepurgerdemanièrerépétéeunquartdesoncachedanslebutdelibérerassezdeplacepourlesobjetsdumoteurdedonnées.

- Lagestionducachedoitêtrelaisséauxsoinsde4D,seuleslatailleducacheetlafréquence

d'écritureducachesontimportantesdésormais.Nousvousconseillonsdenepasutiliserlacommande«ECRIRECACHE»parexemple,ilestpréférabled'utiliserl'option«Ecriturecachetoutesles20secondes»,quispécifielesintervallesdesauvegardedesdonnées,afindecontrôlerl'écritureducachededonnéessurledisque.4Dutiliseeninterneunsystèmeintégrédecachededonnéespermettantd'accélérerlesopérationsd'Entrée/Sortie.Lefaitquedesmodificationsdedonnéessoient,parmoment,présentesdanslecachededonnéesetpassurledisque,estentièrementtransparentpourvotrecode.Parexemple,sivousappelezlacommandeCHERCHER,lemoteurde4Dvaintégrerlesdonnéesprésentesdanslecachepoureffectuerl'opération.

Nousvousconseillons:

- denepascocherl’option«Calculducacheadaptatif»afindefixerunetailledecachefixe;

- dedécocher,sousMac,l'option«Maintenirlecacheenmémoirephysique»;

- prévoirsuffisammentdemémoiredanslamachinepourlecache,lamémoiremoteurde4DServeretlesystèmed'exploitationlui-même;

- déployerlaversion64bitsde4DServer(uneapplication32bitsnepeutpasutiliserplusde4Go

demémoire,uneapplication64bitsdisposequantàellede8Tod'espaceadressablethéorique!);

- déterminerlavaleuridéaleducachepourvotrebaseenproductionenutilisantlecomposant«

4D_Info_Report»(http://taow.4d.com/Outil-4D-Info-Report/PS.1938271.fr.html).(Prévoirdesslotsdelibresilefichierdedonnéesestamenéàgrossirrapidementpourrajouterdelamémoireparlasuite)Legestionnaireducachedelabasededonnéesaétéentièrementréécriten4Dv16etamélioreainsil'utilisationd'uncachetrèsimportantpourlesordinateursmodernes(avec64oumême128Godecache)permettantdeprofiterdesfaiblesprixdesbarrettesmémoireetpermettantainsidestockerunebasededonnéesdegrandetailleentièrementenmémoire.Ilamélioreégalementlessituationsoùlecacheestdepetitetaillealorsquelefichierdedonnéesesttrèsvolumineuxgrâceàunemeilleuregestiondesprioritéspourlesobjetsdedonnéesàcontenirouàlibérerducache.Enconséquence,labasededonnéesseraplusrapide,permettantdegérerplusdedonnéesetplusd'accèsutilisateurssimultanés.

Page 7: PRÉCONISATIONS POUR VOS APPLICATIONS 4Dgipco-adns.com/file/~1060/GIPCO-WIKI/4D-Editeur/p...Voici quelques préconisations et bonnes pratiques, pleines de bon sens, à suivre lorsque

6/11

Enfin,depuislav16,lecachepeutêtreconfiguréouanalysédynamiquementaveclescommandessuivantes:

- Lacommande«ECRIRECACHE»acceptedésormaisunparamètre*pourviderlecacheouunnombred'octetsminimumdelibérationducache(uniquementpoureffectuerdestests)

- Lacommande«FIXERTAILLECACHE»fixedynamiquementlatailleducachedelabasede

donnéesdanslesversions64bitsde4D

- Lacommande«Lireinformationscache»récupèredesinformationsrelativesàl’utilisationducacheen64bits

- Lacommande«Liretaillecache»retournelataillecouranteducache

- Lesélecteur«Périodicitéécriturecache»delacommande«FIXERPARAMETREBASE»permet

delireoudefixerlapériodicitédel'écritureducachesurledisque

VII- Disque dur Recommandé:

- UnsystèmededisquesSSDultraperformantavecRAID10matériel(avecunecartecontrôleurRAID,detypePERCparexemple)pourstockerlabasededonnées4D

- UndisqueSSDdesecours(siundesdisquesdusystèmeRAIDtombeenpanne)

- Undisquedecapacitésuffisantepourlessauvegardes

Attention:ilestpréférabledes'intéresserauxvitessesd'écritureetdelectureavantd'acheterundisqueSSD.L'idéalseraitdepouvoirystockerlesystème,4DServeretl'intégralitédelabasededonnées.Nenégligezpasl'achatd'undisquedesecours(pourgarantirlaprotectiondusystèmeRAID):

- Lorsqu’undisqueestdéfectueux:iln’yaplusaucuneprotectiontantquecedisquen’estpasréparé.

- Lorsquedeuxdisquessontdéfectueux:lesystèmes’arrête.

Celasignifie:

- qu’ilfautsurveillerledisque,etnepasfaireuneconfianceaveugleauRAID,

- quecen’estpaslejouroùvousêtesconfrontéàunsouciqu’ilfautcommanderledisquederemplacement.Eneffet,lechefcapabled’acheterseraalorsindisponible,voirleproduitseraenrupturedestockchezlefournisseur…Bref,vousvousretrouverezalorsdansunesituationoùunseconddisquedelamêmemarque,delamêmesérieetprobablementdumêmelotn’auraqu’uneenvie:semettreaureposcommesonpetitfrère!

Pouraméliorerlatoléranceauxpannes,lasécuritéet/oulesperformancesdel'ensemble,lamiseenplaced'unsystèmeRAIDestuntrèsbonchoix:

- pourlabasededonnées:lemeilleurchoixestleRAID10(sécuritéetperformances)

- pourlessauvegardes:lemeilleurchoixestleRAID5(prixetsécurité)

Page 8: PRÉCONISATIONS POUR VOS APPLICATIONS 4Dgipco-adns.com/file/~1060/GIPCO-WIKI/4D-Editeur/p...Voici quelques préconisations et bonnes pratiques, pleines de bon sens, à suivre lorsque

7/11

Voustrouverezci-dessousuncomparatifdesdifférentsniveauxdeRAIDsuividestypesdesystèmeRAID.Cetableaun'apasétéréalisépar4Dmaisjetrouvequ'ilrésumebiencequ'ilfautsavoirsurleRAID.

VIII- Sauvegarde / Opérations de maintenance Recommandé:

- Utiliserlemécanismedessauvegardesde4D

- Activerlefichierd'historique

- Décocherl'option«Annulerl'opérationauboutdeXtentatives»dansl'onglet«Sauvegarde»despropriétésdevotrebase4D

- Vérifieretcompacterlefichierdedonnéesrégulièrement(depuislav13,ilestpossiblede

détecterlafragmentationd'unetable4Detdoncd'agirenconséquencegrâceàlacommande«Lirefragmentationtable»)

- Fermerlafenêtred'administrationaprèschaqueutilisation

Depuislaversion4Dv15R4,nousavonsoptimisédefaçonimportantel'algorithmederéindexationglobaledelabasededonnées.Toutleprocessusaétérevu,etl'opérationpeuts'effectuerdésormaisjusqu'àdeuxfoisplusrapidement.

Page 9: PRÉCONISATIONS POUR VOS APPLICATIONS 4Dgipco-adns.com/file/~1060/GIPCO-WIKI/4D-Editeur/p...Voici quelques préconisations et bonnes pratiques, pleines de bon sens, à suivre lorsque

8/11

Note:Uneréindexationglobaleestnécessaire,parexemple,aprèsuneréparationdelabasededonnéesoulorsquelefichier.4dindxaétésupprimé.Commechaqueenregistrementdechaquetableindexéedoitêtrechargéenmémoiredurantl'indexation,l'optimisationaviséàminimiserleséchangesentrelecacheetledisque(swaps).L'opérationestdésormaiseffectuéeséquentiellementsurchaquetable,cequiréduitlesbesoinsenchargementetendéchargementd'enregistrements.Idéalement,silecacheétaitassezgrandpourcontenirlatotalitédufichierdedonnéesetdesindex,lenouvelalgorithmederéindexationn'apporteraitaucuneamélioration.Cependant,lamémoiredisponiblesurleserveurn'estgénéralementpasaussigrande.Silecacheestassezgrandpourconteniraumoinslesdonnéesetlesindexdelatablelaplusvolumineuse,alorslenouvelalgorithmeserajusqu'àdeuxfoisplusrapidequeleprécédent.Réaliserdessauvegardesrégulièresdesdonnéesestimportantmaisnepermetpas,encasd’incident,derécupérerlesdonnéessaisiesdepuisladernièresauvegarde.Pourrépondreàcebesoin,4Ddisposed’unoutilparticulier:lefichierd’historique.Cefichierpermetd’assurerlasécuritépermanentedesdonnéesdelabase.Enoutre,4Dtravailleenpermanenceavecuncachededonnéessituéenmémoire.Toutemodificationeffectuéesurlesdonnéesdelabaseeststockéeprovisoirementdanslecacheavantd’êtreécritesurledisquedur.Ceprincipepermetd’accélérerlefonctionnementdesapplications;eneffet,lesaccèsmémoiresontbienplusrapidesquelesaccèsdisque.Siunincidentsurvientsurlabaseavantquelesdonnéesstockéesdanslecacheaientpuêtreécritessurledisque,vousdevrezintégrerlefichierd’historiquecourantafinderécupérerentièrementlabase.Sivoustravaillezenenvironnementvirtuel,ilestrecommandéd'arrêterlabaseavantd'effectuerunsnapshot,pourêtrecertainquetouteslesdonnéesstockéesenmémoiresoientécritesdanslefichierdedonnées.Enplusdelasauvegardeetdufichierd'historiquede4D,nousvousinvitonsàplanifierrégulièrementdesopérationsdemaintenanceenvérifiantetencompactantlefichierdedonnéesetd'index.Unefoisvotrestratégiedesauvegardemiseenplace,nousvousinvitonsàenvisagerlepire(incendie,vol)etdoncd'effectuerunecopiehebdomadairedelabasesurunsupportinertedansunautreendroitsécurisé.Danslecadred'applicationscritiques,ilestégalementpossibledemettreenplaceunsystèmedesauvegardeparmiroirlogique,permettantunredémarrageinstantanéencasd'incidentsurlabaseenexploitation.Lesdeuxmachinescommuniquentparleréseau,lamachineenexploitationtransmettantrégulièrementàlamachinemiroirlesévolutionsdelabaseparl'intermédiairedufichierd'historique.Decettefaçon,encasd'incidentsurlabaseenexploitation,vouspouvezrepartirdelabasemiroirpourreprendretrèsrapidementl'exploitationsansaucunepertededonnées.Lesprincipesmisenœuvresontlessuivants:

- Labaseestinstalléesurleposte4DServerprincipal(posteenexploitation)etunecopieidentiquedelabaseestinstalléesurleposte4DServermiroir.

- Untestaudémarragedel’application(parexemplelaprésenced’unfichierspécifiquedansun

sous-dossierdel'application4DServer)permetdedistinguerchaqueversion(enexploitationetenmiroir)etdoncd’exécuterlesopérationsappropriées.

- Surleposte4DServerenexploitation,lefichierd’historiqueest«segmenté»àintervallerégulier

àl’aidedelacommande«Nouveaufichierhistorique».Aucunesauvegarden’étanteffectuéesurleserveurprincipal,labaseestenpermanencedisponibleenlecture/écriture.

- Chaque«segment»defichierd’historiqueestenvoyésurlepostemiroir,oùilestintégréàla

basemiroiràl’aidedelacommande«INTEGRERFICHIERHISTORIQUE».

Page 10: PRÉCONISATIONS POUR VOS APPLICATIONS 4Dgipco-adns.com/file/~1060/GIPCO-WIKI/4D-Editeur/p...Voici quelques préconisations et bonnes pratiques, pleines de bon sens, à suivre lorsque

9/11

Lamiseenplacedecesystèmenécessitelaprogrammationdecodespécifique,notamment:

- unminuteursurleserveurprincipalpourlagestiondescyclesd’exécutiondelacommande«Nouveaufichierhistorique»,

- unsystèmedetransfertdes«segments»defichierd’historiqueentreleposteenexploitationet

lepostemiroir(utilisationde4DInternetCommandspouruntransfertviaftpoumessagerie,WebServices,etc.),

- unprocesssurlepostemiroirdestinéàsuperviserl’arrivéedenouveaux«segments»defichier

d’historiqueetàlesintégrervialacommande«INTEGRERFICHIERHISTORIQUE»,

- unsystèmedecommunicationetdegestiond’erreursentreleserveurprincipaletleserveurmiroir.

Attention:Lasauvegardeparmiroirlogiqueestincompatibleaveclessauvegardes«standard»surlabaseenexploitationcarl’emploisimultanédecesdeuxmodesdesauvegardeentraîneladésynchronisationdelabaseenexploitationetdelabasemiroir.Parconséquent,vousdevezveilleràcequ’aucunesauvegarde,automatiqueoumanuelle,nesoiteffectuéesurlabaseenexploitation.Enrevanche,ilestpossibledesauvegarderlabasemiroir.Depuislaversionv14,ilestpossibled'activerlefichierd'historiquecourantsurlepostemiroir.Vouspouvezainsimettreenplaceun«miroirdemiroir»,oudesserveursmiroirsensérie.Cettepossibilités'appuiesurlacommande«INTEGRERFICHIERHISTORIQUEMIROIR».

IX- Réseau Recommandé:

- Utiliserl'anciennecoucheréseaujusqu'àlaversionv15R5- Utiliserlanouvellecoucheréseauàpartirdelaversionv16

Attention:l'anciennecoucheréseaun'estpasdisponibledanslesversions64bitsde4DDeveloper(WindowsetMac)etdanslaversion64bitsde4DServer(Macuniquement).Ilesttrèsimportantpour4DServerd'avoirenpermanencesuffisammentdebandepassantepourcommuniqueravecsespostesdistants.Sivousmutualisezlabandepassante,ilfaudraenréserverunepartiepour4DServer.Eneffet,lorsquelabandepassantevientàmanquer,certainspaquetssontperdusetcelaprovoqueinévitablementdeserreurscôtéServeur.Sitropd'erreursréseausurviennentaumêmemomentoudefaçontropfréquence,vousdéstabilisez4DServer.Sachezégalementque,sivousutilisezleserveurWebde4Detquevousdésirezséparerletraficpourdesraisonsdesécuritéet/oudeperformances,ilestpossiblededédierunecarteréseauauxutilisateursde4DDistantetuneautreauxrequêtesWeb,SOAPouREST.

X- Web Recommandé:

- utiliseruneversion64bitsde4D

- utiliser4DServerou4Denmodelocal(lemodepréemptifn'estpasprisenchargepar4Denmodedistant)

- utiliserunebasecompilée

Page 11: PRÉCONISATIONS POUR VOS APPLICATIONS 4Dgipco-adns.com/file/~1060/GIPCO-WIKI/4D-Editeur/p...Voici quelques préconisations et bonnes pratiques, pleines de bon sens, à suivre lorsque

10/11

- avoirlemaximumdeméthodesbasesetméthodesprojetsrelativesauWebconfirméesthread-safepar4DCompiler

- danslespropriétésdevotrebase:

o cocherl'option«Utiliserdesprocesspréemptifs»pouractiverlemodepréemptif,

o cocherl'option«utiliserlecacheWebde4D»etfixerunetailledecachede524288Ko,

o fixerà8heuresledélaideconservationdesprocessinactifsetcocherlacase«gestion

automatiquedessessions»pourquelesutilisateursWebpuissentréutiliserlemêmecontextedurantlajournée(sivousnelesgérezpasparprogrammation),

o cocherl'option«utiliserlesconnexionspersistantes».

Depuislaversionv16,leserveurWebintégréde4D(en64bitsuniquement)pourWindowsetpourMacOSXpermetdetirerpleinementpartidumulti-cœursenutilisantdesprocessWebpréemptifsdanslesapplicationscompilées.Laplupartdescommandesde4DliéesauWeb,lesméthodesetlesURLdelabasededonnéessontthread-safeetpeuventêtreutiliséesenmodepréemptif.VouspouvezconfigurervotrecodeliéauWeb,ycomprislesbalisesHTML4DetlesméthodesbaseWeb,afinqu'ils'exécutesimultanémentsurleplusgrandnombredecœurspossibles.

XI- Machine physique ou virtuelle Recommandé:machinephysiqueMêmesi4Dfonctionneenenvironnementvirtueletestdoncéligibleentermed'exploitabilité,côtéperformancesnotreexpériencenousmontrequ’unemachinephysiqueoffredemeilleuresperformancesdansletempsàressourceséquivalentes.S’ilnevousestpasimposédevirtualiserleserveur4Denproduction,nousvousconseillonsdansunpremiertempsdeledéployersurunemachinephysique.Puisdansunsecondtemps,deprogrammerdestestspoussésenenvironnementvirtuel.Vousaurezainsil’avantagedepouvoircomparerles2solutions.Toutefois,sil’onpeuttrouverunavantageàlavirtualisationc’estlasouplessed’allocationdesressources(CPU,mémoirenotamment).Ilestpossibled’allouerdesressourcessupplémentairesparlasuite,voirmêmed’allouerdesressourcesentempsréel,enfonctiondel’activitédelamachine.Nousavonsd'ailleursuncertainnombredeclientsquitravaillentavecdesenvironnementsvirtualisés,deplusenplusd’ailleurs.NousavonsmêmedesclientsquidéploientdesserveursTSEvirtualiséssurdesserveurslames.Nousn’avonscependantpasdedocumentsofficielscertifiantlefonctionnementde4Denenvironnementvirtualiséouprivilégiantunesolutionplutôtqu'uneautre.Nouspréconisonsuniquementdes’assurerquelesperformancesdelamachinesoientsuffisantesentermesderessources(mémoire,processeur,etc.)ouquelesystèmed’exploitationvirtualisésoitcertifiéaveclaversionde4Dinstallée.DemanièregénéralelesressourcesCPUetRAMdoiventêtreunpeuplusimportantesenenvironnementvirtualiséparrapportàunesolutionnonvirtualisée.Depluslesperformancesobservéesdépendentgrandementduparamétragedelamachinevirtuelle(CPU,mémoire,etc.maisaussidudisqueduretdelacarteréseau(caractéristiques,est-ellepartagée,dédiée,correctementconfigurée,etc.)),delasolutionutilisée,delaversiondelasolutionetdusystèmesurlequelestinstallélasolution.Pourcettepartiejevousinviteàconsulterlessitesetforumsdeséditeursdesolutionsvirtualiséesainsiquelesétudescomparatives.Remarque:Sivoustravaillezenenvironnementvirtuel,ilestrecommandéd'arrêterlabaseavantd'effectuerunsnapshot,pourêtrecertainquetouteslesdonnéesstockéesenmémoiresoientécritesdanslefichierdedonnées.

Page 12: PRÉCONISATIONS POUR VOS APPLICATIONS 4Dgipco-adns.com/file/~1060/GIPCO-WIKI/4D-Editeur/p...Voici quelques préconisations et bonnes pratiques, pleines de bon sens, à suivre lorsque

11/11

XII- Marque / Modèle de machine Nousn'avonspasdepréconisationsparticulières,ilfautcependantregarderendétailslematérielquicomposelamachineavantdel'acheterafindes'assurerquelescomposantssoientcompatiblesentreeuxetquesescaractéristiquescorrespondentàvosattentesetauxpréconisationsci-dessus.

XIII- Tests / Recette / Déploiement Nedéployezpasvotrebasededonnéessansl'avoirtestéaupréalabledanssonfuturenvironnementoudansunenvironnementsimilaire(matériel,versionde4Didentique,etc.)etsurtoutdanssesfuturesconditionsd'utilisation(aveclemêmenombred'utilisateurssimultanésenutilisantdesscénariosdetestsUtilisateur).Stressersabasededonnéespourenconnaîtreleslimites,nondétectablesparl'équipededéveloppement,vousépargnerabiendessoucisenProductionetpermettrad'optimiserlesfonctionnalitéslesplusutilisées.Lestestsetlarecettesontlesclésd'undéploiementréussi!