We had a major problem recently where a participant was sending unexpected data. It was not enough to throw an error or warning in the actual trace, but when examining the message in the viewer it did show the following:
Build Map Status = 'ERROR <EnsEDI>ErrMapSegUnrecog: Unrecognized Segment 4:'CON' found after segment 3 (CON)'
How can I query for these or be notified of them? This caused major ramifications but we did not notice it. I have Managed Services investigating but I want to cover all my bases.
Myself and the other Technology Architects often have to explain to customers and vendors Caché IO requirements and the way that Caché applications will use storage systems. The following tables are useful when explaining typical Caché IO profile and requirements for a transactional database application with customers and vendors. The original tables were created by Mark Bolinsky.
In future posts I will be discussing more about storage IO so am also posting these tables now as a reference for those articles.
The Update Checklist for v2015.1 recommends setting the TZ environment variable on Linux platforms and points to the manpage for tzset. This is recommended to improve the performance of Cache’s time-related functions. You can find out more about this here:
Mirroring provides an admin capability to Stop Mirroring on this member, which causes a non-primary member to temporarily disconnect from the primary, stop dejournaling, etc. While most system administrators may never need or use this function, some employ it for certain kinds of maintenance or other special cases.
A file-based business service uses a local path on a Linux machine that is actually a mounted CIFS share. The mount is "soft" and is designed to not cache data, etc. There are times however when the remote system offering up the share (it's a Windows machine I believe) gets bounced or otherwise hung up the business service in the Ensemble production just hangs.
I have seen a customer problem recently where the use of a virus scanner running over Caché databases was causing intermittent application slow downs and bad user response times.
This is a surprisingly common problem, so this short post is just a reminder to exclude key Caché components from your virus scanning.
Generally virus scanning must exclude the CACHE.DAT database files and Caché binaries. If an anti-virus is scanning CACHE.DATs and InterSystems files then system performance will be significantly impacted.
I am trying to install Caché 2016 on a Debian Jessie machine; so I downloaded the latest release from WRC, OS RHEL x86_64, in tarball format.
I untarred it, then launched cinstall; unfortunately a library was missing. I then elected to kill all the processes (which wasn't easy), remove the two users created, and start again.
One of the topics that comes up often when managing Ensemble productions is disk space:
The database (the CACHE.DAT file) grows in a rate that was unexpected; or the Journal files build up at a fast pace; or the database grows continuously though the system has a scheduled purge of the Ensemble runtime data.
It would have been better if these kind of phenomena would have been observed and accounted for yet at the development and testing stage rather than on a live system.
For this purpose I created a basic framework that could aid in this task.
Does the Caché installer do all of the necessary setup for using Atelier when upgrading a pre-Atelier instance?
I just upgraded an Ensemble 2016.1 instance to 2016.2 and the /api/atelier web application wasn't created automatically. Aside from creating this web application is there anything else that needs to be done to support Atelier?
** UPDATE **
See my comment below -- this was caused by a permissions problem during the upgrade. After fixing the permissions problem and upgrading again Atelier works.
Our Cache server(version 5.0.15) has recently crashed. We are in the process of recovery. We had replaced the server's hard disk and trying to install the cache(5.0.15) But getting the following error. Any body show some light on the issue.
If I have a cache.dat file from a Windows 2012 (64-bit) machine and I want to mount it on a Caché instance running on RHEL, will it work? Assume the versions of Caché are the same.
I followed the Documentation instructions to install Caché on my Linux box and it seems to be running fine except when I try to modify the configuration. I keep getting errors that a previous cache.cpf file (e.g., cache.cpf_8503) cannot be opened. Is my Linux "user who owns instance" account deficient in Linux permissions?
The following situation always catches out new Ensemble users, and is likely to continue doing this until it is addressed..
A business operation, service or other host that is configured with a dedicated # of actors, (ie, not using the actor pool) runs with the version of compiled code that existed when the host was started. This code is loaded in memory.
This post will show you an approach to size shared memory requirements for database applications running on InterSystems data platforms including global and routine buffers, gmheap, and locksize as well as some performance tips you should consider when configuring servers and when virtualizing Caché applications. As ever when I talk about Caché I mean all the data platform (Ensemble, HealthShare, iKnow and Caché).
Presenters: Pete Greskoff, Sebastian Musielak Task: Ensure high availability of your HealthShare deployments Approach: Discuss high-availability options and focus on HealthShare’s new support for database mirroring
With the new release of HealthShare, Mirroring is now support for high availability. This session will describe high availability options and focus on mirroring your HealthShare deployments.
Content related to this session, including slides, video and additional learning content can be found here.
Presenter: Ray Fucillo Task: Provide high availability (HA) and disaster recovery (DR) in diverse architectures that demand high performance, including replication over long distances Approach: Give examples of mirror architectures in disparate environments, including geographically separated systems. Discuss performance considerations and advances in InterSystems’ mirroring technology
In this session you will learn about deploying Mirroring to provide HA and DR in diverse architectures that demand high performance and throughput. Challenges and solutions to achieving high throughput will be covered along with mirror architectures that involve long distances and disparate environments.
Content related to this session, including slides, video and additional learning content can be found here.
Presenter: Kerry Kirkham Task: Prevent application-to-application interface problems from escalating Approach: Give examples of using alerts to get the right person working on a problem as soon as possible
Problems with application-to-application interfaces are inevitable but in most cases they can be fixed with little disruption as long as the right person gets to know about it as soon as possible. But delays in attention cause problems to escalate, pressure mounts and business suffers. This session looks at how monitoring and alerting can be set up to recognize problems and get the right person working on the problem in the shortest possible time so that small problems don’t turn into major issues.
Solution: Using alerts to minimize interface problems
Content related to this session, including slides, video and additional learning content can be found here.
Presenter: Murray Oldfield Task: Avoid bottlenecks caused by scaling up, before they become a problem Approach: Discuss what operating system and InterSystems metrics you should look at and how to interpret them
Systems behave differently when database activity scales up. In the worst case, bottlenecks appear and users are impacted. This session shows you which operating system and InterSystems metrics you should be looking at and how to interpret them so you can head off bottlenecks before they impact users. This sessions also shows strategies for planning infrastructure taking into consideration InterSystems' data platforms requirements.
Content related to this session, including slides, video and additional learning content can be found here.
Usually I recommend to set the global buffer (GB) as large as possible in order to maintain in memory more globals as possible. I don't know if this is a standard recommendation, but I want to discuss what should be the best buffer size for a Ensemble instance that only process messages.