Search

Clear filter
Announcement
Michelle Spisak · Apr 30, 2018

(Webinar May 17) Introducing InterSystems Cloud Manager

When you hear people talk about moving their applications to the cloud, are you unsure of what exactly they mean? Do you want a solution for migrating your local, physical servers to a flexible, efficient cloud infrastructure? Join Luca Ravazzolo for Introducing InterSystems Cloud Manager, (May 17th, 2:00 p.m. EDT). In this webinar, Luca — Product Manager for InterSystems Cloud Manager — will explain cloud technology and how you can move your InterSystems IRIS infrastructure to the cloud in an operationally agile fashion. He will also be able to answer your questions following the webinar about this great new product from InterSystems! Thanks Michelle!I'm happy to answer any question anybody may have on the webinar where I presented InterSystems Cloud Manager and generally on the improvement an organization can achieve in its software-factory with the newly available technologies from InterSystems. This webinar recording has been posted: https://learning.intersystems.com/course/view.php?name=IntroICMwebinar And now this webinar recording is available on InterSystems Developers YouTube Channel: Please welcome!
Announcement
Jon Jensen · Jun 5, 2018

InterSystems Global Summit 2018 registration now open!

Hi Community!Save the date for InterSystems Global Summit 2018! This year Global Summit is Sept. 30 – Oct. 3, 2018 at the JW Marriott Hill Country Resort & Spa in San Antonio, TX.Registration for Global Summit is now open!Empowering What MattersInterSystems Global Summit 2018 is all about empowering you, because you and the applications you build with our technology MATTER. It is an unparalleled opportunity to connect with your peers and with InterSystems’ executives and technical experts.InterSystems Global Summit is an annual gathering for everyone in the InterSystems community. It is composed of three conferences:Solution Developer ConferenceTechnology Leadership ConferenceHealthcare Leadership ConferenceThe super early bird registration rate of $999 is available until August 10, 2018.Register now. See you at InterSystems Global Summit 2018!
Announcement
Evgeny Shvarov · May 1, 2017

Webinar Configuring IIS for Better Performance and Security with InterSystems

Have you ever thought about leveraging IIS (Internet Information Services for Windows) to improve performance and security for your Caché web applications? Are you worried about the complexity of properly setting up IIS?See the webinar Configuring a Web Server presented by @Kyle.Baxter, InterSystems Senior Support Specialist. Learn how to install IIS, set up it up to work with the CSP Gateway, and configure the CSP Gateway to talk to Caché.If you have not subscribed to our Developer Community YouTube Channel yet, let's get started right now. Enjoy!
Announcement
Janine Perkins · May 5, 2017

Featured InterSystems Online Course: Using SAML for Security

Take this online course to learn the basics of SAML (Security Assertion Markup Language), the ways in which it can be used within Caché security features, and some use cases that can be applied to HealthShare productions.Audience: This course is for Caché and HealthShare developers who may want to use SAML as a part of their security strategy, want to learn SAML basics, and the capabilities of Caché and HealthShare for using SAML.Learn more.
Question
Kishan Ravindran · Jul 1, 2017

How to Enable iKnow Functionality in InterSystems Caché

In my cache studio i couldn't find the a namespace of iknow so how can i check is my studio version is compatible to to the one i am using now. If i don't have one then can be able to create a new namespace in studio? I checked out how it can be done using intersystem doc. But for mine i think for my user the license does not apply is there any other way i can work on. Can anyone help me on this. Thank you John Murray and Benjamin DeBoe for your answers. Both your Document was helpful. Here's a way of discovering if your license includes the iKnow feature:USER>w $system.License.GetFeature(11)1USER>A return value of 1 indicates that you are licensed for iKnow. If the result is 0 then your license does not include iKnow.See here for documentation about this method, which tells you that 11 is the feature number for iKnow.Regarding namespaces, these are created in Portal, not in Studio. See this documentation. Thanks John,indeed, you'd need a proper license in order to work with iKnow. If the method referred above would return 0, please contact your sales representative to request a temporary trial license and appropriate assistance for implementing your use case.Also, iKnow doesn't come as a separate namespace. You can create (regular) namespaces as you prefer and use them to store iKnow domain data. You may need to enable your web application for iKnow, which is disabled by default for security reasons in the same way DeepSee is. See this paragraph here for more details.
Announcement
Evgeny Shvarov · Jul 24, 2017

Come to the 1st InterSystems Community Meetup in Cambridge!

Hi, Community! Recently we announced Developer Community Meetup in Cambridge, MA. Let me describe what is it. Meetup it's a one evening event where you can enjoy some sessions by presenters (today InterSystems engineers, tomorrow you can be a presenter) and chat with local developers and InterSystems developers, engineers and product managers (depends on who is in town) and discuss your problems, experience, and success with InterSystems technologies. InterSystems would provide the place, technical sessions, some food and beverages. We think the Developer Community would benefit from it. We can make the event a regular thing and introduce it in different cities and countries. The success of the event depends on whether you come. D you want InterSystems meetup? See you on 8th of August in Cambridge Innovation Center!
Announcement
Evgeny Shvarov · Aug 7, 2018

InterSystems IRIS is Available on Google Cloud Platform Marketplace

Hi, Community! Just want to let you know that InterSystems IRIS is available on Google Cloud Marketplace. Start here to get your InterSystems IRIS VM on GCP. You can request a license for InterSystems IRIS here. Learn more in an official press release Create an IRIS instance in 5 minutes video... https://youtu.be/f_uVe_Q5X-c
Article
Gevorg Arutiunian · Sep 4, 2018

How I implemented GraphQL for InterSystems platforms

![](https://pp.userapi.com/c849024/v849024561/cea1/ayx4tJnAKRE.jpg) I already talked about [GraphQL](https://community.intersystems.com/post/graphql-intersystems-data-platforms) and the ways of using it in this article. Now I am going to tell you about the tasks I was facing and the results that I managed to achieve in the process of implementing GraphQL for InterSystems platforms. ## What this article is about - Generation of an [AST](https://en.wikipedia.org/wiki/Abstract_syntax_tree) for a GraphQL request and its validation - Generation of documentation - Generation of a response in the JSON format Let’s take a look at the entire process from sending a request to receiving a response using this simple flow as an example: ![](https://habrastorage.org/webt/us/9d/6v/us9d6vhhpnpjs_ttqwwafufrnxq.jpeg) The client can send requests of two types to the server: - A schema request. The server generates a schema and returns it to the client. We’ll cover this process later in this article. - A request to fetch/modify a particular data set. In this case, the server generates an AST, validates and returns a response. ## AST generation The first task that we had to solve was to parse the received GraphQL request. Initially, I wanted to find an external library and use it to parse the response and generate an AST. However, I discarded the idea for a number of reasons. This is yet another black box, and you should keep the issue with long callbacks in mind. That’s how I ended up with a decision to write my own parser, but where do I get its description? Things got better when I realized that [GraphQL](http://facebook.github.io/graphql/October2016/) was an open-source project with a pretty good description by Facebook. I also found multiple examples of parsers written in other languages. You can find a description of an AST [here](http://facebook.github.io/graphql/October2016/#Document). Let’s take a look at a sample request and tree: ``` { Sample_Company(id: 15) { Name } } ``` **AST** ``` { "Kind": "Document", "Location": { "Start": 1, "End": 45 }, "Definitions": [ { "Kind": "OperationDefinition", "Location": { "Start": 1, "End": 45 }, "Directives": [], "VariableDefinitions": [], "Name": null, "Operation": "Query", "SelectionSet": { "Kind": "SelectionSet", "Location": { "Start": 1, "End": 45 }, "Selections": [ { "Kind": "FieldSelection", "Location": { "Start": 5, "End": 44 }, "Name": { "Kind": "Name", "Location": { "Start": 5, "End": 20 }, "Value": "Sample_Company" }, "Alias": null, "Arguments": [ { "Kind": "Argument", "Location": { "Start": 26, "End": 27 }, "Name": { "Kind": "Name", "Location": { "Start": 20, "End": 23 }, "Value": "id" }, "Value": { "Kind": "ScalarValue", "Location": { "Start": 24, "End": 27 }, "KindField": 11, "Value": 15 } } ], "Directives": [], "SelectionSet": { "Kind": "SelectionSet", "Location": { "Start": 28, "End": 44 }, "Selections": [ { "Kind": "FieldSelection", "Location": { "Start": 34, "End": 42 }, "Name": { "Kind": "Name", "Location": { "Start": 34, "End": 42 }, "Value": "Name" }, "Alias": null, "Arguments": [], "Directives": [], "SelectionSet": null } ] } } ] } } ] } ``` ## Validation Once we receive a tree, we’ll need to check if it has classes, properties, arguments and their types on the server – that is, we’ll need to validate it. Let’s traverse the tree recursively and check whether its elements match the ones on the server. [Here’s](https://github.com/intersystems-ru/GraphQL/blob/master/cls/GraphQL/Query/Validation.cls) how a class looks. ## Schema generation A **schema** is a type of documentation for available classes and properties, as well as a description of property types in these classes. GraphQL implementations in other languages or technologies use resolvers to generate schemas. A resolver is a description of the types of data available on the server. **Examples or resolvers, requests, and responses** ``` type Query { human(id: ID!): Human } type Human { name: String appearsIn: [Episode] starships: [Starship] } enum Episode { NEWHOPE EMPIRE JEDI } type Starship { name: String } ``` ``` { human(id: 1002) { name appearsIn starships { name } } } ``` ```json { "data": { "human": { "name": "Han Solo", "appearsIn": [ "NEWHOPE", "EMPIRE", "JEDI" ], "starships": [ { "name": "Millenium Falcon" }, { "name": "Imperial shuttle" } ] } } } ``` However, before we generate a schema, we need to understand its structure, find a description or, even better, examples. The first thing I tried was attempting to find one that would help me understand the structure of a schema. Since GitHub has its own [GraphQL API](https://developer.github.com/v4/explorer/), it was easy to get one from there. But the problem was that its server-side was so huge that the schema itself occupied 64 thousand lines. I really hated the idea of delving into all that and started looking for other methods of obtaining a schema. Since our platforms are based on a DBMS, my plan for the next step was to build and start GraphQL for PostgreSQL and SQLite. With PostgreSQL, I managed to fit the schema into just 22 thousand lines, and SQLite gave me an even better result with 18 thousand lines. It was better than the starting point, but still not enough, so I kept on looking. I ended up choosing a [NodeJS](https://graphql.org/graphql-js/) implementation, made a build, wrote a simple resolver, and got a solution with just 1800 lines, which was way better! Once I had wrapped my head around the schema, I decided to generate it automatically without creating resolvers on the server in advance, since getting meta information about classes and their relationships is really easy. To generate your own schema, you need to understand a few simple things: - You don’t need to generate it from scratch – take one from NodeJS, remove the unnecessary stuff and add the things that you do need. - The root of the schema has a queryType type. You need to initialize its “name” field with some value. We are not interested in the other two types since they are still being implemented at this point. - You need to add all the available classes and their properties to the **types** array. ``` { "data": { "__schema": { "queryType": { "name": "Query" }, "mutationType": null, "subscriptionType": null, "types":[... ], "directives":[... ] } } } ``` - First of all, you need to describe the **Query** root element and add all the classes, their arguments, and class types to the **fields** array. This way, they will be accessible from the root element. **Let’s take a look at two sample classes, Example_City and Example_Country** ``` { "kind": "OBJECT", "name": "Query", "description": "The query root of InterSystems GraphQL interface.", "fields": [ { "name": "Example_City", "description": null, "args": [ { "name": "id", "description": "ID of the object", "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, "defaultValue": null }, { "name": "Name", "description": "", "type": { "kind": "SCALAR", "name": "String", "ofType": null }, "defaultValue": null } ], "type": { "kind": "LIST", "name": null, "ofType": { "kind": "OBJECT", "name": "Example_City", "ofType": null } }, "isDeprecated": false, "deprecationReason": null }, { "name": "Example_Country", "description": null, "args": [ { "name": "id", "description": "ID of the object", "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, "defaultValue": null }, { "name": "Name", "description": "", "type": { "kind": "SCALAR", "name": "String", "ofType": null }, "defaultValue": null } ], "type": { "kind": "LIST", "name": null, "ofType": { "kind": "OBJECT", "name": "Example_Country", "ofType": null } }, "isDeprecated": false, "deprecationReason": null } ], "inputFields": null, "interfaces": [], "enumValues": null, "possibleTypes": null } ``` - Our second step is to go one level higher and extend the **types** array with the classes that have already been described in the **Query** object with all of the properties, types, and relationships with other classes. **Descriptions of classes** ``` { "kind": "OBJECT", "name": "Example_City", "description": "", "fields": [ { "name": "id", "description": "ID of the object", "args": [], "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { "name": "Country", "description": "", "args": [], "type": { "kind": "OBJECT", "name": "Example_Country", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { "name": "Name", "description": "", "args": [], "type": { "kind": "SCALAR", "name": "String", "ofType": null }, "isDeprecated": false, "deprecationReason": null } ], "inputFields": null, "interfaces": [], "enumValues": null, "possibleTypes": null }, { "kind": "OBJECT", "name": "Example_Country", "description": "", "fields": [ { "name": "id", "description": "ID of the object", "args": [], "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { "name": "City", "description": "", "args": [], "type": { "kind": "LIST", "name": null, "ofType": { "kind": "OBJECT", "name": "Example_City", "ofType": null } }, "isDeprecated": false, "deprecationReason": null }, { "name": "Name", "description": "", "args": [], "type": { "kind": "SCALAR", "name": "String", "ofType": null }, "isDeprecated": false, "deprecationReason": null } ], "inputFields": null, "interfaces": [], "enumValues": null, "possibleTypes": null } ``` - The third point is that the “types” array contains descriptions of all popular scalar types, such as int, string, etc. We’ll add our own scalar types there, too. ## Response generation Here is the most complex and exciting part. A request should generate a response. At the same time, the response should be in the JSON format and match the request structure. For each new GraphQL request, the server has to generate a class containing the logic for obtaining the requested data. The class is not considered new if the values of arguments changed – that is, if we get a particular dataset for Moscow and then the same set for London, no new class will be generated, it’s just going to be new values. In the end, this class will contain an SQL query and the resulting dataset will be saved in the JSON format with its structure matching the GraphQL request. **An example of a request and a generated class** ``` { Sample_Company(id: 15) { Name } } ``` ``` Class gqlcq.qsmytrXzYZmD4dvgwVIIA [ Not ProcedureBlock ] { ClassMethod Execute(arg1) As %DynamicObject { set result = {"data":{}} set query1 = [] #SQLCOMPILE SELECT=ODBC &sql(DECLARE C1 CURSOR FOR SELECT Name INTO :f1 FROM Sample.Company WHERE id= :arg1 ) &sql(OPEN C1) &sql(FETCH C1) While (SQLCODE = 0) { do query1.%Push({"Name":(f1)}) &sql(FETCH C1) } &sql(CLOSE C1) set result.data."Sample_Company" = query1 quit result } ClassMethod IsUpToDate() As %Boolean { quit:$$$comClassKeyGet("Sample.Company",$$$cCLASShash)'="3B5DBWmwgoE" $$$NO quit $$$YES } } ``` How this process looks in a scheme: ![](https://habrastorage.org/webt/ep/e4/im/epe4imwumbaj5dlty-cbo2bfbke.jpeg) For now, the response is generated for the following requests: - Basic - Embedded objects - Only the many-to-one relationship - List of simple types - List of objects Below is a scheme containing the types of relationships that are yet to be implemented: ![](https://habrastorage.org/webt/vc/-d/wn/vc-dwncluqivqmk8msc0uagowpy.jpeg) Summary - **Response** — at the moment, you can get a set of data for relatively simple requests. - **Automatically generated schema** — the schema is generated for stored classes accessible to the client, but not for pre-defined resolvers. - **A fully functional parser** – the parser is fully implemented, you can get a tree by making a request of any complexity. → [Link to the project repository](https://github.com/intersystems-community/GraphQL) → [Link to the demo server](http://37.139.6.217:57773/graphiql/index.html) Demo server doesn't work Thank you, I fixed this issue!
Announcement
Evgeny Shvarov · Oct 1, 2018

InterSystems Global Summit Key Notes Live Stream

hi Community!Here is the link: https://portal.xyvid.com/group/GS18It will start now! Today is the second InterSystem Global Summit KeyNotes day! Don't miss breaking news!
Announcement
David Reche · Nov 13, 2018

(27 November, Madrid) InterSystems Iberia Healthcare Summit

Hi Everyone! We are pleased to invite you to the InterSystems Iberia Summit 2018 on 27th of November in Madrid, Spain! The New Challenges of Connected Health Matter Date: November 27, 2018 Place: Hotel Meliá Serrano, Madrid Please check the original agenda of the event. REGISTER NOW and hope to see you at the Iberia Healthcare Summit 2018 in Madrid!
Announcement
Anastasia Dyubaylo · Jul 3, 2023

Time to vote in InterSystems Grand Prix Contest 2023

Hi Community, It's voting time! Cast your votes for the best applications in our InterSystems Grand Prix Contest 2023: 🔥 VOTE FOR THE BEST APPS 🔥 How to vote? Details below. Experts nomination: InterSystems experienced jury will choose the best apps to nominate the prizes in the Experts Nomination. Please welcome our experts: ⭐️ @Alexander.Koblov, Support Specialist⭐️ @Guillaume.Rongier7183, Sales Engineer⭐️ @Eduard.Lebedyuk, Senior Cloud Engineer⭐️ @Steve.Pisani, Senior Solution Architect⭐️ @Timothy.Leavitt, Development Manager⭐️ @Evgeny.Shvarov, Developer Ecosystem Manager⭐️ @Dean.Andrews2971, Head of Developer Relations⭐️ @Alexander.Woodhead, Senior Systems Developer⭐️ @Andreas.Dieckow , Principal Product Manager⭐️ @Aya.Heshmat, Product Specialist⭐️ @Benjamin.DeBoe, Product Manager⭐️ @Robert.Kuszewski, Product Manager⭐️ @Carmen.Logue , Product Manager⭐️ @Jeffrey.Fried, Director of Product Management⭐️ @Luca.Ravazzolo, Product Manager⭐️ @Raj.Singh5479, Product Manager⭐️ @Patrick.Jamieson3621, Product Manager⭐️ @Stefan.Wittmann, Product Manager⭐️ @Steven.LeBlanc, Product Specialist⭐️ @Thomas.Dyar, Product Specialist⭐️ @Daniel.Franco, Interoperability Product Management Community nomination: For each user, a higher score is selected from two categories below: Conditions Place 1st 2nd 3rd If you have an article posted on DC and an app uploaded to Open Exchange (OEX) 9 6 3 If you have at least 1 article posted on DC or 1 app uploaded to OEX 6 4 2 If you make any valid contribution to DC (posted a comment/question, etc.) 3 2 1 Level Place 1st 2nd 3rd VIP Global Masters level or ISC Product Managers 15 10 5 Ambassador GM level 12 8 4 Expert GM level or DC Moderators 9 6 3 Specialist GM level 6 4 2 Advocate GM level or ISC Employees 3 2 1 Blind vote! The number of votes for each app will be hidden from everyone. Once a day we will publish the leaderboard in the comments to this post. The order of projects on the contest page will be as follows: the earlier an application was submitted to the competition, the higher it will be on the list. P.S. Don't forget to subscribe to this post (click on the bell icon) to be notified of new comments. To take part in the voting, you need: Sign in to Open Exchange – DC credentials will work. Make any valid contribution to the Developer Community – answer or ask questions, write an article, contribute applications on Open Exchange – and you'll be able to vote. Check this post on the options to make helpful contributions to the Developer Community. If you changed your mind, cancel the choice and give your vote to another application! Support the application you like! Note: contest participants are allowed to fix the bugs and make improvements to their applications during the voting week, so don't miss and subscribe to application releases! So! After the first day of the voting we have: Community Nomination, Top 5 oex-vscode-snippets-template by @John.Murray irisChatGPT by @Muhammad.Waseem oex-mapping by @Robert.Cemper1003 irisapitester by @Daniel.Aguilar DevBox by @Sean.Connelly ➡️ Voting is here. Experts, we are waiting for your votes! 🔥 Participants, improve & promote your solutions! Devs! Here are the results after two days of voting: Community Nomination, Top 5 oex-vscode-snippets-template by @John Murray oex-mapping by @Robert Cemper irisChatGPT by @Muhammad Waseem irisapitester by @Daniel Aguilar iris-user-manager by @Oliver.Wilms ➡️ Voting is here. So, the voting continues. Please support the application you like! Hi Developers! Here are the results at the moment: Community Nomination, Top 5 iris-fhir-generative-ai by @José.Pereira irisChatGPT by @Muhammad Waseem oex-mapping by @Robert Cemper IntegratedMLandDashboardSample by @珊珊.喻 oex-vscode-snippets-template by @John Murray ➡️ Voting is here. Expert Nomination, Top 5 irisChatGPT by @Muhammad Waseem iris-fhir-generative-ai by @José.Pereira oex-vscode-snippets-template by @John Murray ZProfile by @Dmitry.Maslennikov DevBox by @Sean Connelly ➡️ Voting is here. Don't forget to vote for your favorite app! Hi, Dev's! And here're the results at the moment: Community Nomination, Top 5 iris-fhir-generative-ai by @José Roberto Pereira IntegratedMLandDashboardSample by @Shanshan Yu IntegratedML-IRIS-PlatformEntryPrediction by @Zhang.Fatong irisChatGPT by @Muhammad Waseem oex-mapping by @Robert.Cemper1003 ➡️ Voting is here. Expert Nomination, Top 5 iris-fhir-generative-ai by @José Roberto Pereira irisChatGPT by @Muhammad Waseem IRIS FHIR Transcribe Summarize Export by @Ikram.Shah3431 oex-mapping by @Robert.Cemper1003 FHIR - AI and OpenAPI Chain by @Ikram.Shah3431 ➡️ Voting is here. Was there a problem with the voting earlier this week? I know of two people who voted on Monday but when they re-checked yesterday or today found that their votes were no longer registered, so they had to vote again. I think something similar happened during a previous contest. It happened to me too. My votes were deleted I had to vote again and I don't know who voted for me I have the same issue. I voted on the 03rd of July. I've read your comment and discovered that my votes have disappeared. So I voted again now. Dear all, We encountered an issue with the voting and are currently working to fix it. Please don't worry - all your votes will be restored and counted in the voting. We hope for your understanding. Thank you! Developers! Last call!Only one day left to the end of voting! Cast your votes for applications you like! @Anastasia.Dyubaylo @Irina.Podmazko I'm unable to vote because of an issue with open exchange login. I'm able to login to community but not open exchange. I think the issue is related to my email id which is too long. I see an error like below. length longer than MAXLEN allowed of 50\r\n > ERROR #5802: Datatype validation failed on property 'MP.Data.User:Referrer', with value equal to Do you if there is a workaround? Is there any alternate way in which I can share my votes with you? Hi! Could you please try again? I've fixed this issue. Hi Semion, Thanks for fixing! I'm able to login now, but when I try to vote it says, I should be an active contributor to be able to vote. I've posted a few articles and comments already - https://community.intersystems.com/user/sowmiya-nagarajan. Do you know if these issues are related? What should I do to fix this? The activity status is updated every few days so that new users cannot cheating with votes during the contest. You are participant, so I can fix it for you. Done. Could you please try to vote again? Got it, Thanks Semion! I'm able to vote now.
Announcement
Preston Brown · Jul 16, 2023

Remote InterSystems Cache Object + XSLT Application Developer

Strong technical experience with InterSystems Cache Objects, XSLT is a must for this position.Experience in CACHE/MUMPS technology.Experience in IHE XCA, XDS.b profiles, CCDA exchange.Experience in HL7 v2 messaging.This position is good thru 2023 and very good possibility of extension if budget gets approved.This position is for Pacific time hours. We have several temporary open positions for InterSystems Application Developer. If you are interested, please drop your resume to pbrown@cybercodemasters.com
Announcement
Anastasia Dyubaylo · Jul 4, 2023

Keynotes from InterSystems Global Summit 2023 are available!

Hello Community! The Global Summit 2023 in Hollywood has just ended but keynotes are already available for those who missed them while being on the premises or who couldn't attend this in-person event at all for some reason or another (or just for those who wish to refresh their memory and listen to them again). Enjoy watching all the keynotes from all three days of Global Summit 2023 via this YouTube playlist: ➡️ Global Summit 2023 on InterSystems Developers YouTube We hope you enjoy watching them and see you next time! Great News, Thanks @Anastasia.Dyubaylo
Article
Hiroshi Sato · Feb 8, 2024

Points to note when uninstalling InterSystems IRIS on Linux

Spoiler InterSystems FAQ rubric On Linux, use the following steps to delete an instance of InterSystems IRIS (hereinafter referred to as IRIS). (1) Stop the IRIS instance you want to uninstall using iris stop # iris stop <instance name> (2) Delete the instance information using the following command # iris delete <instance name> (3) Delete the IRIS installation directory using the rm -r command # rm -r <install directory> In addition to the installation directory, IRIS also uses (a) and (b) below. ----------------------------------------- (a) /usr/local/etc/irissys <folder> (b) /usr/bin/iris /usr/bin/irisdb /usr/bin/irissession ----------------------------------------- If you want to completely remove all IRIS from your machine, please remove all of (a) and (b) in addition to the uninstallation steps above. However, these are commonly used in all instances. Therefore, please do not remove it from Unix/Linux unless you are "uninstalling all IRIS". *Note(a) There are three files in the directory: the executable file (iris, irissession) and the instance information (iris.reg).(b) The three files are symbolic links.
Article
Mihoko Iijima · Feb 22, 2024

Points to note when uninstalling InterSystems products on Windows

InterSystems FAQ rubric To remove InterSystems products installed on your Windows system, use Add or Remove Programs in Control Panel (in Windows 10, select Apps from Windows Settings). Since we will be making changes to the system, you will need to log in as a user with administrator privileges. 1) Log in to the system as an administrator. 2) From the system tray, exit the launcher of the InterSystems product instance you want to uninstall (click launcher → exit). 3) Add or Remove Programs in the Control Panel (for Windows 10, select Apps from Windows Settings) Delete <InterSystems product> instance [xxxx] (where xxxx is the instance name). Example: InterSystems IRIS instance [IRIS] 4) Delete the InterSystems product installation directory (C:\InterSystems\<InterSystems product> by default) using Windows Explorer. After you uninstall all InterSystems product instances from your system using the steps above, you can remove any remaining information using the steps below. <Complete deletion> a. Delete related registry keys Delete the following registry key(*). [HKEY_LOCAL_MACHINE\SOFTWARE\InterSystems] [HKEY_CURRENT_USER\SOFTWARE\InterSystems] [HKEY_USER\xxxxxxxx\SOFTWARE\InterSystems] (If this key exists, also delete it) [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Intersystems] (64bit system only) Caution: Incorrect registry operations can seriously affect your system. We strongly recommend that you perform a backup such as creating a restore point before performing this task. b. Delete common files Instance common files are stored in the following folder, so delete them using Windows Explorer, etc. C:\Program Files\Common Files\Intersystems c. Remove IIS additional components If IIS (Internet Information Services) is installed on your Windows system and additional components for IIS (CSP Gateway/Web Gateway) are installed, the following folder will exist, so delete it. C:\Inetpub\CSPGateway d.Remove VC++ runtime library The following redistributed runtime libraries can be deleted if they are not referenced or used by other applications. Microsoft Visual C++ 2008 Redistributable - x86 xxxx *Delete using Apps and Features in Windows Settings.