#Caché

30 Followers · 4.5K Posts

  

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

Documentation.

Question Pedro Borges · Aug 14, 2017

Hello -- Is there a way to load a JSON from a file.

I have a "JSON" file which has a sting 1035164 long with the following format: 

[
    {
        "id": "12345",
        "title": "John Smith",
        "image_uri": "https://<some URL>",
        "image_timestamp": "1496781334",
        "image_url":"https://<some URL>...
15
0 2791
Question Marek Bernád · Aug 11, 2017

Good day, every process in my software is about to update 3 specific globals in row when the process is called to do some job. I need to guarantee that during updating of those globals with multiple processes there is only one process that is actually working with those globals. Moreover I need my globals unreadable if other process is in critical area.


Example:


(for example globals: ^data1, ^data2, ^data3 are critical area)

Should I use somehow function $LOCK() or there is another way how this can be done?

8
0 939
Article Pete Greskoff · Jul 11, 2017 1m read

An installation or upgrade of Caché, Ensemble, or HealthShare on Windows could fail with the titled error if a newer version of the Microsoft Visual C++ Redistributable 2013 (x86) or (x64) is installed instead of version 12.0.30501.

If you encounter this error during an installation, you can get around it by uninstalling those versions of the redistributables in the Control Panel, then manually installing both x86 and x64 older versions directly from this link. This problem has been corrected in maintenance kits 2016.1.4 and 2016.2.2 and all released 2017 versions by devchange ALE2949.

2
1 8365
Question Ruslan K · Jul 23, 2017

There is method:

$System.OBJ.New( ClassName As  %String = "" )

If class with name ClassName exists - everything is OK.

But, when class does not exist, there is error - <CLASS DOES NOT EXIST>

How can I check before calling $System.OBJ.New() if class witn name ClassName exists?

19
2 4631
Question Brian Shingle · Aug 7, 2017

Greetings!

I'm new to Zen reports and I'm wondering if what I'm trying to do is possible.  I have a classmethod  that accepts three parameters to generate an xml file from a global.    I've set up my Report Definition to call the ClassMethod that generates the .xml file; however, I'm trying to figure out how to pass the parameters to that ClassMethod from the Report Definition.  The example in the documentation shows parameter passing using SQL (which I'm not using), so I'm curious if this will work.  

2
0 492
Question stephen mayo · Aug 10, 2017

Hi,

I am new to Cache' MV but have extensive experience with other Pick flavors especially Unidata. 

I need to determine the impact of adding several indexes to a large file with over 51,000,000 records. 

On other systems, I could use FILE.STAT, ANALYZE.FILE and shell to the OS to determine how large the index file was. 

None of those seem to be available in Cache' MV. Shelling to the OS just tells me the size of CACHE.DAT.

What is the best way to determine what the disk impact would be if I added an index (CREATE-INDEX) to a file?

TIA,

Steve

4
0 579
Question Sébastien Demoustiez · Jul 27, 2017

Hello,

I have a DB server (ser-app-db) where cache is installed as server.

I have a Web server (ser-app-w) where cache is installed as web server and configured as CSP gateway.

I followed the configuration guide (https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KE…) and ser-app-w perfectly display the CSP and CLS pages.

But that's not working for my REST service, for exemple with the REST sample:

http://ser-app-db/csp/samples/docserver/request(GET): work and show the request

http://ser-app-w/csp/samples/docserver/request(GET): return a 404.

Can someone

9
0 1534
Question Marek Bernád · Aug 11, 2017

Good day,

I need to find out if it is possible somehow to receive actual linux TIMESTAMP for example with $NOW() or other functions.
I was trying to recalculate it with $NOW() function, but without success. I would like to simulate Redis TIME command in COS.


My tryings:

USER > set time = $NOW()

USER > w (($PIECE(time,",",1)*86399) + $PIECE(time,",",2))
5573319043.403186

But in Redis it is:

> time
​1) 1502471158

On web page: http://try.redis.io/
type "time" + enter. And it will results as short documentation says: https://redis.io/commands/time

And this behavior I would like to implement in COS.

Add

7
0 763
Question Ruslan K · Aug 9, 2017

I have a tablePane. TablePane can have one, or two, or three parameters. It depends on some conditions.

At first I add all three parameters to tablePane.

set p1 = ##class(%ZEN.Auxiliary.parameter).%New()
set p1 .id = ..id1
do table.parameters.Insert(p1 )
do %page.%AddComponent(p1 )

set p2 = ##class(%ZEN.Auxiliary.parameter).%New()
set p2 .id = ..id2
do table.parameters.Insert(p2 )
do %page.%AddComponent(p2 )

set p3 = ##class(%ZEN.Auxiliary.parameter).%New()
set p3 .id = ..id3
do table.parameters.Insert(p3 )
do %page.%AddComponent(p3 )

Then through javascript I set parameters values and query names.

If

2
0 367
Discussion Sebastian Mueller · Aug 8, 2017

I understand this is a rather broad topic (and at times involves religious sentiments) yet I would like to look at it from the Caché perspective:

  • Do you use an issue tracking / collaboration system? If so which one. Any you would recommend or immediately dismiss based on personal experience?
  • How do you keep track of large code bases? Thousdands of folders named backup1, backups2, ..., SVN, git?
  • Do you have a development server to which you commit and test features there, or do you rather run a local copy of caché and implement features locally first, then push to the server?
  • Bonus
14
0 963
Question Mike Kadow · Aug 10, 2017

Hi, I am trying to understand the transformational methods.

  • LogicalToDisplay()
  • LogicalToOdbc()
  • OdbcToLogical()
  • DisplayToDisplay()

I have created a small class with the only property of List as %List, see below.

Class LastName.Demo2 Extends %Persistent
{
Property List As %List;

}
Then I entered the following commands in the Terminal

Set Oref=##class(LastName.Demo2).%New()

FOR I=1:1:5 S $LI(List,I)="Value="_I

Set Oref.List=List

WRITE Oref.ListLogicalToDisplay(Oref.List)

^

<METHOD DOES NOT EXIST> *ListLogicalToDisplay,LastName.Demo2

zw Oref

Oref=<OBJECT REFERENCE>[2@LastName.Demo2]

+----------------- general

5
0 885
Question Mike Kadow · Aug 9, 2017

The data type %Char or %Library.Char

The description says it is a fixed length character field.

How do I set the fixed length?

Or by just setting %Char to something, does that automatically define its length?

Are the parameters MINLEN, MAXLEN involved? Or are these the way I set the fixed length?

Any help with this?

4
0 405
Article Robert Cemper · Aug 8, 2017 1m read

In a previous exercise, I was able to show the power of Caché.
A medium-designed set of interdependent tables with some GB of data.
URLs cross reference over some million pages resulting in ~3 billion records

Competition was between

  • Caché
  • PostgreSQL
  • MySQL

Criteria were Speed + Storage consumption
I composed  a customized loader fed over a "raw" TCP connection
Mapping the "objects" into the final table by directly writing to Global Storage.,

Phase 1:  MySQL failed before reaching the 1st million records by it's
Incredible consumption of memory and disks space
Pase2:  Disk consumption of PostgreSQL

3
0 883
Question Eduard Lebedyuk · Aug 8, 2017

I have a Caché server with external apache.

It has a hostname, i.e.: http://myserver.com

There is an index page, which is available over http://myserver.com/index.html (/ is a Caché CSP app)

How can I make index.html available from http://myserver.com?

Here's the relevant parts of my apache config:

<Directory />
    CSP On
    DirectoryIndex index.html
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
<Location />
    DirectoryIndex index.html
    Options FollowSymLinks 
    AllowOverride All
    CSP On
    SetHandler csp-handler-sa
</Location>
3
0 904
Question Tom Philippi · Aug 7, 2017

Okay, so I ran into a rather odd bug. I have a remote test machine (tst-intersystems) running for which I accidently opened a lot of windows in my Studio (i.e. 500+). The result is that the studio runs out of memory and crashes. Now, every time I try to connect to this remote machine studio immediately attempts to open all windows effectively not allowing me to start studio anymore.

Now, apparently the windows I have opened in Studio are stored locally since I can just rename the tst-intersystems (via intersystems tray icon -> preferred server -> add/edi)t and then I can start the studio

2
0 753
Article Fabian Haupt · Aug 3, 2017 3m read

In this short article we talk about how to get Yape running in a docker container to avoid having to setup python on your machine.

It's been a while since the last article in this series, so let's recap quickly.

We talked about using matplotlib to create a basic graph. Afterwards we introduced dynamic graphs using bokeh. In the 3rd part we talked about generating heatmaps using monlbl data.

A common theme in the feedback I got over various channels was the difficulty setting up an environment to run any of these.

1
1 1148
Article Robert Cemper · Aug 5, 2017 3m read

GIS stands for Geographic Information System.
  and it's not a typical arena for Caché. But it's definitely an environment with high data volume.
You see 3 major areas

- Visual front end:
   A mature area well covered by a bunch of commercial and open source products.
   No need for Caché there.

- GIS mathematics:  
  JTS (Java Topology Suite)  is fixed standard that covers all requirements and can be linked to Caché by the Java Gateway
or the C, C++ incarnation of this standard library using Caché Call Out Gateway.
  So far no added value by Caché.

- the Database that holds all the geographic objects

4
0 873
Question Ruslan K · Aug 5, 2017

I don't know what a problem with my cache cube terminal, but cyrillic text is not displayed correctly.

I have some terminal program with cyrillic menus, dialogs and other text and all those items are displayed wrong (unknown symbols like on the image).

How can I solve this problem?

1
0 474