#Caché

30 Followers · 4.5K Posts

  

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

Documentation.

Article Rob Tweed · Jun 22, 2016 14m read

In this article I'll describe how to set up web services and/or REST services using EWD 3.

Since EWD 3 is designed to be modular, you can construct the environment that exactly meets your needs, but for much of the time you'll probably find that the pre-built EWD 3 ewd-xpress super-module does most of what you need because it hooks together all the core EWD 3 and other building-blocks you'll need:

1
1 1478
Article Ward De Backer · Jun 23, 2016 5m read

As Rob explained in an earlier post, Caché's Node.js interface allows you to create Web Services and REST Services using the very modular EWD 3 framework.

These services by default return a JSON response with Content-Type: application/json and the response body contains the JSON you return using the finished() method, so:

finished({ test: 'test response' });

returns

{ "test": "test response" }

with a HTTP content-type of application/json

0
0 3308
Question Chip Gore · Jun 21, 2016

Hi -

I'm trying to rewind a cursor back to the first row after looping part of the way through the implied result set, but I'm not finding a way to make this happen, is there some such iterator variable or directive that I can leverage to accomplish this?

I could code around it by pulling identifiers and/or values into a local array, and then hand code up an iterator over my local results copy, but this feels like a "redesigning of a wheel" approach, and I thought I would check before I start down this path.

Thanks

2
0 587
Question Daniel Kutac · Jun 21, 2016

Customer is using an ancient MSM based client Workstation for their application and they made a small change to their server code. They introduced property of %Double() and discovered an issue. The MSM workstation is not able to retrieve any property of an object instance that holds value of $double(0). see images illustrating the issue.

I'm posting this to DC intentionally before I eventually send it to WRC so others can comment.

Dan

Image 1 - data

image 2 - UI

1
0 611
Article Mark Bolinsky · Feb 3, 2016 2m read

During recent large scale benchmarking activities, we were seeing excessive %sys CPU time that negatively impacted scaling of the application.

Problem

We have found that a lot of the time was spent in the localtime() system call due to the TZ environment variable not being set.  A simple test routine was created to confirm the observation, and the elapse time differences and CPU resources needed with TZ set versus TZ not set were astonishing.  It was discovered that the inherit use of stat() system calls to /etc/local_time from localtime() are very expensive when TZ is not set.

Recommendation

5
0 2950
Question Timur Safin · Jun 15, 2016

Let assume you have a infinitely scaling algorithm implemented in your application, using replication, ECP, or any other means of horizontal scaling, and let assume you know how to run your system under any volume of requests, the trick is to deploy required number of computing nodes in the cluster. If we are talking about cluster of 2-4 nodes your administrator (or as they call it today "devops engineer") will install anything manually. Probably he will easily handle 5 nodes configuration in the cluster. But what if you need to deploy 10, 100, or 200 properly configured, interconnected nodes?

8
0 755
InterSystems Official Steve Brunner · Jun 17, 2016

InterSystems is pleased to announce that Caché and Ensemble 2016.1.1 are now available as maintenance releases.

For a complete list of the corrections in 2016.1.1, please review the release notes.

 

Caché and Ensemble 2016.1.1 are available now for the same platforms as 2016.1.0, with the following exceptions:

  • OpenVMS is not available yet.  It will be announced separately.

  • Support for Red Hat Enterprise Linux 7 for Power System-64 is now dropped. 

The complete set of supported platforms, including specific point releases and/or patches, is detailed in the Supported Platforms document.

 

0
0 423
Question Jan Krestyn · Jun 15, 2016

Hello WRC.

Is possible to obtain a node-cache modul for the nodeJS ver.4.4.4. and actual Caché 2015... ?

And what is the expected outlook of this.

A note about this new portal: If I put into "search box" some text with dot like .js or .css ( for example: test.js )  , I obtaint error page. Try it.

Of course, this "Developer Community" is nice, the right way.

Nice day for all, Jan Krestyn

3
0 553
Question Laura Cavanaugh · Jun 16, 2016

Hello,

I have a question about how to set the value of a radioSet.  Yes, I know -- the documentation says that setValue can be used "client side", but gives no example.  Plus, I'm trying to set the value of a radioSet in %onAfterCreatePage, which is a Zen method? Server side method? I'm not sure.

In my Zen page I create a radioSet like this:

<radioSet id="appRadio" name="appRadio" 
displayList="App One,App Two,App Three" 
valueList="One,Two,Three"/>

I want to select a radio based on a sepcific value, that I get from code.

e.g.

Method %OnAfterCreatePage() as %Status

4
0 698
Article Erik Hemdal · Jun 17, 2016 5m read

Setting the TZ Environment Variable on Linux

The Update Checklist for v2015.1 recommends setting the TZ environment variable on Linux platforms and points to the manpage for tzset. This is recommended to improve the performance of Cache’s time-related functions. You can find out more about this here:

https://community.intersystems.com/post/linux-tz-environment-variable-not-being-set-and-impact-caché

The manpage on my CentOS 7 test system (RHEL 6 says the same) has this to say:

0
0 140061
Question Francis Galiegue · Apr 27, 2016

Hello,

I am still a beginner with COS and am struggling with these concepts. While digging through the official documentation will eventually tell you everything you need to know, getting started is nevertheless not an easy feat...

Is it possible to create a "lists/array/multidimensional 101" page for beginners? And, for instance, its interaction with $data, what it means to use "as list of something" or "as array of something", how to walk lists, how to add/remove elements, how to extract sublists etc?

12
0 664
Question Mike Kadow · May 1, 2016

I am hoping some of you network guys have ideas. InterSystems seems to be at a standstill. When I startup Studio and try to start Terminal I get License Limit Exceeded. Starting with Terminal and going to Studio, same thing. It started when I put down a 2016 version of Cache on top of a 2015. InterSystems told me to uninstall everything and start fresh. I did that but have the same problems. What can I look at? How do I start to debug this? Although I am the only one on my PC it is really impacting my performance.

-thank you

5
0 1303
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.

0
0 4
Article Attila Toth · Jun 15, 2016 1m read

Hi All,

I've created a sample implementation of the MQTT protocol, which is now available on GitHub

The project demonstrates MQTT client capabilities and it's written in Caché Object Script.

Any comments, bug reports are welcome! Some more enhancements (like SSL / TLS support) are planned for the near future.

0
0 679
Article Stefan Wittmann · May 31, 2016 12m read

Introduction

The field test of Caché 2016.2 has been available for quite some time and I would like to focus on one of the substantial features that is new in this version: the document data model. This model is a natural addition to the multiple ways we support for handling data including Objects, Tables and Multidimensional arrays. It makes the platform more flexible and suitable for even more use cases.

12
0 2827
Question Simcha Gershon · Jun 9, 2016
 
Other recipients:

 
Hi I'm trying to inser a button into a grid cell with no sucssess. You can see what I get, I don't understand what I'm doing wrong, can any one help me Thanks This is my code : content = { children: [ {type:'$ContentPane',key:'layoutContainer-1',st

Hi
I'm trying to inser a button into a grid cell with no sucssess. You can see what I get, I don't understand what I'm doing wrong, can any one help me
Thanks
This is my code :
 
content = {children:

1
0 387
Question Nikita Savchenko · Jun 1, 2016

Hello!
Are there any short ways of serializing COS entity to the string? I am searching for something like .$toJSON() , but I need Caché 2013.* support.

The one way I supposed to work is to use $listbuild:

set str = $LISTTOSTRING($LB(1,2,3,",",5))
set list = $LISTFROMSTRING(str,",")
zw list
list=$lb("1","2","3","","","5")

 

But the problem is that $listbuild does not escape delimiters, and it is not possible to deserialize serialized string. The structure I need to serialize may contain any characters.

Are there any short ways to do this in Caché to avoid writing custom parser?

15
0 3378
Article Evgeny Shvarov · Mar 9, 2016 2m read

Hi!

Here is small "How to" again.

Suppose you need to share something with source code. How can we manage it on DC?

Sharing code snippets

1. Add normal post (not Code Package).

2. Paste your code in the post and format it with highlighting as it is described here.

3. If you see that your COS code is highlighted wrong it means that autodetect missed with language. Open the post's HTML ("disable rich-text" button below the Editor) and put class=COS parameter into the code tag.

Example:

2
0 565
Article Mike Kadow · Jun 11, 2016 2m read
NewBie's Corner Session 7 True and FalseWelcome 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 these commands.In COS, a 0 is false and any other number (positive or negative) is true.Set X=1If X Write "True"          ;  1 is true and 0 is falseTrue Set X=0If X Write "True"          ;  0 is false<>  Set X=10If X Write "True"          ; Any number other than 0 is trueTrue Set X=-10If X Write "True"          ; Any number other than 0 is true, even negative onesTrue Set X="1"If X Write "True"
0
0 407
Article Alexander Koblov · May 20, 2016 12m read

Order is a necessity for everyone, but not everyone understands it in the same way (Fausto Cercignani)

Disclaimer: This article uses Russian language and Cyrillic alphabet as examples, but is relevant for anyone who uses Caché in a non-English locale.Please note that this article refers mostly to NLS collations, which are different than SQL collations. SQL collations (such as SQLUPPER, SQLSTRING, EXACT which means no collation, TRUNCATE, etc.) are actual functions that are explicitly applied to some values, and whose results are sometimes explicitly stored in the global subscripts. When stored in subscripts, these values would naturally follow the NLS collation in effect (“SQL and NLS Collations”).

7
1 3178
Question Danny Spell · Jun 9, 2016

I've been in IT since 1986.

I started with Pr1me INFORMATION and Primos on Pr1me hardware.

In the 90s and 00s, I used D3.

I'm giving Caché a try, but I'm kinda having some difficulty getting started.

I've installed Caché on a 64-bit Windows 7 workstation. It was installed under an administrator's account. From a standard users account, I'm trying to access the Management Portal at:

http://localhost:57772/csp/sys/UtilHome.csp

It is prompting me for credentials. Which ones do I use? I've tried several, but nothing is working.

5
0 447
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.

11
0 482