Cache has a slightly Windows tilt, but that's changing fast. For example, Cache Studio IDE works in Windows, not Linux or Mac. Cache Studio will eventually be replaced with InterSystems Atelier IDE (based on Eclipse). Doc and community support is still slightly Windows oriented but have plenty of info about Linux based Cache.

Linux is a great stable platform for running Cache, either on top of Red Hat (Centos), Ubuntu (Debian) OS or other variations.

I use a Mac running VMware Windows or Centos emulations for testing, developing Cache applications. Then put the production Cache application on a Windows or Linux server, Virtual Private Server or cloud server.

If I have a choice I typically go with Linux. But if you have more experience in Windows, stick with Windows. I don't think you're missing much in Cache running on Windows.

Tom Fitzgibbon | gototomAtG...l.com | 917-933-1226

Obviously each project will have different requirements. But here are some generalizations from my experience:

Cache SQL: use when you want to expose your data to report writers who use SQL. Use Cache SQL write capability if you must but may be slower. Fairly easy to read code. But you do NOT need Cache SQL to create an app.

Cache Objects: used most often, especially if you are an object oriented programmer. Hard to not see the advantages of objects in most projects. Reasonable speed and code readability.

Cache Direct Global access: used for legacy programs (lots out there) and may be faster performance (depending on read/write code structure). Difficult to read after years of code changes.

Tom FItzgibbon | gototomAtG...l.com | 347-464-8531

Recent InterSystems Cache works rather well and has a tendency to make us lazy about checking the DB. SQL, Mongo, etc. DB admins must check/fix/maintain DBs on a regular basis.

For our smallish 100GB-200GB Cache DBs we scheduled daily background integrity checking but would typically find small damage only once every 3 years or more due primarily to hardware failures.

Cache appears to be incredibly resilient compared to other DBs.

Tom Fitzgibbon | gototomAtG...l.com | 917-933-1226

Cache has different mechanisms for calling in from the OS to start Cache functionality. See http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=....

Several other possibilities I've used:

1) Your BAT file creates a "trigger" file (for example: MyTrigger.txt) when you want to do a backup. A Cache routine checks for the existence of the trigger file every five minutes and when the Cache routine notices the file, it deletes the trigger file and does ^DBACK.

2) Your BAT file stops Cache by doing cstop.exe in Intersystem/Cache/bin, then you OS copy the Cache.dat file (Cache namespace/database file), then does cstart.exe. Note: Cache will be DOWN while the copy is being made. You can dirty copy Cache.dat while Cache is running but there's no guarantee your copy DB will not be corrupt.

Tom Fitzgibbon | gototomAtG...l.com | 917-933-1226

NYC needs a Cache/Ensemble/etc. user group. User groups generate sales and provide support for InterSystems.

I'm willing to volunteer some time to publicize and organize.

Anyone know about a space? We could try a meet to see who might be interested.

I'm assuming InterSystems (like a lot of vendors) would prefer to keep an arm's length approach to any user groups.

Tom Fitzgibbon | 3474648531 | gototomAtG...l.com

I've written COS that uses $System.License object to check license counts. Just loop every X seconds and use COS to send yourself an email or text when LU exceeds your threshold.

Depending on your user habits, app software, platform and InterSystems license Cache users can exceed the max before you know.

And yes, once users exceed limits it's difficult to remote troubleshoot. We ended up stopping new users from signing on before user limit was reached.

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

Tom Fitzgibbon | 346-464-8531 | gototomAtG...l.com

Scott -

We've had this problem many times with HL7 messages being "lost" after the sender claims they sent messages to our receiver software. Most of the time we found the sender actually did not send out the HL7 message or sent out a "malformed" message that our receiver rejected. Plus most HL7 sender software has filters that will not send particular messages for a variety of conditions.

Since HL7 is somewhat predictable text, it's pretty easy to parse. You can ask the sender for the missing message number and search for it in your capture stream, for example.

Receiving data from another vendor often creates arguments about "missing" data.

We troubleshot problems as below:

1) Examine any audit information given by Ensemble for errors, rejections, retransmissions and the like.

2) Set up a passive listener that records all data (not just HL7 messages) and examine with tools or your own diagnostic software.

3) Set up additional HL7 receiver software which takes the incoming messages and creates files on your platform (while doing the ACK/NACK with the sender). Then you can examine the files and later process with Ensemble.

Tom Fitzgibbon | 347-464-8531 | gototomAtG...l.com

Sansa -

Many licensing issues are best taken up with InterSystems. We'd have to know what kind of Cache license you had (how many users, etc.), how all users are connecting to your Cache 5.02 platform (SSH, Telnet, CSP, etc), system settings and other info. Even then we could only make some guesses without being able to test your platform in real time.

InterSystems has been helpful to me in the past concerning licensing issues.

Tom Fitzgibbon | 347-464-8531 | gototomAtG...l.com

A late comment on Cache security.

Installers are tempted to use "minimal security" instead of "standard" when installing Cache. I suggest always use "standard", change default passwords, etc. You should figure out Cache security before installation, rather than trying to jam more security in later, otherwise admin will be more pain.

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

Tom Fitzgibbon | 347-464-8531 | gototomAtg...l.com

HealthShare built with Ensemble and Cache. HealthShare appeals to RHIOs, HIEs, providers, payers and managed care organizations, health information networks. Developers use InterSystems HealthShare® to share health information, collaborate for better, safer care, and to create innovative solutions to healthcare challenges.

It's a little dated but look at http://www.intersystems.com/who-we-are/newsroom/news-item/intersystems-introduces-healthshare-high-performance-massively-scalable-information-delivery-framework-targets-rhios-hie-networks-forming-worldwide/.

Ensemble is a platform supporting a diverse set of applications, not just healthcare.  See: http://www.intersystems.com/our-products/ensemble/ensemble-overview/.

Tom Fitzgibbon | 347-464-8531

Lots of ways to get the object instance properties back (queries, ID, Cache Object Script).  Start with the doc and examples:

http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GORIENT_ch_persistence#GORIENT_persistence_data_programmatically​

One simple example:

SAMPLES>set person=##class(Sample.Person).%OpenId(1)
 
SAMPLES>w person.Name
Newton,Dave R.

Tom Fitzgibbon | 347-464-8531

An Arm chip on a SoC board running Linux is now the definition of low-medium end computing, whether we like it or not. More powerful variants will eat their way up market (see the iPhone 7).

Any young software engineer is learning computing on an ARM device or using OS X, some Linux/UNIX variety.

If a stripped down version of Cache DB (like GlobalsDB) can be produced/maintained by InterSystems, it would go a long way to feed future Cache/InterSystems growth, which is what anyone reading this opinion needs.

Tom Fitzgibbon | 347-464-8531