Robert Cemper · Apr 20, 2021 go to post

Just great! I like it.  yes
with a solid partition / session under the feet. no local stuff, not browsers !
(btw. I had something similaar in mind but this is much better)

Robert Cemper · Apr 19, 2021 go to post

Thank you @Luca Ravazzolo It's a great story!
And 
the CHUI interface is a dead horse. No doubt!
But the need is not an invention but a demand from existing customers that fear
to lose control over their data and operation. Especially if there is nothing
anymore in the basement you can touch.
So I show that is possible. I don't judge if it makes sense. 
Like in real life:
- Some people climb Aiguille de Midi with ropes and hooks
even as there is a cable car to the top installed.
- Others drive SUV and HUMMERs but mostly run the highway
and almost never leave the well-pathed roads. 

Robert Cemper · Apr 19, 2021 go to post

It's just required to produce the demo video to demonstrate  full functionality with this setup

Robert Cemper · Apr 19, 2021 go to post

@Alexey Maslov !
You are totally right.
It is not the final solution but the start of a different scenario.
PW was just the most simple approach to begin with.
I was much more puzzled by the fact that sshd only starts from root
and that it does a very detailed check of the access rights on the internal generated keys.
An just found no way to start a service from within IRIS.
Now in the soft version, it is started with docker exec  ... as by README.md and OEX.
and the pw can be provided in a similar way 

 

Robert Cemper · Apr 18, 2021 go to post

Simple things as buffer allocation, adding DB, ECP + Activation, ...
all this is lost after a new start     OR
I have to use DURABILITY which is quite an overhead e.g. during development 

Robert Cemper · Apr 18, 2021 go to post

Your suggestion is valid:
IF - there is access with sufficient privileges to the server that hosts Docker.
This is most likely an OS Level system manager or operator that runs all containers.
BUT - To run / check  / restart ..  IRIS there is no need to have rights outside Docker container
but instead, you need direct access to OS inside the container. Without external rights.
The next level is SYSmgr access inside IRIS vs. Developer or User access.
Back to the original scenario:
Running Docker is to me from a security point of view the same as running  Linux/ Windows on an ESX.
Would you sugggest giving someone access to ESX  with enough privileges just to do
Windows System management?  I don't think so!
In any midsize to larger organization, there is a strict separation between
HW server, Network, Virtualization, OS, Application - Management & Operation
mainly to prevent mistakes and error fixing at the wrong end.

Of course for me at home with a notebook and 2 desktops, I'm godfather with all rights you can think of.
Docker is claimed to replace VMware.
This is only correct if after installation you have the same privileges. 
If I build my image, I have all access rights.
But with no access to root or similar, I feel cheated.
Sorry, it's like a car without a steering wheel.

Robert Cemper · Apr 18, 2021 go to post

Dear @Dmitry Maslennikov !
Thanks for the compliment "bad idea"  !
All my life was driven by cross thinking, away from old tracks, doing the undoable, unchain my mind.
And it was 99% success. 

My ISC colleagues in and outside US can confirm this.
@Evgeny Shvarov knows much more details about me that would break the frame here.

BUT I'm a little bit disappointed. You didn't read the disclaiming note on top:
It is for developers, supporters,  system managers. 
And in addition my examples are never meant for production use,
but for training and learning. I don't make money with my software.
Just 1  minor detail:
Though multiple requests I never got a root password for any IRIS container.
You might have access to this information as you have also access to other no-public info.
So I had to set one for myself.  x-thinking!
All about the reasoning and other details are in my reply to @Evgeny Shvarov
Since he placed the more important question: WHY?

Robert Cemper · Apr 16, 2021 go to post

OK. that means to me:
- bring your own iris.cpf  (and your own license )
as I have done already in past in several cases.
And it means to have one repository for demo and another for distribution. 

Robert Cemper · Apr 15, 2021 go to post

Hi @Chip Gore !
extrapolating Vic's very valid comment:
- if you have to take the sour apple of migration, let it be the last time.
- why not install WSL2 and migrate into a Linux environment. Or even into a docker scenario

Robert Cemper · Apr 15, 2021 go to post

a few comments.
A mirrored DB get's an embedded timestamp that links it with its master.
the timestamp indicates when de-journaling must start.
there is a quite detailed description of how to add a Db to a MIRROR 
If HSSYS is a  SYSdb: it can't be mirrored
  

Robert Cemper · Apr 14, 2021 go to post

A little bit of cosmetics in your printf could make it JSON formatted.

 print(f'{{"subscript":{subscript},"value":"{value}"}}')

which should result in a nice conveniant JSON object

{
  "subscript":1,
  "value":"2.16.840.1.113883.3.86ISCInterSystems Corporation"
  }

Robert Cemper · Apr 14, 2021 go to post

try:

 Property alternateId As %String(%JSONNULL = 1);

  {
        "alternateId": null ,
        "benefitPlanId": "FLSN4444", 

Robert Cemper · Apr 14, 2021 go to post

If you get back large results sets that you use for further processing PyODBC will be better suited.
But for a small number of values, the overhead at both ends to service ODBC structures may not pay off
since both ends have to get their internal structure in to  ODBC and out of it.
I don't have measured the difference so this is just a guess:
- for the typical embedded SQL returning < 1..10 rows a MethodCall might be more efficient.
This doesn't prevent you from using and tuning an SQL SELECT isolated in IRIS environment. 
In any case, the transfer between PY and IRIS is the slowest piece.
The less data you transport the faster the action is completed.
And transport in blocks wins over isolated pieces in loops.

Robert Cemper · Apr 13, 2021 go to post

try to use a username  with privileged %ALL in Health Share    
to distinguish between network problems and access right problems  

Robert Cemper · Apr 13, 2021 go to post

That's happening due to problems in the network or system stop/restart.
normally it recovers without manual interventions and without data loss.
levels 0 and 1 signal it's an info / warning.

Robert Cemper · Apr 12, 2021 go to post

create a calculated property and it looks like any other one

Property MyId As %Integer [ Calculated, SqlComputeCode = { set {*}={%%ID}}, SqlComputed ];

Robert Cemper · Apr 12, 2021 go to post

this looks strange to me   LITERAL ('PERSON') expected, IDENTIFIER (Person) found

with not much hope:
does CAST(TableA.ID AS INTEGER)   instead of TableA.ID make a difference?

Robert Cemper · Apr 12, 2021 go to post

indeed by CUSTOM_MyQuery(TableA.ID) you just pass 1 parameter

but   LinkedFundsByPerson(TableA.ID,1) might work
as the signature expects 2 params some related code is generated
even if the second param isn't used at all.
You can test  the Stored Procedure interactive from SMP>SQL>storedProcedures 
and you should be asked for 2 params

Robert Cemper · Apr 11, 2021 go to post

did you consider using some of the standard MACROS available in Ensemble.inc ?

  • $$$TRACE
  • $$$LOGSTATUS
  • $$$LOGERROR
  • $$$LOGWARNING
  • $$$LOGALERT
  • $$$LOGINFO
  • ....