Article Alexey Maslov · Nov 23, 2017 12m read Where is my global stored? It's well-known that namespace global mapping helps us to write code independent on database storage details (Caché instance name, directory path). But sometimes we can face problems accessing an unsubscripted global which has subscript level mapping (SLM) defined. Most of such cases are evident and associated with administrative tasks that should be done on database level, but some of them can confuse even an experienced developer. Just to start: #Caché #Code Snippet #Globals #Mapping 4 8 0 1.4K
Question Alexey Maslov · Oct 26, 2017 What are Mirror Relay Server and Client? Looking through Mirroring routines sources, I've noticed these terms, while even the latest documentation keeps silence on them. I'm just curious what are they, and how to configure / to use them? #Caché #Mirroring 0 2 0 371
Question Alexey Maslov · Oct 17, 2017 Yet Another Way to Duplicate Quotes in String This small function is of great need sometimes. My solution is straightforward: #Tips & Tricks #Caché 2 6 0 1.2K
Article Alexey Maslov · Oct 9, 2017 1m read How to Make Caché Cube Selectively Visible If you have an app that uses some Caché client Windows components that are not included into CacheODBC distribution (e.g. CacheActiveX.dll), you need to proceed Caché client installation on end user's client computers and/or MS Terminal Servers. Being a part of Caché client's installation, Caché Cube is installed along with other components and is autostarted with every user's session. So, it becomes visible to every user. To make it completely invisible, you can just move CACHE.lnk file from #Caché #Deployment #Tips & Tricks 2 0 0 472
Question Alexey Maslov · Aug 21, 2017 How to get a PID of Windows process called with $zf(-1,...)? Hello everybody,We have a piece of Caché software which calls an external utility using $zf(-1,command). It works fine under Linux, but under Windows an external process occasionally hangs (due to some internal problems out of the scope here) and need to be killed programmatically. Having PID, it's easy to kill a process. If a Caché process is called with JOB command, the caller can easily get its PID from $zchild, but alas $zf(-1) does not seem to return the similar info. Is it possible to get it somehow? #API #Caché #Callout 0 4 0 666
Question Alexey Maslov · Aug 17, 2017 Replacing all strings of special kind with macro calls Hello everybody. What I have is a criteria how to select "my" strings. What I need is to replace all of them with macro calls (using the same strings as arguments) in all classes of current namespace. I was ready to write straightforward code, but at the last moment decided to ask the community: maybe I've overlooked a smarter option? Any comments and advices would be great appreciated. #ObjectScript #Tools #Caché 1 6 0 533
Question Alexey Maslov · May 11, 2017 Health Monitor: What is CPUPct Sensor Object meaning Since most of our customers moved to Caché 2015.1, some admins became abused with CPUPct warnings (sometimes alerts) in console log without other signs of lacking CPU power.Documentation states that: #Monitoring #System Administration #Caché 0 4 0 675
Question Alexey Maslov · Apr 1, 2017 %Installer Manifest: How to partially reconfigure the NameSpace (add some subscript level mapping)? I've got an issue trying to write a code which should add some global mapping to already existing namespace. Here is its skeleton: #API #Caché #Deployment #Development Environment #Mapping 0 6 0 837
Question Alexey Maslov · Mar 28, 2017 %Installer Manifest: How to ignore several kinds of compilation errors? Due to a new project I'm getting involved inside %Installer stuff deeper than ever I'd be happy to. Most of it was pretty easy to get, thanks to documentation, articles and SAMPLES example, while I can't dig good solution for one problem. #API #Caché #Compiler #Deployment #Development Environment 3 11 0 518
Article Alexey Maslov · Nov 17, 2016 11m read ECP and Process Management API The technology of load balancing between several servers with relatively low capacity has been a standard feature of Caché for quite a while. It is based on the distributed cache technology called ECP (Enterprise Cache Protocol). ECP provides a host of possibilities for horizontal scaling of an application, and yet keeping the project budget fairly low. Another apparent advantage of ECP network is the possibility to conceal its architecture in the depths of Caché configuration so that applications developed for the traditional (vertical) architecture can be fairly easily migrated to a horizontal ECP environment. The ease of this process is so mesmerizing, that you start wishing it was always this way. For instance, everybody is used to having a possibility to control Caché processes: the $Job system variable and associated classes/functions work magic in skilful hands. Stop, but now processes can end up being on different Caché servers… This article is about how to gain as much transparency in controlling processes in ECP environment as in traditional (non ECP) one. #Caché #Distributed Data Management #ECP 4 6 0 1.9K
Article Alexey Maslov · Oct 12, 2016 3m read How to cope with "October 11, 2016 – Alert: Caché Online Backup and Journal Restore" in non-patched (yet) Caché 2015.x The goal of this writing was to illustrate how to restore backup before the patch would be applied. The alert notes that: The risk can be avoided by applying journals from the beginning of the journal file that was switched to at the start of the backup, rather than accepting the default of starting from the journal marker position. Having non-patched Caché 2015.1.4, I ran sample database backup and restore just to get where I should answer "No". Collecting journal info from the backup log: #Backup #System Administration #Caché 5 0 0 385
Article Alexey Maslov · Sep 30, 2016 2m read Yet another way to automate Caché shutdown on MS Windows platforms After reading Stephen Wilson's article "Windows 7 performs shutdown too fast for Cache to close and so it gets forced down" I've recalled another solution that was based on Local Group Policy, which allows to control extra actions that should occur on computer startup or shutdown. How to add a computer shutdown script is well documented in MS Technet article. #System Administration #Tips & Tricks #Caché 7 1 0 1K
Question Alexey Maslov · Sep 30, 2016 Why do I get notifications on my own posts/comments? This kind of notifications can be confusing: one follows the link and finds... his own comment written several minutes ago.Found an answer by myself: there is a profile setting which disables it. Sorry for spam ))) #DC Feedback 1 1 0 174
Question Alexey Maslov · Mar 18, 2016 How to return the status code of Cache process to OS shell script? Straight-forward way to do it is well known and looks like this: ------------------------------------------------------------ sample #1 -------- #System Administration #Caché 2 4 0 1.2K