• Aucun résultat trouvé

Utilisation du regroupement de connexions

Dans le document IBM DB2 Alphablox. d administration GC (Page 143-151)

Le présentchapitrezdécritcommentconfigurerDB2Alphabloxpourutiliserle regroupement deconnexionsavecdessourcesde donnéesrelationnelleset multidimensionnelles.

Regroupement de connexions - Présentation

Dès qu’uneapplicationWebdoitinteragiravecunebasededonnées relationnelle ou multidimensionnelle,elledoitd’abords’yconnecter.Chacunede cesconnexions connaîtunesurcharge,lorsdel’utilisationdesressourcespourétablirlaconnexion, lagéreretlalibérerlorsqu’elle n’estplusrequise.DansdesapplicationsWeb,les interactionsutilisateuraveclesbasesdedonnées sontgénéralementdecourte durée etsouvent,lesopérationsde connexionàunebase dedonnéesetde déconnexiondecettedernièresontpluslonguesqueletraitementdesrequêtes.

Pour traiterplusefficacementcesinteractionsdebasede données,lesserveurs d’applicationetlesbasesdedonnéesincluentunefonctionderegroupementde connexions. Lespoolsdeconnexionssontdegroupespréétablisdeconnexionsqui peuvent êtrepartagéesavecdesapplications,permettant lesinteractionsdebase de données nécessairesmais n’utilisantpasautantderessourcesetdetempsquedes connexionsindividuelles.

S’ilest disponibleetcorrectement configuré,DB2Alphabloxpeututiliserdes regroupements deconnexion pouraméliorerlesperformancesdevosapplications.

Le regroupementdeconnexionsavecDB2Alphabloxpeutêtreutiliséavecdes serveurs d’applications(IBMWebSphereetBEAWebLogic)pour leregroupement de connexionsde basededonnées relationnellesouaveclesupportde

regroupement deconnexionsdanslesservicesde déploiementIBMDB2 OLAP Server ouHyperionEssbase.

Regroupement de connexions de bean géré par message

Le regroupementdeconnexionsdebasede donnéesmultidimensionnellen’estpas prisenchargeàl’aidedeconnexionsJDBCstandardquifonctionnentuniquement avecdessourcesdedonnées relationnelles.Pour DB2OLAPServer ouHyperion Essbase,DB2Alphabloxpeututiliserlesimplémentationsduregroupementde connexionsdisponibledanslesservicesdedéploiement IBMDB2OLAPServer ou HyperionEssbase.

Regroupement de connexions DB2 OLAP Server et Hyperion Essbase

Lesservicesde déploiementIBMDB2 OLAPServerou HyperionEssbasepeuvent êtreconfiguréspourlapriseenchargedu regroupementdeconnexions.Chaque pooldeconnexionsdéfiniindiquelenom d’utilisateuroulemot depasseDB2 OLAPServerouEssbaseà utiliser.L’accèsd’unpoolde connexionspeutêtre définipourtous lesutilisateurs (“Autorisertous lesutilisateurs”)oupour uneliste d’utilisateurs etdegroupesdéfinis.SiunesourcededonnéesDB2Alphablox définitl’adaptateurdesservicesdedéploiement IBMDB2OLAPServer ou HyperionEssbase Deploymentetquelespoolsdeconnexionssontcorrectement configurésdanslesservicesdedéploiement IBMDB2OLAPServer ouHyperion Essbase,DB2Alphabloxpeututilisercespoolsde connexions.Pourplusdedétails

sur laconfigurationdespoolsdeconnexionsEssbase,voirladocumentation relativeauxservices dedéploiementIBM DB2OLAPServerou HyperionEssbase.

Microsoft Analysis Services et regroupement de connexions

L’utilisation duregroupementdeconnexionsdanslesimplémentationsMicrosoft Analysispeutêtrebénéfiqueà l’améliorationdesperformancesdesapplications analytiques. Pardéfaut, leregroupementdeconnexionsest désactivé.

Lorsque lepooldeconnexionsestactivéetquelaméthodedisconnect()du

DataBloxest appelée,leDataBloxseradéconnectéemais laconnexionADOnesera pasfermée, elleseraplacéedansunpoolde connexionsetpourra alorsêtre réutilisée. Lorsqu’uneconnexionDataBloxultérieuredemandeuneconnexionqui correspondà unélémentdupool, laconnexionestsuppriméedu pooletattribuée auDataBlox.Sinon,unenouvelleconnexion estcréée.Uneconnexion placéeen poolest indexéeparrapport aunomd’utilisateurde lasourcede données,aumot de passe,àlachaînedufournisseur,aucatalogue(nomdelabasede données MicrosoftAnalysisServices)etauschéma(quia généralementlavaleurnull caril n’est pasutiliséparMicrosoftAnalysisServices).Cescinq propriétésdoivent correspondreafinqu’uncomposantDataBloxpuisse utiliserunedesconnexionsdu pool. Lamodification delachaînedefournisseurdansdifférentessources de données génèredifférentesconnexionsuniquedanslepool.Chacune deces connexionsuniquesest uneclé depooldeconnexions.Par exemple,s’ilexiste deux connexionsutilisateur1versbasededonnées1 utilisantlachaînedefournisseur par défautde"MSOLAP"etuneautre connexiondumêmeutilisateurversla mêmebasede donnéesavecunechaînedefournisseur″MSOLAP;DefaultIsolation Mode=1;Execution Location=3;ClientCacheSize=0;″,ilexisteratrois connexions utilisant deuxdifférentesclésdepooldeconnexions.

Activation du pool de connexions

Par défaut,lepoolde connexionsMSOLAPestdésactivé. Pourl’activer,vous devez attribuerlavaleurtrueàlapropriétéde serveur

MSOLAPEnableConnectionPool.

Pour activerlepooldeconnexions,procédez commesuit :

1. Ouvrezuneconsoletelnetsur votreserveurDB2Alphablox(ouutilisezla fenêtreAdminConsole, disponibledanslespagesd’administration DB2 Alphabloxs).

2. Définissezlapropriété serveurMSOLAPEnableConnectionPoolensaisissant"set MSOLAPEnableConnectionPooltrue"etappuyezsur latoucheEntrée.Lemessage suivants’affiche:"Serverproperty'EnablepoolingoftheMSOLAPconnection pool'settotrue."

3. Entrez"save"puisappuyez surlatoucheEntrée.Le message"Serverproperties saved"s’affiche.

Remarque: Sivousn’enregistrezpaslapropriété,lapropriétédu serveur s’appliqueuniquementlorsde lasessionserveurencours.

Pour désactivercepooldeconnexions,effectuez ànouveaulaprocédure précédentemais attribuezlavaleurfalse àlapropriété

MSOLAPEnableConnectionPool.

Utilisation du pool de connexions

Lorsdel’utilisation dupooldeconnexionsDB2AlphabloxMicrosoftAnalysis Services,vousdevezvousassurerquedanstouslesDataBlox,lavaleur trueest attribuée àlapropriétéautoDisconnect.Sicen’estpaslecas,lesconnexionsne serontpasrenvoyéesaupooldisponibleavantlafindelasession utilisateur.De plus, lecomportement delaméthodeclearClientCache()est différentquelorsqu’il n’existaitpasde regroupementdeconnexions.Si laméthode clearClientCache()est appelée lorsqueleregroupementdeconnexionsestactivé,elleeffacedupool disponibletoutes lesconnexionsdontlaclédepooldeconnexionscorrespondà la connexion duDataBlox.Vouspouvezégalement effacerl’intégralitédupoolde connexionsà l’aidede laméthode ODBOBridgeJavaAPI.clearPool().Cetteméthode efface touteslesconnexionsADOdupooldisponible.

Restriction du pool de connexions

Pour lesenvironnements avecunfortaccèsconcurrentetcomportantpeude connexionsregroupéesuniques(nomsd’utilisateur),vouspouvezaméliorer la consommationde mémoireetlesperformancesenrestreignantlatailledupool.La propriété serveurMSOLAPConnectionPoolLimita étéajoutée.Ellelimitelenombre de connexionsMSOLAPactivesqueDB2Alphabloxaouvertparclé depoolde connexions. Cetélémentinclutlesconnexionsquisetrouventdanslepool.Cette fonctiondoitêtreutiliséeavecvigilance.Elleest conçueuniquementpour l’environnementuniquedécritici.Lapropriété MSOLAPConnectionPoolLimit limite lenombrede connexionspar clédepooldeconnexions. Utilisezlapropriété serveurMSOLAPConnectionPoolLimit afinde définirlenombremaximalde connexions.

Par exemple,l’attribution delavaleur4 àMSOLAPConnectionPoolLimit définitle nombre maximalde connexionsMSOLAPouvertesparcléde poolde connexionsà 4. Danscetexemple,supposonsquelesconnexionsà MSASsontidentiquesà l’exception delapropriétédenom d’utilisateuretquevousdisposezuniquement de troisnoms d’utilisateur(Cadre,Directeur etAdmin)quipeuventseconnecter.

Si uncomposantDataBloxtentedeseconnecterà l’aidede l’IDutilisateurAdmin etqu’il s’agitde lacinquièmeconnexion,ildoitattendrequ’uneconnexion pource nom d’utilisateurselibère(ouseferme)etsoitplacéeànouveaudanslepool, ainsi lenombrede connexionsouvertesest inférieurà lalimite.

Optimisation du pool de connexions

Al’aideduregroupementdeconnexionsDB2AlphabloxMicrosoftAnalysis Services,vouspouvezajuster lepoolafind’optimiserlesperformanceset l’utilisation delamémoire.Plusieursfacteurs doiventêtreprisencompte Cachecôtéclient deMicrosoftAnalysisServices: Unconcept quin’est généralement pasreconnu danslaconnectivitéest l’importanceducachecôté client MicrosoftAnalysisServices.MSASpeutplacerencacheplusieurséléments sur l’hôteDB2Alphablox.Par exemple,lesmesurescalculéesseronttoujours calculées etplacéesencachedanslacoucheADOsurl’hôteAlphablox.Siles informations sontréutiliséesdemanièrecontinueentrelesdifférentessessions Alphablox, ilestpréférabled’avoiruneconnexionADOouverteenpermanence quicontientcesinformations.

Remarques surle regroupementdeconnexions: Leregroupement deconnexions est utilelorsquevousavezunnombrelimité declésde poolde connexionutilisées lorsduprocessusdeconnexion (nombrerestreintdenomsutilisateurdistincts)ou lorsque lessessionsDB2AlphabloxontplusieursconnexionsBloxquiutilisentla mêmecléde poolde connexions.

N’utilisezpasderegroupementde connexionssitouslesutilisateurs(pourlesquels desclésdepooldeconnexionsuniquessontrequises)sontuniquesetquevous avezunseulDataBloxpar clédepooldeconnexionsousivousavezungrand nombre declésde poolsdeconnexionsetquevousnepouvezpasleseffacerà la findessessionsutilisateur.

Utilisation dela propriétéautoDisconnect: Vousdevezpresquetoujoursutiliser lapropriété DataBloxautoDisconnectlorsdel’utilisation duregroupementde connexions. Sinon,lesconnexionsADOneserontpasrenvoyéesaupoolpour réutilisation.

Utilisation dela méthodeclearClientCache(): Sivousutilisezungrandnombre de clésde poolde connexions(autrementdit,chaque connexionà Microsoft AnalysisServicesestunutilisateurayantunnomspécifique), vouspouvezappeler laméthode DataBloxclearClientCache()surchaquecomposantDataBloxavecune clé depooldeconnexionsuniquelorsque l’utilisateuraterminé lasession.Cette action estgénéralementeffectuéevia unepagede déconnexionappelée lorsque l’utilisateur sedéconnecte demanièreexpliciteouferme safenêtrede navigateur.

Utilisation dela méthodeclearPool(): Danslaplupartdescas,ilpeutêtre judicieuxde viderrégulièrementlepooldeconnexions. Unsimpleservlet

temporisateurquividelepooltouslessoirsest unebonnesolutionpourlaplupart desenvironnements.

Contrôleet gestiondupooldeconnexions: Lesméthodesstatiquessuivantes sont disponiblessurlaclasseODBOBridgeJavapourcontrôleretgérerlepoolde connexions:

ODBOBridgeJavaAPI.poolSize()

Renvoielenombredeconnexionsdanslepooldisponible ODBOBridgeJavaAPI.clearPool()

Déconnectelesconnexionsdupooldisponible ODBOBridgeJavaAPI.getMaximumNumberOfConnections()

Extrait lenombremaximalde connexionsMSASpouvantêtreouvertes ODBOBridgeJavaAPI.getNumberOfOpenConnections()

Extrait lenombreencoursde connexionsMSASouvertes

Le nombredeconnexionsADOest égalaunombredeconnexionsdanslepool disponiblepluslenombredeconnexionsutilisées.

L’exemple descriptletJSPutiliselesméthode précédentespourgéreretcontrôler unpooldeconnexions:

<% ODBOBridgeJavaAPI.setMaximumNumberOfConnections(15);

int count = ODBOBridgeJavaAPI.poolSize();

out.write("Number of connections in the pool: "+count+"<br>");

count = ODBOBridgeJavaAPI.getNumberOfOpenConnections();

out.write("Number of connections active: "+count+"<br>");

count = ODBOBridgeJavaAPI.getMaximumNumberOfConnections();

out.write("Connection limit: "+count+"<br>");

%>

Regroupement de connexions de base de données relationnelle

Un poolde connexionsde basededonnées relationnelleest ungroupe nomméde connexionsJDBCidentiquesàunebase dedonnéesrelationnellecrééeslorsqu’une pooldeconnexionsestenregistrésurunserveurd’applications.Uneapplication Webpeut “emprunter”uneconnexion danslepool,utiliser cettedernière lors d’une interactionaveclabase dedonnéespuisrenvoyerlaconnexion aupoolen fermant laconnexion.

Le tableausuivant metenévidencelesavantages del’utilisationdu regroupement de connexions:

Avantage Description Améliorationdu

tempsderéponse

Dèsqu’uneressourcetented’accéderàunebasededonnées,elle doitseconnecteràcettedernière.Lorsdudémarraged’unpoolde connexions,ellecréeunnombredéfinideconnexionsàlabasede donnéesphysique.Ainsi,iln’estplusnécessairedecréerdes connexionsdebasededonnéespourchaqueapplication.En supprimantlestâchesdecréation,degestionetdelibérationdes connexions,lespoolsdeconnexionspeuventaméliorerdemanière significativeletempsderéponsepourlesextractionsd’ensemblesde résultats.

Abstractionàpartir desbasesde données sous-jacentes

Leregroupementdeconnexionsoffreunecouched’abstraction provenantdesbasesdedonnéessous-jacentes.Ilestainsiplusfacile dechangerdebasededonnéesd’applicationsansprendreen comptelesexceptionsSQLdesdifférentsfournisseurs.Alaplace,il voussuffitd’utiliserl’exceptionderegroupementdeconnexionsdu serveurd’applications.

Gestiondes connexions simultanées

Sivousavezunnombrelimitédeconnexionsdebasededonnées suiteàdesrestrictionsdelicence,leregroupementdeconnexions peutêtreutilisépourgérerlesconnexionsdebasededonnées simultanées.

Utilisation de DB2 Alphablox pour le regroupement de connexion de base de données relationnelle

Si vousutilisezdesserveurs d’applicationsWebSphereetWebLogicavecDB2 Alphablox, lesélémentssuivantspeuvent utiliserleregroupementdeconnexions: v Sourcesde donnéesDB2Alphablox

v RéférentielDB2Alphabloxsousforme debasede données v Créationdecubede basededonnées relationnelle

v ReportBlox v CommentsBlox

v Beansde connexionJDBC

L’ensembledesfonctionsDB2Alphabloxrépertoriéesci-dessus,hormislessources de donnéesDB2Alphabloxet leréférentielDB2Alphabloxsousformedebase de données relationnelle,tireront automatiquementpartiduregroupementde connexionsdebase dedonnéesrelationnelles’ilestdisponibleetcorrectement configuré.

Sources de données DB2 Alphablox et regroupement de connexions de base de données relationnelle

Pour utiliserleregroupement deconnexionsdebasededonnées relationnelleavec DB2Alphabloxetlesserveursd’applicationsWebSphereouWebLogic,l’option ApplicationServer DataSourceAdapterdoitêtresélectionnéedanslesdéfinitions de sourcededonnéesDB2Alphablox. Cetteoptiond’adaptateurapparaît

uniquementlorsqueDB2Alphabloxestconfigurépour utiliserlesserveurs d’applications WebSphereetWebLogicprisencharge.

Remarque: Lorsdel’utilisationdespoolsdeconnexionsWebSphereouWebLogic pouraccéderaux sourcesdedonnées,vouspouvez utiliserDB2 Alphabloxavectoutebasededonnées relationnellepriseencharge surlesserveurs d’applications.

Remarque: LaconfigurationApacheTomcatdeDB2Alphabloxneprendpasen chargeleregroupementdeconnexionsdebasede données

relationnelle.

Référentiel DB2 Alphablox et regroupement de connexions de base de données relationnelle

Pour activerou désactiverleregroupementdeconnexionsavecunréférentielDB2 Alphabloxrelationnel,procédezcomme suit :

Activation

1. Survotreserveurd’applications,créezunesourcede donnéesDB2Alphablox pourlepoolde connexionsdéfini. Pourplusdedétails,voirlesinstructions ci-dessous.

2. Exécutezl’utilitairede conversionduréférentiel.

Windows :

<serverDirectory>/tools/convert/ConvertRepository.exe LinuxetUNIX:

<serverDirectory>/tools/convert/ConvertRepository.bat

3. SiDB2AlphabloxutiliseWebSphereouWebLogic,l’option8 (“ConfigureWeb ApplicationServerConnectionPooling”)estdisponible.Sélectionnezcette optionpuisappuyez surlatoucheEntrée.

4. Sélectionnezl’option1(“TurnOnconnection pooling”)puisappuyezsur la toucheEntrée.

5. EntrezlenomJNDIdelasourcededonnées définiedansleserveur d’applications.

Désactivation

1. Exécutezl’utilitairede conversionduréférentiel.

2. SiDB2AlphabloxestexécutésurWebSphereouWebLogic,l’option8 (“Configure WebApplicationServerConnectionPooling”)estdisponible.

SélectionnezcetteoptionpuisappuyezsurlatoucheEntrée.

3. Sélectionnezl’option1(“TurnOffconnection pooling”).

Configuration du regroupement de connexions avec BEA WebLogic

Lorsdel’utilisation duregroupementdeconnexionsBEAWebLogicavecdes sources dedonnéesrelationnelle, BEAWebLogicrequiertquevouscréiezun utilisateurWebLogicpourchaquesourcede donnéesafind’accéderaupoolde connexionsdéfini.

Pour configurercorrectement DB2Alphabloxpouruneutilisationaveclepoolde connexionsWebLogic, lenomd’utilisateuretlemotdepasse pardéfautdela définitionde sourcededonnéesDB2Alphabloxdoiventêtreunutilisateur WebLogic. Sivousn’utilisezpasderegroupementdeconnexions, iln’est pas nécessairede créerd’utilisateurWebLogicpouraccéder auxsourcesdedonnées relationnelles.

Dans le document IBM DB2 Alphablox. d administration GC (Page 143-151)