Vic Sun · Oct 3, 2019 go to post

Hello Sachin,

Can you provide the version of your product from the about page in the management portal or "w $zv" from the terminal? This behavior varies across versions so you can probably find more information in the relevant version of our documentation.

Also, please be clear about whether you are referring to namespaces or databases.

This documentation may be what you are referring to:

Where Ensemble Stores Temporary Data
 

Vic Sun · Sep 27, 2019 go to post

Hello,

First of all I wonder what version of Caché you are using as ^MSU has been replaced by ^DATABASE for a long time.

That being said, I can't imagine there being any problems with interrupting using ctrl+c. In fact, as you didn't get an <INTERRUPT> error it seems likely that ^MSU/^DATABASE has accounted for a user trying to ctrl+c out and so just returns you to the previous menu.

Vic Sun · Sep 24, 2019 go to post

Hello Daniel,

As Kenneth mentioned, outside of shadowing/mirroring journaling could still be very important depending on your usage.

https://cedocs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GCDI_journal

For example, journals are needed in a disaster recovery scenario in order to bring your instance more up to date than the time of the backup itself. If you are not journaling and restore a backup your data will be current as of the time the backup was taken. Replaying journals would be necessary to proceed beyond that. You would only need the journals created after the time of the backup.

Also note that I would recommend testing your backup restore procedure and regularly taking integrity checks to confirm the validity of your backups. I would go so far as to say a backup that has not passed an integrity check is not a valid backup.

https://cedocs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GCDI_backup

Vic Sun · Sep 20, 2019 go to post

While I suspect this is related to the read-only / mirrored-ness of the backup failover member, I would recommend reaching out to the WRC for a more thorough investigation.

Alex and Alexey suggested a nice workaround as well.

Vic Sun · Sep 19, 2019 go to post

I'm not sure exactly what your steps were - where did you see that error? I have no problem opening objects without locking in a mirrored database on a backup failover member:

MIR>s x= ##class(Sample.Person).%OpenId(1,0)

MIR>w x
1@Sample.Person

Vic Sun · Sep 18, 2019 go to post

I didn't do a deep dive but presumably the HL7 message is being opened as an object and therefore automatically taking out a shared lock in order to read it.

If you really don't care about locking or concurrency protection, I imagine it wouldn't be that difficult to custom code something to do what you want, though you'd probably want to test:

https://cedocs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GOBJ_persobj#GOBJ_concurrency

Vic Sun · Sep 17, 2019 go to post

Hello Jeffrey,

You're absolutely right that normal read only databases and mirrored databases operate differently. It is not possible to take out locks for a mirrored database on a backup failover member as locks would prevent the member from taking over as primary.

If you have a DR async and take out a lock on a mirrored database, then when you try to promote to failover member you'll see a message like this:

Unfortunately, that means I don't have a workaround for you unless you have a DR where you can dump the messages instead.

Thanks to @Pete Greskoff who I talked to about this behavior.

Vic Sun · Sep 12, 2019 go to post

Hello Sergey,

Can you confirm if you are getting that kit from the Download Caché button in the sidebar here in the Developer Community? If so, then that alleviates my primary concern that it might actually be a threat.

Beyond that, the question would be one of setting up an anti-virus exclusion or disabling it briefly. This is something you might need to do for any software kit that is improperly flagged by your antivirus, which is not really a question of InterSystems technology but of whatever antivirus you are using.

Further down the line you may want to add some additional exclusions so Caché can operate properly per this documentation:

https://cedocs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?…

Vic Sun · Sep 5, 2019 go to post

Try using the errlog parameter, something like:

w $SYSTEM.OBJ.CompileAll(,.err)

https://irisdocs.intersystems.com/healthconnect20191/csp/documatic/%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=%25SYS&CLASSNAME=%25SYSTEM.OBJ#METHOD_CompileAll

Then you can pull the errors from the err variable and put it into a file however you want, for example using %Library.File.

https://irisdocs.intersystems.com/healthconnect20191/csp/documatic/%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=%25SYS&CLASSNAME=%25Library.File

Hope that helps!

Vic Sun · Sep 5, 2019 go to post

Hello Scott,

Thank you for clarifying. HealthShare Health Connect 2019.1 is built with IRIS so it will not accept a Caché online backup. A CACHE.DAT file can be renamed to IRIS.DAT to be used by IRIS which is documented in the IRIS adoption guide.

Vic Sun · Sep 5, 2019 go to post

https://community.intersystems.com/post/health-connect-version-20191-released

You need to be on HealthShare core 15.03 or later to take advantage of the in-place conversion for HealthShare Health Connect. I believe HealthShare Health Connect built with Caché 2015.2.2 is not a new enough HealthShare core version.

Outside of that, it may be possible to manually convert to InterSystems IRIS but I presume that would be more effort than going through two supported upgrades.

Vic Sun · Sep 5, 2019 go to post

Hello Scott,

I'm not sure of the full background and context of your upgrade process so I would definitely recommend running this by your sales team, who might refer you to the WRC.

A normal Caché based HealthShare to Caché based HealthShare upgrade won't affect your user databases so why do you need to restore backups at all? What kind of databases are you concerned about? Through your upgrade process won't the databases be preserved and converted as necessary? You can then compile after the conversion.

Have you reviewed the IRIS adoption document available on the WRC distributions page, and have you received a copy of the Health Connect conversion guide from the WRC or your sales team?

Vic Sun · Sep 5, 2019 go to post

Hello Reinhard,

Using Sample.Person I just did a quick test and switching the order of the where clauses did not effect either performance or the query plan.

Some people design or generate very complex SQL queries so I'm not certain if this holds true in all cases (though I agree I would expect it to - if not it may be worth reporting to InterSystems!). If you are interested in comparing performance and query plans this is pretty easy to do from the System Explorer > SQL page in the system management portal.

Hope that helps!

Vic Sun · Aug 27, 2019 go to post

Hi Scott,

I'm not aware of an easy way to access the older HealthShare or Health Connect documentation. If you need those docs it might be a bit of extra effort but you can install a kit with the version you want to review and access the docs that way.

If you're specifically looking for an online solution then I'm afraid I don't have an answer for you.

Vic Sun · Aug 27, 2019 go to post

What version of Caché are you attempting to install? Windows 10 began being supported with Caché 2016.1.

Given that there was an incomplete install I would recommend uninstalling Caché, restarting, and then trying a fresh install.

Vic Sun · Aug 26, 2019 go to post

For posterity:
On a minimal security install unauthenticated access is the only authentication method enabled for most services. We document the risk of modifying roles for UnknownUser (used for unauthenticated access) and cover some other security considerations here:

https://cedocs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GCAS_tighten

If you end up in a situation where your security settings no longer allow you to access Caché, you can use emergency startup mode as documented to log into Caché and fix your settings:
https://cedocs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GCAS_secmgmt#GCAS_secmgmt_emerg

Much appreciation to my colleague Jon who walked through these steps with Joshua.

Vic Sun · Jul 31, 2019 go to post

Hello Zdeněk,

The answer to your question probably depends on the specifics of what you are trying to do and what your constraints are. Is there any consideration to combining the two installer manifests into one? In your previous post you mention an unattended install, so I assume this is related to the .cmd file you are attempting to create. I wasn't aware that an unattended install could run multiple manifests; is that possible or are you running the second manifest manually?

You could use conditional <If> tags in the installation manifest if you wanted to perform some verification. You could use <Invoke> to run whatever method you want to confirm that your first manifest was carried out. For example, you could write and import a simple method that leverages $SYSTEM.OBJ.GetClassList to check that your classes exist. If your method isn't able to run that would also be evidence that the first manifest did not succeed.

https://docs.intersystems.com/irislatest/csp/documatic/%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=%25SYS&CLASSNAME=%25SYSTEM.OBJ#METHOD_GetClassList

%SYS.Namespace.Exists would confirm whether a namespace exists.

https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=ITECHREF_namespace

Alternatively, you could use the <Log> functionality of the installer manifest and then read the log.

Hope that gives you some ideas! I did see that Dan Kutac replied to one of your other posts - it seems like he is working with you on your manifest so I think he would be able to help you with this.

https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GCI_manifest

Vic Sun · Jun 27, 2019 go to post

I would caution against using the management portal to rebuild indices on a live system. Please see the word of warning from the documentation you linked:

https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GSQLOPT_indices#GSQLOPT_indices_build_smp

"Do not rebuild indices while the table’s data is being accessed by other users. To rebuild indices on an active system, see below."

Further along on the page you can find more information about safe index rebuilding practices on a live system. I would recommend sticking to %SYS.Maint.Bitmap as that is safe to run on an active system.

Vic Sun · Jun 26, 2019 go to post

Hello Stephen,

That documentation you linked to put you on the right track! If you click on the %SYS.Maint.Bitmap link it will take you to the class reference which contains some examples of how to run the bitmap cleanup:

https://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=%25SYS&CLASSNAME=%25SYS.Maint.Bitmap

eg.

d ##class(%SYS.Maint.Bitmap).Namespace("Samples",1,1,"2014-01-17 09:00:00")

d ##class(%SYS.Maint.Bitmap).OneClass("BitMap.Test",1,1)

This utility was only added to the product around version 2015, I believe. It should run automatically as part of an Ensemble message purge. If you need to perform this maintenance on an older version, rebuilding the index can be done though this is a more involved process, especially on a live system.

If needed, you can reach out to the WRC who can provide a utility that performs a similar function to %SYS.Maint.Bitmap for older versions.

Hope that helps!

Vic Sun · Mar 29, 2019 go to post

If you see an error message in brackets, this documentation would be a good place to look to find out what it means:

https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=RERR_system

<FILEFULL> can indicate issues with the actual disk filling up, but you can also run into it if you have configured and reached a maximum database size.

You can check that setting in the management portal at System Administration > Configuration > System Configuration > Local Databases, or you can use the ^DATABASE utility as documented here:

https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GCAS_chui-mgmt#GCAS_chui-mgmt_database