#Caché

30 Followers · 4.5K Posts

  

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

Documentation.

Question Evandro Santos · May 25, 2016

Hi.

I'm facing a problem when I try to use the Runtime Expression below inside the XData Contents:

<html>#($$$Text("Testing!"))#</html>

It compiles correctly, but when I open the page on the browser I get the message "Expression Error" instead of "Testing!".

How could I use the $$$Text macro with Runtime Expressions? Is there a way to make this?

Thanks!

5
0 482
Article Murray Oldfield · May 26, 2016 1m read

Post updated in August 2025 to include links to IRIS.

I have seen customer problems where the use of a virus scanner running over Caché or IRIS databases was causing intermittent application slowdowns and bad user response times.

This is a surprisingly common problem, so this short post is just a reminder to exclude key Caché and IRIS components from your virus scanning.

Generally, virus scanning must exclude the CACHE.DAT or IRIS.DAT database files and the InterSystems binaries. If an anti-virus is scanning *.

2
1 1896
Article Mike Kadow · May 26, 2016 2m read

NewBie's Corner Session: 5 Operator Precedence

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

Click on the Caché Cube in your system tray and select Terminal to try out the commands.

Order Precedence means the order in which mathematical operators are executed. In a Mathematical expression, you may have Multiplication, Addition, Subtraction, and Division. Which of these are executed first, second, third, etc.

0
0 449
Question Sankar Manogaran · Apr 28, 2016

Hi,

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.

CctrlInstallStartCP( CACHE ) failed! Return value: 1 CctrlGetLastError() returned:

A problem was encountered while attempting to restore the write image journal file (CACHE.WIJ). See the console log for more information. If you want to start Cache without restoring the write image journal, move the file to an alternate location.

2
0 1240
Question Amir Samary · May 24, 2016

Hi everyone!

     I am helping a partner to develop a new application and one of the things we are facing is that this WEB application will be used on different time zones.

     My first recommendation is that all timestamps should be drawn from $ZTimeStamp instead of $Horolog. That would allow the system to be draw the correct sequence of events even when they are generated on different timezones.

1
0 883
Question Amir Samary · May 24, 2016

Hi!

I am trying to create a %Installer script and I noticed from our documentation that %Installer's <CSPAuthentication> will only accept:

<CSPApplication>
Optional; within <Namespace>. Defines one or more CSP applications; the supported authentication flags are 4 (Kerberos), 32 (Password), and 64 (Unauthenticated).

 

Is "Delegated" authentication supported? What is it's code?

Kind regards,

Amir Samary

2
0 479
Article Mike Kadow · May 24, 2016 2m read

NewBie's Corner Session 4 The Plus Sign and Concatenation Operators

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

Click on the Caché Cube in your system tray and select Terminal to try out the commands.

Plus Sign (+) operator

Typically, the Plus sign (+) adds two numbers together. This is true in COS (Caché ObjectScript), but COS uses it in other ways as well.

Set the variable X to a value of +12

Set X=+12
Write X
12

Set the variable X to the value of +"ABC"

Set X=+"ABC"
Write X
0

Here, the Set command sets the variable X to +"ABC".

0
0 493
Question Amir Samary · May 24, 2016

Hi everyone!

     I am trying to choose the best collation for a new application that will be running on a spanish locale (Chile).

     I can see there are database collations for Spanish1, Spanish2, Spanish4 and Spanish5. What is the difference between them? I can't find anything on our documentation. Should I simply choose the latest (Spanish5)?

Kind regards,

Amir Samary

1
0 490
Question Steve Pisani · May 19, 2016

Hi -

Let's say I want to override the HTML that is generated by provided ZEN Mojo Helper Plugins I use the onloadHandler method of my document page, retrieving elements, and modifying them using jQuery syntax.

For example, I'm using bootstrap, and, I want  the <button> element automatically generated with the use of the $navbar layout object, to collapse/expand a different <DIV> on my page, to the default one it produces. 

Is this the correct spot and approach to use ? 

thanks

Steve

2
0 314
Question Peter Kopp · May 23, 2016

Good morning, I am using a tableNavigatorBar on a tablepane. I want to execute the onselectrow method of the tablepane each time the tableNavigatorBar is used to proceed to a tablepane record. Has anyone connected these two component in this way before? Thank you for any hints, input and/or comments.

4
0 385
Question Kevin Furze · May 23, 2016

I am playing with json output from result sets

I've generated a dynamic resultset and now doing the json and I can get Array's with nested Objects but I'm trying to get to Objects nested with another object

mainObj = ##class(%Object).$new()
set array=[]
  While (result.Next()) {
     s object = ##class(%Object).$new()
     s object.id = result.Data("ID"
     s object.reg = result.Data("Registration")
     s object.snNum = result.Data("SatNavVehNumber")
     do array.$push(object)
     }
  w !

5
0 1151
Question Francis Galiegue · May 20, 2016

Hello!

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.

Unfortunately, for some reason, when I relaunch the install again, the install process still detects the old instance which I installed previously.

6
0 2402
Question Mark Bolinsky · May 19, 2016

Consider a design where there could be three or four or more servers and there is a need to have these eventually consistent between them all (and not considering database mirroring here).  

The current Caché documentation here demonstrates this well using object synchronization between two servers, however it doesn't indicate whether more than two servers can participate to create a "mesh type" deployment.  Below is a diagram of what I'm curious to know is possible to implement with Object Synchronization.

2
0 468
Question Fabio Goncalves · May 16, 2016

Hi All, 

I am providing support to an AP about using document criteria on Multiple Templates (Explicit Dispatch).

I am trying to set the  criteria value from:

view.setDocumentKey('initial-search',{patirntId:tPatId});

 However it is not possible to get the criteria value on %GetJSONContent through pCriteria parameter object.

How can I do this with Multiple Templates on bootstrap plugin?

Thanks.

1
0 366
Article Mike Kadow · May 17, 2016 3m read

NewBie's Corner Session 2 Variables Set and Write commands

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

Session 2 – Click on the Caché Cube in your system tray and select Terminal to try out the commands.

Variables

Like other computer programming languages, Caché uses Variables and the values they represent to control programming. Variables are elements that represent data values. Manipulating and interrogating variables is at the root of programming.

0
0 456
Question Daniel Kutac · Mar 23, 2016

Hello, our customer, large industrial company, is considering modernizing their old CSP application so it can run on multiple client device types, using responsive design.

They have a lot of experience with CSP and some ZEN.

They are new to REST and have some limited knowledge of javascript - perhaps not enough to the extent used by client framework.

Does anyone have a framework or a set of templates that you would be willing to share?

Thank you!

Dan Kutac 

7
0 852
Question Francis Galiegue · May 13, 2016

Hello,

I'm trying to connect to a Caché server from Atelier; the Caché server is 2015.x.

The address and port I'm trying to connect to is the SQL gateway server; and I get, each time, an "unexpected end of file from server".

Note that unfortunately, for the moment, I connect as _system... And the Caché install has the default privileges.

What am I doing wrong?

1
0 560
Question Scott Beeson · May 13, 2016

This is a bit weird.  I'm trying to use `DATEDIFF()` to calculate the time since the last message on an interface.  For some reason, when no messages are received, the number steadily decreases.  This is the opposite of what should happen.  Here is my current query and a few sequential result sets:

SELECT getDate() as now, max(TimeCreated) as latest, DATEDIFF (s,getdate(), max(TimeCreated)) as difference
FROM EnsLib_HL7.
4
0 774
Article Blaise ZARKA · May 13, 2016 1m read

Hi,

If you want to import data from a mySQL export file (exported with mysqldump), you will find here a little script that could help.

Only the INSERT commands in the sql file are executed into Caché. Indices are not computed for better performance.
%NOINDEX, %NOCHECK and %NOLOCK are generated on each INSERT line.

Currently, the file can not contain a "),(" pattern inside the values part of the INSERT command. If this is the case, the line is skipped. This feature may be implemented in the extractValuesList method.

Feel free to improve it as needed.

3
0 616
Question Mikhail Khomenko · May 12, 2016

Good day, Cache developers and users!

At first, sorry for my bad English -)  I have a little question.

As I know, we can add database to mirror only on Primary Failover Node, using SMP or ^MIRROR. And the usual procedure after that is to copy mirrored database to Backup Failover Node and restore it there (by Backup restore or by Activate-Synchronize procedure). This all works fine. But what if I first have copied the database from Primary to Backup and only than added the database to mirror on Primary Failover Node? (human forgetfulness).

2
0 560
Question Chip Gore · May 10, 2016

Hi -

I'm trying to figure out what is the best (or at least pros & cons) on how to manage login accounts in a multi-tenant SaaS web based application context.

Assume that a company is designing a collections of web based applications that they will be selling as "services" to their clients, and that these clients will each have their own "users" and "customers" that will be logging into these services.

In setting up these login accounts for the "users/customers" of the "clients" of the "company", does setting up a unique domain/user-pool context for each "client" make the most sense?

3
0 499
Article Mark Hanson · May 11, 2016 1m read

Often when debugging COS code you get an error message such as '<UNDEFINED>test^routine *test' so the first thing you want to do is to take a look at this code and see what it is doing. From the command line you can:

ZLOAD routine ZPRINT test

Which means splitting the $zerror information into the routine name and the line and adding the zload/zprint commands. Also you often want to view the lines above the one where the error happened as this gives you some context of how you got to this line, using ZPRINT you could 'ZPRINT +1:test' but that may display hundreds of lines.

Since 2013.

6
0 1036
Question Derek Day · May 10, 2016

I have some logging code that outputs task status information to a log file. I would like to make the log available for reading while it is open for writing. The file is opened using the "L" option (Lock):

Open tLogFile:"WASL" Set tLogOpen=1


My intent was to prevent multiple processes from accidentally writing to the file and having messy output. Unfortunately, if the process is taking longer than expected, one can not simply open the log file to figure out what is going on because the "L" lock prevents the file from being opened for reading as well as writing.

2
0 447
Question Joshua Goldman · Mar 16, 2016

This question came on the Ensemble in Healthcare email list. It's a great question. I'm working on an answer, but am posting it here to get any other input. I'll also address the option of using %CSP.REST.

Hello everyone,

 

Using Intersystems Healthshare/Ensemble, I am trying to make a RESTful Interface between Android/iOS app and Cache database. I have some queries and I am unable to find where exactly I can get any resources on them.

 

1. By extending the EnsLib.REST.

12
0 9850
Article Nikita Savchenko · May 6, 2016 8m read

Greetings! This article describes yet another simple way of creating installers for the solutions based on InterSystems Caché. The topic covers applications, which can be installed or completely removed from Caché with one action only. If you are still documenting installation instructions that have more than one step to do to install your application — it’s high time you automated this process. 

14
0 1867
Question Mike Kadow · May 7, 2016

I am trying to execute a system query. - %SYS.Journal.File_Search()

The Query is looking for a Journal File Name and a String.

However, the Query line accepts no parameters. - Query Search() As %Query(ROWSPEC = "Offset:%Integer")

But in the SearchExecute method if checks for File and String.

ClassMethod SearchExecute(ByRef qHandle As %Binary, String As %String, FileName As %String . . .

5
0 928