#Caché

30 Followers · 4.5K Posts

  

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

Documentation.

Question Nikita Savchenko · Jun 6, 2016

Hello!

I have a WebSocket application which spawns new process using JOB command.

Sometimes WebSocket connection can be terminated, and in the meantime I need to hold spawned process alive until it can be associated with the new WebSocket connection. (Do not suggest serializing process state here instead please)

Technically, in Caché WebSocket connection is represented by the class, which executes in its own process. This process is terminated when the connection is lost. In this case the JOBbed process does not terminates (thanks Edward), but it rely on $ZPARENT variable.

Is it possible to hold J

11
0 484
Question Evgeny Shvarov · May 30, 2016

Hi, Community!

Last weekend we held the Final of InterSystems Contest on Caché, DeepSee and iKnow under the aegis of IT Planet Student Championship in Ekaterinburg. BTW, this year we had more than 1,400 participants in InterSystems Contest.

One of the tasks for the final was to solve T9 Spelling problem  with Caché ObjectScript and use the minimum code. 

Problem description:
The Latin alphabet contains 26 characters and telephones only have ten digits on the keypad. We would like to make it easier to write a message to your friend using a sequence of keypresses to indicate the desired charac

20
0 1407
Article Steve Brunner · May 19, 2016 1m read

I am pleased to announce the field test of Caché and Ensemble 2016.3 -  with many new improvements.

The product team at InterSystems looks forward to your participation in the field test and feedback over the coming months.

Some of the more signification changes in 2016.3 are new RESTful APIs for iKnow and broader APIs for programmatic control of multiple servers (enterprise manager).  As always, there are a host of scalability and performance improvements, including improvements to the core database and SQL.  And hundreds of smaller improvements and corrections.

8
0 1073
Question Isaac Aaron · Jun 3, 2016

Hello

During some consultant activity I did at a client's I have discovered something very interesting. It seems like the current processing cycle as written in ObjectScript has trouble utilizing an SSD-based storage machine with five-digit IOPS.

6
0 2780
Question Harry Tong · May 31, 2016

Recently I was asked by a customer with this question. In MS SQL Server, there is a function called host_name() that will return the work station name.

Here is how I would do it in Caché :

With default SQL schema name, in my case SQLUser in SQL (which is equivalent as User in Caché class definition), I have a class called User.dummy, I added a classmethod called hostname and expose it as SQL function host_name:

/// 
Class User.Dummy Extends %Persistent [ ClassType = persistent, DdlAllowed, ProcedureBlock, SqlRowIdPrivate, SqlTableName = dummy, StorageStrategy = "" ]
{
Property f1 As %Library.Integ

4
0 1572
Question Peter Kopp · Jun 2, 2016

I have a ZEN page with buttons, text boxes and a tab group. The tab group contains a single tab which I use to display an image(src). When the user, uses the browser zoom capabilities to reduce or enlarge the image, the other controls are reduced or enlarged as well. How can I reduce or enlarge the tab src alone? Thank you for any and all input.

1
0 447
Article Mike Kadow · Jun 2, 2016 3m read

NewBie's Corner Session 6 If and Kill commands

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.

As in other computer programming languages, the If command is the primary decision makes.

If command with numeric operands

Set X=12
If X=12 Set X=13
Write X
13

If command with alphanumeric operands

Set X="ABC"
If X="ABC" Set X="XYZ"
Write X
XYZ

Whenever alphanumeric data is being referenced, quotation marks are required.

Kill command

Thus far, we have learned how to set a variable to a value

0
0 505
Question Alexandre Marques · May 16, 2016

I have a homeTemplate and ExamesTemplate page. When I'm in ExamesTemplate and make a resfresh (F5 browser), the page back to the HomeTemplate. I need the page ExamesTemplate not return HomeTemplate.

I'm using ZenMojo with Bootstrap

Can someone help me?

Thanks.

4
0 521
Question Marco Blom · Apr 2, 2016

Hi,

I am working on a DataGrid based upon ZenTest.Datagrid.cls

I want to save data after changes on a row.

The existing samples do not explain how to save changes on data in a grid.

I have tried something like zen(‘json’).save

Does anybody has some sample code?

4
0 1042
Question Andy Richards · Jun 1, 2016

I have a production system that has a large dataset of about 2 million rows. I need to create an index on a property but don't want it available to queries until the index is fully populated. Is there a way I can create the indexed, fire off the build, then "activate" the index so queries can use it.

The problem I face is the minute I create the index queries start returning zero rows because it starts using the index. As I start building it starts returning qualifying rows for those it has indexed but misses those not yet processed. All of this creates incorrect results while the build is runn

3
0 558
Question Steve Pisani · May 25, 2016

Hi,

Assume an architecture where an ECP Database Server is connected to by one or more ECP Application Servers inside a firewall.The application server hosts the web application that web users connect to.

The Web servers are outside the firewall, and, (using the CSP gateway/server mechanism) issue requests over the SuperServer port and into the application server.

I know that the traffic between the Web Server and the ECP application server can be encrypted using HTTPS, and access to the CSPServer on the Application server is username/password secured.

Q1: In order to bolster security, is it possi

2
0 4829
Article Bill McCormick · May 27, 2016 1m read

Steve Glassman is on vacation today so in his place I wanted to announce the availability of a new kit for the 2016.3 Field Test. The kit details are: 2016.3.0.628.0

Most of the changes are related to DeepSee, DocDB data models and dynamic objects. You can find a complete listing here:

https://wrc.intersystems.com/wrc/WRC.StreamServer.cls?FILE=/wrc/FieldTe…

Bill McCormick

Director of Product Management

0
0 383
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 479
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 *.DAT files and other InterSystems files such as journals and binaries, then system pe

2
1 1895
Question Fabio Goncalves · Apr 14, 2016

Hello, one of our application partner, is considering modernizing their old CSP laboratory portal by using Zen Mojo with Bootstrap. They have a lot of experience with COS, CSP and some ZEN. They are new to REST/JSON and have some limited knowledge of javascript - perhaps not enough to the extent used by client framework. 

They are trying to create their portal main page with header and footer fixed where at the header level is going to have a menu or navbar and at the footer level they would like to have some options (buttons, search options, text, messages, etc) dynamically loaded during run

6
0 3875
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.?

The basic Operator Precedence of mathematics is:

       Multiplication and Division has precedence over Addition and Subtraction

In normal mat

0
0 446
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. Start up procedure termi

2
0 1236
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. 

     On the other hand, it is sometimes useful to know what was the local timezone at the moment the event was generated to compare to events generated on other systems or to correlate to people's rec

1
0 879
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 474
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". Since X is not numeric, the plus si

0
0 490
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 313
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 384
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 !!,array.$toJSON()

[{"id":"78","reg":"HIRE VEH","snNum":"234"},{"id":"86","reg":"HJ65 HJK","snNum":"567"}]

what I

5
0 1144