#Conseils et astuces

0 Abonnés · 78 Publications

Des éléments d'expérience dans la technologie InterSystems qui résolvent un problème particulier de manière efficace ou inhabituelle.

Article Iryna Mykhailova · Avr 6, 2024 2m read

Rubrique FAQ InterSystems

La page de gestion de Web/CSP Gateway est généralement configurée de manière à ne pas être accessible à partir des machines clientes.

Pour y accéder depuis n'importe quel client, procédez comme suit :

  1. Lancez un navigateur à partir d'un système ayant accès à la page de gestion de Web/CSP Gateway et accédez au Management Portal.
  2. Sous Management Portal > System Administration > Configuration > cliquez sur CSP Gateway Management.
  3. Cliquez sur Default Parameters qui apparaissent dans le volet gauche de la page qui apparaît.
  4. Entrez *.*.*.* dans la System Management
0
0 112
Article Iryna Mykhailova · Avr 3, 2024 2m read

Rubrique FAQ InterSystems

Ici, nous présenterons un exemple de code pour l'enregistrement et le référencement des plannings de tâches.

①Exemple d'enregistrement du calendrier des tâches

*Créez une tâche à exécuter do ^TEST tous les jours à 1h00.

 set task=##class(%SYS.Task).%New()
 set task.Name="MyTask1"
 set taskDescription="Execute ^xxx every day at 1:00 AM" // Optional
 set task.NameSpace="USER"
 set task.TimePeriod=0
 set task.DailyFrequency=0
 set task.DailyFrequencyTime=""
 set task.DailyIncrement=""
 set task.DailyStartTime=$ZTimeh("01:00:00")
 set task.DailyEndTime=""
 set
0
0 89
Article Pierre LaFay · Mars 21, 2024 1m read

InterSystems FAQ rubric

Record maps sont utilisés pour faire correspondre efficacement des fichiers contenant des enregistrements délimités ou des enregistrements de largeur fixe aux classes de messages utilisées par la fonction d'interopérabilité, et pour faire correspondre des fichiers de classes de messages de la fonction d'interopérabilité à des fichiers texte.

Le définitions de correspondace peuvent être créés à l'aide du portail de gestion, et nous fournissons également un assistant d'enregistrement CSV qui vous permet de définir tout en lisant un fichier CSV.

Pour utiliser un record map

0
0 64
Article Pierre LaFay · Mars 3, 2024 2m read

InterSystems FAQ rubric

Les mappages globaux peuvent être enregistrés à l'aide de la classe système Config.MapGlobals.

La méthode pour mapper globalement ^Sample.PersonD dans une base de données SAMPLES autre que la base de données par défaut de l'espace de noms USER est la suivante (exemple exécuté dans un terminal).

USER>zn"%SYS"%SYS>set ns="USER"%SYS>set glo="Sample.PersonD"%SYS>set vals("Database")="SAMPLES"%SYS>set st=##class (Config.MapGlobals).Create(ns,glo,.vals)

Le troisième argument de la méthode Create() de la classe Config.MapGlobals est transmis par référence, il faut donc

0
0 69
Article Pierre LaFay · Fév 28, 2024 8m read

"Cela fait trente secondes que j'attends un service. C'est scandaleux ! Je m'en vais !"

"Je suis désolé d'entendre cela, monsieur. La prochaine fois, vous devriez peut-être réserver."

Si vous entendiez ce commentaire dans votre restaurant préféré, vous penseriez que la personne qui le fait est ridicule. Cependant, dans le contexte de votre API, ce commentaire est parfaitement logique. Tout comme votre restaurant préféré, votre API a des clients réguliers qui, comme vous le savez, viendront un jour ou l'autre. Il serait formidable de pouvoir faire une réservation permanente pour eux aussi.

Cela

0
0 78
Article Pierre LaFay · Fév 25, 2024 3m read

Je souhaite aborder les problèmes désagréables liés à la lecture d'un texte plat en ASCII, UTF*
excluant explicitement HTML, EBCDIC, et autres encodages.
D'après Wikipediail existe au moins 8 variantes de caractères de contrôle.

  • CR+LF est typique de Windows
  • LF est typique du monde Linux/UNIX
  • CR est le préféré de Mac

Comme vous pouvez le déduire des noms, l'inspiration vient des machines à écrire mécaniques.

Dans IRIS* comme dans Caché ou Ensemble ou ... les classes %Stream* et %File* offrent la même propriété avec la même valeur par défaut.


• La propriété LineTerminator as %String(MAXLEN=10)

1
0 82
Article Pierre LaFay · Fév 23, 2024 2m read

InterSystems FAQ rubric

Pour supprimer les produits InterSystems installés sur votre système Windows, utilisez Ajouter ou supprimer des programmes dans le Panneau de configuration (dans Windows 10, sélectionnez Apps dans les Paramètres Windows).

Comme nous allons apporter des modifications au système, vous devrez vous connecter en tant qu'utilisateur disposant de privilèges d'administrateur.

1) Connectez-vous au système en tant qu'administrateur.

2) Dans la barre d'état système, quittez le lanceur de l'instance de produit InterSystems que vous souhaitez désinstaller (cliquez sur lanceur →

0
0 70
Article Pierre LaFay · Fév 18, 2024 2m read

InterSystems FAQ rubric

Sous Linux, utilisez la commande iris pour exécuter une routine ou une méthode à partir d'un shell et obtenir la valeur de retour.

Pour plus d'informations, veuillez consulter le document "About Instance Connections".

Voici un exemple de commande.

iris terminal instname [arguments]

La valeur de retour d'un script shell peut être spécifiée à l'aide d'une variable spéciale utilisant la méthode Terminate() de la classe %SYSTEM.Proces à la fin du processus, plutôt qu'en spécifiant un argument dans la commande QUIT ou RETURN qui est spécifiée à la fin d'une routine ou d'une

0
0 336
Article Pierre LaFay · Fév 18, 2024 2m read

InterSystems FAQ rubric

Pour exécuter une sauvegarde en ligne à partir d'une commande, vous pouvez utiliser la routine API BACKUP^DBACK.
Voici un exemple de sauvegarde complète.

set  status = $$ BACKUP ^DBACK( "" , "F" , "full backup" , "c:\backup\full.cbk" , "Y" , "c:\backup\full-log.log" , " NOINPUT" , "Y" , "Y" , "" , "" )

La valeur de retour est 1 si la sauvegarde est réussie, et 0 si la sauvegarde échoue. Veuillez consulter le fichier journal pour plus de détails sur les échecs.

En outre, vous pouvez spécifier C pour le deuxième argument TYPE afin de spécifier une sauvegarde cumulative, et

0
0 42
Article Pierre LaFay · Fév 18, 2024 2m read

InterSystems FAQ rubric

Un outil (l'utilitaire ^GLOBUFF) est disponible pour vérifier l'utilisation du cache de la base de données pour chaque variable globale.

Vous pouvez exécuter l'utilitaire directement ou par programme dans l'espace de noms %SYS.

Voici comment exécuter l'utilitaire directement :

USER>zn "%SYS"
 
%SYS>do ^GLOBUFF
 
Find which globals are using the most buffers.
 
Display the top <25>:     → Press Enter  // Default is to display top 25 globals
 
Total buffers: 102400     Buffers in use: 6926     PPG buffers: 77 (1.112%)   // Global name, database name, percentage occupied by the buffer
0
0 72
Article Pierre LaFay · Fév 18, 2024 2m read

InterSystems FAQ rubric

La commande $ZF(-100) est utilisée suivant le format suivant.

$ZF(-100, flags, command name, command arguments)

Le flag "/shell" est nécessaire pour exécuter les commandes du système d'exploitation.
Par exemple, utilisez mkdir comme suit :

 // mkdir C:\temp\newdir
 Write$ZF(-100, "/shell", "mkdir", "C:\temp\newdir")

Si une commande a plusieurs arguments, mettez-les entre guillemets et séparez-les par des virgules, comme dans l'exemple ci-dessous.

 // move C:\temp\a.txt C:\temp\a2.txt
 Write$ZF(-100, "/shell", "move", "C:\temp\a.txt", "C:\ temp\a2.txt") // net use Z:
0
0 46
Article Pierre LaFay · Fév 4, 2024 4m read

InterSystems FAQ rubric

Si le système ne s'arrête pas pendant 24 heures, les anciens fichiers journaux seront supprimés à 0h30 selon les « Paramètres de suppression des fichiers journaux ».

Une cause possible pour laquelle des fichiers journaux restants sont plus anciens que les « Paramètres de suppression des fichiers journaux » est que certaines transactions restent ouvertes.

Dans ce cas, vous pourrez supprimer le fichier journal en recherchant les processus exécutant les transactions et en finalisant les transactions.

L'exemple ci-dessous vérifie l'existence de transactions ouvertes et, si

0
0 83
Article Sylvain Guilbaud · Jan 30, 2024 9m read

Nous sommes de retour à %SYS ! Puisque nous avons abordé la gestion des utilisateurs et des ressources dans les deux derniers articles, nous pouvons enfin passer aux rôles. Comme vous l’avez peut-être deviné, il existe de nombreuses méthodes pour les gérer que vous avez déjà vues dans nos écrits précédents. Cependant, nous pouvons encore rencontrer des différences clés dans cette classe particulière

Avant de commencer, gardez à l’esprit qu’il s’agit d’une autre classe qui ne doit pas être manipulée via un accès SQL direct.

0
0 62
Article Pierre LaFay · Jan 13, 2024 3m read

InterSystems FAQ rubric

Les définitions de classe créées par les utilisateurs sont stockées dans des classes de définition de classe. Ils peuvent être utilisés pour obtenir une liste de définitions de classe à partir d'un programme.

Remarque : Les classes de définition de classe font référence à toutes les classes contenues dans le package %Dictionary.

Dans l'exemple de code ci-dessous, une liste de définitions de classe est obtenue à l'aide de la commande query Summary de la  classe %Dictionary.ClassDefinitionQuery.

Class ISJ.Utils
{
ClassMethod ClassInfo()
{
    #dim ex As %Exception.Abstrac
0
0 76
Article Iryna Mykhailova · Déc 27, 2023 2m read

Avez-vous déjà modifié des fichiers dans VS Code, mais avez-vous dû vérifier une valeur globale ou exécuter quelques commandes ObjectScript ? C’est désormais possible, sans aucune configuration requise ! Si vous disposez de l'extension vscode-objectscript version 2.10.0 ou ultérieure et que vous êtes connecté à InterSystems IRIS 2023.2 ou version ultérieure, vous pouvez ouvrir maintenant une connexion de terminal à votre serveur, quel que soit l'endroit où il se trouve.

Il existe trois manières d'ouvrir ce nouveau terminal :

  • La commande "Launch WebSocket Terminal" dans la palette de commandes
3
0 251
Article Pierre LaFay · Jan 10, 2024 5m read

[Introduction]

La famille InterSystems IRIS a un utilitaire intéressant : ^SystemPerformance (aussi connu comme ^pButtons pour Caché et Ensemble) qui génère les informations sur les performances de la base de données dans un fichier HTML lisible. Lorsque vous exécutez ^SystemPerformance sur IRIS pour Windows, un fichier HTML est créé dans lequel notre propre journal de performances mgstat et notre journal de performances Windows sont inclus.

1
0 86
Article Pierre LaFay · Jan 9, 2024 2m read

Salut les développeurs !

Comme vous le savez, InterSystems IRIS, outre les modèles de données globaux, objets, documents et XML, prend également en charge le relationnel où SQL est attendu comme langage pour traiter les données.

Et comme dans d'autres SGBD relationnels, InterSystems, IRIS a son propre dialecte.

Je commence cet article pour prendre en charge une aide-mémoire SQL et vous invite à partager vos favoris. Je mettrai à jour le contenu lors des commentaires entrants.

On y va!

0
1 58
Article Pierre LaFay · Jan 7, 2024 14m read

Vous ne le réalisez peut-être pas, mais votre compte de connexion InterSystems peut être utilisé pour accéder à un très large éventail de services InterSystems pour vous aider à apprendre et à utiliser InterSystems IRIS et d'autres technologies InterSystems plus efficacement.Continuez à lire pour en savoir plus sur la façon de débloquer de nouvelles connaissances et outils techniques à l’aide de votre compte de connexion InterSystems.Aussi - après avoir lu, veuillez participer au sondage en bas, afin que nous puissions voir en quoi cet article vous a été utile !

0
0 37
Article Pierre LaFay · Jan 7, 2024 2m read

InterSystems FAQ rubric

Pour résoudre l'erreur <PROTECT>, supprimez l'attribut en lecture seule de la base de données de bibliothèque à l'échelle du système (IRISLIB pour InterSystems IRIS, CACHELIB pour Caché/Ensemble/HealthShare (basé sur Caché)).

Une fois que vous avez terminé d'importer la routine, n'oubliez pas de la remettre en lecture seule.

[Version 2013.1 and above]
[Management Portal] > [System Administration] > [Configuration] > [System Configuration] > [Local Database] Uncheck "Mount read-only" from the database name link.

[Version 2011.1 - Version 2012.2]
[Management Portal] > [System

0
0 81
Article Pierre LaFay · Jan 7, 2024 1m read

InterSystems FAQ rubric

Il n'est pas nécessaire de recompiler les routines après la mise à niveau de la version, mais comme la mise à jour de la version écrase %SYS, les routines au format INT et OBJ créées par l'utilisateur (*.INT,*.OBJ) dans %SYS seront supprimées. Par conséquent, vous devez être prudent.

Les routines MAC, INT et OBJ portant les noms suivants ne sont pas supprimées.

%Z*.INT, %z*.INT, Z*.INT,z*.INT
%Z*.OBJ, %z*.OBJ, Z*.OBJ,z*.OBJ

Veuillez noter que les classes/CSP doivent être compilées après la mise à niveau.

Toutefois, si vous effectuez une mise à niveau vers une version de

0
0 41
Article Pierre LaFay · Jan 6, 2024 2m read

InterSystems FAQ rubric

Si une relation est définie et qu'il existe un grand nombre de n dans un rapport 1:n, une grande quantité de mémoire peut être consommée en raison du traitement séquentiel de la relation.

Après avoir référencé un objet à plusieurs côtés dans un programme et l'avoir fait pivoter en interne, le simple fait de libérer la variable contenant l'OREF (en la supprimant, en définissant une autre valeur, etc.) ne libérera pas les objets liés ni l'objet de relation. 

Pour les libérer complètement de la mémoire, vous devez les libérer explicitement en libérant la variable OREF et en

0
0 58
Article Pierre LaFay · Déc 31, 2023 1m read

InterSystems FAQ rubric

Si plusieurs produits InterSystems sont installés sur le même système, la dernière version du pilote ODBC InterSystems parmi les produits installés restera enregistrée dans le gestionnaire de pilotes.

Vous pouvez passer à n'importe quel pilote en modifiant l'entrée de la registry ci-dessous.

Veuillez noter que l'exécution de RegFiles.bat ne modifie pas le pilote ODBC.

L'entrée de la registry est la suivante.

HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\InterSystems ODBC35 key Driver
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\InterSystems ODBC35 key Setup

Les entrées

0
0 64
Article Pierre LaFay · Déc 30, 2023 1m read

InterSystems FAQ rubric

Si vous redémarrez le système d'exploitation après avoir modifié le nom de la machine sans arrêter InterSystems IRIS (ci-après dénommé IRIS), un problème se produit lorsque IRIS ne peut pas démarrer.

Pour commencer supprimer le fichier <installation directory>\mgr\iris.ids .

iris.ids stocke le nom du nœud démarré et les informations sur la mémoire partagée (ID de mémoire partagée). Il est créé au démarrage d'IRIS et supprimé à l'arrêt. (iris stop ou iris force). Si vous arrêtez (redémarrez) le système d'exploitation sans arrêter IRIS, iris.ids, qui contient les informations de démarrage d'IRIS, peut rester.

0
0 111
Article Guillaume Rongier · Nov 17, 2023 3m read

Rubrique Questions fréquentes (FAQ) d'InterSystems

Pour les routines (*.mac)

Vous pouvez masquer la source en exportant/important uniquement le fichier *.obj généré après la compilation du programme source.

L'exemple d'exécution de la commande spécifie EX1Sample.obj et EX2Sample.obj, qui sont générés par la compilation de EX1Sample.mac et EX2Sample.mac, comme cibles d'exportation et les exporte dans le deuxième fichier argument.

Après avoir changé d'espace de noms, j'utilise le fichier XML exporté pour effectuer l'importation.

USER>do$system.OBJ.Export("EX1Sample.obj,EX2Sample.obj","D:\routine.xml
0
0 77
Article Sylvain Guilbaud · Sept 6, 2023 3m read

pour démonter/monter une base de données, utilisez les méthodes Dismount() et Mount() dans la classe SYS.Database disponible dans l'espace de noms %SYS.
NB : l'ID de la base de données est le nom du chemin absolu de son répertoire.

Vous trouverez quelques exemples de démontage/montage et de méthodes contrôlant si une base de données est montée (Mounted=1) ou non (Mounted=0), ou affichant rapidement tous les attributs d'une base de données (via zwrite)

%SYS>set db="/opt/irisapp/data"  
%SYS>w ##class(SYS.Database).%OpenId(db).Mounted                     
1
%SYS>w
0
0 129
Article Sylvain Guilbaud · Août 25, 2023 1m read

Rubrique FAQ InterSystems

Vous pouvez voir l'espace disponible libre pour la base de données à l'aide du bouton radio « Vue de l'espace libre » dans le portail de gestion : Exploitation du système > Bases de données.

Et il peut être obtenu par programmation par la requête FreeSpace de la classe système SYS.Database.

0
0 75
Article Sylvain Guilbaud · Août 24, 2023 1m read

Il arrive parfois que suite à un événement indésirable la base d'AUDIT (IRISAUDIT) ait pris des proportions telles que le disque sur lequel elle réside soit plein et qu'on ne peut attendre la purge quotidienne pour récupérer l'espace disque.

Comme IRISAUDIT est une base système requise au démarrage, il n'est pas question de tenter un redémarrage d'IRIS après une simple suppression de IRIS.DAT de la base <IRIS ROOT>/mgr/irisaudit/, ni de la remplacer directement à chaud, par des manipulations système en essayant de la démonter, remplacer, remonter, puisqu'il n'est tout simplement pas possible

1
0 67
Article Sylvain Guilbaud · Août 10, 2023 1m read

Rubrique FAQ InterSystems

Vous pouvez définir des pages d'erreur individuelles en fonction des différents types de messages d'erreur ou de réponses système de la passerelle Web :

  • erreur de serveur 
  • serveur occupé
  • serveur indisponible
  • délai d'attente du serveur
  • connexion fermée

Les paramètres sont définis sur l'écran Gestion de passerelle Web ([Portail d'Administration] > [Administration système] > [Configuration] > [Gestion de passerelle Web] > [Configuration] > [Default Parameters]).

Dans la section "Error Pages" du menu "Default Parameters", indiquez le nom de fichier de la page html à afficher ou l'URL vers laquelle rediriger la réponse lorsqu'une erreur se produit.

  

1
0 88
Article Sylvain Guilbaud · Juil 5, 2023 17m read

Ci-dessous figure une liste de certains des utilitaires disponibles dans InterSystems IRIS.

Cliquez sur le nom de chaque utilitaire dans le tableau ci-dessous pour obtenir des informations détaillées sur l'utilitaire.

<td>
  Aperçu
</td>
<td>
  Exécution d'opérations de sauvegarde et de restauration
</td>
<td>
  Gestion des bases de données, y compris la création, la modification et la suppression de bases de données
</td>
<td>
  Vérification de la concordance
Nom de l'utilitaire
^BACKUP
^DATABASE
^DATACHECK
0
0 143
Article Sylvain Guilbaud · Juin 21, 2023 9m read

Aperçu général

Des performances prévisibles en matière d'E/S de stockage avec une faible latence sont essentielles pour assurer l'évolutivité et la fiabilité de vos applications. Cette série de benchmarks a pour but d'informer les utilisateurs d'IRIS qui envisagent de déployer des applications dans AWS sur les performances des volumes EBS gp3.

Résumé

  • Une bande LVM peut augmenter le nombre d'IOPS et le débit au-delà des limites de performance d'un volume EBS unique.
  • Une bande LVM réduit la latence de lecture.
0
0 167