Guide Share France – Groupe Informix
Transcription
Guide Share France – Groupe Informix
Guide Share France Informix Magazine Mars 2015 L’International Informix User Group a 20 ans Informix 12.10.xc5 est disponible ! Président Eric Vercelletto Editeur Olivier Bourdin Contributeurs Table des matières Editorial: entre guidon et horizon 2 Welcome to the GUIDE Share France – Informix Group 3 L’International Informix User Group fête ses 20 ans ! 3 WW Informix L3 Support IBM Analytic Platform Présentation de Guide Share France 4 Frédéric Delest Retour sur l’évènement Informix à Montpellier 5 EMEA Informix L2 Support IBM Analytic Platform IBM Informix & Power Systems et l'IBM Power Systems Linux Center 7 Stuart Litel Et comment Timeseries va entrer dans les hôpitaux 9 Yoram Benchetrit WW Informix L3 Support IBM Analytic Platform Olivier Bourdin Président de l’IIUG Les Editions Informix 12 WW Business Partners Ecosystem Development Core Databases IBM Analytic Platform Informix 12.10.xC5 disponible – Les nouvelles fonctionnalités 14 Michel Plouin Le multitenancy en version 12.10.xC5 22 Derniers articles 25 Frame – Groupe Feeder Vidéos 25 Laurent Revel Liens utiles 25 Informix blogs 25 Gayathri Magie Coordinateur Technique GUIDE SHARE France Jacques Rage Benchmark manager IBM Client Center Montpelier Marie-Line Reynier Europe Engagement Leader Power Linux IBM Client Center Montpelier Eric Vercelletto Directeur Général BeGoodenIT Consulting Abonnement Cette newsletter est envoyée à des adresses enregistrées. Si vous souhaitez respectivement vous abonner ou vous désabonner, veuillez envoyer un mail avec pour sujet « ABONNER » ou « DESABONNER » à l’adresse email : informixmagazine@gsefr.org Site Web du GSF Le Groupe LinkedIn Informix France GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 1 Editorial: entre guidon et horizon Par Eric Vercelletto, Président du Guide Share France – Groupe Informix Le nez dans le guidon: expression couramment employée par les développeurs et les DBA pour caractériser leur charge de travail du moment et définir leur possibilité immédiate de traiter de questions à moyen ou long terme. Oui, c’est bien une expression qui nous colle à la peau tant nous sommes bombardés d’urgences, de demandes de dernière minute et de changements de planning pour satisfaire à des besoins prioritaires. Les besoins urgents d'il y a 20 ans étaient aussi urgents que ceux d'aujourd'hui. La différence est que les utilisateurs n'acceptent plus d'attendre pour que le travail soit fait. Oui, nous sommes à l'aube d'un réel changement dans la manière de concevoir et déployer les applications, et les médias, toujours avides de nouveautés mais qui oublient vite les contraintes de 'la vraie vie', nous placent souvent devant un choix binaire: ou bien nous restons dans les 'systèmes de Papi' (Informix et compagnie, comme ils suggèrent insidieusement) et notre infrastructure est condamnée à moyen terme, ou bien nous adoptons massivement NoSQL et tout sera beau dès demain (NDLR: en espérant que la technologie réponde aux exigences de stabilité, performance et disponibilité auxquelles nous sommes habitués…) En choisissant Informix 12.10, nous choisissons la voie de la sagesse, la voie du SGBD hybride: nous avez un véritable SGBD NoSQL compatible MongoDB, qui permet une vraie intégration du monde non structuré (NoSQL) avec le monde structuré (SQL). Les avantages de cette combinaison ne sont pas neutres: ils permettent de réelles économies de développement, de transfert de données entre les deux mondes, mais aussi d'utiliser les données des deux mondes en simultané via de véritables jointures, tout en préservant nos standards de fiabilité et de performance. D’ailleurs le gouvernement chinois, qui a décidé au mois d’octobre dernier d’équiper l’intégralité de ses administrations avec la technologie Informix, peut-il se permettre d’adopter comme SGBD unique une plateforme que seule la concurrence ou les ignorants qualifient comme périmée ? C'est dans l'optique de vous proposer un regard différent sur Informix que nous publions ce premier numéro d’Informix Magazine, la newsletter de notre groupe d'utilisateurs GUIDE-Share France – Groupe Informix. Lever le nez du guidon et regarder devant nous, en vous parlant des nouveautés, mais également en expliquant des fonctionnalités déjà existantes et prendre le temps de vous montrer les réels avantages qu'elles peuvent vous apporter. Venez en discuter sur notre forum Linkedin Bonne lecture! GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 2 Welcome to the GUIDE Share France – Informix Group Par Gayathri Magie, WW Business Partners Ecosystem Development - Core Databases - IBM Analytic Platform Dear Informix Users, Customers and Partners, I'm excited to announce that France has a new local Informix User group called GUIDE Share France – Groupe Informix. This group is for the French speaking customers, users, partners and other interested parties from various countries wishing to learn more about IBM technologies, partner solutions and to exchange thoughts, experiences, knowledge and ideas. This group is also an avenue to connect with the IBM team and to get accurate technical information, roadmaps and plans from IBM. By participating in this user group, you can also extend your knowledge beyond Informix and to other IBM technologies to help grow your business and integrate tightly with IBM. This group is part of GUIDE Share, which is a federation of IBM technologies user groups. For more information please feel free to contact Eric Vercelleto, the President of this user group. I encourage you all to actively participate in this user group. Wishing you all a great success in 2015 and a successful, long life to this new group! Gayathri L’International Informix User Group fête ses 20 ans ! Par Stuart Litel, President of International Informix User Group On behalf of the Informix Community I want to welcome you to the new Informix User Group as part of the Guide-Share organization. I encourage you to check out the International Informix Users Group web site at www.iiug.org and even better invite you to the IIUG 2015 Informix Conference. And if you wish to come to the conference, note that all IIUG members (and it is free to join!) receive $100 off their registration and as a special incentive, enter the registration code: French and receive an additional $50 discount (must be used before April 5, 2015). I sincerely hope that I can make it to one of your upcoming meetings in the upcoming year to visit the new group (that is if Eric invites me). Merci Stuart Litel President, International Informix Users Group www.iiug.org I can always be reached at www.iiug.org/president GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 3 Présentation de Guide Share France Par Michel Plouin, Coordinateur Technique Guide Share France GUIDE SHARE France (GSF) est l'association des utilisateurs de matériels et de logiciels IBM en France. C’est une association Loi de 1901, indépendante d’IBM. Elle est, depuis plus de 16 ans, spécialisée dans la mise en place et le support de groupes de travail sur les technologies IBM. Son activité de base est l'échange d'informations entre entreprises et entre professionnels, sur le principe du « give and take ». Ces échanges ont lieu au sein de groupes de travail, actuellement au nombre de 18, sur des sujets très variés, soit classiques comme z/OS, CICS, DB2, IMS, etc. soit plus « métier », tels que MAXIMO, Content Manager On-Demand, Business Analytics, etc. GUIDE SHARE France en quelques chiffres, c’est : 120 Entreprises adhérentes, de toutes tailles 18 groupes de travail opérationnels Plus de 70 réunions de travail entre les utilisateurs (ingénieurs, architectes, managers techniques, directeurs) et IBM en 2014, représentant plus de 1200 jours/homme d'information Des dîners-débats pour CIOs Une conférence annuelle (en principe) et ouverte à tous Outre ces activités, GSF a aussi pour but de faire remonter à IBM les problèmes ou préoccupations des utilisateurs. Enfin, GUIDE SHARE France est affiliée à GUIDE SHARE Europe (GSE), association créée en 1959 et présente dans 10 pays européens. GSE comprend 140 groupes de travail et 1100 entreprises adhérentes. En résumé, GUIDE SHARE France : Est connue et respectée par IBM, ce qui lui permet une interaction fluide et efficace avec les Laboratoires. Permet de « décloisonner » les différentes structures d’IBM, en facilitant la communication entre ces dernières, permettant ainsi de traiter de façon globale les problèmes d’architectures hétérogènes. Permet, de par son affiliation à GUIDE SHARE Europe (GSE), une consolidation au niveau européen des éventuels problèmes vers IBM, favorisant et accélérant ainsi leur résolution. Constitue un pôle d’influence efficace vis à vis d’IBM, que ce soit commercialement ou techniquement, ainsi que vis à vis des professionnels des technologies de l’information. GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 4 Retour sur l’évènement Informix à Montpellier Par Laurent Revel et Eric Vercelletto Suite à une courte mais intense réflexion, nous avions conclu il y a quelques mois que le climat parisien n'était pas forcément des plus agréables pour accueillir un évènement Informix, et qu’un peu de soleil ferait sans doute du bien aux habitués de la grisaille hivernale. C'est donc tout naturellement qu'un des plus importants sites IBM en France, le Client Center IBM de Montpellier s'est proposé pour organiser un évènement que nous avons également voulu ouvert sur d’autres technologies que celles d’Informix. Nous avons donc mis sur pied un évènement qui parlerait bien sûr d’Informix, mais également de Big Data et d’architecture IBM Power. La journée du 12 mars a commencé par une présentation très intéressante de l’IBMer Alain Cyr, lead architect sur les plateformes POWER, qui nous a expliqué les évolutions de la plateforme POWER, et surtout expliqué comment le Power 8, grâce au support de PowerLinux, commençait à menacer l’hégémonie de Intel dans le monde de Linux et du logiciel libre. Un pari qui peut paraître insensé au premier abord, mais Mr Cyr a su démontrer les réels avantages de Linux sur plateforme IBM POWER 8. S’en est suivi une présentation d’introduction à BIG DATA faite par Nicolas Sapin, IBM. Tout le monde parle de BIG DATA depuis quelques temps, mais plus rares sont les personnes qui sauront expliquer à quoi correspond concrètement cette terminologie. Nicolas nous a donc expliqué, à partir d’un cas réel de plan marketing dans la grande distribution, comment la corrélation de données provenant de sources différentes pouvait aider une entreprise à cibler au mieux les clients idéaux pour une campagne marketing, et augmenter de façon très conséquente le score de réussite de cette campagne. En l’occurrence, il s’agissait d’identifier à un taux proche de 100% les femmes enceintes, afin de les contacter pour une promotion sur les produits qu’elles recherchent en cette période de leur vie. IBM Cognos, IBM SPSS, IBM BigInsights sont les logiciels qui ont été utilisés pour cette étude de cas. La fin de la matinée a été consacrée à ma présentation de mon benchmark TPC-C sur Informix 12.10FC3, comprenant un comparatif entre les résultats obtenus sur PowerLinux / Power7 et PowerLinux /Power8. D'excellents résultats sont obtenus avec Informix sur cette architecture, constituant un argument de plus en faveur de la solution d'IBM Power8 sur PowerLinux . Après un déjeuner très convivial avec une touche méditerranéenne, nous avons démarré l'après-midi avec l'intervention de l'IBMer Julien Limodin qui nous a décrit en détail la plateforme POWER8 pour Linux, expliquant pourquoi et comment cette nouvelle architecture surpassait celle d'Intel en termes de stabilité et performance. Nous avons pu voir au passage que le prix des licences de produits IBM(donc d'Informix), était plus avantageux qu'Intel à niveau équivalent. Fabrizio Danusso, de l'IBM Innovation Center, nous a ensuite présenté la roadmap actualisée d'IBM Informix, ainsi qu'une rapide rétrospective des versions et fonctionnalités pour ceux qui n'auraient pas eu l'occasion de la connaitre. Il nous a apporté une vision claire des axes de développement d'Informix, démontrant le rôle capital d'Informix au sein de l'offre IBM dans les nouvelles technologies, notamment celles de l'Internet des Objets. GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 5 Deux ateliers « self-service » montés sur l’appliance Informix sur le Cloud étaient proposés aux personnes qui désiraient s’essayer à Informix NoSQL ainsi qu’à la technologie de réplication MACH11. Sous la forme de scénarios guidés en mode pas-à-pas, les utilisateurs ont pu découvrir de façon simple et à leur rythme les fonctionnalités proposées et en comprendre les véritables avantages. Nous recommencerons ce format très efficace pédagogiquement pour les prochains évènements de notre groupe d’utilisateurs. La fin de la journée a été ponctuée par un débat sur la Roadmap, les expériences vécues avec Informix et diverses interrogations de personnes découvrant un produit dont ils ignoraient ou sous-estimaient les bénéfices qu'il pouvait apporter à leurs projets. La demi-journée de Vendredi a commencé avec une présentation de BlueMix, la nouvelle plateforme IBM de développement sur le Cloud. C'est une solution originale mais très intéressante dans son concept, permettant aux développeurs de développer et tester leurs applications Nodes.js, Java et autres systèmes de développement du monde libre, Informix faisant partie des modules proposés, sous le nom de TimeSeries. Cette plateforme de développement intégrée est tout particulièrement adaptée au développement d'applications dans le monde des Objets connectés (Internet of Things). La startup Montpellérienne MATOOMA, spécialisée dans le domaine de la santé, a présenté ses solutions logicielles innovantes autour de Internet of Things (IoT). En parallèle, Jacques Rage, spécialiste Informix chez notre partenaire FRAME, a démystifié la datablade Informix TimeSeries avec un tutoriel très intéressant. Cette introduction à TimeSeries, reprise dans ce numéro d'Informix Magazine, explique les bases du codage avec cette datablade, ses fonctionnalités uniques. Elle démontre aussi la bluffante supériorité de cette technologie en termes de performance et gain d'espace de stockage pour toute application basée sur les séries de temps. Ce fut ensuite une démonstration BigData sur le logiciel BigInsigths sur PowerLinux, faite par l'IBMer Christophe Menichetti. L'évènement s'est conclu avec la présentation de l'approche hybride d'IBM Informix, effectuée par l'IBMer Laurent Revel, qui permet d'une aux applications développées pour MongoDB de profiter des fonctionnalités avancées d'Informix 12.10, et d'autre part aux clients habituels d'Informix (java,PHP, 4GL et autres) de pouvoir accéder aux données NoSQL stockées sous le format JSON/BSON. GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 6 IBM Informix & Power Systems et le support de l'IBM Power Systems Linux Center Par Marie-Line Reynier, Europe Engagement Leader Power Linux et Laurent Revel, Benchmark manager Votre moteur de bases de données favori IBM Informix Dynamic Server fonctionne depuis de nombreuses années sur AIX Power ou Intel Linux. Pensez au dernier processeur Power 8 ! Toutes les fonctionnalités avancées de la dernière génération peuvent bénéficier à votre environnement de production et accélérer vos traitements ou batchs. Venez profiter de l'expertise des spécialistes Power 8 / Linux on Power au centre de support de Montpellier; nous vous expliqueront les facilités de migration d'Intel Linux vers Power Linux mais aussi les fonctionnalités avancées du Power 8. IBM Power Systems Linux Center Europe Le centre "Power Systems Linux Center" basé à Montpellier répond aux besoins de l'écosystème Linux on Power en pleine expansion, pour l’Europe, en apportant le support technique nécessaire. Le Focus de l'équipe : Apporter du support technique aux Partenaires d'IBM (grossistes, distributeurs, ISVs, intégrateurs, etc…) et aux clients. Créer des assets autour du focus stratégique "CAMS"(Cloud/Analytics, Mobile, Security/Social). Les activités de support qui peuvent être fournies (pour plus de détails, veuillez écrire à mailto:pslcmop@fr.ibm.com): Tests de validation. Benchmarks & Proofs of Concept/Technology on Linux on Power (à distance ou sur le site IBM de Montpellier) Light benchmarks Linux on Power (à distance) + 2ème niveau de support technique aux Innovation Centers d'IBM en Europe (Infrastructure, Virtualisation, OS, Compilateurs, Certification programs, …) Briefs autour de nos technologies (Briefings, Demos, WebConf, Videos, etc) Design (Support avant-vente aux projets de nos clients: consultance technique, ateliers de design d'architecture, études de coûts/performance, etc…) GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 7 Quelques détails sur les nouvelles fonctionnalités Power 8 pouvant bénéficier à IDS 12.10: • • • • PowerKVM : KVM est la couche logicielle de virtualisation sous Linux. Les systèmes Power sont maintenant capables de gérer des machines virtuelles Linux avec les outils standards des systèmes d'exploitation Linux, Little Endian Linux : une facilité pour migrer sur Linux on Power vos applications utilisées sur Intel STM8 : la possibilité d'exécuter 8 threads (tâches) en parallèle sur un seul cœur. Facturation IDS limitée à 70 PVUs, quel que soit le nombre de cœurs pour les serveurs Power Linux contre 100 à 120 suivant le dimensionnement de la machine pour les autres systèmes (Intel, Sun, HP ...), pouvant ainsi réduire le prix finale de la licence de façon assez importante. Toutes les améliorations du Power 8 peuvent vous être expliquées en détails à l'IBM Client Center de Montpellier ou lors d'une conférence téléphonique. GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 8 Et comment Timeseries va entrer dans les hôpitaux Par Jacques Rage, Frame La technique des datablades dans Informix IDS est largement éprouvée et montre aujourd'hui avec la multitude de capteurs des appareils connectés toute sa puissance. Elle est au cœur du Big Data pour tout ce qui a trait aux données temps grâce à la datablade TimeSeries. Les benchmarks dans le domaine de l'énergie ont montré des réductions d'espace de 50 à 70 % et des capacités d'analyse des données temps impressionnantes, simultanément à une alimentation soutenue des tables par des capteurs. Les fonctionnalités objets d'Informix IDS permettent de mixer les données TimeSeries avec des tables traditionnelles dans le même schéma de base en bénéficiant de tous les avantages d'Informix IDS: backup en ligne, réplication en cluster, réplication grande distance, grid, compression, données json, accélérateur de requête décisionnelle, fiabilité et simplicité d'administration. A vos versions d'IDS pour un galop d'essai avec TimeSeries, au moins une 11.x qui inclut en standard TimeSeries. Imaginons un cas simple, un hôpital collectant la tension artérielle de tous ses patients à intervalle de 15 minutes. Ils seraient bien sûr équipés d'un capteur sans contact pour faciliter la logistique. Création d'une base et installation de TimeSeries en son sein. echo "create database labTS with buffered log;" | dbaccess echo "register TimeSeries.6.00.UC4 labTS" | blademgr Création du sous-type, de la table TimeSeries et d'une table pour identifier le patient. create table patient ( id int, nom char(20) ); create row type mesurepa ( tstamp datetime year to fraction(5), valeurh decimal(16,2), valeurb decimal(16,2) ); create table tsmesurespa ( patientid int, mesures TimeSeries(mesurepa) ); Etant donné que les mesures sont stockées dans une colonne, il est nécessaire d'associer à cette TimeSeries un espace dédié appelé « container » et placé dans le dbspace de votre choix. Création d'un container nommé tscontainer1 dans datadbs: EXECUTE PROCEDURE TSContainerCreate('tscontainer1', 'datadbs','mesures', 0, 0); Les données peuvent arriver de manière régulière ou non. On a un calendrier prévu pour gérer un intervalle de 15 minutes. Vérification de la table calendrier: select * from calendartable c_name ts_15min c_calendar startdate(2011-01-01 00:00:00.00000),pattstart(2011-01-01 00:00:00.00000), pattern({1 on,14 off},minute) GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 9 Après il faut initialiser la TimeSeries de chaque patient en indiquant que les données seront entreposées dans tscontainer1. Pour les patients 1, 2, 3 : INSERT VALUES INSERT VALUES INSERT VALUES INTO tsmesurespa (patientid, mesures) (1, TSCreate("ts_15min","2015-03-12 09:00:00.00000",0,0,0,"tscontainer1")); INTO tsmesurespa (patientid, mesures) (2, TSCreate("ts_15min","2015-03-12 09:00:00.00000",0,0,0,"tscontainer1")); INTO tsmesurespa (patientid, mesures) (3, TSCreate("ts_15min","2015-03-12 09:00:00.00000",0,0,0,"tscontainer1")); Si l'origine, ici 2015-03-12 09:00:00.00000, est NULL alors IDS prend la valeur startdate indiquée dans le calendrier. Les données sont chargées dans la table par 2 méthodes : valeur par valeur ou en mode « bulk » depuis un fichier ascii. Chargement valeur par valeur: UPDATE tsmesurespa SET mesures = PutElem(mesures, WHERE patientid=1; UPDATE tsmesurespa SET mesures = PutElem(mesures, WHERE patientid=2; UPDATE tsmesurespa SET mesures = PutElem(mesures, WHERE patientid=1; UPDATE tsmesurespa SET mesures = PutElem(mesures, WHERE patientid=2; row(NULL, 12, 7.2)::mesurepa,0) row(NULL, 12, 8.5)::mesurepa,0) row(NULL, 11.5, 5.6)::mesurepa,0) row(NULL, 13.4, 6.6)::mesurepa,0) Sans préciser le timestamp : ici NULL, IDS affecte automatiquement la valeur au ¼ d'heure suivant car la TimeSeries « mesures » est de type régulière. Chargement en mode « bulk » d’un fichier nommé pa.csv délimité par des tabulations : 2015-03-12 2015-03-12 2015-03-12 2015-03-12 2015-03-12 2015-03-12 2015-03-12 14:00:00.00000 14:15:00.00000 14:30:00.00000 14:45:00.00000 15:00:00.00000 15:15:00.00000 15:30:00.00000 10.1 7.5 9.2 6.7 12.2 7.2 8 5.5 6.1 5.2 6.9 7.1 6.5 4.3 Et en utilisant la fonction BulkLoad : UPDATE tsmesurespa SET mesures = BulkLoad(mesures,"pa.csv") WHERE patientid = 3; Afficher les données TimeSeries brutes: SELECT * FROM tsmesurespa ; La partie analyse des données est facilité par la richesse des fonctions proposées. Un changement de calendrier est effectué très simplement sans développer une seule ligne de code. La moyenne de la tension par jour et par patient s'obtient très rapidement à l'aide de la fonction AggregateBy : SELECT patientid, AggregateBy("avg($valeurh), avg($valeurb)", "ts_1day", mesures, 0, "2015-03-12 00:00:00", "2015-03-13 00:00:00") FROM tsmesurespa; GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 10 A quel moment la tension a été la plus élevée par jour pour chaque patient : SELECT patientid, AggregateBy("max($valeurh), max($valeurb)", "ts_1day", mesures, 0, "2015-03-12 00:00:00", "2015-03-13 00:00:00") FROM tsmesurespa; La comparaison des valeurs de tension d'un intervalle de temps à l'autre par patient: SELECT Apply('TSCmp($valeurh, TSPrevious($valeurh)), TSCmp($valeurb,TSPrevious($valeurb))', '2015-03-12 00:00:00.00000'::datetime year to fraction(5), '2015-03-13 00:00:00.00000'::datetime year to fraction(5), mesures) FROM tsmesurespa; retourne 1 si la valeur suivante est plus grande, -1 si plus petite et 0 si égale. La variation de tension entre 2 prises pour chaque patient sur la plage de temps donnée: SELECT patientid, abs(Apply ('TSPrevious($valeurh)-$valeurh', '2015-03-12 00:00:00.00000'::datetime year to fraction(5), '2015-03-13 00:00:00.00000'::datetime year to fraction(5), mesures)) FROM tsmesurespa ; Un outil bien utile : VTI, pour voir nos données à la « mode table » ligne par ligne : EXECUTE PROCEDURE TSCreateVirtualTab( "vuemesurespa", "tsmesurespa" ); SELECT * FROM vuemesurespa; On pourra insérer, afficher et détruire les données TimeSeries avec cette vue. Voila après cet exercice, j'espère vous avoir convaincu et je suis sûr que vous allez trouver une utilisation de TimeSeries dans vos applications. GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 11 Les Editions Informix Par Olivier Bourdin, WW Informix L3 Support- IBM Analytic Platform Depuis la version 10.x, IBM a introduit plusieurs éditions du moteur Informix Dynamic Server. Voici un résumé de l’évolution de ces éditions. Vous pouvez trouver les fonctionnalités, licences d’utilisation pour chacune de ces éditions sur les pages web : http://omtco.eu/references/ibm/ibm-informix-product-editions-metrics-and-licensing-restrictions/ http://www.ibm.com/developerworks/data/library/techarticle/dm-0801doe/index.html A ces éditions, il faut ajouter une nouvelle édition gratuite: « Advanced Developer ». Cette version contient toutes les fonctionnalités du produit Advanced Entreprise mais ne peut être utilisée sur des systèmes de production. C’est donc l’édition idéale pour vos développements en grandeur nature ou vos systèmes de test de monté en charge. Par ailleurs, cette édition ne peut être utilisée que dans le cas où l’utilisateur a déjà une licence payante. Elle ne peut être téléchargée qu’après avoir contacté un commercial IBM qui donnera l’accès à cette version. La version 12.10.xC5 est désormais disponible sur les plateformes suivantes: AIX 6.1 64bits. Version compilée sur AIX 6.1 TL4 et certifiée sur AIX 7.1. HP-UX 11i V3 (11.31) Itanium 64bits. Linux Intel 32bits. Version compilée sur Redhat Entreprise Linux ES 5.3 et certifiée sur RHEL 6, SUSE SLES 11, Ubuntu Server Edition 8.04, 10.04 et 12.04.1 LTS, Asianux 3 SP3, Debian 5.0, CentOS 6 on i686 et x86_64. Linux x86_64 64bits. Version compilée sur Redhat Entreprise Linux ES 5.3 et certifiée sur RHEL 6 et 7, SUSE SLES 11, Ubuntu Server Edition 8.04, 10.04 et 12.04 LTS, Asianux 3 SP3, Debian 5.0, CentOS 6 et 7. Linux sur Power 64bits. Compilée sur Redhat entreprise Linux ES 5.3 et certifiée sur RHEL 6, 7 et SUSE SLES 11. GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 12 Linux ARMv7 32bits. Compilée sur Debian Linux 7.1 armhf. Linux ARMv6 32bits. Compilée sur Raspbian GNU/linux 7 armhf. Spécialement conçu pour les systèmes Raspberry Pi. Linux ARMv8 64 bits. Compilée sur Ubuntu Linux 14.04 aarch64 pour les processeurs compatible ARM64 (ARMv8). Max OS X x86_64 64bits. Compilée sur Mac OS X Server 10.9.2 Solaris 10 SPARC 64bits. Compilée sur Solaris Sparc 10 update 8 et certifiée sur Solaris 11. Solaris 10 x86 64bits. Compilée sur Solaris 10 update 8 sur x86 et certifiée sur Solaris 11. Windows 32bits. Compilée sur Windows server 2003 et certifiée sur Windows XP, Windows Server 2008, Windows Vista, Windows 7, Windows 8, Windows Server 2012 et 2012 R2. Windows x64 64bits. Compilée sur Windows Server 2003 x64 et certifiée sur Windows XP x64, Windows Server 2008 x64, Windows Vista x64, Windows 7 x64, Windows 8 x64, Windows Server 2012 and 2012 R2 x64. Linux zSeries. Compilée sur Redhat Entreprise Linux ES 5.3 et certifiée sur RHEL 6 et SUSE SLES 11 GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 13 Informix 12.10.xC5 disponible – Les nouvelles fonctionnalités Par Frédéric Delest et Olivier Bourdin La version 12.10.xC5 d’Informix est disponible depuis le mois de mars 2015. Voici en avant-première les principales fonctionnalités. Installation / Migration Changement dans le serveur Rolling upgrades for High Availability clusters Support de Java Amélioration du logging et debugging de l'installation Installation silencieuse facilitée Option obsolète de la commande d'installation Administration Contrôle des ressources d'un tenant Limitation de l'accès aux tenants dans OAT Limitation des ressources d'une session Plus grande taille maximum de bande pour les sauvegardes Développement d’applications Nouvelle locale pour le driver JDBC Expression d'agrégat corrélé Contrôle des re-préparations Compatibilité JSON Manipulation des données de type JSON et BSON dans des commandes SQL Haute disponibilité avec MongoDB et les clients REST Amélioration de la configuration des wire Listeners Support des requêtes via le wire Listener Amélioration de la gestion des comptes via le wire listener TimeSeries Chargement de documents JSON pur dans un TimeSeries Chargement plus rapide de données TimeSeries via des fichiers Amélioration de la journalisation pour le loader TimeSeries Création de TimeSeries durant le chargement Affichage de l’utilisation de l’espace de stockage des TimeSeries Visualisation des sessions de chargement des TimeSeries Analyse des données TimeSeries via l’expression matches et des patterns Sélection de données via la fonction Clip de TimeSeries Spatio-temporel Gestion des objets spatio-temporels GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 14 Accélérateur Warehouse Amélioration de l’accélérateur Warehouse ______________________________ Changement dans le serveur La version 12.10.xC5 contient les nouvelles fonctionnalités suivantes: Le paramètre AUTO_REPREPARE a changé L'option de changement de l'environnement de la session IFX_AUTO_REPREPARE a changé Les changements sont résumés dans le Guide de Migration. Rolling upgrades for High Availability clusters Il est possible d'effectuer une mise à jour d'un cluster de haute disponibilité avec le nouveau fixpack ou la nouvelle version interim (PID) avec une interruption minimale pour les applications clientes. Pendant la durée de la mise à jour, le cluster reste online et ce malgré le fait que les serveurs du cluster tournent sous des versions différentes du moteur. Par exemple, pour faire la mise à jour de la 12.10.xC4 vers la 12.10.xC5: Arrêt du Secondaire, installation de la mise à jour, redémarrage du Secondaire. Après la mise à jour de tous les serveurs secondaires, arrêt du Primaire et promotion d'un Secondaire en tant que Primaire. La mise à jour de l'ancien Primaire peut s'effectuer alors qu'il est démarré en tant que Secondaire. Il peut ensuite être re-basculé en tant que Primaire. Le processus de Rolling Upgrades, ainsi que les prérequis, est décris dans le Guide de Migration. Support de Java La version d'IBM Informix 12.10.xC5 supporte la version 7 de Java™ Platform Standard Edition (Java SE). L'application d'installation d'Informix installe par défaut, la version 7 du IBM Runtime Environment, Java Technology Edition sur la plus part des plates-formes. Cette version est utilisée pour exécuter les routines utilisateur java qui ont été créées dans le serveur. Il est nécessaire de vérifier les machines notes relatives au système d'exploitation pour déterminer si l'application d'installation requiert un JRE déjà installé. Pour la liste des logiciels de développement java supporté, voir les dépendances technologiques du java. Amélioration du logging et debugging de l'installation Par défaut, le nom et la localisation du fichier de log pour le serveur et les produits clients sont /tmp/iad_act.log (UNIX, Linux, Mac OS X) or \tmp\iad_act.log (Windows). Il est possible de spécifier une nom et une localisation différente pour la loggue d'installation avec le paramètre -DLOG_FILE sur la ligne de commande de l'installation. Le paramètre -DDEBUG n'est plus utilisé. Il existe maintenant plus de contrôle sur le debugging et les traces lors de l'installation. Par défaut les traces sont désactivées. Elles peuvent être activées avec un niveau variant de 1 à 9 avec le paramètre -DDEBUG_LEVEL positionné sur la ligne de commande. Si les traces sont activées le fichier de log par défaut sera /tmp/iad_dbg.log (UNIX, Linux, Mac OS X) or \tmp\iad_dbg.log (Windows). Il peut être modifié en utilisant l'option -DDEBUG_FILE. Cette fonctionnalité est documentée dans le guide d'installation et dans le guide d'installation des produits clients. GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 15 Installation silencieuse facilitée Il est possible d'améliorer l'installation silencieuse sur des systèmes avec des produits serveur ou client préexistants. Pour cela il faut ajouter l'option -DOVERWRITE_PRODUCT=TRUE dans la ligne de commande de: ids_install, installclientsdk ou installconnect. Cette fonctionnalité est documentée dans le guide d'installation et dans le guide d'installation des produits clients. Option obsolètes de la commande d'installation Les options suivantes sont obsolètes lors de l'utilisation des commandes ids_install, installclientsdk et installconnect: Pour Unix/linux, le -i swing est désormais obsolète. Il faut utiliser l'option -i gui pour forcer l'installation en mode GUI. L'option –DDEBUG est obsolète. Il faut utiliser la nouvelle option -DDEBUG_LEVEL pour définir le niveau des traces. Contrôle des ressources d'un tenant Il est possible d'exercer un contrôle plus poussé sur les ressources contrôlées par un tenant. De façon à améliorer les performances et limiter la taille de la base de données. Il est maintenant possible d'utiliser de nouvelles options dans la définition d'un tenant quand les commandes admin() ou task() sont exécutées pour la création ou l'upgrade d'un tenant. Les propriétés d'un tenant sont prioritaires par rapport aux paramètres de configuration équivalents. Il est possible de définir la propriété session_limit_memory de sorte qu'une session soit interrompue si son allocation de shared memory dépasse une certaine valeur, ou la propriété session_limit_tempspace pour les sessions qui dépasse leur valeur d'utilisation de l'espace temporaire. La propriété session_limit_logspace pour faire un rollback des transactions trop grandes, ou la propriété session_limit_txn_time pour les transactions qui durent trop longtemps. Il est possible de limiter la quantité totale d'espace de stockage pour un tenant en positionnant la propriété tenant_limit_space ou le paramètre de configuration TENANT_LIMIT_SPACE Cette fonctionnalité est documentée dans le guide de l'administrateur et le guide de référence de l'administrateur. Limitation de l'accès aux tenants dans OAT Un administrateur informix peut affecter un tenant à un tenant owner dans l'outil IBM OpenAdmin Tool (OAT) for Informix. Le tenant owner ne peut accéder qu'au tenant qui lui a été affecté. Limitation des ressources d'une session Il est possible de limiter les ressources pour toutes les sessions qui n'appartiennent pas à des utilisateurs de type administrateur afin d'empêcher des problèmes de performance. Limiter les ressources des sessions permet de s'assurer qu'une session ne contrôle trop de ressources empêchant ainsi les autres sessions de traiter leurs transactions. La limitation des ressources est utile dans un environnement embarqué. Il est ainsi possible de stopper les sessions qui tentent de consommer plus de shared memory ou d'espace de stockage temporaire que spécifié: Positionner le paramètre de configuration SESSION_LIMIT_MEMORY à la valeur maximale de shared memory qui peut être allouée à une seule session. Positionner le paramètre SESSION_LIMIT_TEMPSPACE à la valeur maximale d'espace de stockage temporaire qui peut être alloué à une session. GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 16 Il est possible de faire faire un rollback des transactions qui sont trop grosses ou qui prennent trop de temps: Positionner le paramètre de configuration SESSION_LIMIT_LOGSPACE à la quantité maximale d'espace de journaux logiques qu'une transaction peut remplir. Positionner le paramètre SESSION_LIMIT_TXN_TIME à la valeur maximale en seconde qu'une transaction peut durer. Cette fonctionnalité est documentée dans le guide de l'administrateur et le guide de référence de l'administrateur. Plus grande taille maximum de bande pour les sauvegardes La valeur maximum pour les paramètres TAPEDEV et LTAPEDEV est maintenant de 9223372036854775807 Kb, équivalent à 9ZB. Cette fonctionnalité fait partie de l'optimisation du stockage et est documentée dans le guide de sauvegarde et restauration. Nouvelle locale pour le driver JDBC Le driver JDBC Informix supporte les locales Estonienne et Lituanienne. Cette fonctionnalité est documentée dans le guide de programmation du driver JDBC. Expression d'agrégat corrélé Dans une sous-requête, une expression d'agrégat sur un opérande colonne qui est elle-même déclaré dans le block SQL parent, est appelée un agrégat corrélé. L'opérande colonne est appelé la colonne de référence corrélée. Quand une sous-requête contient un agrégat corrélé avec une colonne de référence corrélée, le moteur de base de donnée évalue maintenant cet agrégat dans le block SQL parent où la colonne corrélée de référence a été déclarée. Si l'agrégat contient plusieurs colonnes corrélées de référence, l'agrégat est traité dans le block SQL parent (d'où la colonne corrélée de référence est originaire) qui est le plus proche parent de la sous-requête. Cette fonctionnalité est documentée dans le guide de la syntaxe SQL. Contrôle des re-préparations Il est possible d'améliorer les performances des requêtes en contrôlant quand les requêtes sont re-préparées. Le paramètre de configuration AUTO_REPREPARE et l'option d'environnement pour les sessions IFX_AUTO_REPREPARE acceptent maintenant les valeurs supplémentaires suivantes: 3 = re-préparation automatique en mode optimiste. Si une commande a été exécuté correctement moins d'une seconde avant, ne pas re-préparer la commande. 5 = re-préparation automatique après l'exécution d'un UPDATE STATISTIC. Si la commande contient une table pour laquelle l'UPDATE STATISTIC a été exécuté, alors la commande sera re-préparée. 7 = re-préparation automatique en mode optimiste et après exécution d'un UPDATE STATISTIQUE Cette fonctionnalité est documentée dans le guide de référence de l'administrateur et dans le guide de la syntaxe du SQL. Manipulation des données de type JSON et BSON dans des commandes SQL Il est possible d'utiliser une commande SQL pour manipuler des données de type BSON. Une colonne de type BSON se créée avec la commande SQL CREATE TABLE. Il est possible de manipuler les données de type BSON dans une collection créée via l'API de commande de MongoDB. Il est aussi possible d'utiliser la commande SQL CREATE INDEX pour créer un index sur un champ dans une colonne de type BSON. Il est possible d'insérer des données avec les commandes GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 17 SQL ou l'un des utilitaires Informix. Les données de type BSON peuvent être visualisée en effectuant un cast du type BSON vers le type JSON, ou bien en utilisant l'une des nouvelles fonctions BSON qui permettent de la conversion d'un champ BSON vers l'un des type SQL standard, tel que INTEGER, LVARCHAR. Il est possible d'utiliser les fonction BSON_GET et BSON_UPDATE pour des opérations sur des paire de valeurs de champs. Cette fonctionnalité est documentée dans le guide de la syntaxe SQL. Haute disponibilité avec MongoDB et les clients REST La haute disponibité est possible pour MongoDB et les clients REST. Il faut pour cela faire tourner un wire listener sur chaque serveurs du cluster. Il est aussi possible de fournir de la haute disponibilité entre un wire listener et un serveur Informix. Il faut connecter le wire listener au serveur via le Connection Manager ou bien indiquer un fichier sqlhosts dans le paramètre URL du fichier de propriétés du wire listener. Cette fonctionnalité est documentée dans le guide de compatibilité JSON. Amélioration de la configuration des wire Listeners Il est maintenant possible de positionner ces nouveaux paramètres ou la nouvelle version de certains anciens, dans le fichier de propriétés du wire listener: Le paramètre url peut contenir des variables d'environnement JDBC. Nouveauté: listener.hostName permet de spéficierle nom de l'hôte du listener pour définir les adaptateurs ou interfaces réseau sur lequel le wire listener se connecte. Nouveauté: collection.Informix.options permet de définir une option de table pour la création automatique des shadow columns ou bien d'activer l'audit lors de la création des collections JSON. Nouveauté: command.listDatabase.sizeStrategy permet de définir une stratégie pour le calcul de la taille d'une database lorsque la commande listDatabases de MongoDB est exécutée. Nouveauté: fragment.count permet de définir le nombre de fragments pour la création d'une collection. Nouveauté: jdbc.afterNewConnectionCreation permet de définir des commandes SQL telles que SET ENVIRONMENT à excécuter après la connexion au serveur de base de donées. Cette fonctionnalité est documentée dans le guide de compatibilité JSON. Support des requêtes via le wire Listener Le wire listener supporte maintenant les types de requêtes suivants: Requête avec jointure sur le type JSON, données relationnelles ou à la fois JSON et relationnelles. Requête de type Array sur le type JSON avec l'opérateur $elemMatch de MongoDB Cette fonctionnalité est documentée dans le guide de compatibilité JSON. Amélioration de la gestion des comptes via le wire listener Il est possible de contrôler les autorisations des utilisateurs d'une base de donnée Informix, via le wire listener, en verrouillant ou déverrouillant les comptes utilisateurs ou les bases de données avec les nouvelles commandes Informix JSON lockAccount et unlockAccounts. Cette fonctionnalité est documentée dans le guide de compatibilité JSON GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 18 Chargement de documents JSON pur dans un TimeSeries Vous pouvez maintenant charger des données qui sont stockées dans des documents JSON directement dans les colonnes de type TimeSeries. Auparavant, vous deviez fournir des valeurs de clé primaire et de timestamps au format texte brut. La nouvelle fonction TSL_PutJson() permet de charger des documents JSON. Par exemple, vous pouvez charger des documents JSON qui sont générés par des dispositifs de capteurs sans fil sans prétraitement des données. Chargement plus rapide de données TimeSeries via des fichiers Vous pouvez maintenant charger rapidement des fichiers directement dans la base de données en spécifiant un nom de fichier comme deuxième argument de la fonction TSL_Put(). Auparavant, la fonction TSL_Put() acceptait uniquement des données de types LVARCHAR ou CLOB, ce qui nécessitaient des étapes intermédiaires pour traiter les données. Les données TimeSeries que vous chargez avec la fonction TSL_Put() peuvent maintenant contenir des documents JSON ou BSON comme valeurs pour des colonnes autres que les colonnes de clé primaire et de timestamps. Contrairement à la fonction TSL_PutSQL(), lorsque vous chargez des colonnes JSON avec la fonction TSL_Put() vous n’avez pas besoin de créer une fonction externe à partir de laquelle vous chargez les données. Amélioration de la journalisation pour le loader TimeSeries Si vous écrivez un programme pour charger des données TimeSeries, vous pouvez choisir de récupérer les messages du chargeur à partir d'une file d'attente au lieu de sauver les messages dans un fichier journal de messages. La récupération des messages à partir d'une file d'attente générera moins de contentions d’accès que la journalisation des messages dans un fichier. Vous pouvez récupérer les messages de la file d'attente en exécutant la nouvelle fonction de TSL_GetFmtMessage(). Par ailleurs, vous pouvez exécuter la fonction TSL_GetLogMessage() pour récupérer les numéros de message et exécutez la nouvelle fonction de TSL_MessageSet() afin de retourner le texte du message correspondant au numéro. Cette méthode est utile si vous voulez fournir votre propre texte de message ou si vous souhaitez récupérer le texte du message sur le client. Création de TimeSeries durant le chargement Vous pouvez maintenant créer une nouvelle instance TimeSeries lors du chargement de données à l’aide d’un programme. Auparavant, il fallait insérer des valeurs de clés primaires et créer des instances TimeSeries avant de pouvoir charger des données avec un programme de chargement. Pour un programme de chargement, vous pouvez spécifier la définition d'une instance TimeSeries en exécutant la nouvelle fonction de TSL_SetNewTS(). Lorsque vous chargez des données avec la fonction TSL_Put() pour une nouvelle valeur de clé primaire, une nouvelle ligne est ajoutée à la table et une nouvelle instance TimeSeries est créée en fonction de la définition. Pour une table virtuelle, vous pouvez créer une nouvelle instance TimeSeries tout en insérant rapidement des éléments dans des conteneurs. Avec la procédure TSCreateVirtualTab(), vous devrez définir le paramètre NewTimeSeries et le flag elem_insert du paramètre TSVTMode. GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 19 Affichage de l’utilisation de l’espace de stockage des TimeSeries Vous pouvez déterminer la quantité d'espace de stockage qui est utilisé par un TimeSeries en exécutant la nouvelle fonction TSInfo(). Vous pouvez personnaliser le niveau de détail des informations. Par exemple, vous pouvez afficher des détails sur les pages d'éléments, tels que le nombre de pages, le nombre d'octets, la quantité d'espace libre, et le nombre de pages nulles. Vous pouvez également renvoyer des informations sur les autres propriétés d'un TimeSeries tels que l'origine, le type de valeurs, et les conteneurs utilisés. Visualisation des sessions de chargement des TimeSeries Lorsque vous exécutez un programme de chargement de TimeSeries, vous ouvrez une session de chargement pour chaque combinaison de table et de colonne TimeSeries dans laquelle vous chargez des données. Vous pouvez afficher la liste des identifiants pour les sessions actives de chargement en exécutant la fonction TSL_ActiveHandles(). Un identifiant se compose du nom de la table et le nom de la colonne TimeSeries. Analyse des données TimeSeries via l’expression matches et des patterns Vous pouvez rechercher des données TimeSeries en les comparant à une pattern spécifique. Vous exécutez la fonction de TSPatternMatch() pour chercher ces correspondances. Vous pouvez créer un index de recherche de patterns afin d’améliorer les performances des requêtes en exécutant la fonction TSCreatePatternIndex(). Sélection de données via la fonction Clip de TimeSeries Vous pouvez extraire des données entre deux points dans le temps dans un TimeSeries et retourner une nouvelle série TimeSeries qui ne contient que les colonnes spécifiées de la série TimeSeries originale. Exécutez la nouvelle fonction ProjectedClip() pour tronquer les données TimeSeries à partir des colonnes TimeSeries que vous spécifiez. Les données que vous chargez dans votre TimeSeries peuvent être configurées pour stocker une valeur nulle lorsque la valeur ne diffère pas de la valeur précédente. Si vous avez une faible fréquence de valeurs non NULL, vous pouvez remplacer les valeurs NULL avec les valeurs précédentes non NULL de la série TimeSeries de sortie. Gestion des objets spatio-temporels Vous pouvez suivre un objet en mouvement, comme un véhicule, en capturant des informations de localisation de l'objet à intervalles de temps réguliers. Vous pouvez utiliser la nouvelle extension spatio-temporelle de recherche pour indexer les données, puis interroger selon le temps ou le lieu afin de déterminer la relation de l'un à l'autre. Vous pouvez interroger quand un objet est situé à un emplacement spécifié, ou si un objet était à une heure spécifiée. Vous pouvez également trouver la trajectoire d'un objet mobile sur une plage de temps. L'extension spatio-temporelle de recherche dépend des TimeSeries et de l’extension Spatial. Vous stockez les données spatio-temporelles dans un type de données TimeSeries avec des colonnes pour la longitude et la latitude. Vous indexez et interrogez les données spatio-temporelles avec les nouvelles fonctions de recherche spatio-temporelles. Vous pouvez également interroger les données spatio-temporelles à l’aide des routines TimeSeries et spatiales. GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 20 Amélioration de l’accélérateur Warehouse Vous pouvez maintenant accélérer les requêtes qui comportent des fonctions scalaires: CURRENT, SQRT et SYSDATE. Vous pouvez maintenant afficher des informations sur des datamarts dans les accélérateurs existant en exécutant la commande ondwa listmarts. Vous pouvez maintenant charger datamarts rapidement en ajoutant un deuxième processeur virtuel DWAVP. Le processeur virtuel DWAVP exécute les fonctions et procédures d’administration d’Informix Warehouse. Un processeur virtuel DWAVP est automatiquement démarré lors de la première activité Informix Warehouse Accelerator. GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 21 Le multitenancy en version 12.10.xC5 Par Yoram Benchetrit, WW Informix L3 Support- IBM Analytic Platform Avec l’émergence du Cloud et des services embarqués, de nouveaux besoins propres aux bases de données sont apparus, et en particulier la nécessité de dédier des ressources disques, mémoire, CPU etc… aux utilisateurs, afin de permettre un partage avec un contrôle plus sélectif des ressources d’un serveur de base de données. Depuis la version 12.10.xC4, Informix s’est doté d’une nouvelle fonctionnalité appelé le Multitenancy qui permet au sein d’une même instance, de créer plusieurs tenants, définis par une base de données et l’ensemble des ressources qui lui sont dédiés. Pour cette première phase du multitenancy, les ressources étaient limitées aux dbspaces, blobspaces et smart blobspaces (y compris temporaires), ainsi qu’aux virtual processors (VPs). Exemple: EXECUTE FUNCTION task('tenant create', 'tenant_A', '{dbspace:"tenant_A_dbs1, tenant_A_dbs2", sbspace:"tenant_A_sbs1", vpclass:"tvp_A,num=2"}'); Cette commande crée un Tenant appelé 'tenant_A' et lui dédie les dbspaces 'tenant_A_dbs1', 'tenant_A_dbs2’, le sbspace 'tenant_A_sbs1', ainsi que 2 tenants VPs sur lesquels les threads utilisateurs s’exécuteront. En version 12.10.xC5 le Multitenancy a été étendu à une deuxième phase, et on peut contrôler davantage de ressources, au niveau des propriétés du tenant ou du fichier ONCONFIG. Voici les nouvelles propriétés de limites de sessions : 1) session_limit_memory : limite la quantité de mémoire qu’une session peut allouer exemple : ‘{session_limit_memory=”4096Kb”}’ 2) session_limit_tempspace : limite la quantité d’espace temporaire qu’une session peut allouer exemple : ‘{session_limit_ tempspace =”30Mb”}’ 3) session_limit_logspace: limite la quantité de log space qu’une session peut utiliser exemple : ‘{session_limit_ logspace =”4096kb”}’ 4) session_limit_txn_time : llimite la durée, en secondes, pendant laquelle une transaction peut exister exemple : ‘{session_limit_txn_time=”120”’}’ 5) tenant_limit_space : limite la capacité de stockage (dbspace, blobspace, sblobspace) qu’un tenant peut allouer exemple : '{"tenant_limit_space="2gb"}' GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 22 Voici les nouvelles limites de session du fichier ONCONFIG : Limites Unités Min Max Defaut SESSION_LIMIT_LOCKS SESSION_LIMIT_MEMORY SESSION_LIMIT_TEMPSPACE SESSION_LIMIT_LOGSPACE SESSION_LIMIT_TXN_TIME count KB KB KB secs 500 5 Mb 20 Mb 5 Mb 60 s 2 Milliards 2048 Gb 2048 Gb 2048 Gb 2 Milliards 0 (Off) 0 (Off) 0 (Off) 0 (Off) 0 (Off) Action Transaction terminée Session terminée Session terminée Transaction terminée Session terminée Exemple : SESSION_LIMIT_LOCKS SESSION_LIMIT_MEMORY SESSION_LIMIT_TEMPSPACE SESSION_LIMIT_LOGSPACE SESSION_LIMIT_TXN_TIME 10000 5120 204800 10240 300 # # # # 5 Mb 200 Mb 10 Mb 300 sec Ces nouvelles limites de sessions qui contrôlent la quantité de ressource qu’une session peut allouer ont des caractéristiques communes: Les administrateurs sont exempts de ces limites Les propriétés du tenant sont prioritaires par rapport à celles du fichier ONCONFIG Les propriétés du tenant ne supportent pas la requête SQL SET ENVIRONMENT Les valeurs minimales, maximales et par défaut des propriétés du tenant sont les mêmes que celles du fichier ONCONFIG Lorsqu’une session dépasse la limite d’une propriété, la transaction courante est terminée et la session pourra être arrêtée en fonction de la limite. La commande onstat –g ses permet de voir si une session est limitée, et permet de lister les 20 dernières sessions qui ont dépassé leurs limites. Exemple : Liste des sessions terminées : onstat –g ses Last 20 Session Terminated Ses ID 46 43 61 64 Username usera usera usera usera Hostname hosta hosta hosta hosta PID 21220 21340 21404 21458 Time 03/05/2015.20:05 03/06/2015.19:19 03/06/2015.19:22 03/06/2015.19:28 Reason session session session session limit limit limit limit txn time (60s) memory (5124 KB) logspace (10242 KB) tempspace (39548 KB) Total Terminated 4 Exemple : Limites de session : onstat –g ses <id> Session Limits Limit Locks 10000 Memory(KB) 5120 Temp Space(KB) 30720 Log Space(KB) 10240 Txn Times(s) 120 Current 1 72 0 0 0 Le session_mgr thread est responsable pour terminer la transaction d’une session qui a dépassé une limite de session, ainsi que pour terminer la session si nécessaire. Le thread est démarré au boot de l’instance et reste inactif jusqu’à ce qu’une session dépasse sa limite. GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 23 Exemple : onstat –g ath 28 4c3d60e8 4ad61fe8 3 sleeping secs : 34 8cpu session_mgr Lorsque la limite est dépassée, la session est terminée et un message est écrit dans le fichier de journalisation : 19:25:26 sid 62 - usera@hosta - pid 21428 (10242KB) exceeded limit. terminated because session allocated logspace 19:28:50 sid 64 - usera@hosta - pid 21458 (39548KB) exceeded limit. terminated because session allocated tempspace 19:19:19 sid 43 - usera@hosta - pid 21340 (5124KB) exceeded limit. terminated because session allocated memory 19:32:19 sid 43 - usera@hosta - pid 21340 duration (61 seconds) has exceeded limit. terminated because session transaction . GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 24 Derniers articles Gartner Group reparle d’Informix après un très long silence « DBMS Legacies are very Sticky »: voir l’article Informix revived on IT-Director.com: voir l’article GBASE and IBM to collaborate on locally innovated database in China: voir l’article Informix developer and user forum: voir l’article Compare the Informix Version 12 editions: voir l’article A SQL database for sensor and JSON data on Raspbian: voir l’article How to create a sensor database with IBM Informix - Part 1: voir l’article How to create a sensor database with IBM Informix - Part 2: voir l’article Vidéos IIUG 2015 - The Premier Data Insight and Informix Event: https://www.youtube.com/watch?v=uelOj90z8EI Informix @IBMInsight 2014 - Internet of Things Visualization: https://www.youtube.com/watch?v=vPY8RzBzVRQ Informix Column Encryption and Security by Lester Knutsen: https://www.youtube.com/watch?v=E93VDSHVaZk IBM Informix 12.1 - Simply Powerful: https://www.youtube.com/watch?v=PsNGl7svYVE Best Practices for Informix Developers by Art Kagel: https://www.youtube.com/watch?v=-prUegFRw00 How-To Install An Informix Driver: https://www.youtube.com/watch?v=EASenfH2omw Montage of Informix users sharing the business value of Informix!: https://www.youtube.com/watch?v=VGpEq1NjG8A IBM Informix 12 Compression Helps Optimize Storage: https://www.youtube.com/watch?v=w9CkUBbiq0Y Smart Meters Need Smarter Data Management: https://www.youtube.com/watch?v=MKZr1obwGnc Internet of Things with IBM Informix: https://www.youtube.com/watch?v=nAl626hHr4g Liens utiles Informix Developper Works : http://www.ibm.com/developerworks/data/products/informix/ IBM Redbook : http://www.redbooks.ibm.com/portals/data IBM Data Management magazine: http://www.ibm.com/developerworks/data/dmmag/ IIUG : http://www.iiug.org/index.php Informix sur facebook: http://www.facebook.com/IBM.Informix Informix on dBforums: http://www.dbforums.com/forumdisplay.php?82-Informix Informix blogs Art Kagel: http://informix-myview.blogspot.fr/ Andrew Ford: http://www.informix-dba.com/ Ognen Orel: http://ifmx.wordpress.com/ Fred Ho: https://www.ibm.com/developerworks/community/blogs/fredho66/?lang=en Fernando Nunes: http://informix-technology.blogspot.com/ Eric Vercelletto : Le village Informix http://levillageinformix.blogspot.com/ Bruce Weed: http://bruceweed.wordpress.com/ GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 25 GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 26 Guide Share France – Groupe Informix Magazine Informix Mars 2015 GUIDE SHARE FRANCE – GROUPE INFORMIX MARS 2015 – PAGE 27