PRÉCONISATIONSPOURVOSAPPLICATIONS4DDernièremiseàjour:2février2017 Auteur:CédricGareau
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
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é.
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.
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.
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.
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é)
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.
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».
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
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.
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!