go to post Timo Lindenschmid · Aug 26, 2024 Hi, so just to summarize what i understood. You have a superclass with some logging method. Now every time the logging method is called from a child class it logs the name of the superclass instead of the Child class? If so the issue is that $CLASSNAME returns the name of the class where the method is located not where a method is called from. To work around this behaviour you would need to rewrite your logging method to be a codegenerator, e.g. instead of: ClassMethod Log() { w $CLASSNAME() } rewrite it like this: ClassMethod Log() [ codemode = generator, forcegenerate ] { do %code.WriteLine(" w $CLASSNAME()") quit 1 } This will locate the Log method from the superclass to the child class and have $CLASSNAME resolve to the child classname.
go to post Timo Lindenschmid · Aug 22, 2024 Ther eis one inherent flaw i found when using linux service definitions. If you once stop/start IRIS using iris stop/start command it breaks the automated shutdown. To work around this we usually define 2 service definition, one for normal control and one to ensure the instance goes down during shutdown. example definitions: [Unit] Description=Shutdown management for ISC IRIS Instance SAMPLEINST - to ensure DB instance is properly shutdown on system reboot [Service] Type=oneshot RemainAfterExit=true ExecStart=/bin/true ExecStop=/usr/bin/iris stop SAMPLEINST quietly [Install] WantedBy=multi-user.target # normal management [Unit] Description=Management for ISC IRIS Instance SAMPLEINST [Service] Type=oneshot RemainAfterExit=true ExecStart=/usr/bin/iris start SAMPLEINST quietly ExecReload=/usr/bin/iris stop SAMPLEINST quietly restart ExecStop=/usr/bin/iris stop SAMPLEINST quietly [Install] WantedBy=multi-user.target Alias=IRIS-iSAMPLEINST.service
go to post Timo Lindenschmid · Aug 22, 2024 Hi Ron, pretty sure this version is no longer publicly available.Try contacting WRC if you need that exact version. I hope you still got your license key saved somewhere.
go to post Timo Lindenschmid · Aug 22, 2024 Hi, Try setting the Cookie security to LAX. This essentially has nothing to with the IRIS/Cache version but with the CORS standard implemented in modern browsers.Cookies with SameSite attribute set to None are only allowed if they are secure. refer to https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls...
go to post Timo Lindenschmid · Aug 15, 2024 Hi Luis, just looking at documentation try disabling: Do Not Use Delimited Identifiers by Default snip from documentation (ref: documentation: Do Not Use Delimited Identifiers by Default The Do not use delimited identifiers by default option controls the format of identifiers in the generated routines. Select this check box if you are using a database that does not support delimited SQL identifiers. This currently includes the following databases: Sybase Informix MS SQL Server Clear the check box if you are using any other database. All SQL identifiers will be delimited.
go to post Timo Lindenschmid · Jul 19, 2024 Have you checked if the /api endpoints are enabled in webapplication?Also have a look and check Security/Audit/View AuditDB for any errors. Same for ApacheLogs, webgateway logs(CSP.log) as well as the messages.log
go to post Timo Lindenschmid · Jul 18, 2024 nice, another option here is to create a scheduled task in IRIS to call this, set the task to be called OnDemand and voila you can trigger a shutdown from SMP.
go to post Timo Lindenschmid · Jun 19, 2024 Hi Philip, not knowing anything about your deployment or applications hosted by IRIS this will be only very high-level. There are multiple ways how this can be achieved. Essentially the easiest way is to stop/freeze the IRIS instance on your backup mirror in LIVE then, depending on your databse sizes. Either copy the database files over to your test environment, or take afilesystem snapshot and transfer that accross. After start,thaw the backup mirror iris instance. On the test environment break the mirror. shutdown the instance on your primary test mirror. copy in the databases you transferred (ensure the global mappings are the same), you can choose at this point to not overwrite certain databases you do not want to be refreshed e.g. localsysconfig. start up the iris instance, remove the mirror flag from the database files you just refreshed and then do all post refresh activities. at the end you have to rebuild the TEST mirror though, as per IRIS doco.
go to post Timo Lindenschmid · Jun 17, 2024 essentially the webgateway/cspgateway relays the non-static portions of your website to Ensemble for processing and serving. refer to: WebGateway Introduction | InterSystems IRIS Data Platform 2024.1
go to post Timo Lindenschmid · Jun 16, 2024 If you want to secure your web application, rest/soap api's and SMP then you need to do this in IIS/Apache. Also if you plan to do this work, it would also be a good idea to disable PWS (private web server) and configure the ports served by PWS also to be served by IIS?Apache.
go to post Timo Lindenschmid · Jun 12, 2024 When you do Delegated Auth you add code to ZAUTHENTICATE that validates the request against what you want e.g. you grab userid from the incoming web session, or even content of the get parameters provided and validate it against a global that was mapped via ECP from your primary server, that global could save e.g. client ip and username.Then you can assign a valid user in ZAUTHENTICATE for the incoming connection, no password needed.
go to post Timo Lindenschmid · Jun 11, 2024 I don't think you can provide object script code via the UI for security reasons. What you probably need to do is open you production item in Studio/VSCode. Then overwrite the OnInit() method with something like Below code is not validated and will not be 100% correct in regard to function specs etc, this is only used for clarification and example: Method OnInit(.............) as %Status { set ..IpAddress=$get(^ehrIP) set status=#super() return status }
go to post Timo Lindenschmid · Jun 11, 2024 Hi Cathrine, usually, TrakCare as a web application does not directly integrate with a dictation software. Any dictation software is used to fille the appropriate text field in the TrakCare browser window after parsing the dictation. For more details and for a in depth look i would suggest you get an iService ticket raised so the specialist/development can have a look at it. Best RegardsTimo
go to post Timo Lindenschmid · Jun 10, 2024 Hi Carl, easiest way is to save the authorization to a global, have that global mapped via ECP to your child servers.On the child servers create a ZAUTHENTICATE routine and implement delegated authentication. essentially you use this routine to check on connection open on the child server if the incoming connection is a valid request based on the auth global mapped from your primary server, then allow or deny.
go to post Timo Lindenschmid · Jun 4, 2024 The better approach here, if you don't want to use SystemDefaults. Is to add a global mapping for your global config variable ^ehrIP to the %ALL namespace pointing it to a config database. This will point the ^ehrIP global in each namespace to the same storage location. Then you can access this global via ^ehrIP as usual. I would not use % globals as they are saved in the %SYS namespace and application code/data should not be living in the %SYS namespace.
go to post Timo Lindenschmid · May 31, 2024 From a SMS point of view this is major hell.If you are coding you application currently, then rather then checking a database for settings instead of using global mappings, code your application that it checks a "higher-priority global first" then defaults to the global default mapping. example core config uses ^ %SYS for instance wide config and ^SYS for local namespace config. In this scenario you would not even need a %ALL namespace global mapping.
go to post Timo Lindenschmid · May 28, 2024 Hi Alin,I can see that you are using cygwin to interact with *nix version of python.Any reason why you are not using the windows version? Best regardsTimo
go to post Timo Lindenschmid · May 22, 2024 If you have access to the IRIS instance then you can also use ISCLOGref Logging | InterSystems IRIS Data Platform 2024.1 Just be aware the data resides in %SYS in ^ISCLOG in the %SYS namespace not in ^%ISCLOG^%ISCLOG is used to enable the logging though
go to post Timo Lindenschmid · May 21, 2024 Without seeing the whole class. I would look at the Fetch method it needs to iterate your temp storage and output each row.
go to post Timo Lindenschmid · May 14, 2024 Hi, try querying the /api/monitor/metrics endpoint and see if that provides you the details you need. As i never have used SolarWinds i cannot comment on parsing this data for display in SolarWinds