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 :
[email protected]
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:[email protected]):





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