Article Robert Cemper · May 14, 2020 1m read IRS Docker micro Durability Allow limited durability for demo and development IRIS-Docker-micro-Durability During development of a container based demo I found the need to access a fresh dockeran instance of IRIS image (e.g intersystems/iris-community:2020.2.0.199.0) over and over.To bypass loading my code repeatedly I developed this workaround. It is a reduced variant of Docker - light weight durability #Containerization #Development Environment #Docker #System Administration #Testing #Tips & Tricks #Tools #Ubuntu #InterSystems IRIS 10 0 1 283
Article Robert Cemper · May 14, 2020 3m read websocket-client-js * iris-native-api * docker-micro-server Using the IRIS native API for Node.JS was the opportunity to presenta MicroService operating in a Docker container.A demo video is now also available to watch the demo in operation. #API #Node.js #ObjectScript #Video #InterSystems IRIS 12 0 1 1.1K
Question Robert Cemper · May 7, 2020 Docker vs. Durability Working from home during these Corona-days I'm short on resources.- no Linux machine available- limited disk spaceSo I decided to give Docker in Windows 10 (named Docker Desktop) a try. #Containerization #Docker #Field Tests #Microsoft Windows Server #Tips & Tricks #Tools #InterSystems IRIS 9 10 1 726
Article Robert Cemper · Apr 27, 2020 2m read Multidimensional Property Persistence - Part 2 (New Age) While the classic solution followed rather close the concepts and design of the ancestorsCaché / IRIS allows a more modern approach to flexible/multidimensional properties #Other 13 1 0 522
Article Robert Cemper · Apr 27, 2020 4m read Multidimensional Property Persistence - Part 1 (Classic) As you know in Caché / IRIS you have the possibility to define a property as Multidimensional as documented here: https://docs.intersystems.com/iris20201/csp/docbook/DocBook.UI.Page.cls?KEY=GOBJ_proplit#GOBJ_proplit_multidimand the explanation of how to use ithttps://docs.intersystems.com/iris20201/csp/docbook/Doc.View.cls?KEY=GOBJ_proplit#GOBJ_proplit_multidim_valuesThough the access is quite comfortable (in traditional COS sense) there are 2 main restrictions that hurt:#1) It is not saved to disk unless your application includes code to save it specifically.#2) It cannot be stored in or exposed through SQL tables there are some moreI'll show how to overcome these limits #Other 14 1 2 626
Article Robert Cemper · Apr 26, 2020 5m read Materialized Views A VIEW in SQL is basically a prepared SQL statement.It has to be executed and assembled like any other SQL query.MATERIALIZED VIEW means that the content is collected before hands and can be retrieved rather fast.I saw the concept first with my favorite competitor named O* and they made a lot of noise about it. { favorite: because I could win every benchmark against them } #Other 12 3 1 841
Article Robert Cemper · Apr 25, 2020 2m read Semi-Persistent Classes and Tables If you define a Persistent Class / Table the class compiler generates for you an appropriate Storage definition.A different option is to define a SQL mapping for an already existing Global storage. This has been excellentlyexplained already in a different series of articles. The Art of Mapping Globals to Classes 1 of 3 #ObjectScript #Other 10 7 1 579
Article Robert Cemper · Apr 25, 2020 2m read Static WHERE Conditions The typical WHERE condition in SQL relates mostly to some content of the rows you work on.So it needs to be calculated and checked for each row you access.Differently (and that's why I named it STATIC) is a WHERE condition that is independent of the rows you access. #Other 14 2 1 532
Article Robert Cemper · Apr 4, 2020 3m read Websocket Client IRIS internal IRIS 2010.1 brought us a new feature: %Net.WebSocket.Client As a continuation of my series of WS Clients I just couldn't resist to try it.Well, this is the result and it was rather simple in the end. After I succeeded in my personal fight against Windows Firewall ;-) You basically need to prepare 3 classes: #ObjectScript #InterSystems IRIS Open Exchange app 12 0 0 679
Article Robert Cemper · Apr 4, 2020 1m read Websocket Echo server IRIS In Caché you had an example of a WebSocket Server in namespace SAMPLESWith IRIS the samples are gone and require additional installation effort. So I refurbished the code with some useful additions: independent of namespace timeout control from client readable communication log This contains 2 classes: #Interoperability #Testing #InterSystems IRIS 12 0 0 665
Article Robert Cemper · Apr 3, 2020 1m read ...ToLogical / LogicalTo... Visualization A recent discussion made me aware that the documentation on DataType classes is excellent.http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...I just miss the visualization of the methods for Data Format Conversions. #Other 14 0 0 633
Article Robert Cemper · Dec 9, 2019 1m read SUDOKU demo A demo in traditional style COS This was written based on a previous trial in .XLSIt is far from being perfect. Rather a challenge forimprovement in all directions (code, interface, ...)So anyone feel invited to make it better. #Other 13 0 0 592
Question Robert Cemper · Oct 31, 2019 Unknown Licensing Message ? I find in my message.log an entry I've never seen before: 10/31/19-16:00:22:562 (9056) 0 InterSystems IRIS license file (iris.key) must be validated with License Server. What does it try to tell me?Is there any action expected? #InterSystems IRIS 7 5 0 270
Question Robert Cemper · Sep 12, 2019 Features of *ENSTEMP ENSTEMP was addressed already some time ago; Article: Preventing Globals From Getting Journaled (Continued from How do I Minimize My Journals) and is also in public documentationWhere InterSystems IRIS Stores Temporary Production Data Though I'd like to understand if this is just naming a non-journaled DBor are there also typical features of CACHETEMP / IRISTEMP related to it: automatic clean-up at system startup keeping Global Buffers in memory as long as possible late writing to the storage file In other words is it a 2nd, 3rd, .. fully feature blown IRISTEMP ? #Other 7 1 0 354
Question Robert Cemper · Sep 1, 2019 Durable %SYS Directory for Caché/Ensemble ? IRIS offers Durable %SYS Directory as a highly useful feature for working with containers.Before inventing the wheel once more I'd like to know if a similar feature also exists for Caché / Ensemble.Official documentation is quite silent about.Though I have some names in mind that might know more about ( @Luca Ravazzolo ? @Dmitry Maslennikov ? @Eduard Lebedyuk ? ) #Containerization #Docker #Caché #Ensemble 8 7 0 412
Article Robert Cemper · Jun 10, 2019 1m read more usefull Object Dump During testing your code you are often confronted with the need to examinethe actual content of an object. Either using ZWRITE or $system.OBJ.Dump()you get a picture of simple properties as "--- attribute values ---"while "--- swizzled references ---" are more confusing than informativeand with "--- calculated references ---" you are just left in the lurch. This small helper class allows you to dump an object to terminal ore.g in background to some stream for later review.By default, you see just properties with content, #ObjectScript #Tools #InterSystems IRIS 16 0 1 1K
Article Robert Cemper · Jun 5, 2019 1m read Using Interjob Communication (IJC) Earlier I've written about command pipes.This is the internal variant of a PIPE. To make this more tangible and visible for you I prepared a small example The scenario is to run a monitoring process that receivesinput from an unknown number of sensors. (Could be Lab equipment or similar.) #Other 12 0 0 437
Article Robert Cemper · May 30, 2019 2m read BackgroundJobs over ECP Running a Background Job using the JOB command is a well-known feature.Using ECP to distribute databases to several servers is also well-known.But using the combination of both to run a process on a different serverseems to be a rare case. Sure there are enough other ways to start a remote job, but the specialcombination with ECP where the application server starts a process on adata server without additional networking is worth to be remembered. #ECP #Other 13 0 1 660
Article Robert Cemper · May 29, 2019 1m read Simple Remote Server Control This example is extracted from a long-running installation.The purpose is to have simple monitoring of several servers at a rather primitive level.Just slightly more intelligent than a raw PING. But still easy to integrate.It avoids the overkill of information you are often confronted with while you are justinterested in the number of active processes or similar basic figures.The example shows a basic skeleton that might be easily filled by your real needs. It consists of 3 sections: #Other Open Exchange app 13 0 2 574
Article Robert Cemper · Mar 26, 2019 2m read Synchronize data with DSTIME Other Sync-Tools just work from Caché/IRIS to Caché/IRIS.Synchronizing your data to some external DB requires some other solution. The solution is available in Caché/IRIS since quite some time and works excellent.^OBJ.DSTIME does the magic.https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=D2IMP_ch_current#D2IMP_C23869 #InterSystems IRIS Open Exchange app 13 0 2 1K