Article Alexey Maslov · Nov 17, 2016 11m read

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.

6
0 2100
Article Alexey Maslov · Oct 12, 2016 3m read

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".

0
0 439
Article Alexey Maslov · Sep 30, 2016 2m read

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. In short:

  • being logged on as a domain admin, run Local Group Policy Editor (gpedit.
1
0 1121
Question Alexey Maslov · Mar 18, 2016

Straight-forward way to do it is well known and looks like this: 
------------------------------------------------------------ sample #1 --------

echo "Try to freeze Cache instance $instance"
rm -f $mydir/db_temp
csession $instance -U%SYS << EOF >/dev/null
zn "%SYS"
set rc=##Class(Backup.General).ExternalFreeze()
set fn="$mydir/db_temp"
o fn:("WNS"):1 if \$t u fn w rc c fn
h
EOF
read rc < db_temp
if [ "$rc" = "1" ]
then
 echo ".

4
0 1297