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
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
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.
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
A Cache script also allows you to do other user management, like look for similar named users across all instances, construct interesting user tables for permissions, etc.
Should be fairly straightforward for simple user adds, for example.
Tom Fitzgibbon | 347-464-8531 | gototomAtG...l.com
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
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.
Vijay - As you were suggesting it seems like COS might be the most efficient way to quickly validate HL7. I've written simple checking scripts but as you know HL7 has some significant variations.
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.
Just tried command s x=$zf(-1,"dir > tkfdir.txt") in Cache 2016.2 on Windows 10 (installed with all defaults) and it worked fine. The process created a text file in Windows with the current directory information.
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.
go to post
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
go to post
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
go to post
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
go to post
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
go to post
Licensing issues are best taken up directly with InterSystems. Most likely free test Cache software tricked up to not accept license to slow piracy.
Tom Fitzgibbon | gototomAtG...l.com | 917-933-1226
go to post
You can join the Intersystems NYC Users group at http://meetu.ps/c/3dsLg/2DrRG/f.
The NYC link in the previous answer is not working.
Tom Fitzgibbon | gototomAtG...l.com | 917-933-1226
go to post
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
go to post
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
go to post
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
go to post
A Cache script also allows you to do other user management, like look for similar named users across all instances, construct interesting user tables for permissions, etc.
Should be fairly straightforward for simple user adds, for example.
Tom Fitzgibbon | 347-464-8531 | gototomAtG...l.com
go to post
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
go to post
No good answer here but always wondered why this was not easier to do in Studio.
In the past I've copied/pasted classes in small packages to new package, or exported to XML, edited and imported as others have suggested.
Tom Fitzgibbon | 347-464-8531 | gototomAtG...l.com
go to post
Don't forget $ZF(-2,OS_COMMAND) for a quick and dirty way to spawn a child process on the OS level.
http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...
Tom Fitzgibbon | 347-464-8531 | gototomAtG...l.com
go to post
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
go to post
Vijay - As you were suggesting it seems like COS might be the most efficient way to quickly validate HL7. I've written simple checking scripts but as you know HL7 has some significant variations.
Tom Fitzgibbon | 347-464-8531 | gototomAtg...l.com
go to post
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
go to post
Just tried command s x=$zf(-1,"dir > tkfdir.txt") in Cache 2016.2 on Windows 10 (installed with all defaults) and it worked fine. The process created a text file in Windows with the current directory information.
Let us know what you're trying to do.
Tom Fitzgibbon | 347-464-8531
go to post
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:
Tom Fitzgibbon | 347-464-8531
go to post
You can also use extended global reference to read/write data between namespaces. See InterSystems doc:
http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...
Tom Fitzgibbon | 347-464-8531
go to post
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