#Caché

30 Followers · 4.6K Posts

  

InterSystems Caché is a multi-model DBMS and application server. See more details here.

Documentation.

Edit
Question Alexey Maslov · May 11, 2017

Since most of our customers moved to Cache 2015.1, I found some admins abused with CPUPct warnings (sometimes alerts) in console log without other signs of lacking CPU power.
Documentation states that:

          CPUPct               job_type              CPU usage (percent) by all processes of the listed job type in aggregate       

What does it really mean?
E.g., if total system CPU usage is 25%, and all running processes are of the same type (e.g, CSPSRV), would CPUPct be equal to 100%? If so, why this case should be a reason for alert?

0
0 11
Edit
Question Stella Ticker · Jul 7, 2017

There is a need to send a SAML token from a local cache web application to an external web application in order to grant these cache web app users access to the external web app. Is it possible to use SOAP SAML token functionality to do IDP initiated authentication with Cache acting as the IDP server? The example in this online course shows a code snippet of the service web method that adds  the token to the outbound SOAP message. So I am assuming , this would be returned to the client in response to a client request of some sort.

0
0 38
Edit
Article Peter Cooper · Mar 18, 2018 1m read

Index to Articles

Hi All 

In this article I will showcase one of my clients applications built in ZEN.  It is what I need to replace with a new UI as ZEN is no longer being developed

This application has been created for a single client who has unique business requirements - hence the bespoke development based on Caché ZEN
It is:-

  • Large(ish)
  • Supports and Implements Complex Business Processes
  • Secure
  • Multi Lingual
  • Reasonable size of development stack
0
0 0
Edit
Article Katherine Reid · Jun 15, 2016 1m read

Question

 What version of Caché supports TLS v1.2? 

Answer

Caché uses the openssl library for SSL/TLS support.  On Windows, Linux and Unix, a version of this library is included with the install kit.  Caché 2014.1.3 and 2015.1.0 ship with the openssl 1.0.1j library.  TLS v1.1 and v1.2 support is first available in openssl version 1.0.1, so Caché 2014.1.3 and 2015.1.0 are the first versions to allow the use of TLS v1.1 and v1.2.

On these versions, if the "TLS v1" checkbox is checked in an SSL/TLS configuration, the system will use any of TLS v1.0, v1.1 and v1.2 .

0
0 4
Edit
Question Pravin Barton · Nov 7, 2017

Hello,

I have some code that reads an %XML.DataSet object that gets returned from a web service. I'd like to unit test this code by importing an XML data set from a test file. How can I do this?

I created the test file by calling WriteXML on the data set, and copying the output into the file:

do result.WriteXML(,,,,,1)

I tried to import the file using the XML reader, but the resulting data set doesn't have any rows:

USER>set reader = ##class(%XML.Reader).%New()
 
USER>w reader.OpenFile(filename)
1
USER>do reader.Correlate("SQLResult","%XML.DataSet")
 
USER>w reader.Next(.dataset,.
0
0 0
Edit
Article Mike Kadow · Jul 4, 2016 2m read

NewBie's Corner Session 10, Subject: Routines and Studio

Welcome to NewBie's Corner, a weekly or biweekly post covering basic Caché Material.

InterSystems Caché provides a GUI (Graphical User Interface) based Integrated Development Environment (IDE) called Caché Studio. Developers can use Studio to create and maintain applications.

InterSystems has a new IDE called Atelier but that is for later.

A Routine is the name that Caché calls computer programs. A Routine consists of a number of lines of instructions to the computer; these instructions are called code.

0
0 2
Edit
Article Alexey Maslov · Nov 11, 2016 14m 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.

0
0 6
Edit
Article Eduard Lebedyuk · May 9, 2017 6m read

Introduction

If you manage multiple Caché instances across several servers, you may want to be able to execute arbitrary code from one Caché instance on another. System administrators and technical support specialists may also want to run arbitrary code on remote Caché servers. To address these needs, I have developed a special tool called RCE.
In this article, we will discuss what are the typical ways of solving similar tasks and how RCE (Remote Code Execution) can help.

0
0 34
Edit
Article Ward De Backer · Jun 23, 2016 2m read

In this article I will show you how to build Universal JavaScript  applications using Caché (sharing your code across front- and back-end). But before we start writing code, I'll first give you some reasons and background why you should consider building your applications using this technology.

As I described in an earlier article on my CODE development blog, applications need to run these days on all kinds of devices and operating systems with different form factors and application development requires a new strategy. One can't keep using platform specific development tools anymore.

0
0 4
Edit
Question PILAR GUERRERO · Jun 26, 2017

Hello,

I have a problem when i take the adapter: EnsLib.FTP.OutboundAdapter. 

I want to write a file, but if the file already exist using the method ..Adapter.PutStream(name,file) and in my setting "overwrite" is true. FTP response me this message:

<descripcion><![CDATA[ERROR <Ens>ErrFTPPutFailed: FTP: error al colocar archivo '803430600001072790112416-19941214-1233287355C-347.pdf' (mensaje='Error in SFTP Put('D:\Ensemble\ABC\NAMEAPP\NAMEAPP_G\stream\HnhZ32Fb1WDatA.stream','ABC/803430600001072790112416-19941214-1233287355C-347.pdf') ERROR #7500: Error SSH '-2146426877': SFTP Error [80102003]: Permission Denied [80102003] at SFTP.cpp:539,0',código=0)]]></descripcion>
2
0 21
Edit
Article Gevorg Arutiunian · Jul 13, 2018 1m read

This code snippet uses GZIP to compress and decompress a file in the file system. Change default file paths to customize code to compress/decompress your files:

Class objectscript.GZIP Extends %RegisteredObject
{
	classmethod test() {
		//Export Global(s) uncompressed
		set filename="C:\Temp\myglobal.xml"
		do $System.OBJ.Export("^oddEXTR.gbl",filename)
		//Open exported Globals
		set uncompressed = ##class(%FileBinaryStream).%New()
		set uncompressed.Filename=filename
		Set compressed = "C:\temp\mycomglobal.xml"
		//Open File Device over Gzip and Copy Uncompressed information to it
		Open compressed:("WUNK":::/GZIP=1:/NOXY=1:/OBUFSIZE=32768):0
		Use compressed
		do uncompressed.OutputToDevice()
		close compressed
		//Create New File  
		set out = ##class(%FileBinaryStream).%New()
		set out.Filename= "C:\Temp\decomp.xml"
		//Open compressed File and save information uncompressed over gzip
		Set file=##class(%File).%New(compressed)
		Do file.Open("RUK:::/GZIP=1:/NOXY=1")
		while ' file.AtEnd
		{
		    set line = file.ReadLine()
		    do out.Write(line)
		}
		do out.%Save()
	}
}

GitHub: https://github.com/intersystems-community/code-snippets/blob/master/src/cls/objectscript/GZIP.cls

0
0 0
Edit
Article Thomas Carroll · Sep 17, 2016 3m read

Embedded SQL is a tool that allows us to execute SQL statements in Caché Object Script. For example, to select the name of a person with a particular SSN from the Sample.Person class we can do the following.

&SQL(

Select Name into :tName

From Sample.Person

Where SSN = :tSSN

)

The colon syntax is used to identify local variables, in this case tName and tSSN. &SQL indicates to our compiler that this is SQL syntax. At compile time, this statement will be optimized to executable Object Script code. More about this syntax can be found here.

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

0
0 0
Edit
Question sansa stark · Sep 12, 2016

Hi ,

     The below code is working in cache 5.02 but it'snot working cache 16.

      while we calling this method in another csp page it's show some different character.

      ClassMethod OnHTTPHeader(ByRef OutputBody As %Library.Boolean) As %Status [ ServerOnly = 1 ]
  {
set user $ZUTIL(67,15,$JOB)
set status %session.Login(username"Test" ,1)
set log $Get(%session.Data("Log")) 
set logtype $Get(%session.Data("logtype")) 
if (log "")
{
!, "<div style='color:#000000; background:white; ; font-size=10pt;'><B>Your session has expired.

1
0 24
Edit
Article Carter Tiernan · Sep 21, 2016 2m read

Overview

Current Caché system monitoring functionality provides real-time information about a Caché environment. This allows for preventative measures to be taken before system failure by highlighting specific metrics when they are at unusual or dangerous values. Additionally, diagnosis of past or current erronious events is aided by informative logs that are created by the system monitoring process.

The System Monitor Dashboard project is a successor to the current system monitoring functionality.

0
0 0
Edit
Question Alexey Maslov · May 11, 2017

Since most of our customers moved to Cache 2015.1, I found some admins abused with CPUPct warnings (sometimes alerts) in console log without other signs of lacking CPU power.
Documentation states that:

          CPUPct               job_type              CPU usage (percent) by all processes of the listed job type in aggregate       

What does it really mean?
E.g., if total system CPU usage is 25%, and all running processes are of the same type (e.g, CSPSRV), would CPUPct be equal to 100%? If so, why this case should be a reason for alert?

0
0 5
Edit
Question Davidson Espindola · Mar 3, 2017

Hello everyone,

I have the following problem in generating a PDF report in ZEN, which has many items, a general total of approximately 30,000 items, but gives an error, I can generate a report with a maximum of 8,000 items, which may be wrong.

==========

Class Ideal.ListaEstoquePDF Extends %ZEN.Report.

0
0 0